



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、./C 語言課程設(shè)計(jì)職工信息管理系統(tǒng) 結(jié)構(gòu)體數(shù)組實(shí)現(xiàn)#include <stdio.h>#include <stdlib.h>#include <string.h>struct employeechar num10;char name15;char sex5;char bm20;char zc20;int gz;int read_file(struct employee em);void menu();void write_file(struct employee em);void add();void select();/ 查看職工所有信息void zc_
2、query();/ 按職稱查詢void num_del();/ 按工號(hào)刪除.專業(yè)專注.void tongji();/ 統(tǒng)計(jì)void sort();/ 排序void num_modify();/ 按工號(hào)修改職工信息void save();/ 保存信息void disp();/ 顯示職工信息void fh();/ 返回主菜單structemployeeem300;/ 這個(gè)數(shù)組用來保存所有的職工信息和文件里面的一致int Number=0; /記錄總的職工人數(shù)也就是數(shù)組 / 文件里面的職工人數(shù)void menu()printf("t*n");printf("t*n&qu
3、ot;);printf("t*職工信息管理系統(tǒng)_結(jié)構(gòu)體數(shù)組實(shí)現(xiàn)*n");printf("t*n");printf("t*1增加職工信息2查看職工信息*n");.專業(yè)專注.printf("t*3查找職工信息4刪除職工信息*n");printf("t*5統(tǒng)計(jì)6職工工資排列*n");printf("t*7修改職工信息8保存職工信息*n");printf("t*9顯示職工信息0退出系統(tǒng)*n");printf("t*n");printf(&quo
4、t;t*n");void main()int choose=0;FILE *fp=NULL;char yesorno;if(fp=fopen("employee1.txt","rb+")=NULL)printf("n=>提示:文件不存在,是否要?jiǎng)?chuàng)建一.專業(yè)專注.個(gè) ?(y/n)n");scanf("%c",&yesorno);if(yesorno='y'|yesorno='Y')/ 這里僅為了建立文件fp=fopen("employee1.txt&q
5、uot;,"wb+");fclose(fp); / 關(guān)閉 fp 所指的文件 ,釋放文件緩沖區(qū)elseexit(0);elseNumber=read_file(em); /要是文件已經(jīng)有數(shù)據(jù)將數(shù)據(jù)初始化到數(shù)組中system("cls");while(1)menu();printf("tt=>請(qǐng)選擇:");scanf("%d",&choose);.專業(yè)專注.system("cls");switch(choose)case0:exit(0); / 退出break;case1:add();
6、fh();/ 增加職工信息break;case2:select();fh();/ 查看職工信息break;case3:zc_query();fh();/查找break;case4:num_del();fh();/ 刪除break;.專業(yè)專注.case5:tongji();fh();/ 統(tǒng)計(jì)break;case6:sort();fh();/ 排序break;case7:num_modify();fh();/ 修改后返回break;case8:save();fh();/ 保存break;case 9:disp();fh();break;/ 顯示default:break;.專業(yè)專注.fflush(
7、stdin);getchar();system("cls");void save()printf("t=程序在運(yùn)行時(shí)已自動(dòng)保存.n");void fh()printf("t=>按 Enter 鍵返回主菜單 n");void num_modify() /修改職工信息FILE *fp=NULL;char gh60;int i=0;int changeIndex=0; /changeIndex改變標(biāo)記int index=0;.專業(yè)專注.printf(" 請(qǐng)輸入要修改的職工工號(hào):");scanf("%s&q
8、uot;,gh);for (i=0;i<Number;i+)if (strcmp(gh,emi.num)=0)/ 比較輸入工號(hào)和數(shù)組中已有工號(hào)changeIndex=i;/ 保存要修改的人的下標(biāo)break;printf("t工號(hào) t姓名 t性別 t部門 t職稱 t工資 n");printf("t%st%st%st%st%st%dnn",emchangeIndex.num,emchangeI,emchangeIndex.sex,emchangeIndex.bm,emchangeIndex.zc,emchangeIndex.gz);p
9、rintf(" 請(qǐng)重新輸入該職工信息 ");printf(" 工號(hào): ");scanf("%s",emchangeIndex.num);printf(" 姓名: ");scanf("%s",emchangeI);printf(" 性別: ");scanf("%s",emchangeIndex.sex);.專業(yè)專注.printf(" 部門: ");scanf("%d",emchangeIndex.bm
10、);printf(" 職稱: ");scanf("%s",emchangeIndex.zc);printf(" 工資: ");scanf("%d",&emchangeIndex.gz);/ 信息修改后重新更新文件里面的數(shù)據(jù)以保持?jǐn)?shù)據(jù)一致性fp=fopen("employee1.txt","wb+");for (i=0;i<Number;i+)fwrite(&emi,sizeof(struct employee),1,fp);/ 把 ptr 所指向 n*s
11、ize個(gè)字節(jié)輸入到 fp 所指向的文件中fclose(fp);printf("t=>修改成功 n");void disp() /輸出所有職工信息.專業(yè)專注.int i=0;for (i=0;i<Number;i+)printf("t%st%st%st%st%st%dnn",emi.num,,emi.sex,emi.bm,emi.zc,emi.gz);void sort()/排序struct employee t;int wantNUmber=0;int i=0;int j=0;int k=0;for(i=0;i<Numb
12、er-1;i+)k=i;for(j=i+1;j<Number;j+).專業(yè)專注.if(emj.gz>emk.gz)k=j;if(k!=i)t=emi;emi=emk;emk=t;printf(" 你想輸出前幾名職工的信息:");scanf("%d",&wantNUmber);if (wantNUmber>Number)wantNUmber=Number;.專業(yè)專注.printf("t工號(hào) t姓名 t性別 t部門 t職稱 t工資 n");for(i=0;i<wantNUmber;i+)printf(&qu
13、ot;t%st%st%st%st%st%dnn",emi.num,,emi.sex,emi.bm,emi.zc,emi.gz);void tongji()/統(tǒng)計(jì)int i,m,k,max,min;double sum=0.0;for(i=0;i<Number;i+)sum=sum+emi.gz;printf(" 全體職工的總工資為 :%fn",sum);.專業(yè)專注.printf(" 平均工資為 : %fn",sum/Number);i=0;m=0;max=0;max=emm.gz;for(i=1;i<Number;i
14、+)if (emi.gz>max)m=i;max=emm.gz;printf(" 最高工資為 : %dn",max);printf("t%st%st%st%st%st%dnn",emm.num,,emm.sex,emm.bm,emm.zc,emm.gz);i=0;k=0;min=0;min=em0.gz;for(i=1;i<Number;i+)if (emi.gz<min)k=i;min=emk.gz;printf(" 最低工資 :%dn",min);printf("t%st%st%st%s
15、t%st%dnn",emk.num,,em.專業(yè)專注.k.sex,emk.bm,emk.zc,emk.gz);void num_del()/按工號(hào)刪除FILE *fp=NULL;char gh60;int i=0;int j=0;printf(" 請(qǐng)輸入要?jiǎng)h除的職工工號(hào):");scanf("%d",gh);for(i=0;i<Number;i+)if (strcmp(gh,emi.num)=0) /如果查找到就刪除.專業(yè)專注.for (j=i;j<Number-1;j+)emj=emj+1;Number-;/ 將剩余
16、數(shù)據(jù)寫入文件重新一寫的方式打開文件把以前的數(shù)據(jù)擦除了fp=fopen("employee1.dat","wb");for (i=0;i<Number;i+)fwrite(&emi,sizeof(struct employee),1,fp);fclose(fp);printf(" 刪除成功 ;n");void zc_query()/按職稱查找.專業(yè)專注.char zc20;int i=0;printf(" 請(qǐng)輸入要查找職工職稱 :");scanf("%s",zc);system(&q
17、uot;cls");printf("t工號(hào) t姓名 t性別 t部門 t職稱 t工資 n");for (i=0;i<Number;i+)if (strcmp(zc,emi.zc)=0)printf("t%st%st%st%st%st%dnn",emi.num,,emi.sex,emi.bm,emi.zc,emi.gz);void select()/ 查看職工.專業(yè)專注.int i=0;printf(" 以下是全部職工信息 n");printf("t工號(hào) t姓名 t性別 t部門 t職稱 t工資 n
18、");for(i=0;i<Number;i+)printf("t%st%st%st%st%st%dnn",emi.num,,emi.sex,emi.bm,emi.zc,emi.gz);void add()/增加職工int numberTemp=0;int i=0;struct employee temp; /臨時(shí)保存信息printf(" 請(qǐng)輸入要增加職工信息的個(gè)數(shù):");scanf("%d",&numberTemp);for(i=0;i<numberTemp;i+).專業(yè)專注.printf
19、(" 輸入第 %d 個(gè)職工信息 n",i+1);printf(" 工號(hào):");scanf("%s",temp.num);printf(" 姓名:");scanf("%s",);printf(" 性別:");scanf("%s",temp.sex);printf(" 部門:");scanf("%s",temp.bm);printf(" 職稱:");scanf("%s",temp.zc);printf(" 工資:");scanf("%d",&temp.gz);emNumber+=temp; /將剛添加的寫入到數(shù)組write_file(&te
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 出差合同范本
- 醫(yī)院聘用合同范例
- 單位食堂做飯合同范本
- 臺(tái)州市勞動(dòng)合同范本
- 《看見》讀書心得
- 口腔招聘合同范例
- 前期物業(yè)選聘合同范例
- 軍訓(xùn)食堂合同范本
- 單位門口租房車合同范本
- 企業(yè)賬號(hào)保護(hù)合同范本
- 追覓科技在線測(cè)評(píng)邏輯題
- (人教PEP2024版)英語一年級(jí)上冊(cè)Unit 1 教學(xué)課件(新教材)
- 凝中國心鑄中華魂鑄牢中華民族共同體意識(shí)-小學(xué)民族團(tuán)結(jié)愛國主題班會(huì)課件
- 2024義務(wù)教育2022版《道德與法治課程標(biāo)準(zhǔn)》真題庫與答案
- 全國職業(yè)院校技能大賽高職組(市政管線(道)數(shù)字化施工賽項(xiàng))考試題庫(含答案)
- DL∕T 1711-2017 電網(wǎng)短期和超短期負(fù)荷預(yù)測(cè)技術(shù)規(guī)范
- 醫(yī)療機(jī)構(gòu)消毒記錄表清潔消毒日檢查記錄表
- 2024年北京大學(xué)強(qiáng)基計(jì)劃數(shù)學(xué)試卷試題真題(含答案詳解)
- 2024年二級(jí)建造師繼續(xù)教育題庫及答案(500題)
- 企業(yè)所得稅匯算清繳申報(bào)表電子表格版(帶公式-自動(dòng)計(jì)算)
- 2024年巴西脈沖灌洗系統(tǒng)市場(chǎng)機(jī)會(huì)及渠道調(diào)研報(bào)告
評(píng)論
0/150
提交評(píng)論