C語言課程設(shè)計(jì)職工信息管理系統(tǒng)_第1頁
C語言課程設(shè)計(jì)職工信息管理系統(tǒng)_第2頁
C語言課程設(shè)計(jì)職工信息管理系統(tǒng)_第3頁
C語言課程設(shè)計(jì)職工信息管理系統(tǒng)_第4頁
C語言課程設(shè)計(jì)職工信息管理系統(tǒng)_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、中國地質(zhì)大學(xué)課程設(shè)計(jì)報(bào)告中國地質(zhì)大學(xué)課 程 設(shè) 計(jì) 報(bào) 告 書所屬課程名稱 C程序設(shè)計(jì) 題 目 職工信息管理系統(tǒng) 院 (系) 班 級 學(xué)號(hào) 學(xué)生姓名 指導(dǎo)教師 輔導(dǎo)教師 中國地質(zhì)大學(xué)2010年9月6日 中國地質(zhì)大學(xué)課程設(shè)計(jì)報(bào)告課 程 設(shè) 計(jì)( 論 文 )任 務(wù) 書工程學(xué)院 專 業(yè) 052081 班一、課程設(shè)計(jì)(論文)題目 職工信息管理系統(tǒng) 二、課程設(shè)計(jì)(論文)工作:自 2010年 08月 28 日起至 2010年 09月 08 日止。三、課程設(shè)計(jì)(論文)的內(nèi)容要求:1、設(shè)計(jì)內(nèi)容: 制作職工信息管理系統(tǒng),職工信息包括職工號(hào),姓名,性別,年齡,學(xué)歷,工資,住址,電話等(職工號(hào)不重復(fù)),并實(shí)現(xiàn)數(shù)據(jù)錄

2、入、數(shù)據(jù)刪除和數(shù)據(jù)瀏覽以及數(shù)據(jù)查詢等一些功能。 2、課程設(shè)計(jì)的要求: A.系統(tǒng)以菜單方式工作 B.職工信息錄入功能(職工信息用文件保存)-輸入 C.職工信息瀏覽功能 -輸出 D.查詢和排序功能:(至少一種查詢方式) -算法 E.按工資查詢 F.按學(xué)歷查詢等 G.職工信息刪除,修改功能(任選項(xiàng)) 2010 年 9月 6 日一、需求分析1.能夠?qū)β毠さ幕厩闆r進(jìn)行輸入、修改、增加以及刪除和存盤。2.能夠?qū)β毠ば畔⒌臑g覽。3.能夠?qū)崿F(xiàn)對職工的查詢。4.能夠?qū)β毠さ幕竟べY情況進(jìn)行設(shè)定。5.能夠?qū)⒙毠ば畔⒑突竟べY信息以文檔形式保存6.程序能夠以菜單形式出現(xiàn) 中國地質(zhì)大學(xué)課程設(shè)計(jì)報(bào)告二、概要分析職工信

3、息管理系統(tǒng)設(shè)計(jì)職工信息包括職工號(hào),姓名,性別,年齡,學(xué)歷,工資,住址,電話等(職工號(hào)不重復(fù)),試設(shè)計(jì)一職工信息管理系統(tǒng),使之能提供以下功能:ü 系統(tǒng)以菜單方式工作ü 職工信息錄入功能(職工信息用文件保存)-輸入ü 職工信息瀏覽功能 -輸出ü 查詢和排序功能:(至少一種查詢方式) -算法ü 按工資查詢ü 按學(xué)歷查詢等ü 職工信息刪除,修改功能(任選項(xiàng))下面是功能框架圖:三、詳細(xì)設(shè)計(jì)以及調(diào)試分析A.詳細(xì)設(shè)計(jì)1,創(chuàng)建了一個(gè)結(jié)構(gòu)體employee,它包含num(工號(hào)),name(姓名),sex(性別),age(年齡),xueli(學(xué)

4、歷),wage(工資),addr(住址),tel(電話)8個(gè)基類,即為員工的基本信息。2,創(chuàng)建了主函數(shù)main(),用它調(diào)用子函數(shù)menu(),add(),del(),display(),Input(),load(),modify(),save(),search(),search num(),search xueli()。通過主函數(shù)對子函數(shù)的調(diào)用實(shí)現(xiàn)程序的各項(xiàng)功能。 B.調(diào)試分析 void main() menu(); int n,flag; char a; -Configuration: 1 - Win32 Debug-Compiling.1.cg:1.c(55) : error C2143

