c語言程序設(shè)計(jì) 企業(yè)員工管理系統(tǒng)_第1頁
c語言程序設(shè)計(jì) 企業(yè)員工管理系統(tǒng)_第2頁
c語言程序設(shè)計(jì) 企業(yè)員工管理系統(tǒng)_第3頁
c語言程序設(shè)計(jì) 企業(yè)員工管理系統(tǒng)_第4頁
c語言程序設(shè)計(jì) 企業(yè)員工管理系統(tǒng)_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、2 / 17排序模塊:查詢模塊: 姓名查詢模塊:輸入要查找的姓名,找到就輸出其信息。找不到則輸出 無此人。年齡查詢模塊:輸入要查找的年齡,找到就輸出其信息。找不到則輸出無 此人。工作查詢模塊:輸入要查找的工作,找到就輸出其信息。找不到則輸出無此人。統(tǒng)計(jì)模塊:此模塊分為,統(tǒng)計(jì)年齡,統(tǒng)計(jì)年齡:輸入要統(tǒng)計(jì)的年齡,年齡員工。統(tǒng)計(jì)性別:輸入要統(tǒng)計(jì)的性別,性別和工作。查找并輸出,若無此年齡則輸出暫無此查找并輸出,若無此性別則輸出暫無此、 課程設(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í)

2、際的方法,提高分析和解決問題的能力,增加綜合能力。 為后續(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ì)。使用戶可以方便快捷的了解員 工信息,及時(shí)有效的對(duì)員工進(jìn)行信息的管理。四、概要設(shè)計(jì) 1系統(tǒng)結(jié)構(gòu)圖(功能模塊圖) 對(duì)系統(tǒng)進(jìn)行分析,給出系統(tǒng)結(jié)構(gòu)圖; 分析:此系統(tǒng),為方便客

3、戶輸入,以及使程序清晰化,因而本人采用模塊法, 將每一功能模塊化,使程序中各函數(shù)間調(diào)用更加明了。以下為系統(tǒng)模 塊圖。2功能模塊說明 對(duì)各個(gè)模塊進(jìn)行功能的描述。 錄入模塊:輸入該廠現(xiàn)有員工信息并保存與文件中,方便日后進(jìn)行排序,更 新,統(tǒng)計(jì),打印等操作。輸出模塊:將所有員工信息,或所需員工信息輸出于屏幕上,用于打印或查 詢員工信息。更新模塊:此模塊又分為刪除,添加,修改三個(gè)模塊。 刪除模塊:對(duì)已退休或離開該廠的員工進(jìn)行刪除操作。 添加模塊:添加新入廠的員工信息并保存起來。 修改模塊:找到該員工并,選擇所要修改的選項(xiàng)。 本程序只對(duì)員工年齡進(jìn)行從小到大排序。 此模塊分為按姓名,年齡,工作查詢。性別員工

4、。統(tǒng)計(jì)工作:輸入要統(tǒng)計(jì)的工作,查找并輸出,若無此工作則輸出暫無此工作 員工。保存模塊:將現(xiàn)有信息保存于文件中,以防丟失。系統(tǒng)模塊圖輸入i的值,進(jìn)入相應(yīng)模塊錄 入 模 塊* 輸 出 模 塊r1 J更查排統(tǒng)保退新詢序計(jì)存出模模模模模系塊塊塊塊塊統(tǒng)添 加 員 工 信 息刪除員工信息I修 改 員 工 信 息按姓名查詢按 年 齡 查 尋L按工作查詢按 年 齡 排 序按 年 齡 統(tǒng) 計(jì)匸按性別統(tǒng)計(jì)L按工作統(tǒng)計(jì)按任意鍵返回主界面五、詳細(xì)設(shè)計(jì)及運(yùn)行結(jié)果流程圖,函數(shù)之間相互調(diào)用的圖示,程序設(shè)計(jì)及編碼,運(yùn)行結(jié)果。 主函數(shù):輸出信息r結(jié)束19 / 17查詢模塊:統(tǒng)計(jì)模塊:開始開始六、調(diào)試情況,設(shè)計(jì)技巧及體會(huì)1、對(duì)自

5、己設(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ù)慕?。因本人定義了全局變量,使操作更加簡(jiǎn)單易行,使用了結(jié)構(gòu)體數(shù)組,避開鏈表 那樣的復(fù)雜操作。但不足之處便是沒有鏈表那樣節(jié)省內(nèi)存。如有機(jī)會(huì)下次可能 會(huì)用鏈表。2、在設(shè)計(jì)過程中的感受。在把字符一個(gè)個(gè)敲上屏幕時(shí),坐在那一動(dòng)不動(dòng)相當(dāng)?shù)目菰铮幌氲竭^會(huì)兒就能 看到自己親自編的程序,就只能忍吧 。當(dāng)看到模塊一個(gè)個(gè)運(yùn)行后與預(yù)料中的 完全一樣時(shí),郁悶的心情

6、立馬被一種成就感替代。就想趕緊編完看看自己的杰 作。然而也會(huì)遇到自己解決不了的問題,就只能去求老師了。這次最大的感受就是當(dāng)你竭盡全力的干一件事時(shí),就沒有能擋住你的困難。七、參考文獻(xiàn)C 語言課本。/*文件名 */* 當(dāng)前該廠人數(shù) */* 時(shí)間結(jié)構(gòu)體 */八、附錄: 源代碼 #include #include #define MAX 100 char filename20;FILE *fp;int n; struct date int year;int mouth; int day; ;struct person/* 員工信息結(jié)構(gòu)體 */ char name10;/*姓名*/int age;/*年

7、齡*/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( 開始輸入員工的信息 n); printf(n 請(qǐng)輸入現(xiàn)有員工人數(shù) n);scanf(%d,&n); if(fp=fopen(filename,w)=NULL) printf( 不能建立! n)

