C語言課程設(shè)計(jì)職工信息管理系統(tǒng)_第1頁
C語言課程設(shè)計(jì)職工信息管理系統(tǒng)_第2頁
C語言課程設(shè)計(jì)職工信息管理系統(tǒng)_第3頁
C語言課程設(shè)計(jì)職工信息管理系統(tǒng)_第4頁
免費(fèi)預(yù)覽已結(jié)束,剩余25頁可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、課程設(shè)計(jì)報(bào)告課程名稱C 語言程序設(shè)計(jì)課題名稱職工信息管理系統(tǒng)專業(yè)通信工程班級(jí)1402 班學(xué)號(hào)201403020222姓名熊舒煉指導(dǎo)教師羅雅博2015年 7月 3 日目錄232.132.23382324總體設(shè)計(jì)方案(一)、系統(tǒng)總體流程圖(二)、為了方便使用,此系統(tǒng)結(jié)構(gòu)均為全局類型定義 struct employee/定義一個(gè)職工信息的結(jié)構(gòu)體 char num20;char name20;char sex;char age20;char xueli30;int wage;char addr30;char post20;long int tel;em100;2(三)、各模塊的功能與實(shí)現(xiàn)1.菜單模塊:

2、顯示職工管理系統(tǒng)的主菜單,供用戶選擇所需功能,通過自己定義的voidmenu()函數(shù)實(shí)現(xiàn)。2.輸入模塊:輸入職工的工號(hào)、 姓名及其他的一些職工信息, 通過自己定義的void input()函數(shù)實(shí)現(xiàn)。3.保存模塊:將內(nèi)存中職工信息輸出到磁盤文件中,通過自己定義的void save(int)函數(shù)實(shí)現(xiàn)。4.瀏覽模塊:瀏覽所有職工的信息,通過自己定義的void display() 函數(shù)實(shí)現(xiàn)。5.刪除模塊:刪除需要?jiǎng)h除的職工所有信息,通過自己定義的void del()函數(shù)實(shí)現(xiàn)。6.查詢模塊:a.按職工號(hào)查詢職工相關(guān)信息, 通過自己定義的void search-num()函數(shù)實(shí)現(xiàn)。b.按職工學(xué)歷查詢相關(guān)職

3、工信息,通過自己定義的void search-xueli()函數(shù)實(shí)現(xiàn)。c.按職工電話號(hào)碼查詢相關(guān)職工信息,通過自己定義的void search-tel()函數(shù)實(shí)現(xiàn)。7.修改模塊:可以修改需要修改的職工信息,通過自己定義的void modify() 函數(shù)實(shí)現(xiàn)。8.退出系統(tǒng)模塊:推出職工信息管理系統(tǒng),通過頭文件中的windows.h 中的 exit(0)函數(shù)實(shí)現(xiàn)。課程設(shè)計(jì)的目的與要求一、課程設(shè)計(jì)目的C 語言程序設(shè)計(jì)是通信工程專業(yè)重要的基礎(chǔ)課,通過本課程設(shè)計(jì)使學(xué)生進(jìn)一步鞏固課堂所學(xué)知識(shí), 全面熟悉、掌握 C 語言程序設(shè)計(jì)的基本方法和技巧,進(jìn)一步提高編寫程序、閱讀分析程序及上機(jī)操作、調(diào)試程序的能力。二