5、: syntax error : missing '' before 'type'g:1.c(56) : error C2143: syntax error : missing '' before 'type'g:1.c(61) : error C2065: 'n' : undeclared identifierg:1.c(64) : error C2065: 'flag' : undeclared identifierg:1.c(90) : error C2065: 'a' : u

6、ndeclared identifierError executing cl.exe.1.obj - 5 error(s), 0 warning(s)開始由于在主函數(shù)的調(diào)用過程中把子函數(shù)的調(diào)用放在了變量的定義之前,導(dǎo)致程序無法運(yùn)行,后來改正錯(cuò)誤,程序可以正常運(yùn)行。另外在程序中還出現(xiàn)各種小錯(cuò)誤,這里不一一列舉。通過調(diào)試我發(fā)現(xiàn)調(diào)試是一個(gè)漫長而枯燥的過程 ,很鍛煉人的耐心。 四、程序使用指南1打開程序出現(xiàn)菜單選項(xiàng)2,選擇錄入職工信息,按提示錄入3.通過選項(xiàng)依次實(shí)現(xiàn)對職工信息的瀏覽,查詢,刪除,增加和修改。五.源代碼#include <stdio.h>#include <window

7、s.h>#include <time.h>#include <string.h>#define N 100struct employee int num;/工號(hào) char name10;/姓名 char sex; /性別 int age;/年齡 char xueli30;/學(xué)歷 int wage;/工資 char addr30;/住址 long int tel;/電話em100; void menu();void input();void save(int);void display();void del();void add();void search();vo

8、id search_num();void search_xueli();void search_tel();void modify(); void menu() printf(" *歡迎使用查詢系統(tǒng)*n"); printf("n"); printf("n");printf(" *職工信息管理*n");printf(" 1.錄入職工信息");printf(" 2.瀏覽職工信息n");printf(" 3.查詢職工信息");printf(" 4.刪除

9、職工信息n"); printf(" 5.增加職工信息");printf(" 6.修改職工信息n");printf(" 7.退出n");printf(" *謝謝使用*n"); printf("n"); printf("n"); void main() int n,flag; char a; menu();do printf("請選擇你需要操作的步驟(1-7):n"); scanf("%d",&n); if(n>=1

10、&&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; case 2:printf("瀏覽職工信息n");printf("n");display();break; case 3:printf("按職工號(hào)或?qū)W歷查詢職工信息n

11、");printf("n");search();break; case 4:printf("刪除職工信息n");printf("n");del();break; case 5:printf("添加職工信息n");printf("n");add();break; case 6:printf("修改職工信息n");printf("n");modify();break; case 7:exit(0);break; default :break; get

12、char(); printf("n"); printf("是否繼續(xù)進(jìn)行(y or n):n"); scanf("%c",&a); if(a='y') flag=1; system("cls"); menu(); printf("請?jiān)俅芜x擇你需要操作的步驟(1-7):n"); scanf("%d",&n); printf("n"); else exit(0);void input() int i,m; printf("

13、;請輸入需要?jiǎng)?chuàng)建信息的職工人數(shù)(1-100):n"); scanf("%d",&m); for (i=0;i<m;i+) printf("職工號(hào): "); srand(int)time(0); emi.num=rand()%10000+20000000; if(emi.num!=emi-1.num) printf("%8d ",emi.num); printf("n"); printf("請輸入姓名: "); scanf("%s",);

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

15、quot;); scanf("%s",emi.addr); printf("請輸入電話: "); scanf("%d",&emi.tel); printf("n"); printf("n創(chuàng)建完畢!n"); save(m);void save(int m) int i;FILE*fp;if (fp=fopen("employee_list","wb")=NULL) printf ("cannot open filen"); exi

16、t(0);for (i=0;i<m;i+) if (fwrite(&emi,sizeof(struct employee),1,fp)!=1) printf("file write errorn"); fclose(fp);int load() FILE*fp;int i=0; if(fp=fopen("employee_list","rb")=NULL) printf ("cannot open filen"); exit(0);else do fread(&emi,sizeof(struc

17、t employee),1,fp); i+; while(feof(fp)=0);fclose(fp);return(i-1); void display() int i;int m=load();printf("n 職工號(hào)t姓名t性別t年齡t學(xué)歷t工資t住址t電話 n");for(i=0;i<m;i+) printf("n %dt%st%ct%dt%st%dt%st%ldn",emi.num,,emi.sex,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel); void del() int

