企業(yè)員工信息管理系統(tǒng) 設(shè)計(jì)與實(shí)現(xiàn) c語言
莎多匸術(shù)止寫以分仔山扌憂Xi'an Technological University North Institute of Information Engineering算法與數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)題目企業(yè)員工信息管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)院、系:計(jì)算機(jī)信息與技術(shù)系 學(xué)科專業(yè):計(jì)算機(jī)科學(xué)與技術(shù) 學(xué) 號(hào): B學(xué)生姓名:指導(dǎo)教師:2012年9月16日目錄第一章 設(shè)計(jì)要求問題描述近年來,隨著企業(yè)彼此間的競(jìng)爭(zhēng)日趨激烈,信息管理技術(shù)在企業(yè)的發(fā)展中 占據(jù)著越來越重要的地位。在企業(yè)的經(jīng)營(yíng)生產(chǎn)中,員工信息已成為企業(yè)經(jīng)營(yíng)管 理中不可缺少的一部分,為管理者進(jìn)行管理決和進(jìn)行各種人事調(diào)配活動(dòng)提供了 重要的依據(jù),在生產(chǎn)分配安排中發(fā)揮了越來越重要的作用。此次課程設(shè)計(jì)應(yīng)該 具有的功能是能夠查看員工的個(gè)人信息,每個(gè)員工的信息包括:編號(hào)、姓名、 性別、部門、工資;系統(tǒng)能夠完成員工信息的查詢、更新、插入、刪除、排序 等功能。需求分析(1)在相應(yīng)的每條記錄中,應(yīng)該包括該員工的所有信息,譬如:編號(hào)、姓名、性別、 出生年月、學(xué)歷、職務(wù)、電話、住址等;(2)根據(jù)不同關(guān)鍵字(如編號(hào),姓名等),對(duì)所有員工的信息進(jìn)行排序;(3)按照指定條件查找某個(gè)員工的所有信息;(4)按編號(hào)對(duì)某個(gè)員工的信息進(jìn)行更改;(5)添加新員工的信息,并實(shí)現(xiàn)排序;(6)按編號(hào)刪除已離職的員工的信息;(7)與此同時(shí),除了以上基本的需求以外,該企業(yè)員工信息管理系統(tǒng)的程序源代碼還應(yīng) 具有良好的編程結(jié)構(gòu)和適當(dāng)?shù)淖⑨專\(yùn)行界面清晰,提示內(nèi)容明確,易于操作。第二章概要設(shè)計(jì)主界面設(shè)計(jì)當(dāng)輸入相應(yīng)的操作字符(比如:0-6或者#),通過在主函數(shù)中選擇并調(diào)用對(duì)應(yīng)的子函 數(shù)程序以及其他函數(shù)(比如:菜單函數(shù))中的輔助調(diào)用,實(shí)現(xiàn)并完成各自的功能操作(比 如:添加、查找、更改、排序、刪除、顯示等)。系統(tǒng)主界面如下:Fil esMiGrosoft Visual Studi QMyFrojec IsVgKgV:戲迎使用員工信息管理系統(tǒng) 歡迎充臨-u畧容貝 加找常 J-s 13 5 0* * K «ff自亠息LLIU=_J-.L=_J-丁信自:! 丄I 口LlT 屮員 氣刪除虹息I24.存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)依據(jù)給定的數(shù)據(jù)格式,個(gè)人信息由九個(gè)字段來組成,即編號(hào)、姓名、性別、生日、學(xué) 歷、職務(wù)、電話和住址,外加一個(gè)判斷關(guān)鍵字。如:編號(hào)|姓名|性別丨出生年月|學(xué)歷|職務(wù)|電話丨住址01 fdf n 1991-10 b q 189 p本課程設(shè)計(jì)根據(jù)功能需求,使用線性結(jié)構(gòu)來組織數(shù)據(jù),由于要對(duì)表中某項(xiàng)數(shù)據(jù)進(jìn)行插 入、刪除操作,所以使用鏈表比較方便。系統(tǒng)功能設(shè)計(jì)依據(jù)程序的數(shù)據(jù)結(jié)構(gòu)和功能,遵照“自頂向下”原則,描述該程序的層次結(jié)構(gòu),在總 體上包括數(shù)據(jù)的插入、添加、刪除、查找、更改和數(shù)據(jù)的排序以及數(shù)據(jù)的顯示等功能模塊。(1)輸入函數(shù)功能:通過輸入各項(xiàng)數(shù)據(jù)給數(shù)據(jù)元素,來建立一個(gè)數(shù)據(jù)表。(2) 排序函數(shù)功能:按照指定關(guān)鍵字對(duì)員工信息進(jìn)行排序。(3) 顯示函數(shù)功能:輸出表中所有節(jié)點(diǎn)的信息。(4) 查找函數(shù)功能:按照指定關(guān)鍵字,對(duì)相應(yīng)員工信息進(jìn)行查找。(5) 更改函數(shù)功能:輸入員工編號(hào),查找到員工信息,對(duì)其信息進(jìn)行更新。(6) 刪除函數(shù)功能:查找到要?jiǎng)h除員工的相應(yīng)信息,并將其從表中永久的刪除。(7) 主函數(shù)功能:調(diào)用以上子函數(shù),并用開關(guān)語句進(jìn)行選擇性的調(diào)用。(8) 其它函數(shù)功能:主要起輔助作用,比如:菜單函數(shù),主要起到引導(dǎo)作用;釋放空間函數(shù),主要用于釋放已經(jīng)刪除節(jié)點(diǎn)的信息,或者釋放整個(gè)鏈表的節(jié)點(diǎn)信息。第三章 模塊設(shè)計(jì)系統(tǒng)子程序及功能設(shè)計(jì)1. 創(chuàng)建成員表函數(shù)Stuff *Cre(Stuff *head)排序函數(shù)void Sort(Stuff *head)判斷函數(shù)int Sel(char ch,Stuff *p,Stuff *q) 查找函數(shù) Stuff *Search(Stuff *head)刪除函數(shù)Stuff *Del(Stuff *head,char n10)工結(jié)構(gòu)體定義struct Stuff char number10;char name10;char sex8;char borth10;char degree20;char business20;char phone15;char place50;char con50;struct Stuff *next;系統(tǒng)主要子程序詳細(xì)設(shè)計(jì)1.輸入函數(shù):Stuff *App(Stuff *head)Stuff *p=NULL,*q=head; while(n)p=(Stuff *)malloc(sizeof(Stuff); 序函數(shù)void Sort(Stuff *head)char ch;Stuff *p,*q,*r; while(1)printf("請(qǐng)選擇排序條件:1 .編號(hào)12 .姓名10.退出n"); getchar();scanf("%c",&ch);if(ch='0')break;if(ch<'1'|ch>'2')printf("輸入錯(cuò)誤,請(qǐng)重新輸入!n");continue;p=head;while(p->next!=NULL) 示函數(shù):void Show(Stuff *head)Stuff *p=head;int n=1;if(head!=NULL)printf("員工信息如下:n");printf(" 編號(hào) | 姓名 | 性別 | 出生年月 | 學(xué)歷 | 職務(wù) | 電話 | 住址 :n"); while(p!=NULL)printf("%d. %s %s %s%s%s %s %s %sn",n+,p->number ,p->name ,p->sex ,p->birthday ,p->degree ,p->business ,p->phone ,p->plac e);p=p->next ;elseprintf("信息為空! n");4.查找函數(shù):Stuff *Search(Stuff *head)Stuff *p=NULL,*q,a="0","0","0","0","0","0","0","0"intflag;號(hào) 2.姓名 0.退出n");scanf(" %c",&ch);if(ch='0')break;if(ch<'1'|ch>'2')printf("輸入錯(cuò)誤,請(qǐng)重新輸入!n");continue;getchar();printf("請(qǐng)輸入:”);gets(q->con);p=head;改 2.刪除 3.繼續(xù)n");scanf(" %c",&sh); if(sh='1')Change(head,p->number); 改函數(shù):Stuff *Change(Stuff *head,char n10)Stuff *p=head;int flag=0;if(head=NULL)printf("信息表為空,請(qǐng)先建立信息表!n");else while(p!=NULL) if(!strcmp(p->number,n)printf(”找到員工,請(qǐng)輸入新的信息:n編號(hào)丨姓名丨性別丨出生年月I 學(xué)歷 | 職務(wù) | 電話 | 住址 n");scanf("%s%s%s%s%s%s%s%s",p->number ,p->name ,p->sex ,p->birthday ,p->degree ,p-> business ,p->phone ,p->place );printf(”員工信息如下:n");flag=1;p=p->next;if(flag=0)printf("未找到該員工信息!n");Show(head);return head;Del除函數(shù):void Fre(Stuff *head)Stuff *p;while(head!=NULL)p=head; head=head->next ; free(p);7主函數(shù):void main()char Index10;Del他函數(shù):Stuff *head=NULL;charMenu();oaTPxog/E an Fileitt ITl su-al Si.u.J±ec t B.g.gDeLug.figg.-二貝旦囚 亦話岀 一誓吏退 -13 5 0歡迎另I特 自一八一.一一口s信目口 jLu-h*H S-*itE擇禰的?w: 1 工詹氤 直接輸人肝結(jié)束 訃窮丄名員一:自I姓名性別;山生E月;學(xué)歷!職務(wù);屯姑:(£11 =旦X白心白心自心 信信信 工工工 DB5BJ 貝 加找改出 H 丄3 5 0編號(hào);2姓名苗退岀丄in元匸、災(zāi)口 I編號(hào)!姓名I性別:岀注年月:學(xué)歷:職務(wù)!電話:住址: 01yang xinjjnan1991(12henmeiouehanxitt議翳薜爲(wèi)篇郭姓名:淞岀18«923474«7Cr» *C ' Progr« FilocVlicrocoFt Vi suftl Studi oByProj actsK<»»<»*c: °C: ProgxtB FilesVlicresoft Visual StudioViyProiectsVccrcVDebucVzcc:. exe*歡迎光I息自3息 工工工 口容苕貝 加找改岀 添童貝退 13 5 0* * * *誼輸入貪璟息如下:14 !姓名!性別!出主年月!學(xué)歷!職務(wù)!電話!住址01yangxingnan 199102ben ne(shanxiUJal x是否需要漢更改2 刪除3繼續(xù)Cs *C * Profpr Fileclicr-ocoFt Vi KUftl Stu<li oHyProj act k白心息息工工工庁曰匕白匕 息工工 信DBP刃 工LH陳番選擇你的崔作 貝工信息戈口、;編號(hào)!姓名:4!性別;出生年月;學(xué)歷;職気;電話住址=1-01 yangxingnan199102benneyou1580?2347407shaiixiU技E2”犍繼續(xù)冷«:=:'. *C: Tro gru F ileEMicrttEoft Visual S tudi a lyFr o j ec tsax a13 5加找改岀S-S自心自心自JljJI d-15-1wjj一 口 工工工歡迎光臨冬員工信息挑序*4-輸岀囚工#息 *6冊(cè)除帛工信息*請(qǐng)選擇你的寒俘yyy|n| xin .m工!宦Ent眈犍繼續(xù)二一豈小苣4亙4 二囚RK 一皿找及出-SS一 Id歡迎光臨1=1也:01介入新的信息:i性別;岀生年月i學(xué)歷!職務(wù)!電話!住址y吊T栓自貝丄勺-編號(hào)I姓名性別;出生年月;學(xué)歷;職務(wù)!電話;住址=1.02 uyyyyyu *C. rrB « FiLehiMicruDfl FisuaJ. 51udioiyFrojectggg- e*Del立員工信息n");printf(”*1.添加員工信息2員工信息排序*n");printf(”*3查找員工信息4輸出員工信息*n");printf(”*5更改員工信息6.刪除員工信息*n");printf(”*0.退出*n");printf(”n");printf("請(qǐng)選擇你的操作:");scanf(" %d",&ch); return ch;號(hào)12.姓名10.退出n");getchar(); scanf("%c",&ch);if(ch='0') break;if(chvTllch>2)printf(”輸入錯(cuò)誤,請(qǐng)重新輸入!n");continue;p=head;while(p->next!=NULL)q=p->next;r=p;while(q!=NULL)if(Sel(ch,r,q)r=q;q=q->next;if(r!=p)Scpy(r->number,p->number);Scpy(r->name,p->name);Scpy(r->sex,p->sex);Scpy(r->birthday,p->birthday);Scpy(r->degree,p->degree);Scpy(r->business,p->business);Scpy(r->phone,p->phone);Scpy(r->place,p->place);p=p->next;Show(head);號(hào)2.姓名0.退出n");scanf(" %c",&ch);if(ch='0')break;if(ch<'1'|ch>'2')printf("輸入錯(cuò)誤,請(qǐng)重新輸入!n"); continue;getchar();printf("請(qǐng)輸入:”);gets(q->con);p=head;flag=0;while(p!=NULL)if(strcmp(q->con,p->number)=0|strcmp(q->con,p->name)=0)printf(”員工信息如下:n");printf(" 編號(hào) | 姓名 | 性別 | 出生年月 | 學(xué)歷 | 職務(wù) | 電話 | 住址 n%st%st%st%st%st%st%st%sn",p->number ,p->name ,p->sex ,p->birthday ,p->degree ,p->business ,p->phone ,p->place )printf(”是否需要:1.更改2刪除3繼續(xù)n");scanf(" %c",&sh);if(sh='1')Change(head,p->number);else if(sh='2')head=Del(head,p->number);flag=1;break;p=p->next ;if(flag=0)printf("沒有找到該員工信息!n");return head;Del %s %s %s%s%s %s %s %s n",n+,p->number ,p->name ,p->sex ,p->birthday ,p->degree ,p->business ,p->phone ,p->plac e);p=p->next ;elseprintf("信息為空! n");1 .Del據(jù)結(jié)構(gòu)一C語言描述高等教育出版社.2005/067511.2 .譚浩強(qiáng).C程序設(shè)計(jì).清華大學(xué)出版社.2007/014674.3 .嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu):C語言版.清華大學(xué)出版社,2007.