8、;exit(); for(i=0;in;i+) printf(第%d 個(gè)人的信息:n,i+1); printf( 姓名 n);scanf(%s,);printf( 年齡 n);scanf(%d,&workeri.age);printf( 工作 n);scanf(%s,workeri.job);prin tf(性別 n);scanf(%s,workeri.sex);printf( 地址 n);scanf(%s,workeri.address);printf( 電話 n);scanf(%s,workeri.phone);printf( 入廠年 n);scanf(%d,&wo

9、rkeri.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,,workeri.age,w orkeri.job,workeri.sex,workeri.address,workeri.phone,workeri.in_time.yea

10、r,worker i.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地址t電話t入廠時(shí)間n); for(i=0;in;i+) fscanf(fp,%s %d %s %s %s %s %d-%d-%d,,&work

11、eri.age,workeri.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,workeri.address,workeri.p hone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_t

12、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,,workeri.age,w orkeri.job,workeri.sex,workeri.address,workeri.phone,workeri.in_time.ye

13、ar,worker i.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)按任意鍵返回主菜單進(jìn)行信息錄入 n); getch();for(i=0;in;i+)fscanf(fp,%s %d %s %s %s %s %d-%d-%d,workeri.na

14、me,&workeri.age,workeri.job,workeri.sex,workeri.address,workeri.phone,&workeri.in_time.year,&workeri.in_ti me.mouth,&workeri.in_time.day);fclose(fp);/*修改模塊 */void modify() int i,flag,choice; char ch,namekey10;flag=0;clrscr();printf( 開始修改 n);doprintf( 請(qǐng)輸入要修改的員工姓名 n);scanf(%s,namekey);for(i=0;in;i+) i

15、f(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.p hone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.day);getchar();/*接收回車 */ch=getchar();

16、if(ch=y) printf(* 您要修改那一項(xiàng)?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(*9, 入廠日 *nn);printf(請(qǐng)選擇(1-9)n);*nn);scanf(%d,&choice); switch(choice)case 1: printf(輸入修改后的姓名n); scanf(%s,);

17、 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;case 6: printf(輸入修改后的電話n); scanf(%s,workeri.phone); break;case 7

18、: printf(輸入修改后的入廠年n); 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%st%st%st%d-%d-%dn,,workeri

19、.age,workeri.job,workeri.sex,workeri.address,workeri.p hone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.day);else break;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) ;g

20、etch(); /*添加模塊 */ void add() int i,flag=0; char ch;開始添加新員工 n);*nn);請(qǐng)輸入添加職工的信息 (姓名 ,年齡 ,工作 ,性別 ,地址 ,電話 ,入廠時(shí)clrscr(); printf(n printf( do i=n; printf(n間)n);printf(姓名 n); scanf(%s,); printf( 年齡 n);scanf(%d, &workeri.age); printf( 工作 n); scanf(%s,workeri.job); printf(性別n); scanf(%s,workeri.s

21、ex); 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();

22、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)n);prin

23、tf(姓名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.p hone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.day);getchar();/*接收回車 */ch=getchar();if(ch=y) for(;in;i+)workeri=workeri+1;n-;else break;elseif(i

24、=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 printf( printf( printf( printf( printf( scanf(%d,&i); switch(i)* 更新員工信息 *nn); 按 1,添加

25、員工信息 nn); 按 2,刪除員工信息 nn); 按 3,修改員工信息 nn); 按 0, 返回主菜單 n); 請(qǐng)選擇 (0-3)n); 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+) i

26、f(strcmp(,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.p hone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.day); else j+;if(j=n) printf( 此人不存

27、在 n); printf( 按任意鍵返回主菜單 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,work

28、eri.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();/*按工作查找 */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,

29、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.p hone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.day);else j+;if(j=n)printf( 此人不存在 n);printf( 按任意鍵返回主菜單 n); getch()

30、;/*查詢模塊 */ void inquire() int i;do* 查詢員工信息 *nn); *1, 按姓名查詢 *nn); *2, 按年齡查詢 *nn); *3, 按工作查詢 *nn); *0, 返回主菜單 n);請(qǐng)選擇 (0-3)n); clrscr(); printf(nnn printf( printf( printf( printf( printf( scanf(%d,&i); switch(i) case 1: name_cha();break; case 2: age_cha(); break; case 3: job_cha();break;case 0: break; w

31、hile(i!=0);/*排列模塊 */void line() int i,j;clrscr();printf( 按年齡排序 nn);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-%dn,,workeri.age,workeri.job,workeri.sex,workeri.address,workeri

32、.p hone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.day);printf( 按任意鍵返回主菜單 n); getch();/* 按年齡統(tǒng)計(jì) */void count_age() int i,j; int agekey;j=0;clrscr();printf(輸入要統(tǒng)計(jì)員工的年齡 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%d

33、t%st%st%st%st%d-%d-%dn,,workeri.age,workeri.job,workeri.sex,workeri.address,workeri.p hone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.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( 輸入

34、要統(tǒng)計(jì)的員工職務(wù) n); scanf(%s,jobkey);for(i=0;in;i+) if(strcmp(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.p hone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time

35、.day);else j+;if(j=n)printf(暫無該職務(wù)或該職務(wù)暫時(shí)無人n);printf(按任意鍵返回主菜單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.p hone,workeri.in_time.year,workeri.in_time.mouth,workeri.in_time.day); else j+;if(j=n)printf(暫無該性別員工n);printf(按任意鍵返回主菜單n); getch();/*統(tǒng)計(jì)模塊 */ void count() int i;do* 統(tǒng)計(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. 人人文庫(kù)網(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)論