C語言課程設(shè)計_職工信息管理系統(tǒng)_結(jié)構(gòu)體數(shù)組實現(xiàn)程序源代碼__第1頁
C語言課程設(shè)計_職工信息管理系統(tǒng)_結(jié)構(gòu)體數(shù)組實現(xiàn)程序源代碼__第2頁
C語言課程設(shè)計_職工信息管理系統(tǒng)_結(jié)構(gòu)體數(shù)組實現(xiàn)程序源代碼__第3頁
C語言課程設(shè)計_職工信息管理系統(tǒng)_結(jié)構(gòu)體數(shù)組實現(xiàn)程序源代碼__第4頁
C語言課程設(shè)計_職工信息管理系統(tǒng)_結(jié)構(gòu)體數(shù)組實現(xiàn)程序源代碼__第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、/C語言課程設(shè)計 職工信息管理系統(tǒng)結(jié)構(gòu)體數(shù)組實現(xiàn)#include #include #include 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_query(; /按職稱查詢void num_del(; /按工號刪除void tongji(; /統(tǒng)計v

2、oid sort(; /排序void num_modify(; /按工號修改職工信息void save(; /保存信息void disp(; /顯示職工信息void fh(; /返回主菜單struct employee em300; /這個數(shù)組用來保存所有的職工信息 和文件里面的一致int Number=0; /記錄總的職工人數(shù) 也就是數(shù)組/文件里面的職工人數(shù)void menu(printf("t*n"printf("t* *n"printf("t* 職工信息管理系統(tǒng)_結(jié)構(gòu)體數(shù)組實現(xiàn) *n"printf("t* *n&quo

3、t;printf("t* 1 增加職工信息 2 查看職工信息 *n"printf("t* 3 查找職工信息 4 刪除職工信息 *n"printf("t* 5 統(tǒng)計 6 職工工資排列 *n"printf("t* 7 修改職工信息 8 保存職工信息 *n"printf("t* 9 顯示職工信息 0 退出系統(tǒng) *n"printf("t* *n"printf("t*n"void main(int choose=0;FILE *fp=NULL;char yesorn

4、o;if(fp=fopen("employee1.txt","rb+"=NULLprintf("n=>提示:文件不存在,是否要創(chuàng)建一個?(y/nn"scanf("%c",&yesorno;if(yesorno='y'|yesorno='Y' /這里僅為了建立文件fp=fopen("employee1.txt","wb+"fclose(fp; /關(guān)閉fp所指的文件,釋放文件緩沖區(qū)elseexit(0;elseNumber=read_

5、file(em; /要是文件已經(jīng)有數(shù)據(jù) 將數(shù)據(jù)初始化到數(shù)組中system("cls" while(1 menu(;printf("tt=>請選擇:"scanf("%d",&choose;system("cls"switch(choosecase 0: exit(0; /退出 break; case 1: add(;fh(;/增加職工信息break; case 2:select(;fh(;/查看職工信息break; case 3: zc_query(;fh(;/ 查找 break;case 4:num_

6、del(; fh(;/刪除 break;case 5:tongji(;fh(;/統(tǒng)計break;case 6: sort(;fh(;/排序 break;case 7: num_modify(;fh(;/修改后返回break; case 8:save(;fh(;/保存 break;case 9:disp(;fh(;break;/顯示default:break;fflush(stdin;getchar(;system("cls"void save(printf("t=程序在運行時已自動保存.n"void fh(printf("t=>按Ente

7、r鍵返回主菜單n"void num_modify( /修改職工信息FILE *fp=NULL;char gh60;int i=0;int changeIndex=0; /changeIndex 改變標記int index=0;printf("請輸入要修改的職工工號:"scanf("%s",gh;for (i=0;i if (strcmp(gh,emi.num=0 /比較輸入工號和數(shù)組中已有工號changeIndex=i; /保存要修改的人的下標break;printf("t工號t姓名t性別t部門t職稱t工資n"printf(

8、"t%st%st%st%st%st%dnn",emchangeIndex.num,emchangeI,emchangeIndex.sex,emchangeIndex.bm,emchangeIndex.zc,emchangeIndex.gz;printf("請重新輸入該職工信息"printf("工號:"scanf("%s",emchangeIndex.num;printf("姓名:"scanf("%s",emchangeI;printf(&q

9、uot;性別:"scanf("%s",emchangeIndex.sex;printf("部門:"scanf("%d",emchangeIndex.bm;printf("職稱:"scanf("%s",emchangeIndex.zc;printf("工資:"scanf("%d",&emchangeIndex.gz;/信息修改后重新更新文件里面的數(shù)據(jù) 以保持數(shù)據(jù)一致性fp=fopen("employee1.txt",&q

10、uot;wb+"for (i=0;i fwrite(&emi,sizeof(struct employee,1,fp; /把ptr所指向n*size個字節(jié)輸入到fp所指向的文件中fclose(fp;printf("t=>修改成功n"void disp( /輸出所有職工信息 int i=0;for (i=0;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

11、 wantNUmber=0;int i=0;int j=0;int k=0;for(i=0;i k=i;for(j=i+1;j if(emj.gz>emk.gzk=j;if(k!=it=emi;emi=emk;emk=t;printf("你想輸出前幾名職工的信息:"scanf("%d",&wantNUmber;if (wantNUmber>NumberwantNUmber=Number;printf("t工號t姓名t性別t部門t職稱t工資n"for(i=0;i printf("t%st%st%st%st%

12、st%dnn",emi.num,,emi.sex,emi.bm,emi.zc,emi.gz; void tongji(/統(tǒng)計 int i,m,k,max,min;double sum=0.0;for(i=0;i sum=sum+emi.gz;printf("全體職工的總工資為:%fn",sum;printf("平均工資為:%fn",sum/Number; i=0;m=0;max=0;max=emm.gz;for(i=1;i if (emi.gz>maxm=i;max=emm.gz; printf("最高工資為:%

13、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 if (emi.gz k=i;min=emk.gz;printf("最低工資:%dn",min;printf("t%st%st%st%st%st%dnn",emk.num,,emk.sex,emk.bm,emk.zc,emk.gz; void num_del(/按工號刪除

14、FILE *fp=NULL;char gh60;int i=0;int j=0;printf("請輸入要刪除的職工工號:"scanf("%d",gh;for(i=0;i if (strcmp(gh,emi.num=0 /如果查找到就刪除for (j=i;j emj=emj+1;Number-;/將剩余數(shù)據(jù)寫入文件 重新一寫的方式打開文件 把以前的數(shù)據(jù)擦除了fp=fopen("employee1.dat","wb"for (i=0;i fwrite(&emi,sizeof(struct employee,1,

15、fp;fclose(fp;printf("刪除成功;n"void zc_query(/按職稱查找 char zc20;int i=0;printf("請輸入要查找職工職稱:"scanf("%s",zc;system("cls"printf("t工號t姓名t性別t部門t職稱t工資n"for (i=0;i if (strcmp(zc,emi.zc=0printf("t%st%st%st%st%st%dnn",emi.num,,emi.sex,emi.bm,emi.

16、zc,emi.gz;void select(/查看職工 int i=0;printf("以下是全部職工信息n"printf("t工號t姓名t性別t部門t職稱t工資n"for(i=0;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; /臨時保存信息printf("請輸入要增加職工信息的個數(shù):"

17、;scanf("%d",&numberTemp;for(i=0;i printf("輸入第%d個職工信息n",i+1;printf("工號:"scanf("%s",temp.num;printf("姓名:"scanf("%s",;printf("性別:"scanf("%s",temp.sex;printf("部門:"scanf("%s",temp.bm;printf(&q

18、uot;職稱:"scanf("%s",temp.zc;printf("工資:"scanf("%d",&temp.gz;emNumber+=temp; /將剛添加的寫入到數(shù)組write_file(&temp; /將剛添加的寫入到文件printf("添加成功n"void write_file(struct employee *emFILE *fp=NULL;fp=fopen("employee1.txt","rb+"fwrite(em,sizeof(struct employee,1,fp;fclose(fp;int read_file(struct employee emFILE *fp=NULL;int i=0;fp=fopen("employee1.txt","rb"while(fread(&em

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論