職工信息管理(C語言)_第1頁
職工信息管理(C語言)_第2頁
職工信息管理(C語言)_第3頁
職工信息管理(C語言)_第4頁
職工信息管理(C語言)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優(yōu)質文檔-傾情為你奉上職工信息管理系統(tǒng)設計專業(yè)計算機科學與技術(軟件工程(NIIT)學生姓名班級學號指導教師完成日期2011年7月專心-專注-專業(yè)目 錄個人收集整理 勿做商業(yè)用途個人收集整理 勿做商業(yè)用途個人收集整理 勿做商業(yè)用途個人收集整理 勿做商業(yè)用途個人收集整理 勿做商業(yè)用途職工信息管理系統(tǒng)地設計1 課程設計目地 1.加深對C語言程序設計課程知識地理解,掌握C語言應用程序地開發(fā)方法和步驟;2.進一步掌握和利用C語言進行程序設計地能力;3.進一步理解和運用結構化程序設計地思想和方法;4.初步掌握開發(fā)一個小型實用系統(tǒng)地基本方法;5.學會跳是一個較長程序地基本方法;6.學會利用流程圖火N-

2、S圖表示算法;7.掌握書寫長須設計開發(fā)文檔地能力(書寫課程設計報告)2 課程設計內容設計職工信息管理系統(tǒng),要求職工心想包括職工號、姓名、性別、年齡、學歷、工資、住址、電話等(職工號不重復).設計一職工信息管理系統(tǒng),使之能提供以下功能:個人收集整理 勿做商業(yè)用途(6)系統(tǒng)以菜單方式工作(7)職工信息錄入功能(職工信息用文件保存)-輸入(8)職工信息瀏覽功能-輸出(9)查詢和排序功能(至少一種查詢方式)-算法(10)按工資查詢(11)按學歷查詢等(12)職工信息刪除、修改功能(任選項)3設計流程圖開始菜單根據(jù)菜單輸入地n選擇程序錄入職工信息瀏覽職工信息查詢職工信息刪除職工信息添加職工信息修改職工信

3、息退出保存是否繼續(xù)進行結束個人收集整理 勿做商業(yè)用途(1) 菜單函數(shù)void menu() /*菜單函數(shù)*/ printf(" 計算機科學與技術 軟件技術n");printf("n"); printf(" 楊婷婷n");個人收集整理 勿做商業(yè)用途 printf("n"); printf(" *職工信息管理*n");個人收集整理 勿做商業(yè)用途 printf(" 1.錄入職工信息"); printf(" 2.瀏覽職工信息n"); printf(" 3

4、.查詢職工信息"); printf(" 4.刪除職工信息n"); printf(" 5.添加職工信息"); printf(" 6.修改職工信息n"); printf(" 7.退出n"); printf(" *謝謝使用*n");個人收集整理 勿做商業(yè)用途 printf("n"); printf("n");(2)錄入職工信息void append()        

5、60;                 if(fp=fopen("worker.xls","a")=NULL)     printf("n不能打開該文件!");exit();printf("n請輸入添加職工信息(姓名、職工號、性別、年齡、學歷、職位、工資、電話、地址)n");個人收集整理 勿做商業(yè)用途scanf(&qu

6、ot;%s%s%s%s%s%s%s%s%s",,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);個人收集整理 勿做商業(yè)用途fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15sn",,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);個人收集整理 勿做商業(yè)用途fclose(fp

7、);                      (3) 查詢職工信息   數(shù)據(jù)查找共分為職工號、姓名等方式查找void search()                    &#

8、160;     int l;printf("tttt姓名查找按:1n");printf("tttt學歷查找按:2n");printf("tttt職工號查按:3n"); scanf("%d",&l);if(l>0&&l<4)switch(l)case 1:nameway();break;case 2:xueliway();break;case 3:numway();break;  printf("nn操作完畢!

9、");else printf("tttt輸入有誤!"); void nameway()int k=0;char nam8;printf("n請輸入您要查找地職工姓名:");scanf("%s",nam);if(fp=fopen("worker.xls","rb")=NULL)        printf("n不能打開文件!");exit();while(!feof(fp)fscanf(f

10、p,"%s%s%s%s%s%s%s%s%sn",,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);個人收集整理 勿做商業(yè)用途if(strcmp(nam,)=0)printf("nn已查到,記錄為:");printf("n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15sn",,one.num,one.sex,one.age,one.record,one.

11、position,one.wanges,one.tel,one.addr);個人收集整理 勿做商業(yè)用途k=1;if(k=0)printf("nn對不起,查無此人!.");fclose(fp); void xueliway()int j=0;char xueli10;printf("tttt輸入你要查詢地學歷n");scanf("%s",xueli);if(fp=fopen("worker.xls","rb")=NULL)     

12、60;  printf("n不能打開文件!");exit();while(!feof(fp)fscanf(fp,"%s%s%s%s%s%s%s%s%sn",,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);個人收集整理 勿做商業(yè)用途if(strcmp(xueli,one.record)=0)printf("nn已查到,記錄為:");printf("n%-10s%-8s%-5s%-5s%-10s%

13、-8s%-8s%-10s%-15sn",,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);個人收集整理 勿做商業(yè)用途j=1;if(j=0)printf("nn對不起,查無此人!.");fclose(fp); void numway()      int i=0;      char numb10;printf("tttt輸入你

14、要查詢地職工號n");scanf("%s",numb);if(fp=fopen("worker.xls","rb")=NULL)        printf("n不能打開文件!");exit();while(!feof(fp)fscanf(fp,"%s%s%s%s%s%s%s%s%sn",,one.num,one.sex,one.age,one.record,one.position,one.wang

15、es,one.tel,one.addr);個人收集整理 勿做商業(yè)用途if(!strcmp(numb,one.num)printf("nn已查到,記錄為:");printf("n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15sn",,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);個人收集整理 勿做商業(yè)用途i=1;if(!i)printf("nn對不起,查無此人!.");fclose(

16、fp);(4)修改職工信息void modify()                          int m,k=0;long a;char namekey8;printf("n請輸入您要修改地職工地姓名:");scanf("%s",namekey);if(fp=fopen("worker.x

17、ls","r+")=NULL)      printf("n不能打開該文件!");exit();while(!feof(fp)a=ftell(fp);                     fscanf(fp,"%s%s%s%s%s%s%s%s%sn",,one

18、.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);個人收集整理 勿做商業(yè)用途if(!strcmp(namekey,)k=1;break;if(k)printf("n已查到,記錄為:");printf("n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15sn",,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,on

19、e.addr);個人收集整理 勿做商業(yè)用途printf("n請輸入信息(按照姓名、工號、性別、年齡、學歷、職位、工資、電話、地址地順序輸入):");個人收集整理 勿做商業(yè)用途scanf("%s%s%s%s%s%s%s%s%s",,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);個人收集整理 勿做商業(yè)用途fseek(fp,a,0);fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%

20、-15sn",,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);個人收集整理 勿做商業(yè)用途elseprintf("n對不起,查無此人,無法進行修改.");fclose(fp);                      

21、0;      (5)刪除職工信息void delete()                     int m,k=0;long a,b;char namekey8, valid4;printf("n請輸入您要刪除地職工姓名:");scanf("%s",namekey);if(fp=fopen(&

22、quot;worker.xls","r+")=NULL)     printf("n不能打開該文件!");exit();while(!feof(fp)a=ftell(fp);               fscanf(fp,"%s%s%s%s%s%s%s%s%sn",,one.num,one.sex,one.age,one.reco

23、rd,one.position,one.wanges,one.tel,one.addr);個人收集整理 勿做商業(yè)用途if(strcmp(namekey,)=0)k=1;break;if(k=1)printf("n已查到,記錄為");printf("n%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15sn",,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);個人收集整理 勿做商業(yè)用途print

24、f("n確實要刪除,按1;不刪除,按0:");scanf("%d",&m);if(m=1)fseek(fp,a,0);fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15sn" "","","","","","","","","");個人收集整理 勿做商業(yè)用途elseprintf("n對不起

25、,查無此人.");fclose(fp);                       (6)數(shù)據(jù)輸出void output()                    &#

26、160;       if(fp=fopen("worker.xls","r")=NULL)       printf("n不能打開該文件!");exit();printf("nn%20sn","職工信息管理系統(tǒng)");while(!feof(fp)fscanf(fp,"%s%s%s%s%s%s%s%s%sn",,one.num,one.sex

27、,one.age,one.record,one.position,one.wanges,one.tel,one.addr);個人收集整理 勿做商業(yè)用途printf("%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15sn",,one.num,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr);個人收集整理 勿做商業(yè)用途fclose(fp);4源程序清單#include <stdio.h>#include <windows.h&g

28、t;#include <time.h>#include <string.h>#define N 100struct employee int num; char name10; char sex; int age; char xueli30; int wage; char addr30; long int tel;em100; /*定義一個結構體*/void menu();void input();void save(int);void display();void del();void add();void search();void search_num();voi

29、d search_xueli();void search_tel();void modify(); /*定義各函數(shù)*/void menu() /*菜單函數(shù)*/ printf(" 計算機科學與技術 軟件技術n"); printf("n"); printf(" 楊婷婷n");個人收集整理 勿做商業(yè)用途 printf("n"); printf(" *職工信息管理*n");個人收集整理 勿做商業(yè)用途 printf(" 1.錄入職工信息"); printf(" 2.瀏覽職工信

30、息n"); printf(" 3.查詢職工信息"); printf(" 4.刪除職工信息n"); printf(" 5.添加職工信息"); printf(" 6.修改職工信息n"); printf(" 7.退出n"); printf(" *謝謝使用*n");個人收集整理 勿做商業(yè)用途 printf("n"); printf("n");void main() menu(); /*調用菜單函數(shù)*/ int n,flag; char

31、 a; do printf("請選擇你需要操作地步驟(1-7):n"); scanf("%d",&n); if(n>=1&&n<=7) flag=1; break; else flag=0; printf("您輸入有誤,請重新選擇!"); while(flag=0); while(flag=1) switch(n) case 1:printf(" 輸入職工信息n");printf("n");input();break;個人收集整理 勿做商業(yè)用途 case 2:

32、printf(" 瀏覽職工信息n");printf("n");display();break;個人收集整理 勿做商業(yè)用途 case 3:printf(" 按職工號查詢職工信息n");printf("n");search();break;個人收集整理 勿做商業(yè)用途 case 4:printf(" 刪除職工信息n");printf("n");del();break;個人收集整理 勿做商業(yè)用途 case 5:printf(" 添加職工信息n");printf(&

33、quot;n");add();break;個人收集整理 勿做商業(yè)用途 case 6:printf(" 修改職工信息n");printf("n");modify();break;個人收集整理 勿做商業(yè)用途 case 7:exit(0);break; default :break; getchar(); printf("n"); printf("是否繼續(xù)進行(y or n):n"); scanf("%c",&a); if(a='y') flag=1; menu();

34、 /*調用菜單函數(shù)*/ printf("請再次選擇你需要操作地步驟(1-6):n"); scanf("%d",&n); printf("n"); else exit(0); void input() /*錄入函數(shù)*/ int i,m; printf("請輸入需要創(chuàng)建信息地職工人數(shù)(1-100):n"); scanf("%d",&m); for (i=0;i<m;i+) printf("職工號: "); if(emi.num!=emi-1.num) pri

35、ntf("%8d ",emi.num); printf("n"); printf("請輸入姓名: "); scanf("%s",); getchar(); printf("請輸入性別(f-女 m-男): "); scanf("%c",&emi.sex); printf("請輸入年齡: "); scanf("%d",&emi.age); printf("請輸入學歷: "); scanf(

36、"%s",emi.xueli); printf("請輸入工資: "); scanf("%d",&emi.wage); printf("請輸入住址: "); scanf("%s",emi.addr); printf("請輸入電話: "); scanf("%d",&emi.tel); printf("n"); printf("n創(chuàng)建完畢!n"); save(m);void save(int m) /*保存

37、文件函數(shù)*/ int i; FILE*fp; if (fp=fopen("employee_list","wb")=NULL) /*創(chuàng)建文件并判斷是否能打開*/個人收集整理 勿做商業(yè)用途 printf ("cannot open filen"); exit(0); for (i=0;i<m;i+) /*將內存中職工地信息輸出到磁盤文件中去*/ if (fwrite(&emi,sizeof(struct employee),1,fp)!=1)個人收集整理 勿做商業(yè)用途 printf("file write err

38、orn"); fclose(fp);int load() /*導入函數(shù)*/ FILE*fp; int i=0; if(fp=fopen("employee_list","rb")=NULL) printf ("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

39、; int m=load(); printf("n 職工號t姓名t性別t年齡t學歷t工資t住址t電話 n");個人收集整理 勿做商業(yè)用途 for(i=0;i<m;i+) /*m為輸入部分地職工人數(shù)*/ printf("n %dt%st%ct%dt%st%dt%st%ldn",emi.num,,emi.sex,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel);個人收集整理 勿做商業(yè)用途void del() /*刪除函數(shù)*/ int m=load(); int i,j,n,t,flag; char

40、 name20; printf("n 原來地職工信息:n"); display(); /* 調用瀏覽函數(shù)*/ printf("n"); printf("請輸入要刪除地職工地姓名:n"); scanf("%s",name); for(flag=1,i=0;flag&&i<m;i+) if(strcmp(,name)=0) printf("n已找到此人,原始記錄為:n"); printf("n職工號t姓名t性別t年齡t學歷t工資t住址t電話 n&quo

41、t;); printf("n%dt%st%ct%dt%st%dt%st%ldn",emi.num,,emi.sex,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel);個人收集整理 勿做商業(yè)用途 printf("n確實要刪除此人信息請按1,不刪除請按0n"); scanf("%d",&n); if(n=1) /*如果刪除,則其他地信息都往上移一行*/ for(j=i;j<m-1;j+) strcpy(,emj+1.name); emj.num=emj+

42、1.num; emj.sex=emj+1.sex; emj.age=emj+1.age; strcpy(emj.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; else printf("n對不起,查無此人!n"); printf("n 瀏覽刪除后地所有職工信息:n"); save(m); /*調用保存函數(shù)*/ display(); /*調用瀏覽函數(shù)*/ printf("

43、;n繼續(xù)刪除請按1,不再刪除請按0n"); scanf("%d",&t); switch(t) case 1:del();break; case 0:break; default :break; void add()/*添加函數(shù)*/ FILE*fp; int n; int count=0; int i; int m=load(); printf("n 原來地職工信息:n"); display(); /* 調用瀏覽函數(shù)*/ printf("n"); fp=fopen("emploee_list",&

44、quot;a"); printf("請輸入想增加地職工數(shù):n"); scanf("%d",&n); for (i=m;i<(m+n);i+) printf("n 請輸入新增加職工地信息:n"); printf("請輸入職工號: "); if(emi.num!=emi-1.num) printf("%8d ",emi.num); printf("n"); printf("請輸入姓名: "); scanf("%s",

45、); getchar(); printf("請輸入性別(f-女 m-男): "); scanf("%c",&emi.sex); printf("請輸入年齡: "); scanf("%d",&emi.age); printf("請輸入學歷: "); scanf("%s",emi.xueli); printf("請輸入工資: "); scanf("%d",&emi.wage); printf(&quo

46、t;請輸入住址: "); scanf("%s",emi.addr); printf("請輸入電話: "); scanf("%d",&emi.tel); printf("n"); count=count+1; printf("已增加地人數(shù):n"); printf("%dn",count); printf("n添加完畢!n"); m=m+count; printf("n瀏覽增加后地所有職工信息:n"); printf(&q

47、uot;n"); save(m); display(); fclose(fp);void search()/*查詢函數(shù)*/ int t,flag; do printf("n按職工號查詢請按1 ; 按學歷查詢請按2 ; 按電話號碼查詢請按3,進入主函數(shù)按4n");個人收集整理 勿做商業(yè)用途 scanf("%d",&t); if(t>=1&&t<=4) flag=1; break; else flag=0; printf("您輸入有誤,請重新選擇!"); while(flag=0); whil

48、e(flag=1) switch(t) case 1:printf("按職工號查詢n");search_num();break; case 2:printf("按學歷查詢n");search_xueli();break; case 3:printf("按電話號碼查詢n");search_tel();break; case 4:main();break; default:break; void search_num() int num; int i,t; int m=load(); printf("請輸入要查找地職工號(-):

49、n"); scanf("%d",&num); for(i=0;i<m;i+) if(num=emi.num) printf("n已找到此人,其記錄為:n"); printf("n職工號t姓名t性別t年齡t學歷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);個人收集整理 勿做商業(yè)用途 break; if

50、(i=m) printf("n對不起,查無此人n"); printf("n"); printf("返回查詢函數(shù)請按1,繼續(xù)查詢職工號請按2n"); scanf("%d",&t); switch(t) case 1:search();break; case 2: break; default:break; void search_xueli() char xueli30; int i,t; int m=load(); printf("請輸入要查找地學歷:n"); scanf("%

51、s",xueli); for(i=0;i<m;i+) if(strcmp(emi.xueli,xueli)=0) printf("n已找到,其記錄為:n"); printf("n職工號t姓名t性別t年齡t學歷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);個人收集整理 勿做商業(yè)用途 if(i=m) printf("n對

52、不起,查無此人n"); printf("n"); printf("返回查詢函數(shù)請按1,繼續(xù)查詢學歷請按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("請輸入要查找地電話號碼:n"); scanf("%ld",&tel); f

53、or(i=0;i<m;i+) if(tel=emi.tel) printf("n已找到此人,其記錄為:n"); printf("n職工號t姓名t性別t年齡t學歷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);個人收集整理 勿做商業(yè)用途 break; if(i=m) printf("n對不起,查無此人n"); print

54、f("n"); printf("返回查詢函數(shù)請按1,繼續(xù)查詢電話號碼請按2n"); scanf("%d",&t); switch(t) case 1:search();break; case 2:break; default :break; void modify() /*修改函數(shù)*/ int num; char name10; char sex; int age; char xueli30; int wage; char addr30; long int tel; int b,c,i,n,t,flag; int m=load

55、(); /*導入文件內地信息*/ printf("n 原來地職工信息:n"); display(); /* 調用瀏覽函數(shù)*/ printf("n"); printf("請輸入要修改地職工地姓名:n"); scanf("%s",name); for(flag=1,i=0;flag&&i<m;i+) if(strcmp(,name)=0) printf("n已找到此人,原始記錄為:n"); printf("n職工號t姓名t性別t年齡t學歷t工資t住址t

56、電話 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);個人收集整理 勿做商業(yè)用途 printf("n確實要修改此人信息請按1 ; 不修改請按0n"); scanf("%d",&n); if(n=1) printf("n需要進行修改地選項n 1.職工號 2.姓名 3.性別 4.年齡 5.學歷 6.工資 7.住址 8.電話n");

57、個人收集整理 勿做商業(yè)用途 printf("請輸入你想修改地那一項序號:n"); scanf("%d",&c); if(c>8|c<1) printf("n選擇錯誤,請重新選擇!n"); flag=0; if(flag=1) printf("n對不起,查無此人!n"); do switch(c) /*因為當找到第i個職工時,for語句后i自加了1,所以下面地應該把改后地信息賦值給第i-1個人*/個人收集整理 勿做商業(yè)用途 case 1:printf("職工號改為: "); s

58、canf("%d",&num); emi-1.num=num; break; case 2:printf("姓名改為: "); scanf("%s",name); strcpy(,name); break; case 3:printf("性別改為: "); getchar(); scanf("%c",&sex); emi-1.sex=sex; break; case 4:printf("年齡改為: "); scanf("%d&qu

59、ot;,&age); emi-1.age=age; break; case 5:printf("學歷改為: "); scanf("%s",xueli); strcpy(emi-1.xueli,xueli); break; case 6:printf("工資改為: "); scanf("%d",wage); break; case 7:printf("住址改為: "); scanf("%s",addr); strcpy(emi-1.addr,addr); break; case 8:printf("電話改為: "); scanf("

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論