




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、算法與數(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 X 2012年9月16日目 錄第一章 設(shè)計(jì)要求21.1 問(wèn)題描述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ù)類型定義54.2 系統(tǒng)主要子程序詳細(xì)設(shè)計(jì)61.顯示函數(shù):62.刪除函數(shù):63.查詢函數(shù):74.修改函數(shù):95.主函數(shù):108.其他函數(shù):11第五章 測(cè)試分析125
2、.程序各功能的運(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 問(wèn)題描述企業(yè)員工信息管理系統(tǒng),包括企業(yè)中所有員工的基本信息,如:工號(hào)、姓名、性別、學(xué)歷等。且該系統(tǒng)能夠完成新員工的增添、所有員工信息的相應(yīng)查詢、修改、刪除等各項(xiàng)功能。1.2 需求分析(1)在相應(yīng)的每條記錄中,應(yīng)該包括該員工的所有信息,如:工號(hào)、姓名、性別、學(xué)歷等;(2)根據(jù)不同關(guān)鍵字(如工號(hào),姓名等),對(duì)所有員工的信息進(jìn)行排序;(3)按照指定條件查找某個(gè)員
3、工的所有信息;(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)功能操作(如:建立、修改、刪除、顯示、退出等)。系統(tǒng)主界面如下:2.2 存儲(chǔ)結(jié)構(gòu)設(shè)計(jì)依據(jù)給定的數(shù)據(jù)格式,個(gè)人信息由四個(gè)字段來(lái)組成,即工號(hào)、姓名、性別、學(xué)歷,外加一個(gè)判斷關(guān)鍵字。如: 工號(hào) | 姓名 | 性別 | 學(xué)歷 123 feng n daxu
4、e 本課程設(shè)計(jì)根據(jù)功能需求,使用線性結(jié)構(gòu)來(lái)組織數(shù)據(jù),由于要對(duì)表中某項(xiàng)數(shù)據(jù)進(jìn)行插入、刪除操作,所以使用鏈表比較方便。2.3 系統(tǒng)功能設(shè)計(jì)依據(jù)程序的數(shù)據(jù)結(jié)構(gòu)和功能,遵照“自頂向下,逐步細(xì)化”原則,描述該程序的層次結(jié)構(gòu),在總體上包括數(shù)據(jù)的增添、修改、刪除、查詢以及數(shù)據(jù)的顯示等功能模塊。(1)新增函數(shù)功能:通過(guò)輸入各項(xiàng)數(shù)據(jù)給數(shù)據(jù)元素,來(lái)建立一個(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ù)
5、功能:調(diào)用以上子函數(shù),并用開(kāi)關(guān)語(yǔ)句進(jìn)行選擇性的調(diào)用。第三章 模塊設(shè)計(jì)3.1 系統(tǒng)子程序及功能設(shè)計(jì)(1) 新增員工信息,利用函數(shù): 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 &
6、;L,char name10)(5) 修改員工信息,利用函數(shù): alter(linklist &L,char num6)3.2 系統(tǒng)功能圖主頁(yè)面建立鏈表查詢顯示信息退出修改刪除按工號(hào)按姓名按工號(hào)圖3-2 系統(tǒng)功能圖第四章 詳細(xì)設(shè)計(jì)4.1 數(shù)據(jù)類型定義結(jié)構(gòu)體定義:typedef struct node char 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
7、(linklist &L)函數(shù)功能:輸出表中所有節(jié)點(diǎn)的信息。算法要點(diǎn):使用循環(huán)輸出所有信息。主要算法:void display(linklist &L)linklist p;for(p=L->next;p;p=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(linkl
8、ist &L,char num6)函數(shù)功能:查找到要?jiǎng)h除員工的相應(yīng)信息,并將其從表中永久的刪除。算法要點(diǎn):(1) 按關(guān)鍵字查找信息;(2) 鏈表中刪除節(jié)點(diǎn)信息,并釋放節(jié)點(diǎn)空間。主要算法:int delet(linklist &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無(wú)后繼結(jié)點(diǎn)時(shí),提示和結(jié)束返回del()printf("n=>提示:沒(méi)有記錄可以刪除!n"); printf("n");retur
9、n 1; while(!(strcmp(p->num,num)=0)&&p)r=p;p=p->next;if(!p)printf("nnttt 找不到該職工信息!n");elser->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
10、)=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("n"
11、;);p=p->next;return 1;(2)按姓名查詢int searchname(linklist &L,char name10)node *p;p=L;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("性
12、別 %s",p->sex);printf("t");printf("t");printf("學(xué)歷 %s",p->edu);printf("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("您輸入的是:"
13、); printf("t"); scanf("%s",p->num); printf("請(qǐng)輸入員工的姓名:n"); printf("您輸入的是:"); printf("t"); scanf("%s",p->name); printf("請(qǐng)輸入員工的性別:n"); printf("您輸入的是:"); printf("t"); scanf("%s",p->sex); printf(&
14、quot;請(qǐng)輸入員工的學(xué)歷:n"); printf("您輸入的是:"); printf("t"); scanf("%s",p->edu); p=p->next; printf("n"); return 1;5. 主函數(shù)主函數(shù)主要是調(diào)用以上的子函數(shù),用開(kāi)關(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
15、("%d",&g);printf("n");switch(g)case 1: creatlist(L); do printf("是否繼續(xù)輸入?(y/n)"); printf("t"); getchar(); scanf("%c",&m); if(m='y') creatlist(L); while(m!='n'); printf("n"); break; case 2: printf("請(qǐng)輸入修改員工的工號(hào):"
16、;); printf("您輸入的是:"); printf("t"); getchar(); scanf("%s",&num); alter(L,num); printf("n"); break; ······case 0: f=0; printf("nn"); break;6. 其他函數(shù)這些函數(shù)主要起到輔助功能,比如:菜單函數(shù),主要起到引導(dǎo)作用;菜單函數(shù)原型:void menu()第五章 測(cè)試分析5. 程序各功能的運(yùn)行結(jié)果:5.
17、1 系統(tǒng)主界面5.2 建立信息(1)首先輸入操作字符“1”;(2)接著輸入員工信息;(3)最后輸入操作字符“n”結(jié)束輸入。5.3 修改信息(1)首先輸入操作字符“2”;(2)再輸入新的員工信息, 5.4 查詢信息(1)首先輸入操作字符“3”;(2)接著輸入操作字符“1”或者“2”(即實(shí)現(xiàn)按“工號(hào)”查詢,或者按“姓名”查詢);(3)再輸入編號(hào)的字符“1”;5.5 顯示信息輸入操作字符“5”;5.6 刪除信息輸入操作字符“4”; 5.7退出系統(tǒng)輸入操作字符“0”;第六章 源程序清單#include<stdio.h>#include<stdlib.h>#include<
18、string.h>typedef struct node /定義節(jié)點(diǎn)類型char num6;char name10;char sex3;char edu6;struct node *next;node,*linklist;int creatlist(linklist &L) /頭插法生成單鏈表linklist p;p=(linklist)malloc(sizeof(node);if(!p)return (0);elseprintf("請(qǐng)輸入員工的工號(hào):n");printf("t");scanf("%s",p->nu
19、m); printf("請(qǐng)輸入員工的姓名:n");printf("t");scanf("%s",p->name); printf("請(qǐng)輸入員工的性別:n");printf("t"); scanf("%s",p->sex); printf("請(qǐng)輸入員工的學(xué)歷:n");printf("t"); scanf("%s",p->edu); p->next=L->next; L->next=p
20、;int initlist(linklist &L) /初始化單鏈表L=(linklist)malloc(sizeof(node);if(!L)return (0);L->next=NULL;return 1;void meau()printf("t* _ 歡迎使用企業(yè)員工信息系統(tǒng) _ *n");printf("n"); printf("t * 1 建立員工信息表 *n"); printf("t * 2 插入新員工信息 *n"); printf("t * 3 查詢員工信息記錄 *n"
21、;); printf("t * 4 刪除員工信息記錄 *n"); printf("t * 5 顯示員工信息 *n"); printf("t * 0 退出管理系統(tǒng) *n"); printf("n");printf("t* _ 歡迎使用企業(yè)員工信息系統(tǒng) _ *n");printf("n");printf("t XXXn");printf("t 2012年9月12日n");printf("n");printf("
22、請(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("工號(hào) %s",p->num);printf("t");printf("姓名 %s",p->name);printf("n");printf(&qu
23、ot;t");printf("性別 %s",p->sex);printf("t");printf("t");printf("學(xué)歷 %s",p->edu);printf("n");printf("n");printf("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-
24、>next) /當(dāng)list無(wú)后繼結(jié)點(diǎn)時(shí),提示和結(jié)束返回del()printf("n=>提示:沒(méi)有記錄可以刪除!n"); printf("n");return 1; while(!(strcmp(p->num,num)=0)&&p)r=p;p=p->next;if(!p)printf("nnttt 找不到該職工信息!n");elser->next=p->next; free(p);printf("刪除成功n");printf("n");retur
25、n 1;int searchnum(linklist &L,char num10) /查詢工號(hào)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->name); printf("n"); printf("t"); printf("性別 %s",p->sex)
26、; 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;while(p)if(strcmp(p->name,name)=0)printf("t"); printf("工號(hào) %s",p->num); printf(&quo
27、t;t"); printf("姓名 %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 alter(linklist &L,char num6) /
28、修改信息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("您輸入的是:"); printf("t"); scanf("%s",p->name); printf("請(qǐng)輸入員
29、工的性別:n"); printf("您輸入的是:"); printf("t"); scanf("%s",p->sex); printf("請(qǐng)輸入員工的學(xué)歷:n"); printf("您輸入的是:"); printf("t"); scanf("%s",p->edu); p=p->next; printf("n"); return 1;void main() /主函數(shù)linklist L;int a;char m
30、;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); do printf("是否繼續(xù)輸入?(y/n)"); printf("t"); getchar(); scanf("%c",&m); if(m='y') creatlist(L); while(m!='n'
31、;); 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("請(qǐng)選擇查詢方式(1.按工號(hào)查詢 , 2.按姓名查找)"); printf("n"); printf(&
32、quot;您選擇的是:"); 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("您輸入的是:"); printf("t"); scanf("%s",&name); printf(&qu
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)上零售平臺(tái)入駐協(xié)議
- 農(nóng)村林業(yè)資源開(kāi)發(fā)與保護(hù)合作協(xié)議條款
- 行政心理學(xué)與企業(yè)戰(zhàn)略的有效結(jié)合研究試題及答案
- 市政學(xué)備考試題及答案快速參考
- 施工團(tuán)隊(duì)效率分析試題及答案
- 行政管理與市政風(fēng)險(xiǎn)評(píng)估試題及答案
- 2025行政管理心理學(xué)考試復(fù)習(xí)要點(diǎn)試題及答案
- 行政管理的研究方法試題及答案
- 2025工程咨詢合同大全
- 教育改革成功的內(nèi)在支撐條件與策略探究
- 地七年級(jí)下冊(cè)全冊(cè)知識(shí)要點(diǎn)總復(fù)習(xí)-2024-2025學(xué)年七年級(jí)地理教學(xué)課件(人教版2024)
- 海洋能發(fā)電技術(shù)-中國(guó)海洋能發(fā)電技術(shù)(新能源發(fā)電技術(shù))
- 創(chuàng)業(yè)大賽活動(dòng)策劃方案
- 西部計(jì)劃考試試題及答案
- 【廣安】2025上半年四川廣安理工學(xué)院籌建處第一次招聘非事業(yè)編制專任教師15人筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 2025醫(yī)院護(hù)理面試題庫(kù)及答案
- 2025新疆西北興業(yè)城投集團(tuán)有限公司崗位招聘(12人)筆試參考題庫(kù)附帶答案詳解
- 餐廳供餐協(xié)議書范本
- 期中素養(yǎng)測(cè)評(píng)卷(試題)2024-2025學(xué)年五年級(jí)下冊(cè)科學(xué)教科版
- 供水公司筆試試題及答案
- 2024年寶雞市城投資產(chǎn)管理有限公司招聘真題
評(píng)論
0/150
提交評(píng)論