版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 水利抽水施工方案(3篇)
- 景區(qū)門票價(jià)格調(diào)整制度
- 罕見腫瘤聯(lián)合治療的策略與選擇
- 2026四川路橋集團(tuán)公路隧道分公司面向社會(huì)招聘TBM施工專業(yè)人才20人備考題庫(含答案詳解)
- 2026京能集團(tuán)總部部門副職及所屬企業(yè)副總經(jīng)理招聘5人備考題庫及一套完整答案詳解
- 2026中國電科十五所秋季校園招聘備考題庫及完整答案詳解一套
- 2026四川大學(xué)華西醫(yī)院基建運(yùn)行部技術(shù)工人招聘2人備考題庫有完整答案詳解
- 小型加工企業(yè)財(cái)務(wù)制度
- 佛教場所財(cái)務(wù)制度
- 校長辦公室財(cái)務(wù)制度
- 2026年及未來5年中國TFT液晶面板行業(yè)市場發(fā)展數(shù)據(jù)監(jiān)測及投資方向研究報(bào)告
- 大唐集團(tuán)機(jī)考行測題庫
- 車輛日常安全檢查課件
- 民航安全法律法規(guī)課件
- 山東省濟(jì)寧市2026屆第一學(xué)期高三質(zhì)量檢測期末考試濟(jì)寧一模英語(含答案)
- 光伏電站巡檢培訓(xùn)課件
- 年末節(jié)前安全教育培訓(xùn)
- 安全生產(chǎn)麻痹思想僥幸心理
- GB/T 93-2025緊固件彈簧墊圈標(biāo)準(zhǔn)型
- 建設(shè)工程測繪驗(yàn)線標(biāo)準(zhǔn)報(bào)告模板
- 統(tǒng)編版九年級上冊語文期末復(fù)習(xí):全冊重點(diǎn)考點(diǎn)手冊
評論
0/150
提交評論