4、、課程設(shè)計(jì)要求職工信息包括職工號(hào)、姓名、性別、出生年月、學(xué)歷、職務(wù)、工資、住址、電話等(職工號(hào)不重復(fù))。系統(tǒng)以菜單方式工作; 能錄入職工信息并保存; 顯示所有職工信息(以一定的格式);查詢職工信息(以一種或多種方式) ;修改職工信息并保存;刪除職工信息。所有信息保存在文件中(每次使用,上次保存的信息能從文件中讀?。J褂谜f明及運(yùn)用實(shí)例1.運(yùn)行程序,進(jìn)入職工管理系統(tǒng)的主菜單:3圖 12.輸入數(shù)字“ 1”進(jìn)行錄入職工信息:4圖 23.輸入“ y”返回住主菜單(界面同圖1)4.輸入“ 2”瀏覽職工信息:55.輸入“ y”后繼續(xù),輸入“ 3”查詢職工信息:圖 466.進(jìn)入主菜單,輸入“ 4”進(jìn)行刪除職

5、工信息:圖 57.進(jìn)入主菜單輸入“ 5”進(jìn)行修改職工信息7圖 68.進(jìn)入主菜單輸入“ 6”退出職工信息管理系統(tǒng)四、項(xiàng)目程序源代碼#include <stdio.h>#include <stdlib.h>#include <string.h>8#define N 100struct employeechar num20;char name20;char sex;char age20;char xueli30;int wage;char addr30;char post20;long int tel;em100;/* 定義一個(gè)結(jié)構(gòu)體 */void menu();

6、void input();void save(int);void sav(int);void display();void del();void search();void search_num();void search_xueli();void search_tel();void modify();/* 定義各函數(shù) */void menu()/* 菜單函數(shù) */printf("n");printf("n");printf("*職工信息管理 *n");printf("1.錄入職工信息 ");printf(&quo

7、t;2.瀏覽職工信息 n");printf("3.查詢職工信息 ");printf("4.刪除職工信息 n");printf("5.修改職工信息 ");9printf("6.退出 n");printf("*謝謝使用 *n");printf("n");printf("n");void main()int n,flag;char a;menu();/* 調(diào)用菜單函數(shù) */doprintf(" 請(qǐng)選擇你需要操作的步驟(1-6):n"

8、);scanf("%d",&n);if(n>=1&&n<=6)flag=1;break;elseflag=0;printf(" 您輸入有誤,請(qǐng)重新選擇!");while(flag=0);while(flag=1)switch(n)case1:printf("*輸 入 職 工 信 息*n");printf("n");input();break;10case2:printf("*瀏 覽 職 工 信 息*n");printf("n");displ

9、ay();break;case 3:printf("*按 職 工 號(hào) 查 詢 職 工 信 息*n");printf("n");search();break;case4:printf("*刪 除 職 工 信 息*n");printf("n");del();break;case5:printf("*修 改 職 工 信 息*n");printf("n");modify();break;case 6:exit(0);break;default :break;getchar();pri

10、ntf("n");printf(" 是否繼續(xù)進(jìn)行 (y or n):n");scanf("%c",&a);if(a='y')flag=1;system("cls");/* 清屏 */menu(); /*調(diào)用菜單函數(shù) */printf(" 請(qǐng)?jiān)俅芜x擇你需要操作的步驟(1-6):n");scanf("%d",&n);printf("n");elseexit(0);void sav(int m)/* 保存文件函數(shù) */int i;

11、FILE*fp;if (fp=fopen("employee_list","wb")=NULL)/* 創(chuàng)建文件并判斷是否能打開*/printf ("cannot open filen");11exit(0);for (i=0;i<m;i+) /* 將內(nèi)存中職工的信息輸出到磁盤文件中去 */ if (fwrite(&emi,sizeof(struct employee),1,fp)!=1)printf("file write errorn");fclose(fp);void save(int m) /*

12、 保存文件函數(shù) */int i;FILE*fp;if (fp=fopen("employee_list.txt","w")=NULL) /* 創(chuàng)建文本文件要用的模式 */ printf ("cannot open filen");exit(0);for (i=0;i<m;i+) /* 內(nèi)存職工信息輸磁盤文件*/fprintf(fp,"n%s%s%c%s%s%d%s%ldn",emi.num,,emi.sex,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel

13、); / 每員工信息寫行間用空格隔fclose(fp);void input()/* 錄入函數(shù) */int i,m;printf(" 請(qǐng)輸入需要?jiǎng)?chuàng)建信息的職工人數(shù)(1-100):n");scanf("%d",&m);for (i=0;i<m;i+)printf(" 職工號(hào):");scanf("%s",emi.num);printf("n");printf(" 請(qǐng)輸入姓名 :");12scanf("%s",);getchar()

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

15、ot;%s",emi.addr);printf(" 請(qǐng)輸入電話 :");scanf("%d",&emi.tel);printf(" 請(qǐng)輸入職務(wù) : ");scanf("%s",&emi.post);printf("n");printf("n 創(chuàng)建完畢 !n");save(m);sav(m);int load()/* 導(dǎo)入函數(shù) */FILE*fp;int i=0;if(fp=fopen("employee_list","r

16、b")=NULL)printf ("cannot open filen");exit(0);elsedo13fread(&emi,sizeof(struct employee),1,fp);i+;while(feof(fp)=0);fclose(fp);return(i-1);void display()/* 瀏覽函數(shù) */int i;int m=load();printf("n職工號(hào)姓名性別出生年月學(xué)歷工資住址電話n");for(i=0;i<m;i+) /*m為輸入部分的職工人數(shù) */printf("n%s%s%c%s

17、%s%d%s%ldn",emi.num,,emi.sex,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel); void del()/* 刪除函數(shù) */int m=load();int i,j,n,t,flag;char name20;printf("n 原來的職工信息 :n");display();/* 調(diào)用瀏覽函數(shù) */printf("n");printf(" 請(qǐng)輸入要?jiǎng)h除的職工的姓名:n");scanf("%s",name);for(flag=1

