版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
可編輯版/員工信息管理系統(tǒng)課程設(shè)計報告系別:計算機(jī)與信息工程系班級:B080501姓名:李海鵬學(xué)號:B08050128指導(dǎo)教師:張紅霞課設(shè)時間:2010-6-21到2010-6-25摘要員工信息管理系統(tǒng)屬于信息管理系統(tǒng)。員工信息管理是每個公司不可缺少的。系統(tǒng)用C程序開發(fā),主要在于建立好一個合適的數(shù)據(jù)結(jié)構(gòu),并要求程序簡潔實用。本系統(tǒng)利用C語言簡潔、靈活,數(shù)據(jù)結(jié)構(gòu)豐富等特點,編寫適合公司使用的系統(tǒng)。整個系統(tǒng)使用起來也比較方便,入手簡單,操作方便。論文主要介紹了程序設(shè)計過程、設(shè)計方案以及測試過程,重點講解了設(shè)計過程中的思想,技術(shù)解決方案等等。關(guān)鍵字:員工信息管理,C程序,數(shù)據(jù)結(jié)構(gòu)目錄前言3第1章課設(shè)題目4第2章開發(fā)運行環(huán)境及相關(guān)知識4第3章程序總體設(shè)計53.1主要功能模塊53.2數(shù)據(jù)結(jié)構(gòu)6第4章程序詳細(xì)設(shè)計及實現(xiàn)74.1輸入函數(shù)74.2排序函數(shù)74.3顯示函數(shù)74.4查找函數(shù)74.5更改函數(shù)84.6刪除函數(shù)84.7主函數(shù)84.8其他函數(shù)9第5章系統(tǒng)功能測試95.1系統(tǒng)主界面95.2輸入數(shù)據(jù)95.3顯示數(shù)據(jù)105.4信息排序105.5更改信息115.6刪除信息11第6章課設(shè)總結(jié)12第7章程序清單13參考文獻(xiàn)22前言本課程設(shè)計旨在理論學(xué)習(xí)和基礎(chǔ)實驗的基礎(chǔ)上,開發(fā)規(guī)模較大的程序,掌握應(yīng)用計算機(jī)編程解決實際問題的基本方法,熟悉C程序開發(fā)的全過程,掌握數(shù)據(jù)結(jié)構(gòu)的使用方法,熟練應(yīng)用各種數(shù)據(jù)結(jié)構(gòu)。本次任務(wù)是根據(jù)給定的數(shù)據(jù)和程序,應(yīng)用單向鏈表處理一系列公司員工的信息。通過整個程序開發(fā)的過程,提高綜合應(yīng)用C語言的能力、編程和調(diào)試能力,為進(jìn)一步學(xué)習(xí)相關(guān)專業(yè)課程創(chuàng)建較扎實的理論基礎(chǔ)和實踐基礎(chǔ)。報告將分6個章節(jié)來詳細(xì)講述本次課設(shè)題目的開發(fā)過程。第1章主要描述課設(shè)的題目及要求;第2章來介紹程序開發(fā)運行環(huán)境;第3章介紹程序主體設(shè)計,網(wǎng)絡(luò)程序概要;第4章是對程序進(jìn)行詳細(xì)分析,對各個函數(shù)進(jìn)行詳細(xì)描述,并闡述程序?qū)崿F(xiàn)技術(shù)等信息;第5章為測試過程,主要用測試過程中的圖片來表述最終信息;第6章也是最后一章,為本次實踐活動的心得體會。第1章課設(shè)題目1.1課設(shè)題目每個員工的信息包括:編號、姓名、性別、出生年月、學(xué)歷、職務(wù)、電話、住址等。系統(tǒng)能夠完成員工信息的查詢、更新、插入、刪除、排序等功能。1.2基本要求〔1每條記錄內(nèi),包括員工的個人信息,有:編號、姓名、性別、出生年月、學(xué)歷、職務(wù)、電話、住址等;〔2按不同關(guān)鍵字〔如編號,姓名等,對所有員工的信息進(jìn)行排序;〔3按照指定條件查找某員工所有信息;〔4按編號對某個員工的信息進(jìn)行修改;〔5加入新員工的信息,并實現(xiàn)排序;〔6按編號刪除已離職的員工的信息。1.3其他需求程序除需完成基本功能外,程序源代碼還應(yīng)具有良好的編程結(jié)構(gòu)和適當(dāng)?shù)淖⑨?運行界面清晰,提示內(nèi)容明確,易于操作。第2章開發(fā)運行環(huán)境及相關(guān)知識2.1運行環(huán)境軟件環(huán)境:Windows2000,WindowsXP和WindowsNT4.0。2.2開發(fā)工具微軟公司的MicrosoftVisualC++6.0。2.3開發(fā)工具簡介VisualC++是一個功能強(qiáng)大的可視化軟件開發(fā)工具。自1993年Microsoft公司推出VisualC++1.0后,隨著其新版本的不斷問世,VisualC++已成為專業(yè)程序員進(jìn)行軟件開發(fā)的首選工具。雖然微軟公司推出了VisualC++.NET<VisualC++7.0>,但它的應(yīng)用的很大的局限性,只適用于Windows2000,WindowsXP和WindowsNT4.0。所以實際中,更多的是以VisualC++6.0為平臺。VisualC++6.0不僅是一個C++編譯器,而且是一個基于Windows操作系統(tǒng)的可視化集成開發(fā)環(huán)境〔integrateddevelopmentenvironment,IDE。VisualC++6.0由許多組件組成,包括編輯器、調(diào)試器以及程序向?qū)ppWizard、類向?qū)lassWizard等開發(fā)工具。這些組件通過一個名為DeveloperStudio的組件集成為和諧的開發(fā)環(huán)境。第3章程序總體設(shè)計3.1主要功能模塊依據(jù)程序的數(shù)據(jù)結(jié)構(gòu)和功能,遵照"自頂向下"原則,描述該程序的層次結(jié)構(gòu),在總體上包括數(shù)據(jù)的錄入、增加、刪除、查找、更改和數(shù)據(jù)的排序等功能模塊。主函數(shù)main<>主函數(shù)main<>輸入顯示查找排序更改刪除退出按編號按姓名按編號按姓名圖3-1程序主體3.2數(shù)據(jù)結(jié)構(gòu)依據(jù)給定的數(shù)據(jù)格式,個人信息由九個字段來組成,即編號、姓名、性別、生日、學(xué)歷、職務(wù)、電話和住址,外加一個判斷關(guān)鍵字。本課程設(shè)計根據(jù)功能需求,使用線性結(jié)構(gòu)來組織數(shù)據(jù),因為數(shù)據(jù)占據(jù)空間比較大,要對表中某項數(shù)據(jù)進(jìn)行操作,所以使用鏈表比較方便。結(jié)構(gòu)體定義:typedefstructStuff{charnumber[10];//編號charname[10];//姓名charsex[8];//性別charbirthday[10];//生日chardegree[20];//學(xué)歷charbusiness[20];//職務(wù)charphone[15];//電話charplace[50];//住址charcon[50];//判斷關(guān)鍵字structStuff*next;//指針域}Stuff;信息存儲:信息存儲結(jié)構(gòu)如圖3-2Head指針域Head指針域數(shù)據(jù)域指針域數(shù)據(jù)域指針域NULL圖3-2鏈?zhǔn)酱鎯Y(jié)構(gòu)第4章程序詳細(xì)設(shè)計及實現(xiàn)4.1輸入函數(shù)函數(shù)原型:Stuff*App<Stuff*head>;函數(shù)功能:通過輸入各項數(shù)據(jù)給數(shù)據(jù)元素,來建立一個數(shù)據(jù)表。算法要點:用循環(huán)控制輸入記錄;為每一結(jié)構(gòu)體數(shù)據(jù)項輸入數(shù)據(jù);返回輸入記錄數(shù)。4.2排序函數(shù)函數(shù)原型:voidSort<Stuff*head>;voidScpy<char*p,char*q>;intSel<charch,Stuff*p,Stuff*q>;函數(shù)功能:按照指定關(guān)鍵字對員工信息進(jìn)行排序。算法要點:<1>比較法對信息進(jìn)行排序;<2>使用交換函數(shù),對每項信息進(jìn)行交換。4.3顯示函數(shù)函數(shù)原型:voidShow<Stuff*head>;函數(shù)功能:輸出表中所有節(jié)點的信息。算法要點:使用循環(huán)輸出所有信息。程序清單:4.4查找函數(shù)函數(shù)原型:Stuff*Search<Stuff*head>;函數(shù)功能:按照指定關(guān)鍵字,對相應(yīng)員工信息進(jìn)行查找。算法要點:輸入字段和信息相應(yīng)字段的比較;函數(shù)中調(diào)用刪除和更改函數(shù)。4.5更改函數(shù)函數(shù)原型:Stuff*Change<Stuff*head,charn[10]>;函數(shù)功能:輸入員工編號,查找到員工信息,對其信息進(jìn)行更新。算法要點:信息查找;信息重新錄入及保存。4.6刪除函數(shù)函數(shù)原型:Stuff*Del<Stuff*head,charn[10]>;函數(shù)功能:查找到要刪除員工的相應(yīng)信息,并將其從表中永久的刪除。算法要點:按關(guān)鍵字查找信息;鏈表中刪除節(jié)點信息,并釋放節(jié)點空間。4.7主函數(shù)主函數(shù)主要是調(diào)用以上的子函數(shù),用開關(guān)語句進(jìn)行選擇性的調(diào)用。大致程序如下:switch<Menu<>> { case1:調(diào)用函數(shù)語句;break;case2:調(diào)用函數(shù)語句;break;……case0:退出程序語句;default:printf<"輸入錯誤,請重新輸入!\n">;}4.8其他函數(shù)其他函數(shù)主要起到輔助功能,如菜單函數(shù),主要起到引導(dǎo)作用;釋放空間函數(shù),主要用于釋放已經(jīng)刪除節(jié)點的信息,或者釋放整個鏈表的節(jié)點信息。菜單函數(shù)原型:charMenu<>;釋放函數(shù)原型:voidFre<Stuff*head>;第5章系統(tǒng)功能測試5.1系統(tǒng)主界面圖5-1系統(tǒng)主界面5.2輸入數(shù)據(jù)〔1輸入操作字符1;〔2輸入員工信息;〔3輸入"#"字符結(jié)束輸入。圖5-2輸入操作5.3顯示數(shù)據(jù)圖5-3顯示信息5.4信息排序圖5-4信息排序5.5更改信息圖5-5更正信息5.6刪除信息圖5-6刪除信息第6章課設(shè)總結(jié)如何才能真正的去掌握編程的方法,如何才能真正的去理解書上的理論信息,理論知識用于實踐才是最終的目的。通過本次數(shù)據(jù)結(jié)構(gòu)課程設(shè)計,我對數(shù)據(jù)結(jié)構(gòu)的理論知識有了更為直接的認(rèn)識,從實際中獲得了很多寶貴的經(jīng)驗,這些對我以后做程序開發(fā)將是一筆很寶貴的財富。我有以下兩點感觸:〔1沒有解決不了的問題。這個程序在課設(shè)前一周就開始著手編寫,中間遇到了不少的問題,由于以前寫過類似的程序,所以對其中的一些錯誤很是敏感,也通過不少的途徑來解決了問題。比如,通過和網(wǎng)上的一些程序代碼的對比,解決了自己程序中輸出亂碼的問題。〔2注重團(tuán)隊協(xié)作。雖然此次課設(shè)是完全個人完成的,但是我還是要強(qiáng)調(diào)團(tuán)隊的重要性,因為我們以后走項的程序開發(fā)的道路上,沒有單槍匹馬的,都是一個團(tuán)隊協(xié)作完成的,所以今后的程序開發(fā)過程中,盡可能的和他人合作。萬事開頭難,學(xué)好編程,我還有很長的路要走。第7章程序清單#include"stdio.h"#include"stdlib.h"#include"windows.h"http://清屏函數(shù)頭文件#include"string.h"typedefstructStuff{charnumber[10];//編號charname[10];//姓名charsex[8];//性別charbirthday[10];//生日chardegree[20];//學(xué)歷charbusiness[20];//職務(wù)charphone[15];//電話charplace[50];//住址charcon[50];//判斷關(guān)鍵字structStuff*next;}Stuff;charMenu<>;//菜單函數(shù)Stuff*App<Stuff*head>;//添加函數(shù)voidSort<Stuff*head>;//排序函數(shù)Stuff*Search<Stuff*head>;//查找函數(shù)Stuff*Change<Stuff*head,charn[10]>;//更改函數(shù)voidScpy<char*p,char*q>;//排序中用于交換員工信息Stuff*Del<Stuff*head,charn[10]>;//刪除函數(shù)intSel<charch,Stuff*p,Stuff*q>;//判斷排序及關(guān)鍵字專用函數(shù)voidShow<Stuff*head>;//輸出函數(shù)voidFre<Stuff*head>;//釋放函數(shù)intn=1;//定義全局變量,實現(xiàn)人數(shù)統(tǒng)計//菜單函數(shù)charMenu<void>{ intch;printf<"菜單\n">;printf<"1.添加員工信息\n">;printf<"2.員工信息排序\n">;printf<"3.查找員工信息\n">;printf<"4.輸出員工信息\n">;printf<"5.更改員工信息\n">;printf<"6.刪除員工信息\n">;printf<"0.退出\n">;printf<"\n">;printf<"請選擇你的操作:">;scanf<"%d",&ch>;returnch;}//添加成員函數(shù)Stuff*App<Stuff*head>{ Stuff*p=NULL,*q=head;while<n> { p=<Stuff*>malloc<sizeof<Stuff>>;//申請結(jié)構(gòu)體空間if<p==NULL> { printf<"空間不足,自動退出系統(tǒng)!\n">;exit<0>; }p->next=NULL;//指針域為空printf<"請輸入第%d名員工:\n",n>;printf<"編號|姓名|性別|出生年月|學(xué)歷|職務(wù)|電話|住址:\n">;getchar<>;scanf<"%s",p->number>;if<strcmp<p->number,"#">> { ++n; scanf<"%s%s%s%s%s%s%s",p->name,p->sex,p->birthday,p->degree,p->business,p->phone,p->place>;p->con[0]='\0';//防止后面判斷出現(xiàn)隨機(jī)值if<head==NULL> head=p;else { while<q->next!=NULL>q=q->next;q->next=p; }q=p;//尾插法 } if<!strcmp<p->number,"#">> { free<p>;//完成添加,釋放多余空間break; } }returnhead;}//排序函數(shù)voidSort<Stuff*head>{ charch;Stuff*p,*q,*r;while<1> { printf<"請選擇排序條件:1.編號|2.姓名|0.退出\n">; getchar<>;scanf<"%c",&ch>;if<ch=='0'>break;if<ch<'1'||ch>'2'> { printf<"輸入錯誤,請重新輸入!\n">;continue; }p=head;while<p->next!=NULL>//選擇排序 { q=p->next;r=p;while<q!=NULL> { if<Sel<ch,r,q>>//調(diào)用判斷函數(shù) r=q;q=q->next; }if<r!=p>//交換信息 { Scpy<r->number,p->number>;Scpy<r->name,p->name>;Scpy<r->sex,p->sex>; Scpy<r->birthday,p->birthday>;Scpy<r->degree,p->degree>;Scpy<r->business,p->business>;Scpy<r->phone,p->phone>;Scpy<r->place,p->place>; }p=p->next; }Show<head>;//輸出 }}//交換函數(shù)voidScpy<char*p,char*q>{ charc[50];strcpy<c,p>;strcpy<p,q>;strcpy<q,c>;}//判斷函數(shù)intSel<charch,Stuff*p,Stuff*q>{ switch<ch>//實現(xiàn)各個關(guān)鍵字查找 { case'1':returnstrcmp<q->number,p->number><0||strcmp<q->con,p->number>==0;case'2':returnstrcmp<q->name,p->name><0||strcmp<q->con,p->name>==0;default:exit<0>; }}//查找函數(shù)Stuff*Search<Stuff*head>{ Stuff*p=NULL,*q;intflag;//查找判斷charch,sh;//兩個控制變量q=&a;while<1> { printf<"請輸入要查找的條件:1.編號2.姓名0.退出\n">;scanf<"%c",&ch>;if<ch=='0'>break;if<ch<'1'||ch>'2'> { printf<"輸入錯誤,請重新輸入!\n">; continue; } getchar<>; printf<"請輸入:">; gets<q->con>; p=head;//指向表頭 flag=0; while<p!=NULL> { if<strcmp<q->con,p->number>==0||strcmp<q->con,p->name>==0> { printf<"員工信息如下:\n">; printf<"編號|姓名|性別|出生年月|學(xué)歷|職務(wù)|電話|住址\n%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",p->number,p->name,p->sex,p->birthday,p->degree,p->business,p->phone,p->place>; printf<"是否需要:1.更改2.刪除3.繼續(xù)\n">; scanf<"%c",&sh>; if<sh=='1'> Change<head,p->number>;//調(diào)用更改函數(shù) elseif<sh=='2'> head=Del<head,p->number>;//調(diào)用刪除函數(shù) flag=1; break; } p=p->next; } if<flag==0> printf<"沒有找到該員工信息!\n">; } returnhead;}//更改函數(shù)Stuff*Change<Stuff*head,charn[10]>{ Stuff*p=head; intflag=0; if<head==NULL> printf<"信息表為空,請先建立信息表!\n">; else { while<p!=NULL> { if<!strcmp<p->number,n>> { printf<"找到員工,請輸入新的信息:\n編號|姓名|性別|出生年月|學(xué)歷|職務(wù)|電話|住址\n">; scanf<"%s%s%s%s%s%s%s%s",p->number,p->name,p->sex,p->birthday,p->degree,p->business,p->phone,p->place>; printf<"員工信息如下:\n">; flag=1; } p=p->next; } if<flag==0> printf<"未找到該員工信息!\n">; } Show<head>;returnhead;}//刪除函數(shù)Stuff*Del<Stuff*head,charn[10]>{ Stuff*p,*pr; intflag; flag=0; p=head,pr=head; if<head==NULL> printf<"未找到員工信息!\n">; else { while<strcmp<p->number,n>&&p->next!=NULL> { pr=p; p=p->next; } if<!strcmp<p->number,n>> { if<p==head> head=p->next; else pr->next=p->next; free<p>; printf<"刪除成功!\n">; n--; } else printf<"未找到員工信息!\n">; } Show<head>; returnhead;}//輸出函數(shù)voidShow<Stuff*head>{ Stuff*p=head; inti=1; if<head!=NULL> { printf<"員工信息如下:\n">; while<p!=NULL> { printf<"%d.%s%s%s%s%s%s%s%s\n",i++,p->num
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單位管理制度呈現(xiàn)大全【人事管理】
- 三角形的面積推導(dǎo)課件
- 第4單元 民族團(tuán)結(jié)與祖國統(tǒng)一 測試卷-2021-2022學(xué)年部編版八年級歷史下冊
- DBJT 13-317-2019 裝配式輕型鋼結(jié)構(gòu)住宅
- 《電鍍錫工藝學(xué)》課件
- 2024年大學(xué)生攝影大賽活動總結(jié)
- 《焊接基本知識》課件
- 中小學(xué)家長會122
- 美術(shù):源起與影響
- 醫(yī)療行業(yè)專業(yè)技能培訓(xùn)體會
- 指導(dǎo)農(nóng)戶科學(xué)種植工作總結(jié)報告
- 2024年江蘇省南京市公共工程建設(shè)中心招聘高層次專業(yè)技術(shù)人才1人歷年高頻考題難、易錯點模擬試題(共500題)附帶答案詳解
- 重慶市豐都縣2023-2024學(xué)年七年級上學(xué)期期末數(shù)學(xué)試題
- 2020年10月自考00094外貿(mào)函電試題及答案含解析
- 中等職業(yè)學(xué)校教研教改工作總結(jié)
- 甲狀腺細(xì)針穿刺細(xì)胞學(xué)檢查課件
- 醫(yī)療廢物管理人員及相關(guān)工作人員培訓(xùn)制度(15篇范文)
- 麻醉醫(yī)學(xué)知識培訓(xùn)培訓(xùn)課件
- 人教版四年級上冊數(shù)學(xué) 第五單元《平行四邊形和梯形》單元專項訓(xùn)練 作圖題(含答案)
- 物業(yè)品質(zhì)督導(dǎo)述職報告
- 2024年山東濟(jì)南軌道交通集團(tuán)有限公司招聘筆試參考題庫含答案解析
評論
0/150
提交評論