版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 學(xué) 號 </b></p><p><b> 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計</b></p><p><b> 設(shè)計說明書</b></p><p> 起止日期: 2011年 12月 12 日 至 2011 年 12月16日</p><p><
2、;b> 電子與信息工程系</b></p><p> 2011年 12 月16日</p><p><b> 課程設(shè)計任務(wù)書</b></p><p> 2010—2011學(xué)年第1學(xué)期</p><p> 電子與信息工程 系 軟件工程 專業(yè) 班級</p><p&
3、gt; 課程設(shè)計名稱: 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計 </p><p> 設(shè)計題目: 員工管理系統(tǒng) </p><p> 完成期限:自 2011 年 12 月 12 日至 2011 年 12 月 16 日共 1 周</p><p> 設(shè)計依據(jù)
4、、要求及主要內(nèi)容(可另加附頁):</p><p><b> 一、設(shè)計目的</b></p><p> 熟悉各種數(shù)據(jù)結(jié)構(gòu)和運算,會使用數(shù)據(jù)結(jié)構(gòu)的基本操作解決一些實際問題。</p><p><b> 二、設(shè)計要求 </b></p><p> (1)重視課程設(shè)計環(huán)節(jié),用嚴謹、科學(xué)和踏實的工作態(tài)度
5、對待課程設(shè)計的每一項任務(wù);</p><p> (2)按照課程設(shè)計的題目要求,獨立地完成各項任務(wù),嚴禁抄襲;凡發(fā)現(xiàn)抄襲,抄襲者與被抄襲者皆以零分計入本課程設(shè)計成績。凡發(fā)現(xiàn)實驗報告或源程序雷同,涉及的全部人員皆以零分計入本課程設(shè)計成績;</p><p> (3)學(xué)生在接受設(shè)計任務(wù)后,首先要按設(shè)計任務(wù)書的要求編寫設(shè)計進程表;</p><p> ?。?)認真編寫課程設(shè)計
6、報告。</p><p><b> 三、設(shè)計內(nèi)容</b></p><p><b> 員工管理系統(tǒng)</b></p><p><b> 1)問題描述</b></p><p> 每個員工的信息包括:編號、姓名、性別、出生年月、學(xué)歷、職務(wù)、電話、住址等。系統(tǒng)能夠完成員工信息的查詢
7、、更新、插入、刪除、排序等功能。</p><p><b> 2)基本要求</b></p><p> (1) 排序:按不同關(guān)鍵字,對所有員工的信息進行排序。</p><p> ?。?) 查詢:按特定條件查找員工。</p><p> ?。?) 更新:按編號對某個員工的某項信息進行修改。</p><p&
8、gt; (4) 插入:加入新員工的信息。</p><p> (5) 刪除:按編號刪除已離職的員工的信息。</p><p><b> 四、參考文獻</b></p><p> 1.王紅梅.數(shù)據(jù)結(jié)構(gòu).清華大學(xué)出版社</p><p> 2.王紅梅.數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)輔導(dǎo)與實驗指導(dǎo).清華大學(xué)出版社</p><
9、;p> 3.嚴蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語言版).清華大學(xué)出版社</p><p><b> 一、需求分析</b></p><p> 我認為首先建立一個數(shù)組,數(shù)組中包含員工的基本信息,每個員工的信息包括:編號、姓名、性別、出生年月、學(xué)歷、職務(wù)、電話、住址等。然后再設(shè)計具體功能的程序,比如說查找員工的信息就要建立查找的代碼,并且還要建立和主函數(shù)的關(guān)系,根據(jù)主菜
10、單的提示可以選擇自動的轉(zhuǎn)向你所要查詢的內(nèi)容,然后還能夠返回到主函數(shù)主界面,這樣用戶就可以完成下一步的操作,最終我設(shè)計的這個系統(tǒng)能夠完成員工信息的查詢、更新、插入、刪除、排序等功能,在主界面可以實現(xiàn)這些功能,根據(jù)用戶需求進行相應(yīng)的操作。</p><p> 輸入:輸入每個員工的基本信息,形成每一條員工記錄。輸出:輸出員工管理的主菜單,可以進行查詢、更新、插入、刪除、排序的操作。</p><p&g
11、t;<b> 二、問題求解</b></p><p> 在現(xiàn)實生活中,我會首先建立一個結(jié)構(gòu)體用來存儲員工的基本信息,初始數(shù)據(jù)形式為一個空的結(jié)構(gòu)體,里面存儲員工所具有的屬性,然后建立一個主界面,根據(jù)提示依次輸入一條員工的記錄,然后存儲當前的數(shù)據(jù)形式,等到有需要操作時,就會調(diào)用這些數(shù)據(jù)記錄,完成相應(yīng)的操作。比如如果要增加一條員工的記錄,就會在主界面中按照提示輸入員工的編號,姓名等一系列的員工信
12、息,最終存儲到結(jié)構(gòu)體之中,修改的時候只需要輸入員工的編號就能進行相應(yīng)的修改操作。</p><p> 三、總體設(shè)計 流程圖如下:</p><p><b> 四、詳細設(shè)計</b></p><p> 首先建立一個菜單函數(shù),顯示7個功能,供用戶選擇,進行人機對話,設(shè)置一個排序的函數(shù)void list(),設(shè)置一個顯示的函數(shù)
13、,void display(),設(shè)置一個插入的函數(shù),void input(),設(shè)一個刪除的函數(shù),void del(),設(shè)一個查找的函數(shù),void lookup(),設(shè)置一個修改的函數(shù),void set()。最后退出程序界面。</p><p><b> 五、調(diào)試與測試</b></p><p> 調(diào)試是通過工具進行異常或者數(shù)據(jù)的查看跟蹤,主要是用于看程序在執(zhí)行關(guān)鍵部的
14、數(shù)據(jù),或者查看斷點處異常通知,以解決問題。測試指的方法,或者程序流程,主要體現(xiàn)在測試用例上。要通過測試和調(diào)試不斷地發(fā)現(xiàn)程序的錯誤,解決問題,最終使程序正確的運行。</p><p> 六、關(guān)鍵源程序清單和執(zhí)行結(jié)果</p><p><b> 源程序:</b></p><p> #include <iostream></p&g
15、t;<p> using namespace std;</p><p> struct worker//定義員工的結(jié)構(gòu)體數(shù)組 </p><p> {char num[15];</p><p> char name[15];</p><p> char sex[5];</p><p> char
16、 birth[15];</p><p> char degree[15];</p><p> char position[15];</p><p> char tel[15];</p><p> char address[15];</p><p> void output();</p><
17、p> };void worker::output()</p><p> { cout<<num<<"\t"<<name<<"\t"<<sex<<"\t"<<birth<<"\t"<<degree<<&q
18、uot;\t"<<position<<"\t"<<tel<<"\t"<<address<<"\t"<<endl;</p><p><b> }</b></p><p> int i=0; //全局變量 統(tǒng)計個數(shù)
19、</p><p> void input(struct worker a[] ); //輸入函數(shù)</p><p> void show(struct worker a[]);//顯示數(shù)據(jù) </p><p> void list(struct worker a[]); //排序函數(shù) </p><p> void set(struct w
20、orker a[]); //修改函數(shù) </p><p> void del(struct worker a[]); //刪除函數(shù) </p><p> void display(struct worker a[]);//顯示函數(shù) </p><p> void lookup(struct worker a[]);//查找函數(shù)</p><p>
21、; //void statistics(struct thing a[]);//統(tǒng)計函數(shù)</p><p> void main() </p><p> {struct worker stu[50];//定義結(jié)構(gòu)體數(shù)組</p><p> char number; </p><p><b> do </b><
22、/p><p><b> { </b></p><p> cout<<"\n\t\t員工管理系統(tǒng)\n"; </p><p> cout<<"\n☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n"; </p><p> cout<<"
23、;\n\t\t請選擇功能\n\t\t0.退出\n\t\t1.錄入信息\n\t\t2.排序\n\t\t3.修改\n\t\t4.刪除\n\t\t5.查找\n\t\t6.顯示數(shù)據(jù)";</p><p> cout<<"\n☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n"; </p><p> cin>>number; </p&
24、gt;<p> cout<<"\n******************\n\n"; </p><p> switch (number) </p><p> { case '0':break; //退出系統(tǒng)</p><p> case '1':input(stu);break;
25、//錄入函數(shù)</p><p> case '2':list(stu);break; //排序函數(shù)</p><p> case '3':set(stu);break; //修改函數(shù)</p><p> case '4':del(stu);break;//刪除函數(shù) </p><p> cas
26、e '5':lookup(stu);break;//查找函數(shù)</p><p> case '6' :display(stu);break;//顯示數(shù)據(jù)</p><p> default:cout<<"此輸入無效!請重新輸入";</p><p><b> } </b></
27、p><p><b> }</b></p><p> while(number!=0); </p><p> cout<<"謝謝使用!下次再見!"; </p><p> cout<<"\n"; </p><p><b>
28、 } </b></p><p> //***********************************************************</p><p> void input(struct worker a[]) //錄入函數(shù) </p><p> { //int j; </p><p><b>
29、; char b; </b></p><p> float sum=0; </p><p> cout<<"請輸入員工信息\n"; </p><p><b> do </b></p><p> { cout<<"編號:"; </p
30、><p> cin>>a[i].num; </p><p> cout<<"姓名:"; </p><p> cin>>a[i].name; </p><p> cout<<"性別"; </p><p>
31、; cin>>a[i].sex;</p><p> cout<<"出生年月:";</p><p> cin>>a[i].birth; </p><p> cout<<"學(xué)歷";</p><p> cin>>a[i].degree;&l
32、t;/p><p> cout<<"職務(wù)";</p><p> cin>>a[i].position;</p><p> cout<<"電話";</p><p> cin>>a[i].tel;</p><p> cout<
33、<"住址";</p><p> cin>>a[i].address;</p><p><b> i++; </b></p><p> cout<<"是否繼續(xù)\n(y/n)?"; </p><p> fflush(stdin); //
34、清空輸入緩沖區(qū)</p><p><b> cin>>b; </b></p><p> }while(b=='Y'||b=='y'); </p><p><b> } </b></p><p> //************************
35、***************************************</p><p> void display(struct worker a[]) //顯示函數(shù) </p><p><b> { int k; </b></p><p> cout<<"編號 姓名 性別 出生年月 學(xué)歷 職務(wù)
36、 電話 住址"<<endl; </p><p> for(k=0;k<i;k++) </p><p> { cout<<a[k].num<<" "<<a[k].name<<" "<<a[k].sex<<" "<&l
37、t;a[k].birth<<" "<<a[k].degree<<" "<<a[k].position<<" "<<a[k].tel<<" "<<a[k].address<<endl; </p><p><b>
38、 } </b></p><p><b> } </b></p><p> //*************************************************************</p><p> void lookup(struct worker a[]) //查找函數(shù)</p>&l
39、t;p> {char k[20]; </p><p> cout<<"請輸入要查找員工的編號:";</p><p><b> cin>>k;</b></p><p> for(int l=0;l<i;l++)</p><p> { int s=strcm
40、p(a[l].num,k);</p><p><b> if(s==0)</b></p><p><b> {</b></p><p> cout<<a[l].num<<" "<<a[l].name<<" "<<a
41、[l].sex<<" "<<a[l].birth<<" "<<a[l].degree<<" "<<a[l].position<<" "<<a[l].tel<<" "<<a[l].sex<<"
42、; "<<a[l].address<<endl; </p><p><b> }</b></p><p><b> }</b></p><p><b> } </b></p><p> //**********************
43、********</p><p> void list(struct worker a[]) //排序函數(shù) </p><p> { int j,k; </p><p> struct worker temp; </p><p> for(k=1;k<i;k++) </p><p> { for(j=
44、0;j<i-k;j++) </p><p> { if(a[j].num>a[j+1].num) </p><p> { temp=a[j]; </p><p> a[j]=a[j+1]; </p><p> a[j+1]=temp; </p><p><b> } </b>
45、</p><p><b> } </b></p><p><b> } </b></p><p> cout<<"排序后的員工信息如下\n"; </p><p> display(a); </p><p><b> } &l
46、t;/b></p><p> //*********************************************************</p><p> void set(struct worker a[])//修改函數(shù)</p><p> { char b;</p><p> {cout<<&
47、quot;輸入你要修改的員工編號:";</p><p><b> cin>>b;</b></p><p> cout<<"輸入修改后員工信息:"<<endl;</p><p> cin>>a[b].num;</p><p> cout&
48、lt;<"編號:";</p><p> cin>>a[b].num;</p><p> cout<<"姓名:";</p><p> cin>>a[b].name;</p><p> cout<<"性別:";</p&g
49、t;<p> cin>>a[b].sex;</p><p> cout<<"出生年月:";</p><p> cin>>a[b].birth;</p><p> cout<<"學(xué)歷:";</p><p> cin>>a[
50、b].degree;</p><p> cout<<"職務(wù):";</p><p> cin>>a[b].position;</p><p> cout<<"電話:";</p><p> cin>>a[b].tel;</p><p
51、> cout<<"住址:";</p><p> cin>>a[b].address;</p><p> cout<<"修改成功!"<<endl;</p><p><b> }</b></p><p><b>
52、 }</b></p><p> //************************************************************</p><p> void del(struct worker a[]) //刪除函數(shù) </p><p> { char k[20];int j; </p><p>
53、 cout<<"請輸入員工編號:"; </p><p><b> cin>>k; </b></p><p> for(j=0;j<i;j++) </p><p> { if(k==a[j].num) </p><p> { for(int d=j;j<i;
54、d++)</p><p> { strcpy(a[j].num,a[j+1].num);</p><p> strcpy(a[d].name,a[d+1].name);</p><p> strcpy(a[d].sex,a[d+1].sex);</p><p> strcpy(a[d].birth,a[d+1].birth);&l
55、t;/p><p> strcpy(a[d].degree,a[d+1].degree);</p><p> strcpy(a[d].position,a[d+1].position);</p><p> strcpy(a[d].tel,a[d+1].tel);</p><p> strcpy(a[d].address,a[d+1].add
56、ress);</p><p><b> }</b></p><p><b> } </b></p><p><b> } </b></p><p><b> } i--;</b></p><p> cout<<
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---員工管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--簡單的員工管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--員工信息管理系統(tǒng)
- 算法與數(shù)據(jù)結(jié)構(gòu)課程設(shè)計——員工管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)-課程設(shè)計--學(xué)生管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---成績管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--航班管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計—機場管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--數(shù)據(jù)結(jié)構(gòu)課程設(shè)計----huffman編碼
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--圖書管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告--車庫管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--學(xué)生籍貫管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--圖書借閱管理系統(tǒng)
- 《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計---圖書管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--圖書管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--企業(yè)員工信息管理系統(tǒng)設(shè)計與實現(xiàn)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--個人賬簿管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---圖書管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計----倉庫管理系統(tǒng)統(tǒng)
評論
0/150
提交評論