18、m=load();int i,j,n,t,flag;char name20;printf("n 原來的職工信息:n"); display(); printf("n");printf("請輸入要?jiǎng)h除的職工的姓名:n");scanf("%s",name);for(flag=1,i=0;flag&&i<m;i+) if(strcmp(,name)=0) printf("n已找到此人,原始記錄為:n"); printf("n職工號(hào)t姓名t性別t年齡t學(xué)歷t

19、工資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); printf("n確實(shí)要?jiǎng)h除此人信息請按1,不刪除請按0n"); scanf("%d",&n); if(n=1) for(j=i;j<m-1;j+) strcpy(,emj+1.name); emj.num=emj+1.num; emj.sex=emj+1.

20、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); display(); printf("n繼續(xù)刪除請按1,不再刪除請按0n");scanf("%d&quo

21、t;,&t);switch(t) case 1:del();break; case 0:break; default :break;void add()FILE*fp;int n; int count=0; int i; int m=load(); printf("n 原來的職工信息:n"); display(); printf("n"); fp=fopen("emploee_list","a"); printf("請輸入想增加的職工數(shù):n");scanf("%d",

22、&n); for (i=m;i<(m+n);i+) printf("n 請輸入新增加職工的信息:n"); printf("請輸入職工號(hào): "); srand(int)time(0); emi.num=rand()%10000+20000000; if(emi.num!=emi-1.num) printf("%8d ",emi.num); printf("n"); printf("請輸入姓名: "); scanf("%s",); getchar()

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

24、anf("%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("n");save(m);

25、display(); fclose(fp);void search() int t,flag;do printf("n按職工號(hào)查詢請按1 ; 按學(xué)歷查詢請按2 ;進(jìn)入主函數(shù)按3n"); scanf("%d",&t); if(t>=1&&t<=4) flag=1; break; else flag=0; printf("您輸入有誤,請重新選擇!"); while(flag=0); while(flag=1) switch(t) case 1:printf("按職工號(hào)查詢n");se

26、arch_num();break; case 2:printf("按學(xué)歷查詢n");search_xueli();break; case 3:main();break; default:break; void search_num() int num; int i,t; int m=load(); printf("請輸入要查找的職工號(hào)(20001111-20009999):n"); scanf("%d",&num); for(i=0;i<m;i+) if(num=emi.num) printf("n已找到此人,

27、其記錄為:n"); printf("n職工號(hào)t姓名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); break; if(i=m) printf("n對不起,查無此人n"); printf("n"); printf("返回查詢函數(shù)請按1,繼續(xù)查詢職工號(hào)請按2n"); scanf(

28、"%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("請輸入要查找的學(xué)歷:n"); scanf("%s",xueli); for(i=0;i<m;i+) if(strcmp(emi.xueli,xueli)=0) printf("n已找到,其記錄為:n"); printf("

29、;n職工號(hào)t姓名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); if(i=m) printf("n"); printf("返回查詢函數(shù)請按1,繼續(xù)查詢學(xué)歷請按2n"); scanf("%d",&t); switch(t) case 1:search();break; case 2:bre

30、ak; default :break; void modify() 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(); printf("n 原來的職工信息:n"); display(); printf("n"); printf("請輸入要修改的職工的姓名:n");scanf("%s",name);for(flag=1,i=0

31、;flag&&i<m;i+) if(strcmp(,name)=0) printf("n已找到此人,原始記錄為:n"); printf("n職工號(hào)t姓名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); printf("n確實(shí)要修改此人信息請按1 ; 不修改請按0n");

32、 scanf("%d",&n); if(n=1) printf("n需要進(jìn)行修改的選項(xiàng)n 1.職工號(hào) 2.姓名 3.性別 4.年齡 5.學(xué)歷 6.工資 7.住址 8.電話n"); printf("請輸入你想修改的那一項(xiàng)序號(hào):n"); scanf("%d",&c); if(c>8|c<1) printf("n選擇錯(cuò)誤,請重新選擇!n"); flag=0; if(flag=1)printf("n對不起,查無此人!n"); do switch(c) case 1:printf("職工號(hào)改為: "); scanf("%d",&num); emi-1.num=num; break; case 2:printf("姓名改為: "); scanf("%s",name); strcpy(,name); break; case 3:printf("性別改為: "); getchar(); scanf(&q

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論