版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、八才日出7期才設(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è):軟件工程學(xué) 號(hào):B10060XXX學(xué)生姓名:XX指導(dǎo)教師:X X2012年9月16日第一章 設(shè)計(jì)要求21.1 問題描述 21.2 需求分析 2第二章 概要設(shè)計(jì)32.1 主界面設(shè)計(jì) 32.2 存儲(chǔ)結(jié)構(gòu)設(shè)計(jì) 32.3 系統(tǒng)功能設(shè)計(jì) 4第三章 模塊設(shè)計(jì)43.1 系統(tǒng)子程序及功能設(shè)計(jì) 43.2 系統(tǒng)功能圖 5第四章 詳細(xì)設(shè)計(jì)54.1 數(shù)據(jù)類型
2、定義 54.2 系統(tǒng)主要子程序詳細(xì)設(shè)計(jì) 61 . 顯示函數(shù): 62 .刪除函數(shù): 63 .查詢函數(shù): 74 .修改函數(shù): 95 .主函數(shù): 108.其他函數(shù): 11第五章 測(cè)試分析125.程序各功能的運(yùn)行結(jié)果: 125.1 系統(tǒng)主界面 125.2 建立信息 125.3 修改信息 135.4 查詢信息 135.5 顯示信息 145.6 刪除信息 145.7 退出系統(tǒng) 15第六章 源程序清單16第七章 工作總結(jié)23第八章參考文獻(xiàn)23第一章 設(shè)計(jì)要求1.1 問題描述企業(yè)員工信息管理系統(tǒng),包括企業(yè)中所有員工的基本信息,如:工號(hào)、姓名、性別、學(xué)歷等。且該系統(tǒng)能夠完成新員工的增添、所有員工信息的相應(yīng)查詢、
3、修改、刪除等各項(xiàng)功能。1.2 需求分析( 1)在相應(yīng)的每條記錄中,應(yīng)該包括該員工的所有信息,如:工號(hào)、姓名、性別、學(xué)歷等;( 2)根據(jù)不同關(guān)鍵字(如工號(hào),姓名等),對(duì)所有員工的信息進(jìn)行排序;( 3)按照指定條件查找某個(gè)員工的所有信息;( 4)按工號(hào)對(duì)某個(gè)員工的信息進(jìn)行修改;( 5)添加新員工的信息;( 6)按工刪除已離職、退休員工的信息;( 7) 與此同時(shí),除了以上基本的需求以外,該企業(yè)員工信息管理系統(tǒng)的程序源代碼還應(yīng)具有良好的編程結(jié)構(gòu)和適當(dāng)?shù)淖⑨?,運(yùn)行界面清晰,提示內(nèi)容明確,易于操作。第二章概要設(shè)計(jì)2.1 主界面設(shè)計(jì)當(dāng)輸入相應(yīng)的操作字符(如:數(shù)字 0-6),實(shí)現(xiàn)并完成各項(xiàng)功能操作(如: 建立
4、、修改、刪除、顯示、退出等)。系統(tǒng)主界面如下:人八 歡:卬使用傘1/員工信.息、,皋統(tǒng) 人 人 就JtXJtM猶M*/錄錄表息記記息信息息息統(tǒng)代工密宿代和工員工工工理立人詢除一甯建排查刪顯退12 3 4-50mu *_*歡迎使用企業(yè)員工信息系統(tǒng)"_人坤售.20129 P12 B2.2 存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)依據(jù)給定的數(shù)據(jù)格式,個(gè)人信息由四個(gè)字段來組成,即工號(hào)、姓名、性別、學(xué)歷,外 加一個(gè)判斷關(guān)鍵字。如:工號(hào)|姓名|性別|學(xué)歷123 feng n daxue本課程設(shè)計(jì)根據(jù)功能需求,使用線性結(jié)構(gòu)來組織數(shù)據(jù),由于要對(duì)表中某項(xiàng)數(shù)據(jù)進(jìn)行插 入、刪除操作,所以使用鏈表比較方便。2.3 系統(tǒng)功能設(shè)計(jì)依據(jù)程序
5、的數(shù)據(jù)結(jié)構(gòu)和功能,遵照“自頂向下,逐步細(xì)化”原則,描述該程序的層次結(jié)構(gòu),在總體上包括數(shù)據(jù)的增添、修改、刪除、查詢以及數(shù)據(jù)的顯 示等功能模塊。(1) 新增函數(shù)功能:通過輸入各項(xiàng)數(shù)據(jù)給數(shù)據(jù)元素,來建立一個(gè)數(shù)據(jù)表。(2) 顯示函數(shù)功能:輸出表中所有節(jié)點(diǎn)的信息。(3) 查詢函數(shù)功能:按照指定關(guān)鍵字,對(duì)相應(yīng)員工信息進(jìn)行查詢。(4) 修改函數(shù)功能:輸入員工工號(hào),查詢員工信息,對(duì)其信息進(jìn)行修改。(5) 刪除函數(shù)功能:查找到要?jiǎng)h除員工的相應(yīng)信息,并將其從表中永久的刪除。(6) 主函數(shù)功能:調(diào)用以上子函數(shù),并用開關(guān)語(yǔ)句進(jìn)行選擇性的調(diào)用。第三章 模塊設(shè)計(jì)3.1 系統(tǒng)子程序及功能設(shè)計(jì)(1) 新增員工信息,利用函數(shù):
6、creatlist(linklist &L)(2) 顯示所有員工信息,利用函數(shù):display(linklist&L)(3) 刪除員工信息,是按員工工號(hào)刪除,利用函數(shù):delet(linklist &L,char num6)(4) 查詢員工信息,按工號(hào)和姓名進(jìn)行查詢;按工號(hào)查詢利用函數(shù):searchnum(linklist &L,char num10) ;按姓名查詢利用函數(shù):searchname(linklist &L,char name10)(5) 修改員工信息,利用函數(shù):alter(linklist &L,char num6)3.2 系統(tǒng)功能
7、圖第四章詳細(xì)設(shè)計(jì)4.1 數(shù)據(jù)類型定義結(jié)構(gòu)體定義:typedef struct nodechar num6;/ 工號(hào)char name10;/ 姓名char sex6;/ 性別char degree20; / 學(xué)歷struct node *next;/ 指針域 node,*linklist;4.2 系統(tǒng)主要子程序詳細(xì)設(shè)計(jì)1. 顯示函數(shù)函數(shù)原型:void display(linklist &L)函數(shù)功能:輸出表中所有節(jié)點(diǎn)的信息。算法要點(diǎn):使用循環(huán)輸出所有信息。主要算法:void display(linklist &L)linklist p;for(p=L->next;p;p=
8、p->next)printf(" 工號(hào)%s",p->num);printf(" 姓名%s",p->name);printf(" 性別%s",p->sex);printf(" 學(xué)歷%s",p->edu);2. 刪除函數(shù)函數(shù)原型:void delet(linklist &L,char num6)函數(shù)功能:查找到要?jiǎng)h除員工的相應(yīng)信息,并將其從表中永久的刪除。算法要點(diǎn):(1) 按關(guān)鍵字查找信息;(2) 鏈表中刪除節(jié)點(diǎn)信息,并釋放節(jié)點(diǎn)空間。主要算法:int delet(linklist
9、&L, char num6 )node *p;/*實(shí)現(xiàn)刪除操作的臨時(shí)的結(jié)構(gòu)體指針變量*/node *r;p=L->next;r=L;if(!L->next)/當(dāng)list 無后繼結(jié)點(diǎn)時(shí),提示和結(jié)束返回del()printf("n=> 提示 : 沒有記錄可以刪除!n");printf("n");return 1;while(!(strcmp(p->num,num)=0)&&p)r=p;p=p->next;if(!p)printf("nnttt 找不到該職工信息!n");elser-&g
10、t;next=p->next;free(p);printf(" 刪除成功n");printf("n");return 1;3. 查詢函數(shù)(1) 按工號(hào)查詢int searchnum(linklist &L,char num10) node *p;p=L;while(p)if(strcmp(p->num,num)=0)printf("t");printf(" 工號(hào)%s",p->num);printf("t");printf(" 姓名%s",p->
11、name);printf("n");printf("t");printf(" 性別 %s",p->sex);printf("t");printf("t");printf(" 學(xué)歷 %s",p->edu);printf("n");p=p->next;return 1;(2)按姓名查詢int searchname(linklist &L,char name10) node *p;p=L;while(p)if(strcmp(p->
12、name,name)=0)printf("t");printf(" 工號(hào)%s",p->num);printf("t");printf(" 姓名%s",p->name);printf("n");printf("t");printf(" 性別 %s",p->sex);printf("t");printf("t");printf(" 學(xué)歷 %s",p->edu);printf(&
13、quot;n");p=p->next;return 1;4. 修改函數(shù)(按工號(hào)修改)int alter(linklist &L,char num6)node *p;p=L;while(p)if(strcmp(p->num,num)=0)printf(" 請(qǐng)輸入員工的工號(hào):n");printf(" 您輸入的是:");printf("t");scanf("%s",p->num);printf(" 請(qǐng)輸入員工的姓名:n");printf(" 您輸入的是:&
14、quot;);printf("t");scanf("%s",p->name);printf(" 請(qǐng)輸入員工的性別:n");printf(" 您輸入的是:");printf("t");scanf("%s",p->sex);printf(" 請(qǐng)輸入員工的學(xué)歷:n");printf(" 您輸入的是:");printf("t");scanf("%s",p->edu);p=p->ne
15、xt;printf("n");return 1;5. 主函數(shù)主函數(shù)主要是調(diào)用以上的子函數(shù),用開關(guān)語(yǔ)句進(jìn)行選擇性的調(diào)用。大致程序如下:void main()linklist L;int a;char m;char name10;char num6;initlist(L);int g;int f=1;while(f)menu();scanf("%d",&g);printf("n");switch(g)case 1: creatlist(L);doprintf(" 是否繼續(xù)輸入?(y/n)");printf(&q
16、uot;t");getchar();scanf("%c",&m);if(m='y')creatlist(L);while(m!='n');printf("n");break;case 2: printf(" 請(qǐng)輸入修改員工的工號(hào):");printf(" 您輸入的是:");printf("t");getchar();scanf("%s",&num);alter(L,num);printf("n");b
17、reak;case 0: f=0;printf("nn");break;6. 其他函數(shù)這些函數(shù)主要起到輔助功能,比如:菜單函數(shù),主要起到引導(dǎo)作用;菜單函數(shù)原型:void menu()第五章測(cè)試分析5.程序各功能的運(yùn)行結(jié)果:5.1 系統(tǒng)主界面歡迎使用企業(yè)員工信息系統(tǒng)JCMLXJI錄錄表息配配自U信自心自心白3(纖一信工信信總系工員工工工理立改詢除一生建修查刪顯退12 3 4 5 0A_A歡迎使用企業(yè)貝工信息系統(tǒng)A_A乂5.2 建立信息(1)首先輸入操作字符“1”;(2)接著輸入員工信息;(3)最后輸入操作字符“ n”結(jié)束輸入請(qǐng)您從。-5中選擇; 您選擇的是:*請(qǐng)輸入員工的工號(hào)
18、工 12 3請(qǐng)軸I,、員31.的名二 F encf請(qǐng)輸入員工的性另h 請(qǐng)輸入民主的學(xué)歷二 dcixiLie 是否泄續(xù)輸入牙 請(qǐng)輸入員工的工號(hào)二鼻5E請(qǐng)輸入員工的姓名: 請(qǐng)輸入員空的性別:請(qǐng)輸入員士的學(xué)歷;5.3 修改信息(1)首先輸入操作字符“ 2”;(2)再輸入新的員工信息,情您從陰T中選擇:色選擇的是:2請(qǐng)輸入修改員工的工號(hào)二您輸入的是.123人入1A入人入喻.勒軸輔憫鐲號(hào)名別歷在世再 夜糕.琶糕曷456工號(hào)姓名學(xué)歷馮 大學(xué)性別n124姓名學(xué)歷f engi5.4 查詢信息(1)首先輸入操作字符“ 3”;(2)接著輸入操作字符“ 1”或者“2”(即實(shí)現(xiàn)按“工號(hào)”查詢,或者按“姓名”查詢);(
19、3)再輸入編號(hào)的字符“1”;請(qǐng)您從dt中選擇:您另?yè)竦氖牵?請(qǐng)選擇查詢方式C.技工號(hào)查詢.2 .按姓名查找,壁選擇的是i1請(qǐng)薪人查詢員工的工號(hào),您輸入的是:124工號(hào) 124姓名 fenff性別n學(xué)歷.請(qǐng)選擇查詢方式。.按工號(hào)查詢,2 .按姓名查找)您選擇的456n請(qǐng)前入查詢員工的姓名, 您輸入的是:肖姓名學(xué)歷5.5 顯示信息輸入操作字符“ 5” ;請(qǐng)您從"S中選擇:您費(fèi)擇的是:S所有員工的信息如下所示5.6刪除信息輸入操作字符“ 4”;456124 n姓名學(xué)歷姓名學(xué)歷馮 大學(xué)您選擇的是;4所有員工的信息如下所示產(chǎn)、刪除員工的工號(hào);您輸入的是. 124IJ除成功5.7退出系統(tǒng)輸入操作
20、字符“ 0”;請(qǐng)您從0Y中選稻 端擇的是;0我餐*感謝您械用,再見!*«衽ress any key to continue.第六章 源程序清單#include<stdio.h>#include<stdlib.h>#include<string.h> typedef struct node char num6;char name10;char sex3;char edu6; struct node *next;node,*linklist;/定義節(jié)點(diǎn)類型int creatlist(linklist &L)linklist p;p=(linkl
21、ist)malloc(sizeof(node); if(!p)return (0);elseprintf(" 請(qǐng)輸入員工的工號(hào)printf("t");scanf("%s",p->num);printf(" 請(qǐng)輸入員工的姓名printf("t");scanf("%s",p->name);printf(" 請(qǐng)輸入員工的性別printf("t");scanf("%s",p->sex);printf(" 請(qǐng)輸入員工的學(xué)歷pri
22、ntf("t");scanf("%s",p->edu);/頭插法生成單鏈表:n");:n");:n");:n");p->next=L->next;L->next=p;int initlist(linklist &L)/初始化單鏈表L=(linklist)malloc(sizeof(node); if(!L) return (0);L->next=NULL;return 1;void meau()printf("t*AA歡迎使用企業(yè)員工信息系統(tǒng)A_A *n")
23、printf("n");printf("t*1 建立員工信息表*n");printf("t*2 插入新員工信息*n");printf("t*3 查詢員工信息記錄*n");printf("t*4 刪除員工信息記錄*n");printf("t*5 顯示員工信息*n");printf("t*0 退出管理系統(tǒng)*n");printf("n");printf("t*AA歡迎使用企業(yè)員工信息系統(tǒng)A_A *n")printf(&qu
24、ot;n");printf("tXXXn");printf("t2012 年 9 月 12 日 n");printf("n");printf(" 請(qǐng)您從 0-5 中選擇 :n");printf(" 您選擇的是:");printf("t");void display(linklist &L)/顯示所有員工信息linklist p;for(p=L->next;p;p=p->next)printf("t");printf("
25、; 工號(hào)%s",p->num);printf("t");printf(" 姓名%s",p->name);printf("n");printf("t");printf(" 性別 %s",p->sex);printf("t");printf("t");printf(" 學(xué)歷 %s",p->edu);printf("n");printf("n"); printf(&qu
26、ot;n");int delet(linklist &L,char num6)/按工號(hào)刪除node *p;/*實(shí)現(xiàn)刪除操作的臨時(shí)的結(jié)構(gòu)體指針變量*/node *r;p=L->next;r=L;if(!L->next) /當(dāng) list 無后繼結(jié)點(diǎn)時(shí),提示和結(jié)束返回del()printf("n=> 提示 : 沒有記錄可以刪除!n");printf("n");return 1;while(!(strcmp(p->num,num)=0)&&p) r=p;p=p->next; if(!p)printf
27、("nnttt 找不到該職工信息!n");else r->next=p->next;free(p);printf(" 刪除成功n");printf("n");return 1;/查詢工號(hào)int searchnum(linklist &L,char num10)node *p;p=L;while(p)if(strcmp(p->num,num)=0)printf("t");printf(" 工號(hào)%s",p->num);printf("t");pri
28、ntf(" 姓名%s",p->name);printf("n");printf("t");printf(" 性別 %s",p->sex);printf("t");printf("t");printf(" 學(xué)歷 %s",p->edu);printf("n");p=p->next;return 1;/查詢姓名int searchname(linklist &L,char name10)node *p;p=L;
29、while(p)if(strcmp(p->name,name)=0)printf("t");printf(" 工號(hào)%s",p->num);printf("t");printf(" 姓名%s",p->name);printf("n");printf("t");printf(" 性別 %s",p->sex);printf("t");printf("t");printf(" 學(xué)歷 %s&q
30、uot;,p->edu);printf("n");p=p->next;return 1;/修改信息int alter(linklist &L,char num6) node *p;p=L;while(p)if(strcmp(p->num,num)=0)printf(" 請(qǐng)輸入員工的工號(hào):n");printf(" 您輸入的是:");printf("t");scanf("%s",p->num);printf(" 請(qǐng)輸入員工的姓名:n");print
31、f(" 您輸入的是:");printf("t");scanf("%s",p->name);printf(" 請(qǐng)輸入員工的性別:n");printf(" 您輸入的是:");printf("t");scanf("%s",p->sex);printf(" 請(qǐng)輸入員工的學(xué)歷:n");printf(" 您輸入的是:");printf("t");scanf("%s",p->
32、;edu);p=p->next;printf("n");return 1;void main()/主函數(shù)linklist L;int a;char m;char name10;char num6;initlist(L);int g;int f=1;while(f)meau();scanf("%d",&g);printf("n");switch(g)case 1: creatlist(L);doprintf(" 是否繼續(xù)輸入?(y/n)");printf("t");getchar()
33、;scanf("%c",&m);if(m='y')creatlist(L);while(m!='n');printf("n");break;case 2: printf("請(qǐng)輸入修改員工的工號(hào):");printf(" 您輸入的是:");printf("t");getchar();scanf("%s",&num);alter(L,num);printf("n");break;case 3: printf(&qu
34、ot;請(qǐng)選擇查詢方式(1.按工號(hào)查詢,2.按姓名查找)");printf("n");printf(" 您選擇的是:");printf("t");scanf("%d",&a);if(a=1)printf(" 請(qǐng)輸入查詢員工的工號(hào):n");printf(" 您輸入的是:");printf("t");scanf("%s",&num);printf("n");searchnum(L,num);if(a=2)printf(" 請(qǐng)輸入查詢員工的姓名:n");printf(" 您輸入的是:");
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年盲頭螺紋嵌件項(xiàng)目可行性研究報(bào)告
- 2025年激光掃描測(cè)微儀項(xiàng)目可行性研究報(bào)告
- 2025至2031年中國(guó)打印機(jī)輥行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年廢塑料一次擠出成型機(jī)項(xiàng)目可行性研究報(bào)告
- 2025年分體式活塞項(xiàng)目可行性研究報(bào)告
- 2025年亮藍(lán)食用色素項(xiàng)目可行性研究報(bào)告
- 2025至2030年中國(guó)飛行仿真模擬訓(xùn)練軟件數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年鉆桿護(hù)絲項(xiàng)目投資價(jià)值分析報(bào)告
- 2025至2030年中國(guó)酒精泵數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年汽車號(hào)牌項(xiàng)目投資價(jià)值分析報(bào)告
- 桃李面包盈利能力探析案例11000字
- GB/Z 30966.71-2024風(fēng)能發(fā)電系統(tǒng)風(fēng)力發(fā)電場(chǎng)監(jiān)控系統(tǒng)通信第71部分:配置描述語(yǔ)言
- 腦梗死的護(hù)理查房
- 2025高考數(shù)學(xué)專項(xiàng)復(fù)習(xí):概率與統(tǒng)計(jì)的綜合應(yīng)用(十八大題型)含答案
- 產(chǎn)后抑郁癥講課課件
- 2024-2030年中國(guó)紫蘇市場(chǎng)深度局勢(shì)分析及未來5發(fā)展趨勢(shì)報(bào)告
- 銷售人員課件教學(xué)課件
- LED大屏技術(shù)方案(適用于簡(jiǎn)單的項(xiàng)目)
- 2024智慧城市數(shù)據(jù)采集標(biāo)準(zhǔn)規(guī)范
- Lesson 6 What colour is it(教學(xué)設(shè)計(jì))-2023-2024學(xué)年接力版英語(yǔ)三年級(jí)下冊(cè)
- 歷年國(guó)家二級(jí)(Python)機(jī)試真題匯編(含答案)
評(píng)論
0/150
提交評(píng)論