版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、:課程設(shè)計(jì)題目職工信息管理系職工信息包括職工號(hào)、姓名、性別、年齡、學(xué)歷、工資等(職工號(hào)不重復(fù))。系統(tǒng)功能包括:1、系統(tǒng)以菜單方式工作,密碼登陸。2、職工信息的錄入(增加數(shù)據(jù))。用數(shù)組數(shù)據(jù)類型賦初值的方法把職工信息送到 各個(gè)數(shù)組中(但注意要是合法數(shù)據(jù)),然后把它們輸出顯示。3、職工信息的刪除(刪除數(shù)據(jù))。任意輸入一位職工的工號(hào),將它所有的信息從 組數(shù)中刪除。4、職工信息的瀏覽(查找數(shù)據(jù))。任意輸入一位職工的工號(hào),打印出他的所有數(shù) 據(jù)。要求能多次查找。5、職工信息的修改(修改數(shù)據(jù))。任意輸入一位職工的工號(hào),打印出所有相關(guān)信 息后,可對(duì)某一項(xiàng)信息進(jìn)行修改并保存。6、職工信息的計(jì)算并排序。計(jì)算所有職工
2、的總工資及平均工資(aver,單精度, 輸出一位小數(shù)),將包括所有數(shù)據(jù)的數(shù)組元素按工資從高到低的順序排序打印出 來。二:設(shè)計(jì)中所涉及的知識(shí)點(diǎn)結(jié)構(gòu)體數(shù)組的定義與引用;函數(shù)的定義與調(diào)用;局部變量和全局變量大的定 義;多函數(shù)的鏈接與編譯;for循環(huán)語(yǔ)句的使用;if語(yǔ)句的使用;break語(yǔ)句的使用; 格式輸入與輸出;比較法排序;字符串處理函數(shù);函數(shù)的定義;數(shù)組作為函數(shù)參數(shù).如下:#include #include #include #include #define N 100struct employee( int num;char name10;char sex;int age;char xueli
3、30;int wage;char addr30;long int tel;em100;/*定義一個(gè)結(jié)構(gòu)體*/struct employee t;void menu();void code();void input();void save(int);void display();void del();void add();void search();void search_num();void search_xueli();void search_tel();void paixu();void paixu_num();void paixu_wage();void paixu_tel();void
4、 paixu_1();void modify(); /* 定義各函數(shù) */void code() ( int a; printf(請(qǐng)輸入您的密碼:n); l:scanf(d,&a); if(a! = 123456) ( printf(n密碼錯(cuò)誤!請(qǐng)重新輸入:n); goto l;) void menu() ( int n,flag; char a;printf(nnn : :nnnnnn); printf(淤電氣與信息工程學(xué)部淤n);printf(n); printf(通信工程200802班n); printf(n); printf(ttt歡迎進(jìn)入職工信息管理系統(tǒng) nnn); printf(t
5、t1.輸入職工信息n); printf(tt2.瀏覽職工信息n); printf(tt3.查詢職工信息n); printf(tt4.刪除職工信息n); printf(tt5.添加職工信息n); printf(tt6.修改職工信息n); printf(tt7.對(duì)職工工資求和和平均值以及排序n); printf(tt8.退出n); printf(tt請(qǐng)?jiān)谙旅婀鈽?biāo)處輸入數(shù)字選擇你要進(jìn)行的操作nnnnnn); printf(李雪云肖俊吳靚胡湘興周鵬n);printf(: :n); do printf(請(qǐng)選擇你需要操作的步驟(1 -8):n);scanf(%d,&n);if(n=1&n=8)(flag=
6、1;break; else (flag=0;printf(您輸入有誤,請(qǐng)重新選擇!) while(flag=0);while(flag=1)(switch(n)(case 1:printf(n);printf(n);input();break;case 2:printf(n);printf(n);display();break;case 3:printf(n);printf(n);search();break;case 4:printf(n);printf(n);del();break;case 5:printf(n);printf(n);add();break;case 6:printf(n
7、);printf(n);modify();break;case 7:printf(排序 n);printf(n);paixu()case 8:exit(0);break;default :break; 輸入職工信息瀏覽職工信息查詢職工信息刪除職工信息添加職工信息修改職工信息對(duì)職工工資求和和平均值以及;break;getchar();printf(是否繼續(xù)進(jìn)行(y or n):n);scanf(c,&a);if(a=,y,)( flag=1;system(cls); /* 清屏 */menu(); /*調(diào)用菜單函數(shù)*/printf(請(qǐng)?jiān)俅芜x擇你需要操作的步驟(1-7):n); scanf(%d,
8、&n);printf(n); elseexit(0); void main()(/*調(diào)用菜單函數(shù)*/code();menu();void input()/*錄入函數(shù) */( int i,m;printf(請(qǐng)輸入需要?jiǎng)?chuàng)建信息的職工人數(shù)(1-100):n); scanf(%d,&m);for (i=0;im;i+)printf(職工號(hào):);srand(int)time(0);emi.num=rand()%10000;if(emi.num!=emi-1.num)printf(%8d ,emi.num);printf(n);printf(請(qǐng)輸入姓名:);scanf(%s,);getch
9、ar();printf(請(qǐng)輸入性別(f-女m-男):);scanf(c,&emi.sex);printf(請(qǐng)輸入年齡:);scanf(%d,&emi.age);printf(請(qǐng)輸入學(xué)歷:);scanf(%s,emi.xueli);printf(請(qǐng)輸入工資:);scanf(%d,&emi.wage);printf(請(qǐng)輸入住址:);scanf(%s,emi.addr);printf(請(qǐng)輸入電話:);scanf(%d,&emi.tel);printf(n); printf(n 創(chuàng)建完畢!n);save(m);void save(int m) /*保存文件函數(shù)*/(int i;FILE*fp;if (
10、fp=fopen(employee_list,wb)=NULL) /* 創(chuàng)建文件并判斷是否能 打開*/ ( printf (cannot open filen);exit(0); for (i=0;im;i+) /*將內(nèi)存中職工的信息輸出到磁盤文件中去*/if (fwrite(&emi,sizeof(struct employee),1,fp)! 二 1)printf(file write errorn);fclose(fp); int load() /*導(dǎo)入函數(shù) */ (FILE*fp;int i=0;if(fp二fopen(employee_list,rb)=NULL)( printf (
11、cannot open filen);exit(0); else( do( fread(&emi,sizeof(struct employee),1,fp);i+; while(feof(fp)=0); fclose(fp);return(i-1);void display() /* 瀏覽函數(shù)*/(int i;int m=load();printf(n職工號(hào)t姓名t性別t年齡t學(xué)歷t工資t住址t電話n);for(i=0;im;i+) /*m為輸入部分的職工人數(shù)*/printf(n %dtt%st%ct%dt%st%dt%st%ldn”,emi.num, ,emi.sex,emi
12、.age,emi.xueli,emi.wage,emi.addr,emi.tel); void del() /* 刪除函數(shù)*/(int m=load();int i,j,n,t,flag;char name20;printf(n原來的職工信息:n);display(); /*調(diào)用瀏覽函數(shù)*/printf(n);printf(請(qǐng)輸入要?jiǎng)h除的職工的姓名:n);scanf(%s”,name);for(flag=1,i=0;flag&im;i+)( if(strcmp(,name)=0)( printf(n已找到此人,原始記錄為:n);printf(n職工號(hào)t姓名t性別t年齡t學(xué)歷t工
13、資t住址七電 話 n);printf(n%dt%st%ct%dt%st%dt%st%ldn,emi.num,,em i.sex,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel);printf(n確實(shí)要?jiǎng)h除此人信息請(qǐng)按1,不刪除請(qǐng)按0n);scanf(%d,&n);if(n=1)/*如果刪除,則其他的信息都往上移一行*/( for(j=i;jm-1;j+)( strcpy(,emj+1.name);emj.num=emj+1.num;emj.sex=emj+1.sex;emj.age=emj+1.age;strcpy(emj
14、.xueli,emj+1.xueli);emj.wage=emj+1.wage;strcpy(emj.addr,emj+1.addr);emj.tel=emj+1.tel; flag=0; if(!flag) m=m-1;elseprintf(n對(duì)不起,查無此人!n);printf(n瀏覽刪除后的所有職工信息:n);save(m);/*調(diào)用保存函數(shù)*/display。; /*調(diào)用瀏覽函數(shù)*/printf(n繼續(xù)刪除請(qǐng)按1,不再刪除請(qǐng)按0n);scanf(%d,&t);switch(t)( case 1:del();break;case 0:break;default :break; )void
15、 add()/* 添加函數(shù)*/( FILE*fp;int n;int count=0;int i;int m=load();printf(n原來的職工信息:n);display(); /*調(diào)用瀏覽函數(shù)*/printf(n);fp二fopen(emploee_list,a);printf(請(qǐng)輸入想增加的職工數(shù):n);scanf(%d,&n);for (i=m;i=1&t=4)(flag=1;break; else( flag=0;printf(您輸入有誤,請(qǐng)重新選擇!); while(flag=0);while(flag=1)(switch(t)( case 1:printf( 按職工號(hào)查詢n)
16、;search_num();break;case 2:printf( 按學(xué)歷查詢 n);search_xueli();break;case 3:printf(按電話號(hào)碼查詢 n);search_tel();break;case 4:menu();break;default:break; void search_num()( int num;int i,t;int m=load();printf(請(qǐng)輸入要查找的職工號(hào)(19999):n);scanf(d,&num);for(i=0;im;i+)if(num=emi.num)(printf(n已找到此人,其記錄為:n);printf(偵職工號(hào)t姓名
17、t性別t年齡t學(xué)歷t工資t住址t電話 n);printf(n%dt%st%ct%dt%st%dt%st%ldn,emi.num,,em i.sex,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel);break; else if(i=m)printf(n對(duì)不起,查無此人n);printf(n);printf(返回查詢函數(shù)請(qǐng)按1,繼續(xù)查詢職工號(hào)請(qǐng)按2n);scanf(d,&t);switch(t)( case 1:search();break;case 2: break;default:break; )void search_xueli()(
18、 char xueli30;int i,t;int m=load();printf(請(qǐng)輸入要查找的學(xué)歷:n);scanf(%s,xueli);for(i=0;im;i+)if(strcmp(emi.xueli,xueli)=0)( printf(n已找到,其記錄為:n);printf(-n職工號(hào)t姓名功性別t年齡t學(xué)歷t工資t住址t電話 n);printf(n%dt%st%ct%dt%st%dt%st%ldn,emi.num,,emi.sex,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel); else if(i=m)printf(n對(duì)不
19、起,查無此人n);printf(n);printf(返回查詢函數(shù)請(qǐng)按1,繼續(xù)查詢學(xué)歷請(qǐng)按2n);scanf(%d,&t);switch(t)( case 1:search();break;case 2:break;default :break; void search_tel()( long int tel;int i, t;int m=load();printf(請(qǐng)輸入要查找的電話號(hào)碼:n);scanf(ld,&tel);for(i=0;im;i+)if(tel=emi.tel)(printf(n已找到此人,其記錄為:n);printf(偵職工號(hào)t姓名t性別t年齡t學(xué)歷t工資t住址t電話 n
20、);printf(n%dt%st%ct%dt%st%dt%st%ldn,emi.num,,em i.sex,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel);break; else if(i=m)printf(n對(duì)不起,查無此人n);printf(n);printf(返回查詢函數(shù)請(qǐng)按1,繼續(xù)查詢電話號(hào)碼請(qǐng)按2n);scanf(%d,&t);switch(t)( case 1:search();break;case 2:break;default :break; void modify() /* 修改函數(shù)*/( int num;char n
21、ame10;char sex;int age;char xueli30;int wage=0;char addr30;long int tel;int b,c,i,n,t,flag;int m=load(); /*導(dǎo)入文件內(nèi)的信息*/printf(n原來的職工信息:n);display(); /*調(diào)用瀏覽函數(shù)*/printf(n);printf(請(qǐng)輸入要修改的職工的姓名:n);scanf(%s,name);for(flag=1,i=0;flag&i8|c=1&t=5)( flag=1;break; else( flag=0;printf(您輸入有誤,請(qǐng)重新選擇!); while(flag=0)
22、;while(flag=1)( switch(t)( case 1:printf( 按職工號(hào)排序n);paixu_num();break;case 2:printf(按工資排序、n);paixu_wage();break;case 3:printf(按電話號(hào)碼排序n);paixu_tel();break;case 4:printf(求總工資和平均工資 n);paixu_1();break;case 5:menu();break;default:break; void paixu_num()( int n,i,b;int m=load();printf(n原來的職工信息:n);display()
23、; /*調(diào)用瀏覽函數(shù)*/printf(n);for(n=0;nm;n+)for(i=0;i(m-n);i+)if(emi.numemi+1.num)( t=emi;emi=emi+1;emi+1=t; /* 按工資進(jìn)行排序*/ printf(nnn按職工號(hào)排序后的職工信息nn);printf(n職工號(hào)t姓名t性別t年齡t學(xué)歷t工資t住址t電話n);for(n=0;nm;n+)printf(n%dtt%st%ct%dt%st%dt%st%ldn,emn.num,,emn.sex,emn.age,emn.xueli,emn.wage,emn.addr,emn.tel);printf
24、(n);printf(按 1 鍵返回:n);scanf(d,&b);switch(b)( case 1:paixu();break;default :break; void paixu_wage()( int n,i,b;int m=load();printf(n原來的職工信息:n);display(); /*調(diào)用瀏覽函數(shù)*/printf(n);for(n=0;nm;n+)for(i=0;i(m-n);i+)if(emi.wageemi+1.wage)( t=emi;emi=emi+1;emi+1=t; /* 按工資進(jìn)行排序*/ printf(nnn按工資排序后的職工信息nn);printf(n職工號(hào)t姓名t性別t年齡t學(xué)歷t工資t住址t電話n);for(n=0;nm;n+) printf(n%dtt%st%ct%dt%st%dt%st%ldn,emn.num,,e mn.sex,emn.age,emn.xueli,emn.wage,emn.addr,emn.tel);printf(按 1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度水域承包經(jīng)營(yíng)權(quán)抵押擔(dān)保借款合同3篇
- 二零二五年度湖南公共事業(yè)勞動(dòng)合同管理規(guī)范3篇
- 《MBA會(huì)計(jì)學(xué)導(dǎo)論》課件
- 2024版家庭養(yǎng)老照護(hù)床位服務(wù)協(xié)議
- 重慶旅游職業(yè)學(xué)院《概率統(tǒng)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 牡丹江師范學(xué)院《學(xué)前兒童數(shù)學(xué)教育》2023-2024學(xué)年第一學(xué)期期末試卷
- 新疆建設(shè)職業(yè)技術(shù)學(xué)院《高等數(shù)學(xué)上》2023-2024學(xué)年第一學(xué)期期末試卷
- 會(huì)計(jì)繼續(xù)教育習(xí)題及答案之小企業(yè)會(huì)計(jì)準(zhǔn)則
- 環(huán)境與資源保護(hù)法學(xué)習(xí)題及答案四
- 二零二五年度物業(yè)管理項(xiàng)目績(jī)效評(píng)估與激勵(lì)合同2篇
- 2025年度愛讀書學(xué)長(zhǎng)定制化閱讀計(jì)劃合同2篇
- GB/T 44823-2024綠色礦山評(píng)價(jià)通則
- 第六章傳質(zhì)基本概念
- 空調(diào)工程竣工驗(yàn)收單(共1頁(yè))
- API-685-中文_
- STM32固件庫(kù)使用手冊(cè)(中文版)
- LORCH焊機(jī)簡(jiǎn)要操作說明書-v2.1
- 造林監(jiān)理規(guī)劃
- 服裝品質(zhì)管理人員工作手冊(cè)
- 《名詞冠詞代詞》PPT課件
- 鍋爐安裝表格(全套)
評(píng)論
0/150
提交評(píng)論