




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上一、 課程設計目的通過本課程設計,強化上機動手能力,使學生在理論和實踐的基礎(chǔ)上進一步鞏固C語言程序設計課程學習的內(nèi)容,掌握工程軟件設計的基本方法。學會將知識應用于實際的方法,提高分析和解決問題的能力,增加綜合能力。為后續(xù)各門計算機課程的學習打下堅實基礎(chǔ)。為畢業(yè)設計和以后工作打下必要基礎(chǔ)。二、課程設計內(nèi)容針對某企業(yè)的員工,對其信息進行系統(tǒng)的管理。三、需求分析對所開發(fā)系統(tǒng)功能、性能的描述,想要實現(xiàn)的目標。此系統(tǒng)可對該廠員工進行信息的錄入,修改,刪除,添加,查詢,排序,統(tǒng)計,打印等功能。用戶可通過提示選擇進入某一功能界面,然后進行對員工的信息管理。每一功能模塊都充分為用戶考
2、慮,編排詳細。使用戶可以方便快捷的了解員工信息,及時有效的對員工進行信息的管理。四、概要設計1系統(tǒng)結(jié)構(gòu)圖(功能模塊圖)對系統(tǒng)進行分析,給出系統(tǒng)結(jié)構(gòu)圖;分析:此系統(tǒng),為方便客戶輸入,以及使程序清晰化,因而本人采用模塊法,將每一功能模塊化,使程序中各函數(shù)間調(diào)用更加明了。以下為系統(tǒng)模塊圖。2功能模塊說明對各個模塊進行功能的描述。錄入模塊:輸入該廠現(xiàn)有員工信息并保存與文件中,方便日后進行排序,更新,統(tǒng)計,打印等操作。輸出模塊:將所有員工信息,或所需員工信息輸出于屏幕上,用于打印或查詢員工信息。更新模塊:此模塊又分為刪除,添加,修改三個模塊。 刪除模塊:對已退休或離開該廠的員工進行刪除操作。 添加模塊:
3、添加新入廠的員工信息并保存起來。 修改模塊:找到該員工并,選擇所要修改的選項。排序模塊:本程序只對員工年齡進行從小到大排序。查詢模塊:此模塊分為按姓名,年齡,工作查詢。姓名查詢模塊:輸入要查找的姓名,找到就輸出其信息。找不到則輸出無此人。 年齡查詢模塊:輸入要查找的年齡,找到就輸出其信息。找不到則輸出無此人。工作查詢模塊:輸入要查找的工作,找到就輸出其信息。找不到則輸出無此人。統(tǒng)計模塊:此模塊分為,統(tǒng)計年齡,性別和工作。統(tǒng)計年齡:輸入要統(tǒng)計的年齡,查找并輸出,若無此年齡則輸出暫無此年齡員工。統(tǒng)計性別:輸入要統(tǒng)計的性別,查找并輸出,若無此性別則輸出暫無此性別員工。統(tǒng)計工作:輸入要統(tǒng)計的工作,查找
4、并輸出,若無此工作則輸出暫無此工作員工。保存模塊:將現(xiàn)有信息保存于文件中,以防丟失。系統(tǒng)模塊圖王氏企業(yè)員工信息管理系統(tǒng) 輸入i的值,進入相應模塊保存模塊退出系統(tǒng)統(tǒng)計模塊排序模塊查詢模塊更新模塊輸出模塊錄入模塊按年齡統(tǒng)計修改員工 信息添加員工信息按工作統(tǒng)計按性別統(tǒng)計按年齡排序按工作查詢按年齡 查尋按姓名查詢刪除員工信息按任意鍵返回主界面五、詳細設計及運行結(jié)果流程圖, 函數(shù)之間相互調(diào)用的圖示 ,程序設計及編碼, 運行結(jié)果。結(jié)束保存模塊輸入i開始統(tǒng)計模塊排序模塊查詢模塊更新模塊輸出模塊錄入模塊判斷i值主函數(shù): i=1 i=6 i=2 i=3 i=4 i=5 i=0退出系統(tǒng)結(jié)束打開文件關(guān)閉文件i+輸出
5、員工信息i<ni=0 輸出模塊:開始i=0 否開始 錄入模塊: 是 結(jié)束打開文件關(guān)閉文件i+輸入員工信息i<ni=0 否 是 否 是排序模塊: 更新模塊:輸入i開始結(jié)束返回主界面i=0退出系統(tǒng)修改模塊添加模塊刪除模塊判斷i值i>n-1j>ni=i+1j=j+1交換i與j的信息i的年齡大于j的年齡j=i+1i=0開始 否 i=3 i=1 i=2 i=0 是 否 否 是 是 否 是輸出信息結(jié)束輸入i開始結(jié)束返回主界面i=0退出系統(tǒng)統(tǒng)計性別統(tǒng)計年齡統(tǒng)計工作判斷i值輸入i開始結(jié)束返回主界面i=0退出系統(tǒng)工作查詢姓名查詢年齡查詢判斷i值查詢模塊: 統(tǒng)計模塊: i=1 i=3 i=
6、2 i=0 i=1 i=2 i=3 i=0 否 否 是 是 六、調(diào)試情況,設計技巧及體會1、對自己設計進行評價,指出合理和不足之處,提出改進的方案。自我評價:本人自我覺得此系統(tǒng)還不錯,程序簡潔明了,功能齊全,而且充分從用戶的角度進行編排,易于執(zhí)行。經(jīng)本人多次調(diào)試終于出現(xiàn)0個錯誤與警告,而且從未有過死循環(huán),用戶一旦輸錯,立即會有提示,此程序相當?shù)慕选R虮救硕x了全局變量,使操作更加簡單易行,使用了結(jié)構(gòu)體數(shù)組,避開鏈表那樣的復雜操作。但不足之處便是沒有鏈表那樣節(jié)省內(nèi)存。如有機會下次可能會用鏈表。2、在設計過程中的感受。在把字符一個個敲上屏幕時,坐在那一動不動相當?shù)目菰?,一想到過會兒就能看到自己親
7、自編的程序,就只能忍吧 。當看到模塊一個個運行后與預料中的完全一樣時,郁悶的心情立馬被一種成就感替代。就想趕緊編完看看自己的杰作。然而也會遇到自己解決不了的問題,就只能去求老師了。這次最大的感受就是當你竭盡全力的干一件事時,就沒有能擋住你的困難。七、參考文獻C語言課本。八、附錄:源代碼 #include<stdio.h> #include<string.h> #define MAX 100 char filename20; /*文件名*/ FILE *fp; int n; /*當前該廠人數(shù)*/ struct date /*時間結(jié)構(gòu)體*/ int year; int mo
8、uth; int day; ; struct person /*員工信息結(jié)構(gòu)體*/ char name10; /*姓名*/ int age; /*年齡*/ char job10; /*工作*/ char sex10; /*性別*/ char address20; /*地址*/ char phone10; /*電話*/ struct date in_time; /*入廠時間*/ t,workerMAX;/*錄入模塊*/ void input() int i; clrscr(); printf("nn請輸入文件名n"); scanf("%s",filenam
9、e); printf("開始輸入員工的信息n"); printf("n請輸入現(xiàn)有員工人數(shù)n"); scanf("%d",&n); if(fp=fopen(filename,"w")=NULL) printf("不能建立!n"); exit(); for(i=0;i<n;i+) printf("第%d個人的信息:n",i+1); printf("姓名n"); scanf("%s",); printf(
10、"年齡n"); scanf("%d",&workeri.age); printf("工作n"); scanf("%s",workeri.job); printf("性別n"); scanf("%s",workeri.sex); printf("地址n"); scanf("%s",workeri.address); printf("電話n"); scanf("%s",workeri.phon
11、e); printf("入廠年n"); scanf("%d",&workeri.in_time.year); printf("入廠月n"); scanf("%d",&workeri.in_time.mouth); printf("入廠日n"); scanf("%d",&workeri.in_time.day); printf("錄入完畢,按任意鍵返回主菜單n"); getch(); for(i=0;i<n;i+) fprint
12、f(fp,"%s %d %s %s %s %s %d-%d-%dn",,workeri.age,workeri.job,workeri.sex,workeri.address,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.day); fclose(fp);/*輸出模塊*/ void output() int i; if(fp=fopen(filename,"r")=NULL) printf(" 暫時未有任何信息,請按任意鍵
13、返回主菜單進行信息錄入n"); getch(); exit(); clrscr(); printf(" 該廠的員工信息:n"); printf("姓名t年齡t工作t性別t地址t電話t入廠時間 n"); for(i=0;i<n;i+) fscanf(fp,"%s %d %s %s %s %s %d-%d-%d",,&workeri.age,workeri.job,workeri.sex,workeri.address,workeri.phone,&workeri.in_time.y
14、ear,&workeri.in_time.mouth,&workeri.in_time.day); printf("%st%dt%st%st%st%st%d-%d-%d n",,workeri.age,workeri.job,workeri.sex,workeri.address,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.day); fclose(fp); printf(" 輸出完畢,按任意鍵返回主菜單n");
15、getch(); /*保存模塊*/ void save() int i; if(fp=fopen(filename,"w")=NULL) /*打開文件*/ printf("n 不能打開該文件!"); exit(); for(i=0;i<n;i+) fprintf(fp,"%s %d %s %s %s %s %d-%d-%dn",,workeri.age,workeri.job,workeri.sex,workeri.address,workeri.phone,workeri.in_time.year,wo
16、rkeri.in_time.mouth,workeri.in_time.day); fclose(fp); /*讀取信息*/void read_message() int i; printf("輸入文件名n"); scanf("%s",filename); printf("n請輸入現(xiàn)有員工人數(shù)n"); scanf("%d",&n); if(fp=fopen(filename,"r")=NULL) printf(" 暫時未有任何信息,請按任意鍵返回主菜單進行信息錄入n"
17、); getch(); for(i=0;i<n;i+) fscanf(fp,"%s %d %s %s %s %s %d-%d-%d",,&workeri.age,workeri.job,workeri.sex,workeri.address,workeri.phone,&workeri.in_time.year,&workeri.in_time.mouth,&workeri.in_time.day); fclose(fp);/*修改模塊*/void modify() int i,flag,choice; char
18、 ch,namekey10; flag=0; clrscr(); printf(" 開始修改n"); do printf("請輸入要修改的員工姓名n"); scanf("%s",namekey); for(i=0;i<n;i+) if(strcmp(,namekey)=0) printf("是否修改此人(y/n)n"); printf("姓名t年齡t工作t性別t地址t電話t入廠時間 n"); printf("%st%dt%st%st%st%st%d-%d-
19、%d n",,workeri.age,workeri.job,workeri.sex,workeri.address,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.day); getchar(); /*接收回車*/ ch=getchar(); if(ch='y') printf(" *您要修改那一項?*nn"); printf(" *1,姓名*nn"); printf(" *2,年齡*nn&quo
20、t;); printf(" *3,工作*nn"); printf(" *4,性別*nn"); printf(" *5,地址*nn"); printf(" *6,電話*nn"); printf(" *7,入廠年*nn"); printf(" *8,入廠月*nn"); printf(" *9,入廠日*nn"); printf(" 請選擇(1-9)n"); scanf("%d",&choice); switch(c
21、hoice) case 1: printf("輸入修改后的姓名n"); scanf("%s",); break; case 2: printf("輸入修改后的年齡n"); scanf("%d",&workeri.age); break; case 3: printf("輸入修改后的工作n"); scanf("%s",workeri.job); break; case 4: printf("輸入修改后的性別n"); scanf
22、("%s",workeri.sex); break; case 5: printf("輸入修改后的地址n"); scanf("%s",workeri.address); break; case 6: printf("輸入修改后的電話n"); scanf("%s",workeri.phone); break; case 7: printf("輸入修改后的入廠年n"); scanf("%d",&workeri.in_time.year); break;
23、 case 8: printf("輸入修改后的入廠月n"); scanf("%d",&workeri.in_time.mouth); break; case 9: printf("輸入修改后的入廠日n"); scanf("%d",&workeri.in_time.day); break; printf("修改后的信息n"); printf("姓名t年齡t工作t性別t地址t電話t入廠時間 n"); printf("%st%dt%st%st%st%st%
24、d-%d-%d n",,workeri.age,workeri.job,workeri.sex,workeri.address,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.day); else break; else if(i=n) printf("此人不存在n"); printf("n是否繼續(xù)輸入(y/n)n"); getchar(); /*接收回車*/ ch=getchar(); if(ch='y')
25、 printf("繼續(xù)n"); flag=1; else flag=0; while(flag=1); printf("修改完畢,按任意鍵返回主菜單n") ;getch(); /*添加模塊*/void add() int i,flag=0; char ch; clrscr(); printf("n 開始添加新員工n"); printf(" *-*nn");do i=n; printf("n 請輸入添加職工的信息(姓名,年齡,工作,性別,地址,電話,入廠時間)n"); printf("姓
26、名n"); scanf("%s",); printf("年齡n"); scanf("%d", &workeri.age); printf("工作n"); scanf("%s",workeri.job); printf(" 性別n"); scanf("%s",workeri.sex); printf("地址n"); scanf("%s",workeri.address); pr
27、intf("電話n"); scanf(" %s",workeri.phone); printf("入廠年n"); scanf("%d",&workeri.in_time.year); printf("入廠月n"); scanf("%d",&workeri.in_time.mouth); printf("入廠日n"); scanf("%d",&workeri.in_time.day); n+; printf(&qu
28、ot;n添加成功!是否繼續(xù)輸入(y/n)n"); getchar(); /*接收回車*/ ch=getchar(); if(ch='y') printf("繼續(xù)n"); flag=1; else flag=0; while(flag=1); printf("添加完畢,按任意鍵返回主菜單n") ; getch(); /*刪除模塊*/void del() int i,flag; char ch,namekey10; flag=0; clrscr(); printf("開始刪除n"); do printf(&quo
29、t;請輸入要刪除員工的名字n"); scanf("%s",namekey); for(i=0;i<n;i+) if(strcmp(,namekey)=0) /*查找此人*/ printf("是否刪除此人(y/n)n"); printf("姓名t年齡t工作t性別t地址t電話t入廠時間 n"); printf("%st%dt%st%st%st%st%d-%d-%d n",,workeri.age,workeri.job,workeri.sex,worker
30、i.address,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.day); getchar(); /*接收回車*/ ch=getchar(); if(ch='y') for(;i<n;i+) workeri=workeri+1; n-; else break; else if(i=n) printf("此人不存在n"); printf("n是否繼續(xù)輸入(y/n)n"); getchar(); /*接收回車*/ ch=getchar(
31、); if(ch='y') printf("繼續(xù)n"); flag=1; else flag=0; while(flag=1); printf("操作完畢,按任意鍵返回主菜單n") ; getch(); /*更新模塊*/ void renew() int i; do clrscr(); printf("nnn *更新員工信息*nn"); printf(" 按1,添加員工信息nn"); printf(" 按2,刪除員工信息nn"); printf(" 按3,修改員工信息n
32、n"); printf(" 按0,返回主菜單n"); printf(" 請選擇(0-3)n"); scanf("%d",&i); switch(i) case 1: add(); break; case 2: del(); break; case 3: modify(); break; case 0: break; while(i!=0); save(); /*按姓名查找*/void name_cha() int i,j; char namekey10; j=0; clrscr(); printf(" 輸入
33、要查詢的員工姓名n"); scanf("%s",namekey); for(i=0;i<n;i+) if(strcmp(,namekey)=0) /*查找此人*/ printf("-員工信息-n"); printf("姓名t年齡t工作t性別t地址t電話t入廠時間 n"); printf("%st%dt%st%st%st%st%d-%d-%d n",,workeri.age,workeri.job,workeri.sex,workeri.address,
34、workeri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.day); else j+; if(j=n) printf("此人不存在n"); printf("按任意鍵返回主菜單n"); getch(); /*按年齡查找*/void age_cha() int i,j; int agekey; j=0; clrscr(); printf(" 輸入要查詢員工的年齡n"); scanf("%d",&agekey); for(i=
35、0;i<n;i+) if(workeri.age=agekey) printf("-員工信息-n"); printf("姓名t年齡t工作t性別t地址t電話t入廠時間 n"); printf("%st%dt%st%st%st%st%d-%d-%d n",,workeri.age,workeri.job,workeri.sex,workeri.address,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.day
36、); else j+; if(j=n) printf("此人不存在n"); printf("按任意鍵返回主菜單n"); getch(); /*按工作查找*/void job_cha() int i,j; char jobkey10; j=0; clrscr(); printf("輸入要查詢的員工職務n"); scanf("%s",jobkey); for(i=0;i<n;i+) if(strcmp(workeri.job,jobkey)=0) printf("-員工信息-n"); prin
37、tf("姓名t年齡t工作t性別t地址t電話t入廠時間 n"); printf("%st%dt%st%st%st%st%d-%d-%d n",,workeri.age,workeri.job,workeri.sex,workeri.address,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.day); else j+; if(j=n) printf("此人不存在n"); printf("按任意鍵返回主菜
38、單n"); getch(); /*查詢模塊*/ void inquire() int i; do clrscr(); printf("nnn *查詢員工信息*nn"); printf(" *1,按姓名查詢*nn"); printf(" *2,按年齡查詢*nn"); printf(" *3,按工作查詢*nn"); printf(" *0,返回主菜單n"); printf(" 請選擇(0-3)n"); scanf("%d",&i); swit
39、ch(i) case 1: name_cha();break; case 2: age_cha(); break; case 3: job_cha();break; case 0: break; while(i!=0); /*排列模塊*/ void line() int i,j; clrscr(); printf("-按年齡排序-nn"); for(i=0;i<n-1;i+) for(j=i+1;j<n;j+) if(workeri.age>workerj.age) t=workeri; workeri=workerj; workerj=t; printf
40、("姓名t年齡t工作t性別t地址t電話t入廠時間 n"); for(i=0;i<n;i+) printf("%st%dt%st%st%st%st%d-%d-%d n",,workeri.age,workeri.job,workeri.sex,workeri.address,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.day); printf("按任意鍵返回主菜單n"); getch(); /*按年齡統(tǒng)計*
41、/ void count_age() int i,j; int agekey; j=0; clrscr(); printf(" 輸入要統(tǒng)計員工的年齡n"); scanf("%d",&agekey); for(i=0;i<n;i+) if(workeri.age=agekey) printf("-員工信息-n"); printf("姓名t年齡t工作t性別t地址t電話t入廠時間 n"); printf("%st%dt%st%st%st%st%d-%d-%d n",workeri.nam
42、e,workeri.age,workeri.job,workeri.sex,workeri.address,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.day); else j+; if(j=n) printf("暫無該年齡段員工n"); printf("按任意鍵返回主菜單n"); getch();/*按職務統(tǒng)計*/ void count_job() int i,j; char jobkey10; j=0; clrscr(); printf("
43、輸入要統(tǒng)計的員工職務n"); scanf("%s",jobkey); for(i=0;i<n;i+) if(strcmp(workeri.job,jobkey)=0) printf("-員工信息-n"); printf("姓名t年齡t工作t性別t地址t電話t入廠時間 n"); printf("%st%dt%st%st%st%st%d-%d-%d n",,workeri.age,workeri.job,workeri.sex,workeri.address,workeri.ph
44、one,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.day); else j+; if(j=n) printf("暫無該職務或該職務暫時無人n"); printf("按任意鍵返回主菜單n"); getch();/*按性別統(tǒng)計*/ void count_sex() int i,j; char sexkey10; j=0; clrscr(); printf("輸入要統(tǒng)計的員工性別n"); scanf("%s",sexkey); for(i=0;i
45、<n;i+) if(strcmp(workeri.sex,sexkey)=0) printf("-員工信息-n"); printf("姓名t年齡t工作t性別t地址t電話t入廠時間 n"); printf("%st%dt%st%st%st%st%d-%d-%d n",,workeri.age,workeri.job,workeri.sex,workeri.address,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.day); else j+; if(j=n) printf("暫無該性別員工n"); printf("按任意鍵返回主菜單n"); getch();/*統(tǒng)計模塊*/ void count() int i; do clrscr(); printf("nnn *統(tǒng)計員工信息*nn"); printf(" 按1,統(tǒng)計某年齡職工nn"); printf(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 住院部個人工作計劃
- 河北保定曲陽縣2025年七下數(shù)學期末統(tǒng)考試題含解析
- 高峰期倉庫工作計劃
- 2024年河南省醫(yī)療保障局下屬事業(yè)單位真題
- 2024年南安市實驗中學招聘筆試真題
- 社交媒體經(jīng)理工作總結(jié)與傳播策略計劃
- 內(nèi)蒙古烏海二十二中學2025屆數(shù)學七下期末檢測模擬試題含解析
- 2025年網(wǎng)絡管理員考試自己測試試題
- 材料力學性能測試疲勞壽命環(huán)境因素重點基礎(chǔ)知識點
- 廣東省珠海市斗門區(qū)2025年七年級數(shù)學第二學期期末綜合測試試題含解析
- 航空客運包機合同
- 馬拉松志愿者培訓
- 車間衛(wèi)生打掃管理制度
- 高中教師培訓管理制度
- 造價風險防范管理制度
- 飼料粉塵清掃管理制度
- 《浙江省中藥飲片炮制規(guī)范》 2015年版
- GB 19762-2025離心泵能效限定值及能效等級
- 某樓板裂縫修復及碳纖維加固施工方案
- 青馬選拔考試試題及答案
- 中國金融大模型發(fā)展白皮書
評論
0/150
提交評論