版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課程設(shè)計(jì)目的通過本課程設(shè)計(jì),強(qiáng)化上機(jī)動(dòng)手能力,使學(xué)生在理論和實(shí)踐的基礎(chǔ)上進(jìn)一步鞏固 C語言程序設(shè)計(jì)課程學(xué)習(xí)的內(nèi)容,掌握工程軟件設(shè)計(jì)的基本方法。學(xué)會(huì)將知識(shí)應(yīng)用于實(shí)際的方法,提高分析和解決問題的能力,增加綜合能力。為后續(xù)各門計(jì)算機(jī)課程的學(xué)習(xí)打下堅(jiān)實(shí)基礎(chǔ)。為畢業(yè)設(shè)計(jì)和以后工作打下必要基礎(chǔ)。二、課程設(shè)計(jì)內(nèi)容針對(duì)某企業(yè)的員工,對(duì)其信息進(jìn)行系統(tǒng)的管理。三、需求分析對(duì)所開發(fā)系統(tǒng)功能、性能的描述,想要實(shí)現(xiàn)的目標(biāo)。此系統(tǒng)可對(duì)該廠員工進(jìn)行信息的錄入,修改,刪除,添加,查詢,排序,統(tǒng)計(jì),打印 等功能。用戶可通過提示選擇進(jìn)入某一功能界面,然后進(jìn)行對(duì)員工的信息管理。每一 功能模塊都充分為用戶考慮,編排詳細(xì)。使用戶可以方
2、便快捷的了解員工信息,及時(shí) 有效的對(duì)員工進(jìn)行信息的管理。四、概要設(shè)計(jì)1系統(tǒng)結(jié)構(gòu)圖(功能模塊圖)對(duì)系統(tǒng)進(jìn)行分析,給出系統(tǒng)結(jié)構(gòu)圖;分析:此系統(tǒng),為方便客戶輸入,以及使程序清晰化,因而本人采用模塊法,將每一功能模塊化,使程序中各函數(shù)間調(diào)用更加明了。以下為系統(tǒng)模塊圖。2功能模塊說明對(duì)各個(gè)模塊進(jìn)行功能的描述。錄入模塊:輸入該廠現(xiàn)有員工信息并保存與文件中,方便日后進(jìn)行排序,更新, 統(tǒng)計(jì),打印等操作。輸出模塊: 將所有員工信息, 或所需員工信息輸出于屏幕上, 用于打印或查詢員 工信息。更新模塊:此模塊又分為刪除,添加,修改三個(gè)模塊。刪除模塊:對(duì)已退休或離開該廠的員工進(jìn)行刪除操作。添加模塊:添加新入廠的員工信
3、息并保存起來。修改模塊:找到該員工并,選擇所要修改的選項(xiàng)。排序模塊:本程序只對(duì)員工年齡進(jìn)行從小到大排序。查詢模塊:此模塊分為按姓名,年齡,工作查詢。姓名查詢模塊:輸入要查找的姓名,找到就輸出其信息。找不到則輸出無 此人。年齡查詢模塊:輸入要查找的年齡,找到就輸出其信息。找不到則輸出無此 人。工作查詢模塊:輸入要查找的工作,找到就輸出其信息。找不到則輸出無 此人。統(tǒng)計(jì)模塊:此模塊分為,統(tǒng)計(jì)年齡,性別和工作。統(tǒng)計(jì)年齡:輸入要統(tǒng)計(jì)的年齡,查找并輸出,若無此年齡則輸出暫無此年 齡員工。統(tǒng)計(jì)性別:輸入要統(tǒng)計(jì)的性別,查找并輸出,若無此性別則輸出暫無此性 別員工。統(tǒng)計(jì)工作:輸入要統(tǒng)計(jì)的工作,查找并輸出,若無
4、此工作則輸出暫無此工作員工保存模塊:將現(xiàn)有信息保存于文件中,以防丟失。系統(tǒng)模塊圖流程圖,函數(shù)之間相互調(diào)用的圖示,程序設(shè)計(jì)及編碼,運(yùn)行結(jié)果六、調(diào)試情況,設(shè)計(jì)技巧及體會(huì)1、對(duì)自己設(shè)計(jì)進(jìn)行評(píng)價(jià),指出合理和不足之處,提出改進(jìn)的方案。自我評(píng)價(jià):本人自我覺得此系統(tǒng)還不錯(cuò),程序簡(jiǎn)潔明了,功能齊全,而且充分從 用戶的角度進(jìn)行編排,易于執(zhí)行。經(jīng)本人多次調(diào)試終于出現(xiàn) 0 個(gè)錯(cuò)誤與警告,而 且從未有過死循環(huán),用戶一旦輸錯(cuò),立即會(huì)有提示,此程序相當(dāng)?shù)慕选R虮救硕x了全局變量,使操作更加簡(jiǎn)單易行,使用了結(jié)構(gòu)體數(shù)組,避開鏈表那樣的復(fù)雜操作。但不足之處便是沒有鏈表那樣節(jié)省內(nèi)存。如有機(jī)會(huì)下次可能會(huì)用 鏈表。2、在設(shè)計(jì)過程中
5、的感受。在把字符一個(gè)個(gè)敲上屏幕時(shí),坐在那一動(dòng)不動(dòng)相當(dāng)?shù)目菰?,一想到過會(huì)兒就能看 到自己親自編的程序, 就只能忍吧 。當(dāng)看到模塊一個(gè)個(gè)運(yùn)行后與預(yù)料中的完全一 樣時(shí),郁悶的心情立馬被一種成就感替代。就想趕緊編完看看自己的杰作。然而 也會(huì)遇到自己解決不了的問題,就只能去求老師了。這次最大的感受就是當(dāng)你竭盡全力的干一件事時(shí),就沒有能擋住你的困難。七、參考文獻(xiàn)C語言課本。八、附錄: 源代碼/* 文件名 */當(dāng)前該廠人數(shù) */時(shí)間結(jié)構(gòu)體 */員工信息結(jié)構(gòu)體 */姓名*/年齡*/工作*/性別*/#include#include#define MAX 100char filename20;FILE *fp;i
6、nt n; /* struct date/* int year;int mouth;int day; ;struct person/* char name10; /* int age; /* char job10; /* char sex10; /*char address20; /*地址 */char phone10; /*電話 */struct date in_time; /*入廠時(shí)間 */t,workerMAX;/* 錄入模塊 */void input()int i;clrscr();printf(nn 請(qǐng)輸入文件名 n);scanf(%s,filename);printf( 開始輸入員
7、工的信息 n);printf(n 請(qǐng)輸入現(xiàn)有員工人數(shù) n);scanf(%d,&n);if(fp=fopen(filename,w)=NULL) printf( 不能建立! n);exit();for(i=0;in;i+)n,i+1); printf(第(:個(gè)人的信息:printf(姓名 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,w
8、orkeri.address);printf(電話 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);printf( 錄入完畢,按任意鍵返回主菜單 n);getch();for(i=0;in;i+)fprintf(fp,%s %d %s %s %s %s %d-%d-%dn,,worker
9、i.age,w orkeri.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( 暫時(shí)未有任何信息,請(qǐng)按任意鍵返回主菜單進(jìn)行信息錄入 n);getch();exit();clrscr();printf( 該廠的員工信息: n);printf( 姓名t年齡t工作t性別t地址
10、t電話t入廠時(shí)間n);for(i=0;in;i+) fscanf(fp,%s %d %s %s %s %s %d-%d-%d,,&workeri.age,worker i.job,workeri.sex,workeri.address,workeri.phone,&workeri.in_time.year ,&workeri.in_time.mouth,&workeri.in_time.day);printf(%st%dt%st%st%st%st%d-%d-%dn,,workeri.age,workeri.job,workeri.sex,work
11、eri.address,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_t ime.day);fclose(fp);printf( 輸出完畢,按任意鍵返回主菜單 n);getch();/* 保存模塊 */void save() int i;if(fp=fopen(filename,w)=NULL) /* 打開文件 */ printf(n 不能打開該文件! );exit();for(i=0;in;i+)fprintf(fp,%s %d %s %s %s %s %d-%d-%dn,,wo
12、rkeri.age,workeri.job,workeri.sex,workeri.address,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.day);fclose(fp);/* 讀取信息 */void read_message() int i;printf( 輸入文件名 n);scanf(%s,filename);printf(n 請(qǐng)輸入現(xiàn)有員工人數(shù) n);scanf(%d,&n);if(fp=fopen(filename,r)=NULL) printf( 暫時(shí)未有任何信息,請(qǐng)按任意鍵返回
13、主菜單進(jìn)行信息錄入 n); getch();for(i=0;in;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 ch,namekey10;flag=0;
14、clrscr();printf( 開始修改 n);doprintf( 請(qǐng)輸入要修改的員工姓名 n);scanf(%s,namekey);for(i=0;in;i+) if(strcmp(,namekey)=0) printf( 是否修改此人 (y/n)n);printf( 姓名t年齡t工作t性別t地址t電話t入廠時(shí)間n);printf(%st%dt%st%st%st%st%d-%d-%dn,,workeri.age,workeri.job,workeri.sex,workeri.address,workeri.phone,workeri.in_t
15、ime.year,workeri.in_time.mouth,workeri.in_t ime.day);getchar();/*接收回車 */ch=getchar();if(ch=y) printf(您要修改那一項(xiàng)? *nn);printf(*1,姓名 *nn);printf(*2,年齡 *nn);printf(*3,工作 *nn);printf(*4,性別 *nn);printf(*5,地址 *nn);printf(*6,電話 *nn);printf(*7,入廠年 *nn);printf(*8,入廠月 *nn);printf( 請(qǐng)選擇 (1-9)n);scanf(%d,&choice);s
16、witch(choice) 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(%s,workeri.sex); break;case 5: printf(輸入修改后的地址 n);scanf(%s,workeri.address); break;
17、case 6: printf(輸入修改后的電話 n);scanf(%s,workeri.phone); break;scanf(%d,&workeri.in_time.year); break;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入廠時(shí)間n);printf(%st%dt%st%s
18、t%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_t ime.day);else break; elseprintf(n 是否繼續(xù)輸入 (y/n)n);getchar(); /* 接收回車 */ch=getchar();if(ch=y) printf(繼續(xù) n);flag=1;else flag=0;while(flag=1);printf(
19、修改完畢,按任意鍵返回主菜單 n) ;getch();/* 添加模塊 */ void add() int i,flag=0; char ch;clrscr();printf(n 開始添加新員工 n);printf( *nn);do i=n;printf(n 請(qǐng)輸入添加職工的信息 (姓名, 年齡, 工作, 性別,地址, 電話, 入廠時(shí) 間)n);printf( 姓名 n);scanf(%s,);printf(年齡 n);scanf(%d, &workeri.age);printf(工作 n);scanf(%s,workeri.job);printf( 性別 n);scan
20、f(%s,workeri.sex);printf( 地址 n);scanf(%s,workeri.address);printf( 電話 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(n 添加成功!是否繼續(xù)輸入 (y/n)n);getchar(); /*接收回車 */ch=getchar
21、();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( 請(qǐng)輸入要?jiǎng)h除員工的名字 n);scanf(%s,namekey);for(i=0;in;i+)if(strcmp(,namekey)=0) /*查找此人 */ printf( 是否刪除此人 (y/n)
22、n);printf( 姓名t年齡t工作t性別t地址t電話t入廠時(shí)間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_t ime.day);getchar(); /*接收回車 */ch=getchar();if(ch=y) for(;in;i+)workeri=workeri+1;n-;else brea
23、k; elseif(i=n)printf(此人不存在 n);printf(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 renew() int i;do clrscr();printf(nnn *更新員工信息 *nprintf(按 1 ,添加員工信息 nn);printf(按 2 ,刪除員工信息 nn);printf(按 3 ,修改員工信息
24、 nn);printf(按 0, 返回主菜單 n);printf(請(qǐng)選擇 (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( 輸入要查詢的員工姓名 n);scanf(%s,namekey);for(i=0;in;i+)if(strcmp(worke
25、,namekey)=0) /* 查找此人 */ printf( 員工信息 n);printf( 姓名t年齡t工作t性別t地址t電話t入廠時(shí)間n); printf(%st%dt%st%st%st%st%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);else j+;if(j=n)printf(此人不存在 n);printf( 按任
26、意鍵返回主菜單 n);getch();/* 按年齡查找 */void age_cha() int i,j; int agekey;j=0;clrscr();printf( 輸入要查詢員工的年齡 n);scanf(%d,&agekey);for(i=0;in;i+)if(workeri.age=agekey) printf( 員工信息 n);printf(姓名t年齡t工作t性別t地址t電話t入廠時(shí)間n);printf(%st%dt%st%st%st%st%d-%d-%dn,,workeri.age,workeri.job,workeri.sex,workeri.addre
27、ss ,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_t ime.day);else j+;if(j=n)printf(此人不存在 n);printf(按任意鍵返回主菜單 n);getch();/* 按工作查找 */void job_cha() int i,j; char jobkey10;j=0;clrscr();printf( 輸入要查詢的員工職務(wù) n);scanf(%s,jobkey);for(i=0;in;i+)if(strcmp(workeri.job,jobkey)=0) printf( 員工
28、信息 n);printf(姓名t年齡t工作t性別t地址t電話t入廠時(shí)間n);printf(%st%dt%st%st%st%st%d-%d-%dn,,workeri.age,workeri.job,workeri.sex,workeri.address ,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_t ime.day);else j+;if(j=n)printf( 此人不存在 n);printf( 按任意鍵返回主菜單 n);查詢員工信息 *nn); 按姓名查詢 *nn); 按年齡查
29、詢 *nn); 按工作查詢 *nn); 返回主菜單 n);請(qǐng)選擇 (0-3)n);getch();/* 查詢模塊 */void inquire() int i;do clrscr();printf(nnn *printf( *1,printf( *2,printf( *3,printf( *0,printf( scanf(%d,&i); switch(i) case 1: name_cha();break;case 2: age_cha(); break;case 3: job_cha();break;case 0: break;while(i!=0);/* 排列模塊 */void line(
30、) int i,j;clrscr();nn);printf( 按年齡排序 for(i=0;in-1;i+)for(j=i+1;jworkerj.age) t=workeri;workeri=workerj;workerj=t;printf( 姓名t年齡t工作t性別t地址t電話t入廠時(shí)間n);for(i=0;in;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,wor
31、keri.in_time.mouth,workeri.in_t ime.day);printf( 按任意鍵返回主菜單 n);getch();/* 按年齡統(tǒng)計(jì) */void count_age() int i,j; int agekey;j=0;clrscr();scanf(%d,&agekey);for(i=0;in;i+)if(workeri.age=agekey) printf( 員工信息 n);printf(姓名t年齡t工作t性別t地址t電話t入廠時(shí)間n);printf(%st%dt%st%st%st%st%d-%d-%dn,,workeri.age,worker
32、i.job,workeri.sex,workeri.address ,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_t ime.day);else j+;if(j=n)printf(暫無該年齡段員工 n);printf(按任意鍵返回主菜單 n);getch();/* 按職務(wù)統(tǒng)計(jì) */void count_job() int i,j; char jobkey10;j=0;clrscr();printf( 輸入要統(tǒng)計(jì)的員工職務(wù) n);scanf(%s,jobkey);for(i=0;in;i+)if(strc
33、mp(workeri.job,jobkey)=0) printf( 員工信息 n);printf(姓名t年齡t工作t性別t地址t電話t入廠時(shí)間n);printf(%st%dt%st%st%st%st%d-%d-%dn,,workeri.age,workeri.job,workeri.sex,workeri.address ,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_t ime.day);else j+;if(j=n)printf( 暫無該職務(wù)或該職務(wù)暫時(shí)無人 n);printf
34、( 按任意鍵返回主菜單 n);getch();/* 按性別統(tǒng)計(jì) */void count_sex() int i,j; char sexkey10;j=0;clrscr();printf( 輸入要統(tǒng)計(jì)的員工性別 n);scanf(%s,sexkey);for(i=0;in;i+)if(strcmp(workeri.sex,sexkey)=0) printf( 員工信息 n);printf(姓名t年齡t工作t性別t地址t電話t入廠時(shí)間n);printf(%st%dt%st%st%st%st%d-%d-%dn,,workeri.age,workeri.job,workeri.sex,workeri.address,workeri.phone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_ti
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)村房屋改造合同模板
- 投資者關(guān)系管理中的投資者日活動(dòng)
- 2024暑假師德師風(fēng)培訓(xùn)心得
- 2024幼兒安全教育簡(jiǎn)報(bào)
- 2024年社區(qū)統(tǒng)計(jì)工作目標(biāo)和計(jì)劃
- 軟件科技研發(fā)公章使用原則
- 鋁合金加工加盟合作協(xié)議
- 上海美食街區(qū)二手房交易合同
- 健康產(chǎn)業(yè)授權(quán)經(jīng)營的管理辦法
- 汕頭健身中心租賃合同
- 公司股東債務(wù)分配承擔(dān)協(xié)議書正規(guī)范本(通用版)
- 平安工地、品質(zhì)工程建設(shè)方案
- 2023漿體長(zhǎng)距離管道輸送工程
- 初二英語寒假作業(yè)安排表 - 揚(yáng)中樹人歡迎您
- 基于Android系統(tǒng)的天氣預(yù)報(bào)APP設(shè)計(jì)
- 市政工程危險(xiǎn)源識(shí)別與風(fēng)險(xiǎn)評(píng)價(jià)一覽表
- 道路施工臨時(shí)占道施工應(yīng)急保暢方案隧道
- 2024屆高考語文復(fù)習(xí):作文主題訓(xùn)練人文情懷
- 炊事員個(gè)人衛(wèi)生習(xí)慣養(yǎng)成-課件
- 粉末涂料有限公司邦定攪拌機(jī)安全風(fēng)險(xiǎn)分級(jí)管控清單
- Clean-PVC管道粘接施工工藝標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論