18、,i=0;flag&&i<m;i+)if(strcmp(,name)=0)14printf("n 已找到此人,原始記錄為:n");printf("n 職工號(hào) t 姓名 t 性別 t 出生年月 t 學(xué)歷 t 工資 t 住址 t 電話n");printf("n%st%st%ct%st%st%dt%st%ldn",emi.num,,emi.sex,emi.age,e mi.xueli,emi.wage,emi.addr,emi.tel);printf("n 確實(shí)要?jiǎng)h除此人信息請(qǐng)

19、按 1,不刪除請(qǐng)按 0n"); scanf("%d",&n);if(n=1) /* 如果刪除,則其他的信息都往上移一行 */ for(j=i;j<m-1;j+)strcpy(,emj+1.name);strcpy(emj.num,emj+1.num);emj.sex=emj+1.sex;strcpy(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

20、=0;if(!flag)m=m-1;elseprintf("n 對(duì)不起,查無此人 !n");printf("n瀏覽刪除后的所有職工信息:n");save(m);/*調(diào)用保存函數(shù) */sav(m);display();/* 調(diào)用瀏覽函數(shù) */printf("n 繼續(xù)刪除請(qǐng)按 1,不再刪除請(qǐng)按0n");scanf("%d",&t);switch(t)15case 1:del();break;case 0:break;default :break;void search()/*查詢函數(shù) */int t,flag;

21、doprintf("n 按職工號(hào)查詢請(qǐng)按1 ; 按學(xué)歷查詢請(qǐng)按 2 ; 按電話號(hào)碼查詢請(qǐng)按3,進(jìn)入主函數(shù)按 4n");scanf("%d",&t);if(t>=1&&t<=4)flag=1;break;elseflag=0;printf(" 您輸入有誤,請(qǐng)重新選擇!");while(flag=0);while(flag=1)switch(t)case 1:printf("按職工號(hào)查詢 n");search_num();break; case 2:printf("按學(xué)歷查

22、詢 n");search_xueli();break; case 3:printf("按電話號(hào)碼查詢 n");search_tel();break; case 4:main();break;default:break;16void search_num()char num20;int i,t;int m=load();printf(" 請(qǐng)輸入要查找的職工號(hào) :n");scanf("%s",num);for(i=0;i<m;i+)if (strcpy(emi-1.num,num)=0)printf("n 已找到

23、此人,其記錄為:n");printf("n 職工號(hào) t 姓名 t 性別 t 出生年月 t 學(xué)歷 t 工資 t 住址 t 電話n");printf("n%st%st%ct%st%st%dt%st%ldn",emi.num,,emi.sex,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel);break;if(i=m)printf("n 對(duì)不起,查無此人 n");printf("n");printf(" 返回查詢函數(shù)請(qǐng)按1,繼續(xù)查詢職工號(hào)請(qǐng)按2n

24、");scanf("%d",&t);switch(t)case 1:search();break;case 2: break;default:break;void search_xueli()17char xueli30;int i,t;int m=load();printf(" 請(qǐng)輸入要查找的學(xué)歷 :n");scanf("%s",xueli);for(i=0;i<m;i+)if(strcmp(emi.xueli,xueli)=0)printf("n 已找到,其記錄為: n");printf

25、("n 職工號(hào) t 姓名 t 性別 t 出生年月 t 學(xué)歷 t 工資 t 住址 t 電話n");printf("n%st%st%ct%st%st%dt%st%ldn",emi.num,,emi.sex,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel);if(i=m)printf("n 對(duì)不起,查無此人 n");printf("n");printf(" 返回查詢函數(shù)請(qǐng)按1,繼續(xù)查詢學(xué)歷請(qǐng)按2n");scanf("%d",&

26、amp;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(" 請(qǐng)輸入要查找的電話號(hào)碼:n");scanf("%ld",&tel);18for(i=0;i<m;i+)if(tel=emi.tel)printf("n 已找到此人,其記錄為:n");printf("n 職工號(hào) t 姓名 t 性別 t 出生年月 t 學(xué)歷 t 工資

27、 t 住址 t 電話n");printf("n%st%st%ct%st%st%dt%st%ldn",emi.num,,emi.sex,emi.age,emi.xueli,emi.wage,emi.addr,emi.tel);break;if(i=m)printf("n 對(duì)不起,查無此人 n");printf("n");printf(" 返回查詢函數(shù)請(qǐng)按1,繼續(xù)查詢電話號(hào)碼請(qǐng)按2n");scanf("%d",&t);switch(t)case 1:search()

28、;break;case 2:break;default :break;void modify() /* 修改函數(shù) */char num20;char name10;char sex;char age20;char xueli30;int wage;char addr30;long int tel;int b,c,i,n,t,flag;19int m=load(); /* 導(dǎo)入文件內(nèi)的信息 */printf("n 原來的職工信息 :n");display();/* 調(diào)用瀏覽函數(shù) */printf("n");printf(" 請(qǐng)輸入要修改的職工的姓

29、名: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 工資 t 住址 t 電話n");printf("n%st%st%ct%st%st%dt%st%ldn",emi.num,,emi.sex,emi.age,e mi.xueli,emi.wa

30、ge,emi.addr,emi.tel);printf("n 確實(shí)要修改此人信息請(qǐng)按 1 ; 不修改請(qǐng)按 0n"); 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(" 請(qǐng)輸入你想修改的那一項(xiàng)序號(hào):n");scanf("%d",&c);if(c>8|c<1)printf("n 選擇錯(cuò)誤,請(qǐng)重新選擇!n"

31、;);flag=0;if(flag=1)printf("n 對(duì)不起,查無此人 !n");do20switch(c)/* 因?yàn)楫?dāng)找到第 i 個(gè)職工時(shí) ,for 語句后 i 自加了 1,所以下面的應(yīng)該把改后的信息賦值給第i-1 個(gè)人 */case 1:printf("職工號(hào)改為 : ");scanf("%s",num);strcpy(emi-1.num,num);break;case 2:printf("姓名改為 : ");scanf("%s",name);strcpy(,nam

32、e);break;case 3:printf("性別改為 : ");getchar();scanf("%c",&sex);emi-1.sex=sex;break;case 4:printf("出生年月改為 : ");scanf("%s",age);strcpy(emi-1.age,age);break;case 5:printf("學(xué)歷改為 : ");scanf("%s",xueli);strcpy(emi-1.xueli,xueli);break;case 6:pr

33、intf("工資改為 : ");scanf("%d",&wage);emi-1.wage=wage;break;case 7:printf("住址改為 : ");scanf("%s",addr);strcpy(emi-1.addr,addr);break;case 8:printf("電話改為 : ");scanf("%ld",&tel);emi-1.tel=tel;break;21printf("n");printf("n 是否

34、確定所修改的信息 ?n 是 請(qǐng)按 1 ; 不,重新修改請(qǐng)按 2:n");scanf("%d",&b);while(b=2);printf("n 瀏覽修改后的所有職工信息:n");printf("n");save(m);sav(m);display();printf("n 繼續(xù)修改請(qǐng)按 1,不再修改請(qǐng)按0n");scanf("%d",&t);switch(t)case 1:modify();break;case 0:break;default :break;五、設(shè)計(jì)計(jì)心得與總設(shè)結(jié)通過這次 C 語言的課程設(shè)計(jì),我明白了很多也知道了很多,更收

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論