版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)</b></p><p><b> 員工管理系統(tǒng)</b></p><p> 目 錄</p><p> 1、 課程設(shè)計(jì)的目的:1</p><p> 2、 需求分析:1</p><p><b>
2、1. 要求:1</b></p><p> 2. 詳細(xì)功能:1</p><p> 3、課程設(shè)計(jì)報(bào)告內(nèi)容:1</p><p> 員工管理系統(tǒng)調(diào)用關(guān)系圖:1</p><p> 2. 設(shè)計(jì)結(jié)構(gòu)體及函數(shù)表:2</p><p> 3. 實(shí)現(xiàn)主程序和各模塊的調(diào)用關(guān)系:2</p><
3、;p> 4、 詳細(xì)設(shè)計(jì):3</p><p> 1. 各個(gè)操作的算法實(shí)現(xiàn):3</p><p> 2.程序清單:(見附錄)4</p><p><b> 5、參考文獻(xiàn):5</b></p><p> 6、 部分運(yùn)行結(jié)果界面:5</p><p><b> 1.調(diào)試分析:
4、7</b></p><p> 2. 調(diào)試中遇到的問題:7</p><p><b> 7、總結(jié):8</b></p><p> 8、附錄:(程序)8</p><p><b> 課程設(shè)計(jì)的目的:</b></p><p> 用〈〈數(shù)據(jù)結(jié)構(gòu)〉〉所學(xué)的知識(shí)作
5、數(shù)據(jù)結(jié)構(gòu),并結(jié)合C語(yǔ)言基本知識(shí)。編寫一個(gè)簡(jiǎn)單的職工管理系統(tǒng)。以把所學(xué)數(shù)據(jù)結(jié)構(gòu)知識(shí)應(yīng)用到實(shí)際軟件開發(fā)中去。了解并掌握數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計(jì)方法,具備初步的獨(dú)立分析和設(shè)計(jì)能力;初步掌握軟件開發(fā)過(guò)程的問題分析、系統(tǒng)設(shè)計(jì)、程序編碼、測(cè)試等基本方法和技能;提高綜合運(yùn)用所學(xué)的理論知識(shí)和方法獨(dú)立分析和解決問題的能力;訓(xùn)練用系統(tǒng)的觀點(diǎn)和軟件開發(fā)一般規(guī)范進(jìn)行軟件開發(fā),培養(yǎng)軟件工作者所應(yīng)具備的科學(xué)的工作方法和作風(fēng);</p><p>&
6、lt;b> 需求分析:</b></p><p><b> 要求:</b></p><p> 職工對(duì)象包括姓名、性別、出生年月、學(xué)歷、職務(wù)、住址、電話等信息。</p><p> (1)新增一名職工:將新增職工對(duì)象按姓名以字典方式職工管理文件中。</p><p> ?。?)刪除一名職工:從職工管理文
7、件中刪除一名職工對(duì)象。</p><p> ?。?)查詢:從職工管理文件中查詢符合某些條件的職工。</p><p> ?。?)修改:檢索某個(gè)職工對(duì)象,對(duì)其某些屬性進(jìn)行修改。</p><p> (5)排序:按某種需要對(duì)職工對(duì)象文件進(jìn)行排序。</p><p><b> 詳細(xì)功能:</b></p><p&
8、gt; 信息排序sort():</p><p> 按員工的工號(hào)進(jìn)行排序,并輸出排序結(jié)果。</p><p> B.信息修改num_modify():</p><p> 按員工工號(hào)找出員工信息,然后從新輸入,進(jìn)行覆蓋,實(shí)現(xiàn)修改。</p><p> C.信息添加 add():</p><p> 系統(tǒng)將提示輸入新紀(jì)
9、錄所需信息,信息包含:姓名、性別、出生年月、學(xué)歷、職務(wù)、住址、電話。</p><p> D.信息刪除num_del():</p><p> 首先提示用戶輸入要?jiǎng)h除的員工工號(hào),然后調(diào)用刪除函數(shù),刪除該紀(jì)錄的相關(guān)資料,支持重名選擇刪除和循環(huán)刪除。</p><p> E.查找num_query():</p><p> 提示用戶輸入要查找的
10、員工工號(hào),然后系統(tǒng)調(diào)用查找函數(shù)查找,接著系統(tǒng)使用相關(guān)命令輸出查到的全部信息。</p><p> F.顯示全部disp():</p><p> 將內(nèi)存中的紀(jì)錄內(nèi)容全部輸出,包括未保存到磁盤的記錄項(xiàng)。</p><p> G.保存save():</p><p> 將操作結(jié)果實(shí)時(shí)保存到磁盤文件employee.txt中,完成后返回到主菜單界面
11、。</p><p> H.退出系統(tǒng)exit(0):</p><p> 直接退出系統(tǒng),不保存修改。</p><p> 3、課程設(shè)計(jì)報(bào)告內(nèi)容:</p><p> 員工管理系統(tǒng)調(diào)用關(guān)系圖:</p><p><b> 略。。。。</b></p><p> 設(shè)計(jì)結(jié)構(gòu)體及函
12、數(shù)表:</p><p><b> (1)結(jié)構(gòu)體:</b></p><p> struct employee</p><p><b> {</b></p><p> char num[10];</p><p> char name[15];</p>&l
13、t;p> char sex[5];</p><p> char born[20];</p><p> char xl[20];</p><p> char zz[10];</p><p> char tel[20];</p><p><b> };</b></p>
14、<p><b> ?。?)函數(shù)目錄表:</b></p><p> int read_file(struct employee em[]);</p><p> void menu();</p><p> void write_file(struct employee em[]);</p><p> voi
15、d add(); </p><p> void select(); //查看職工所有信息</p><p> void num_query(); //按工號(hào)查詢</p><p> void num_del(); //按工號(hào)刪除</p><p> void sort(); //排序</p
16、><p> void num_modify(); //按工號(hào)修改職工信息</p><p> void save(); //保存信息</p><p> void disp(); //顯示職工信息</p><p> void fh(); //返回主菜單</p><p>
17、 struct employee em[300]; //這個(gè)數(shù)組用來(lái)保存所有的職工信息 和文件里面的一致</p><p> 實(shí)現(xiàn)主程序和各模塊的調(diào)用關(guān)系:</p><p> void main()</p><p><b> {</b></p><p> int choose=0;</p><
18、;p> FILE *fp=NULL;</p><p> char yesorno;</p><p> if((fp=fopen("employee1.txt","rb+"))==NULL)</p><p><b> {</b></p><p> printf(&qu
19、ot;\n=========>提示:文件不存在,是否要?jiǎng)?chuàng)建一個(gè)?(y/n)\n");</p><p> scanf("%c",&yesorno);</p><p> if(yesorno=='y'||yesorno=='Y')</p><p><b> { </b>
20、;</p><p> //這里僅為了建立文件</p><p> fp=fopen("employee1.txt","wb+");</p><p> fclose(fp); //關(guān)閉fp所指的文件,釋放文件緩沖區(qū)</p><p><b> }</b></p>&
21、lt;p><b> else</b></p><p><b> exit(0);</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></
22、p><p> Number=read_file(em); //要是文件已經(jīng)有數(shù)據(jù) 將數(shù)據(jù)初始化到數(shù)組中</p><p><b> }</b></p><p> system("cls"); </p><p><b> while(1) </b></p><
23、;p><b> { </b></p><p><b> menu();</b></p><p> printf("\t\t====>請(qǐng)選擇:");</p><p> scanf("%d",&choose);</p><p> sy
24、stem("cls");</p><p> switch(choose)</p><p><b> {</b></p><p><b> case 0: </b></p><p> exit(0); //退出 </p>
25、<p><b> break; </b></p><p><b> case 1: </b></p><p><b> add();</b></p><p> fh();//增加職工信息</p><p><b> break;</b
26、></p><p><b> case 2:</b></p><p><b> select();</b></p><p> fh();//查看職工信息</p><p> break; </p><p><b> case 3:
27、</b></p><p> num_query();</p><p> fh();// 查找 </p><p><b> break;</b></p><p><b> case 4:</b></p><p> num_del();
28、 </p><p> fh();//刪除 </p><p><b> break;</b></p><p><b> case 5: </b></p><p><b> sort();</b></p><p> fh();//排序 </
29、p><p><b> break;</b></p><p><b> case 6: </b></p><p> num_modify();</p><p> fh();//修改后返回</p><p><b> break;</b></p
30、><p><b> case 7:</b></p><p><b> save();</b></p><p> fh();//保存 </p><p><b> break;</b></p><p><b> case 8:</b
31、></p><p><b> disp();</b></p><p><b> fh();</b></p><p> break;//顯示</p><p><b> default:</b></p><p><b> break
32、;</b></p><p><b> }</b></p><p> fflush(stdin);</p><p> getchar();</p><p> system("cls");</p><p><b> }</b></p
33、><p><b> }</b></p><p> void menu()//顯示菜單</p><p><b> {</b></p><p> printf("\t**************************************************************
34、*********\n");</p><p> printf("\t* *\n");</p><p> printf("\t* 職工信息管理系統(tǒng)_結(jié)構(gòu)體數(shù)組實(shí)現(xiàn)
35、 *\n");</p><p> printf("\t* *\n");</p><p> printf("\t* [1] 增加職工信息 [2
36、] 查看職工信息 *\n");</p><p> printf("\t* [3] 查找職工信息 [4] 刪除職工信息 *\n");</p><p> printf("\t* [5] 職工工資排列 [6] 修改
37、職工信息 *\n");</p><p> printf("\t* [7] 保存職工信息 [8] 顯示職工信息 *\n");</p><p> printf("\t* [0] 退出系統(tǒng)
38、 *\n");</p><p> printf("\t* *\n");</p><p> printf("\t***************************************
39、********************************\n");</p><p><b> }</b></p><p> 各個(gè)操作的算法實(shí)現(xiàn):</p><p> ?。?)程序菜單的顯示</p><p> void menu()</p><p><b> {&l
40、t;/b></p><p><b> ……</b></p><p><b> ……</b></p><p><b> ……</b></p><p><b> }</b></p><p><b> ?。?)增加
41、員工信息</b></p><p> void add()//增加職工 </p><p><b> {</b></p><p> int numberTemp=0;</p><p><b> int i=0;</b></p><p> struct emp
42、loyee temp; //臨時(shí)保存信息</p><p><b> ……</b></p><p><b> ……</b></p><p><b> }</b></p><p> printf("添加成功\n");</p><p&g
43、t;<b> }</b></p><p> ?。?)按員工學(xué)號(hào)查找</p><p> void num_query()//按工號(hào)查找 </p><p><b> { </b></p><p> char num[20];</p><p><b> i
44、nt i=0;</b></p><p> printf("請(qǐng)輸入要查找職工工號(hào):");</p><p> scanf("%s",&num);</p><p> system("cls");</p><p> printf("\t工號(hào)\t姓名\t性
45、別\t出生年月\t電話\t學(xué)歷\t住址\n");</p><p> for (i=0;i<Number;i++)</p><p><b> {</b></p><p> if (strcmp(num,em[i].num)==0)</p><p><b> {</b></
46、p><p> printf("\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n\n",em[i].num,em[i].name,em[i].sex,em[i].born,em[i].tel,em[i].xl,em[i].zz); </p><p><b> }</b></p><p><b> }&l
47、t;/b></p><p><b> }</b></p><p> void save()</p><p><b> {</b></p><p> printf("\t=====程序在運(yùn)行時(shí)已自動(dòng)保存.....\n");</p><p>&l
48、t;b> }</b></p><p><b> void fh()</b></p><p><b> {</b></p><p> printf("\t===>按Enter鍵返回主菜單\n");</p><p><b> }</b
49、></p><p><b> (4)顯示所有記錄</b></p><p> void disp ()//顯示所有紀(jì)錄 </p><p> { //顯示內(nèi)存中的所有記錄</p><p><b> ……;</b></p><p><b> ……;<
50、/b></p><p><b> } </b></p><p><b> 刪除指定記錄</b></p><p> void num_del() //刪除紀(jì)錄</p><p> { //輸入要?jiǎng)h除的姓名</p><p><b> ……;</b&
51、gt;</p><p><b> ……;</b></p><p> //查找符合條件的記錄,對(duì)于每條記錄詢問是否刪除;</p><p> //滿足條件的輸出結(jié)束,詢問是否刪除其他記錄,循環(huán)</p><p><b> ……;</b></p><p><b>
52、 ……;</b></p><p><b> }</b></p><p> 保存到磁盤文件(實(shí)時(shí)寫入文件)</p><p> void save()// </p><p> { //寫入文件操作</p><p><b> ……;</b></p>
53、;<p><b> ……;</b></p><p><b> }</b></p><p> 2.程序清單:(見附錄)</p><p><b> 5、參考文獻(xiàn):</b></p><p> [1] 嚴(yán)蔚敏,吳偉民 編著. 數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)——北京: 清華
54、大學(xué)出版社,2007.</p><p> [2] 王秀貴 曹江蓮 編著 (C語(yǔ)言程序設(shè)計(jì)教程)—— 中國(guó)鐵道出版社出版 2007年印刷 </p><p><b> 部分運(yùn)行結(jié)果界面:</b></p><p> 1.調(diào)試分析:經(jīng)過(guò)反復(fù)測(cè)試,最終提供了一個(gè)較為友好的界面和操作模式,而且容錯(cuò)能力較好,穩(wěn)定性很強(qiáng)。下面做一些簡(jiǎn)單的說(shuō)明:<
55、;/p><p> ?。?)2級(jí)菜單只是作為一種嘗試,并非必須!</p><p> 在界面排版上,我學(xué)習(xí)了互聯(lián)網(wǎng)上部分程序的界面編排,其中以格式控制方式顯示提 高了界面顯示的穩(wěn)定性,較為理想。</p><p> 在文件讀取和保存方面,該程序做到了實(shí)時(shí)保存保存和讀取,操作非常簡(jiǎn)便。</p><p> 在查找方面,我將其設(shè)計(jì)為一次多記錄的顯示方
56、式,也更合乎操作習(xí)慣,界面較為友 好,對(duì)于無(wú)符合條件的結(jié)果,只是結(jié)果集為空,界面保持不變。</p><p> 刪除功能我做了較多的工作,整體界面和設(shè)計(jì)都較為合理。對(duì)于輸入的員工工號(hào),查 找出結(jié)果后提示是否刪除。</p><p><b> 調(diào)試中遇到的問題:</b></p><p> 在對(duì)于工號(hào)修改的時(shí)候,由于某些原因造成老是修改不
57、成功,最后經(jīng)過(guò)多次的和 同學(xué)的一起研究和討論,最后找出結(jié)果,由于少了一個(gè)對(duì)于文件標(biāo)記的修改,造成的,最后加入了一個(gè)標(biāo)記的修改,最后終于成功了。</p><p> 在員工信息的排列中,還是存在著一些問題,比如它并不按照我所寫的那個(gè)排序的程序進(jìn)行排序,連它是按照那個(gè)排序進(jìn)行的排序我都不清楚,希望老師可以幫我看看。</p><p><b> 7、總結(jié):</b><
58、/p><p> 通過(guò)做這個(gè)課程設(shè)計(jì)讓我了解并掌握了數(shù)據(jù)結(jié)構(gòu)與算法的設(shè)計(jì)方法,初步掌握了獨(dú)立分析和設(shè)計(jì)能力;以及軟件開發(fā)過(guò)程的問題分析、系統(tǒng)設(shè)計(jì)、程序編碼、測(cè)試等基本方法和技能;使我提高了編寫技術(shù)文獻(xiàn)的能力(尤其是目錄的提取,結(jié)構(gòu)圖的繪制等)。</p><p><b> 8</b></p><p><b> 、附錄:(程序)</
59、b></p><p> //C語(yǔ)言課程設(shè)計(jì) 職工信息管理系統(tǒng)-結(jié)構(gòu)體數(shù)組實(shí)現(xiàn)</p><p> #include <stdio.h></p><p> #include <stdlib.h></p><p> #include <string.h></p><p>
60、struct employee</p><p><b> {</b></p><p> char num[10];</p><p> char name[15];</p><p> char sex[5];</p><p> char born[20];</p><p
61、> char xl[20];</p><p> char zz[10];</p><p> char tel[20];</p><p><b> };</b></p><p> int read_file(struct employee em[]);</p><p> void
62、menu();</p><p> void write_file(struct employee em[]);</p><p> void add(); </p><p> void select(); //查看職工所有信息</p><p> void num_query(); //按工號(hào)查詢</p>
63、<p> void num_del(); //按工號(hào)刪除</p><p> void sort(); //排序</p><p> void num_modify(); //按工號(hào)修改職工信息</p><p> void save(); //保存信息</p><p> vo
64、id disp(); //顯示職工信息</p><p> void fh(); //返回主菜單</p><p> struct employee em[300]; //這個(gè)數(shù)組用來(lái)保存所有的職工信息 和文件里面的一致</p><p> int Number=0; //記錄總的職工人數(shù) 也就是數(shù)組/文件里面的職工人數(shù)</p&g
65、t;<p> void menu()</p><p><b> {</b></p><p> printf("\t***********************************************************************\n");</p><p> printf(&q
66、uot;\t* *\n");</p><p> printf("\t* 職工信息管理系統(tǒng)_結(jié)構(gòu)體數(shù)組實(shí)現(xiàn) *\n");</p><p> printf
67、("\t* *\n");</p><p> printf("\t* [1] 增加職工信息 [2] 查看職工信息 *\n");</p><p>
68、printf("\t* [3] 查找職工信息 [4] 刪除職工信息 *\n");</p><p> printf("\t* [5] 職工工資排列 [6] 修改職工信息 *\n");</p><p> printf
69、("\t* [7] 保存職工信息 [8] 顯示職工信息 *\n");</p><p> printf("\t* [0] 退出系統(tǒng) *\n");</p><p> prin
70、tf("\t* *\n");</p><p> printf("\t***********************************************************************\n");</p>
71、;<p><b> }</b></p><p> void main()</p><p><b> {</b></p><p> int choose=0;</p><p> FILE *fp=NULL;</p><p> char yesorno;
72、</p><p> if((fp=fopen("employee1.txt","rb+"))==NULL)</p><p><b> {</b></p><p> printf("\n=========>提示:文件不存在,是否要?jiǎng)?chuàng)建一個(gè)?(y/n)\n");</p&g
73、t;<p> scanf("%c",&yesorno);</p><p> if(yesorno=='y'||yesorno=='Y')</p><p><b> { </b></p><p> //這里僅為了建立文件</p><p>
74、fp=fopen("employee1.txt","wb+");</p><p> fclose(fp); //關(guān)閉fp所指的文件,釋放文件緩沖區(qū)</p><p><b> }</b></p><p><b> else</b></p><p><
75、b> exit(0);</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> Number=read_file(em); //要是文件已經(jīng)有數(shù)據(jù) 將數(shù)據(jù)初始化
76、到數(shù)組中</p><p><b> }</b></p><p> system("cls"); </p><p><b> while(1) </b></p><p><b> { </b></p><p><b>
77、; menu();</b></p><p> printf("\t\t====>請(qǐng)選擇:");</p><p> scanf("%d",&choose);</p><p> system("cls");</p><p> switch(choose
78、)</p><p><b> {</b></p><p><b> case 0: </b></p><p> exit(0); //退出 </p><p><b> break; </b></p><p&g
79、t;<b> case 1: </b></p><p><b> add();</b></p><p> fh();//增加職工信息</p><p><b> break;</b></p><p><b> case 2:</b><
80、/p><p><b> select();</b></p><p> fh();//查看職工信息</p><p> break; </p><p><b> case 3: </b></p><p> num_query();</p>&
81、lt;p> fh();// 查找 </p><p><b> break;</b></p><p><b> case 4:</b></p><p> num_del(); </p><p> fh();//刪除 </p><p><
82、;b> break;</b></p><p><b> case 5: </b></p><p><b> sort();</b></p><p> fh();//排序 </p><p><b> break;</b></p><
83、;p><b> case 6: </b></p><p> num_modify();</p><p> fh();//修改后返回</p><p><b> break;</b></p><p><b> case 7:</b></p>&l
84、t;p><b> save();</b></p><p> fh();//保存 </p><p><b> break;</b></p><p><b> case 8:</b></p><p><b> disp();</b></
85、p><p><b> fh();</b></p><p> break;//顯示</p><p><b> default:</b></p><p><b> break;</b></p><p><b> }</b><
86、/p><p> fflush(stdin);</p><p> getchar();</p><p> system("cls");</p><p><b> }</b></p><p><b> }</b></p><p>
87、 void num_query()//按工號(hào)查找 </p><p><b> { </b></p><p> char num[20];</p><p><b> int i=0;</b></p><p> printf("請(qǐng)輸入要查找職工工號(hào):");</p
88、><p> scanf("%s",&num);</p><p> system("cls");</p><p> printf("\t工號(hào)\t姓名\t性別\t出生年月\t電話\t學(xué)歷\t住址\n");</p><p> for (i=0;i<Number;i++)&
89、lt;/p><p><b> {</b></p><p> if (strcmp(num,em[i].num)==0)</p><p><b> {</b></p><p> printf("\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n\n",em[i].nu
90、m,em[i].name,em[i].sex,em[i].born,em[i].tel,em[i].xl,em[i].zz); </p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> void
91、 save()</p><p><b> {</b></p><p> printf("\t=====程序在運(yùn)行時(shí)已自動(dòng)保存.....\n");</p><p><b> }</b></p><p><b> void fh()</b></p&
92、gt;<p><b> {</b></p><p> printf("\t===>按Enter鍵返回主菜單\n");</p><p><b> }</b></p><p> void num_modify() //修改職工信息</p><p><
93、b> {</b></p><p> FILE *fp=NULL;</p><p> char gh[60];</p><p><b> int i=0;</b></p><p> int changeIndex=0; //changeIndex 改變標(biāo)記</p><p>
94、; int index=0;</p><p> printf("請(qǐng)輸入要修改的職工工號(hào):");</p><p> scanf("%s",gh);</p><p> for (i=0;i<Number;i++)</p><p><b> {</b></p>
95、<p> if (strcmp(gh,em[i].num)==0) //比較輸入工號(hào)和數(shù)組中已有工號(hào)</p><p><b> {</b></p><p> changeIndex=i; //保存要修改的人的下標(biāo)</p><p><b> break;</b></p><p&g
96、t;<b> }</b></p><p><b> }</b></p><p> printf("\t工號(hào)\t姓名\t性別\t出生年月\t電話\t學(xué)歷\t住址\n");</p><p> printf("\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n\n"
97、;,em[changeIndex].num,em[changeIndex].name,em[changeIndex].sex,em[changeIndex].born,em[changeIndex].tel,em[changeIndex].xl,em[changeIndex].zz);</p><p> printf("請(qǐng)重新輸入該職工信息");</p><p>
98、printf("工號(hào):");</p><p> scanf("%s",em[changeIndex].num);</p><p> printf("姓名:");</p><p> scanf("%s",em[changeIndex].name);</p><p&
99、gt; printf("性別:");</p><p> scanf("%s",em[changeIndex].sex);</p><p> printf("出生年月:");</p><p> scanf("%s",&em[changeIndex].born);</p
100、><p> printf("電話:");</p><p> scanf("%s",&em[changeIndex].tel);</p><p> printf("學(xué)歷:");</p><p> scanf("%s",&em[changeInd
101、ex].xl);</p><p> printf("住址:");</p><p> scanf("%s",&em[changeIndex].zz);</p><p> //信息修改后重新更新文件里面的數(shù)據(jù) 以保持?jǐn)?shù)據(jù)一致性</p><p> fp=fopen("employee
102、1.txt","wb+");</p><p> for (i=0;i<Number;i++)</p><p><b> {</b></p><p> fwrite(&em[i],sizeof(struct employee),1,fp); //把ptr所指向n*size個(gè)字節(jié)輸入到fp所指向的
103、文件中</p><p><b> }</b></p><p> fclose(fp);</p><p> printf("\t=======>修改成功\n");</p><p><b> }</b></p><p> void disp()
104、 //輸出所有職工信息 </p><p><b> {</b></p><p><b> int i=0;</b></p><p> for (i=0;i<Number;i++)</p><p><b> {</b></p><p> p
105、rintf("\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n\n",em[i].num,em[i].name,em[i].sex,em[i].born,em[i].tel,em[i].xl,em[i].zz); </p><p><b> }</b></p><p><b> }</b></p>
106、<p> void sort()//排序 </p><p><b> {</b></p><p> struct employee t;</p><p> int wantNUmber=0;</p><p><b> int i=0;</b></p><p&
107、gt;<b> int j=0;</b></p><p><b> int k=0;</b></p><p> for(i=0;i<Number-1;i++)</p><p><b> {k=i;</b></p><p> for(j=i+1;j<Numb
108、er;j++)</p><p><b> {</b></p><p> if(em[j].num>em[k].num)</p><p><b> k=j;</b></p><p><b> }</b></p><p><b>
109、if(k!=i)</b></p><p><b> {</b></p><p><b> t=em[i];</b></p><p> em[i]=em[k];</p><p><b> em[k]=t;</b></p><p><
110、;b> }</b></p><p><b> }</b></p><p> printf("你想輸出前幾名職工的信息:");</p><p> scanf("%d",&wantNUmber);</p><p> if (wantNUmber>
111、;Number)</p><p><b> {</b></p><p> wantNUmber=Number;</p><p><b> }</b></p><p> printf("\t工號(hào)\t姓名\t性別\t出生年月\t電話\t學(xué)歷\t住址\n");</p>
112、;<p> for(i=0;i<wantNUmber;i++)</p><p><b> {</b></p><p> printf("\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n\n",em[i].num,em[i].name,em[i].sex,em[i].born,em[i].tel,em[i].xl
113、,em[i].zz); </p><p><b> } </b></p><p><b> }</b></p><p> void num_del()</p><p><b> {</b></p><p><b> FILE *fp
114、;</b></p><p> char gh[60];</p><p><b> char ch;</b></p><p> int i=0,j=0;</p><p> int changeIndex=0; //changeIndex 改變標(biāo)記</p><p> int in
115、dex=0;</p><p> printf("請(qǐng)輸入要?jiǎng)h除的人員工號(hào):");</p><p> scanf("%s",gh);</p><p> for(i=0;i<Number;i++)</p><p><b> {</b></p><p>
116、; if(strcmp(gh,em[i].num)==0)</p><p><b> {</b></p><p> printf("找到要?jiǎng)h除的人員信息如下\n");</p><p> printf("-----------------------------------------------------
117、----\n");</p><p> printf("\t工號(hào)\t姓名\t性別\t出生年月\t電話\t學(xué)歷\t住址\n");</p><p> printf("\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n\n",em[i].num,em[i].name,em[i].sex,em[i].born,em[i].tel,em[
118、i].xl,em[i].zz); </p><p> printf("---------------------------------------------------------\n");</p><p> printf("你確定要?jiǎng)h除該人員信息嗎?(y/Y):");</p><p> scanf("%
119、s",&ch);</p><p> if(ch=='Y'||ch=='y')</p><p><b> {</b></p><p> for(j=i;j<Number-1;j++)</p><p> em[j]=em[j+1];</p><
120、;p><b> Number--;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> break;</b></p><p><b> }</b><
121、/p><p><b> }</b></p><p> if(strcmp(gh,em[i].num)!=0)</p><p> printf("\t\t\t警告:沒有你要?jiǎng)h除的相關(guān)數(shù)據(jù)!");</p><p> fp=fopen("employee.txt","wb&
122、quot;);</p><p> for(i=0;i<Number;i++)</p><p><b> {</b></p><p> fwrite(&em[i],sizeof(struct employee),1,fp);</p><p><b> }</b></p>
123、;<p> fclose(fp);</p><p> if(ch=='Y'||ch=='y')</p><p> printf("----->刪除成功!");</p><p><b> }</b></p><p> void select(
124、)//查看職工 </p><p><b> {</b></p><p><b> int i=0;</b></p><p> printf("以下是全部職工信息\n");</p><p> printf("\t工號(hào)\t姓名\t性別\t出生年月\t電話\t學(xué)歷\t
125、住址\n");</p><p> for(i=0;i<Number;i++)</p><p><b> {</b></p><p> printf("\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n\n",em[i].num,em[i].name,em[i].sex,em[i].born,e
126、m[i].tel,em[i].xl,em[i].zz); </p><p><b> }</b></p><p><b> }</b></p><p> void add()//增加職工 </p><p><b> {</b></p><p>
127、 int numberTemp=0;</p><p><b> int i=0;</b></p><p> struct employee temp; //臨時(shí)保存信息</p><p> printf("請(qǐng)輸入要增加職工信息的個(gè)數(shù):");</p><p> scanf("%d&quo
128、t;,&numberTemp);</p><p> for(i=0;i<numberTemp;i++)</p><p><b> {</b></p><p> printf("輸入第%d個(gè)職工信息\n",i+1);</p><p> printf("工號(hào):")
129、;</p><p> scanf("%s",temp.num);</p><p> printf("姓名:");</p><p> scanf("%s",temp.name);</p><p> printf("性別:");</p><
130、p> scanf("%s",temp.sex);</p><p> printf("出生年月:");</p><p> scanf("%s",&temp.born);</p><p> printf("電話:");</p><p> sca
131、nf("%s",&temp.tel);</p><p> printf("學(xué)歷:");</p><p> scanf("%s",&temp.xl);</p><p> printf("住址:");</p><p> scanf("
132、%s",&temp.zz);</p><p> em[Number++]=temp; //將剛添加的寫入到數(shù)組</p><p> write_file(&temp); //將剛添加的寫入到文件</p><p><b> }</b></p><p> printf("添加成功\n
133、");</p><p><b> }</b></p><p> void write_file(struct employee *em)</p><p><b> {</b></p><p> FILE *fp=NULL;</p><p> fp=fope
134、n("employee1.txt","rb+");</p><p> fwrite(em,sizeof(struct employee),1,fp);</p><p> fclose(fp);</p><p><b> }</b></p><p> int read_fil
135、e(struct employee em[])</p><p><b> {</b></p><p> FILE *fp=NULL;</p><p><b> int i=0;</b></p><p> fp=fopen("employee1.txt","rb&
136、quot;);</p><p> while(fread(&em[i],sizeof(struct employee),1,fp))</p><p><b> i++;</b></p><p> fclose(fp);</p><p><b> return i;</b></p
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---員工管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--簡(jiǎn)單的員工管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--員工信息管理系統(tǒng)
- 算法與數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)——員工管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)-課程設(shè)計(jì)--學(xué)生管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--航班管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)—機(jī)場(chǎng)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)----huffman編碼
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--圖書管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告--車庫(kù)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--學(xué)生籍貫管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--圖書借閱管理系統(tǒng)
- 《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計(jì)---圖書管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--圖書管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--企業(yè)員工信息管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--個(gè)人賬簿管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---圖書管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)----倉(cāng)庫(kù)管理系統(tǒng)統(tǒng)
評(píng)論
0/150
提交評(píng)論