數(shù)據(jù)結(jié)構(gòu)課程設(shè)計之企業(yè)員工信息管理系統(tǒng)設(shè)計與實現(xiàn)_第1頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計之企業(yè)員工信息管理系統(tǒng)設(shè)計與實現(xiàn)_第2頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計之企業(yè)員工信息管理系統(tǒng)設(shè)計與實現(xiàn)_第3頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、莎孑乂卡乂第以/怡玄7危扌區(qū) Xi'an Technological University North Institute of Information Engineering算法與數(shù)據(jù)結(jié)構(gòu)課程設(shè)計題目:企業(yè)員工信息管理系統(tǒng)設(shè)計與實現(xiàn)院、系:學(xué)科專業(yè):計算機信息與技術(shù)系軟件工程學(xué)號:B10060XXX學(xué)生姓名:XX指導(dǎo)教師:X X2012年9月16日目錄第一章 設(shè)計要求 21.1 問題描述 1.2 需求分析 第二章 概要設(shè)計 32.1 主界面設(shè)計 32.2 存儲結(jié)構(gòu)設(shè)計 32.3 系統(tǒng)功能設(shè)計 4第三章 模塊設(shè)計 43.1 系統(tǒng)子程序及功能設(shè)計 43.2 系統(tǒng)功能圖 5第四章 詳細(xì)設(shè)計

2、 54.1 數(shù)據(jù)類型定義 54.2 系統(tǒng)主要子程序詳細(xì)設(shè)計 61. 顯示函數(shù): 62. 刪除函數(shù): 63. 查詢函數(shù): 74. 修改函數(shù): 95. 主函數(shù): 108.其他函數(shù): 11第五章 測試分析 125.程序各功能的運行結(jié)果: 125.1 系統(tǒng)主界面 125.2 建立信息 125.3 修改信息 135.4 查詢信息 135.5 顯示信息 145.6 刪除信息 145.7 退出系統(tǒng) 15第六章 源程序清單 16第七章 工作總結(jié) 23第一章 設(shè)計要求1.1 問題描述企業(yè)員工信息管理系統(tǒng),包括企業(yè)中所有員工的基本信息,如:工號、姓 名、性別、學(xué)歷等。且該系統(tǒng)能夠完成新員工的增添、所有員工信息的相

3、應(yīng)查 詢、修改、刪除等各項功能。1.2 需求分析(1)在相應(yīng)的每條記錄中,應(yīng)該包括該員工的所有信息,如:工號、姓名、 性別、學(xué)歷等;(2)根據(jù)不同關(guān)鍵字(如工號,姓名等) ,對所有員工的信息進行排序;(3)按照指定條件查找某個員工的所有信息;(4)按工號對某個員工的信息進行修改;(5)添加新員工的信息;(6)按工刪除已離職、退休員工的信息;(7)與此同時,除了以上基本的需求以外, 該企業(yè)員工信息管理系統(tǒng)的程序 源代碼還應(yīng)具有良好的編程結(jié)構(gòu)和適當(dāng)?shù)淖⑨專?運行界面清晰, 提示內(nèi)容明確, 易于操作。第二章概要設(shè)計2.1主界面設(shè)計當(dāng)輸入相應(yīng)的操作字符(如:數(shù)字 0-6),實現(xiàn)并完成各項功能操作(如:

4、 建立、修改、刪除、顯示、退出等)。系統(tǒng)主界面如下:歡迎使用企業(yè)同工信息系統(tǒng)< :貝:錄錄 表息記記 息信息息白心統(tǒng) 工員工工工理 立入詢除一企 建®查刪顯退 12 3 4-50歡迎使用企業(yè)員工佶息系統(tǒng)«ya,雀201212 02.2存儲結(jié)構(gòu)設(shè)計依據(jù)給定的數(shù)據(jù)格式,個人信息由四個字段來組成,即工號、姓名、性別、學(xué)歷,外 加一個判斷關(guān)鍵字。如:工號|姓名|性別|學(xué)歷123 feng n daxue本課程設(shè)計根據(jù)功能需求,使用線性結(jié)構(gòu)來組織數(shù)據(jù),由于要對表中某項數(shù)據(jù)進行插 入、刪除操作,所以使用鏈表比較方便。2.3 系統(tǒng)功能設(shè)計依據(jù)程序的數(shù)據(jù)結(jié)構(gòu)和功能,遵照“自頂向下,逐

5、步細(xì)化”原則,描述該 程序的層次結(jié)構(gòu),在總體上包括數(shù)據(jù)的增添、修改、刪除、查詢以及數(shù)據(jù)的顯 示等功能模塊。(1) 新增函數(shù)功能:通過輸入各項數(shù)據(jù)給數(shù)據(jù)元素,來建立一個數(shù)據(jù)表。(2) 顯示函數(shù)功能:輸出表中所有節(jié)點的信息。(3) 查詢函數(shù)功能:按照指定關(guān)鍵字,對相應(yīng)員工信息進行查詢。(4) 修改函數(shù)功能:輸入員工工號,查詢員工信息,對其信息進行修改。(5) 刪除函數(shù)功能: 查找到要刪除員工的相應(yīng)信息, 并將其從表中永久的刪 除。(6) 主函數(shù)功能:調(diào)用以上子函數(shù),并用開關(guān)語句進行選擇性的調(diào)用。第三章 模塊設(shè)計3.1 系統(tǒng)子程序及功能設(shè)計( 1) 新增員工信息,利用函數(shù): creatlist(li

6、nklist &L)( 2) 顯示所有員工信息,利用函數(shù): display(linklist &L)( 3) 刪除員工信息,是按員工工號刪除, 利用函數(shù): delet(linklist &L,char num6)( 4) 查詢員工信息,按工號和姓名進行查詢; 按工號查詢利用函數(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è)計4.1數(shù)據(jù)類型定義結(jié)構(gòu)體定義:typedef struct nodechar num6;/ 工號char name10;/ 姓名char sex6;/ 性別char degree20;/ 學(xué)歷 node,*linklist;4.2 系統(tǒng)主要子程序詳細(xì)設(shè)計1. 顯示函數(shù)函數(shù)原型: voiddisplay(linklist &L)函數(shù)功能:輸出表中所有節(jié)點的信息。 算法要點:使用循環(huán)輸出所有信息。 主要算法:void display(linklist &L)linklist p;for(p=L->next;p;p=p->next)printf("

8、; 工號 %s",p->num); printf(" 姓名 %s",p->name); printf(" 性別 %s",p->sex); printf(" 學(xué)歷 %s",p->edu);2. 刪除函數(shù)函數(shù)原型: voiddelet(linklist &L,char num6)函數(shù)功能:查找到要刪除員工的相應(yīng)信息,并將其從表中永久的刪除 算法要點:(1) 按關(guān)鍵字查找信息;(2) 鏈表中刪除節(jié)點信息,并釋放節(jié)點空間。 主要算法:int delet(linklist &L, char nu

9、m6 )node *p;/* 實現(xiàn)刪除操作的臨時的結(jié)構(gòu)體指針變量*/node *r;p=L->next;r=L;if(!L->next)/ 當(dāng) list 無后繼結(jié)點時,提示和結(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");else r->ne

10、xt=p->next;free(p);printf(" 刪除成功 n");printf("n"); return 1;3. 查詢函數(shù)(1) 按工號查詢int searchnum(linklist &L,char num10) node *p;p=L; while(p) if(strcmp(p->num,num)=0)printf("t"); printf(" 工號 %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

12、) if(strcmp(p->name,name)=0) printf("t");printf(" 工號 %s",p->num); printf("t");printf(" 姓名 %s",p->name); printf("n"); printf("t");printf(" 性別 %s",p->sex); printf("t"); printf("t");printf(" 學(xué)歷 %s

13、",p->edu); printf("n");p=p->next; return 1;4. 修改函數(shù) (按工號修改)int alter(linklist &L,char num6)node *p;p=L;while(p)if(strcmp(p->num,num)=0)printf(" 請輸入員工的工號 printf(" 您輸入的是: "); printf("t"); scanf("%s",p->num);printf(" 請輸入員工的姓名 printf(

14、" 您輸入的是: "); printf("t");scanf("%s",p->name);printf(" 請輸入員工的性別 printf(" 您輸入的是: "); printf("t"); scanf("%s",p->sex);printf(" 請輸入員工的學(xué)歷 printf(" 您輸入的是: "); printf("t"); scanf("%s",p->edu);p=p-&g

15、t;next;printf("n");:n");:n");:n");:n");return 1;5. 主函數(shù)主函數(shù)主要是調(diào)用以上的子函數(shù),用開關(guā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);d

16、oprintf(" 是否繼續(xù)輸入 ?(y/n)");printf("t"); getchar(); scanf("%c",&m); if(m='y')creatlist(L);while(m!='n');printf("n");break;case 2: printf(" 請輸入修改員工的工號 :");printf(" 您輸入的是: "); printf("t"); getchar();scanf("%s&

17、quot;,&num);alter(L,num);printf("n");break;case 0: f=0;printf("nn"); break;6. 其他函數(shù)這些函數(shù)主要起到輔助功能,比如:菜單函數(shù),主要起到引導(dǎo)作用; 菜單函數(shù)原型: void menu()第五章測試分析5.程序各功能的運行結(jié)果:5.1系統(tǒng)主界面歡迎使用企業(yè)員工信息系統(tǒng)錄錄 自g 自心自心白忡茄-. 他工倩伍傳系 工員工工工理 立改詢除耳 建修查刪顯退 12 3 4 5 0歡迎使用企業(yè)員工信息系統(tǒng)A_A5.2建立信息(1)首先輸入操作字符“ 1” (2)接著輸入員工信息;(

18、3) 最后輸入操作字符“ n”結(jié)束輸入請輸入員工的工號=123甫輸入員工的姓名;Feng請輸入員H的性刖匸請輸入員工的學(xué)厲二 dcixiLie 是否繼無輸入壬<.yn> 晴輸入員工的工號二請輸入員豐的姓名: 請輸入員呈的性別二 請輸入員士煦學(xué)歷二 是否繼言賣聶T',?<yZn> 鼻-亠-1*7 一 -一.亠5.3修改信息(1) 首先輸入操作字符“ 2”;(2) 再輸入新的員工信息,豔編賈選擇;請輸入修改員工的工號臨輸入的是,123&ne 21B- fK -a-n B VW 號名別歷 工姓性學(xué)t 工是工是工是工是456矣學(xué)f engi5.4查詢信息(1)

19、首先輸入操作字符“ 3”;(2) 接著輸入操作字符“1”或者“ 2”(即實現(xiàn)按“工號”查詢,或者按“姓名”查詢);(3) 再輸入編號的字符“1”;請您夙陽-弓中選擇:您送擇的是; 3請選擇査詢方式"按工號査詢趴技姓名査找 猜輸入查詢員工的工號:悔輸入的是: 124工號 124姓名 fenff性別n學(xué)歷"請選摔査詢方式按工號查詢,2 技姓塔查找) 憾選棒的是2請撅入査詢員工的姓各 您輸入的是:碼5.5顯示信息輸入操作字符“ 5”;5.6刪除信息456nif所有員工的信息如下所示456124n姓名學(xué)歷姓玄 學(xué)歷輸入操作字符“ 4”;請您從0 5中選擇二您選擇的是;4員工的工號率

20、輸入的是!124刪除威功5.7退出系統(tǒng)輸入操作字符“ 0”感謝您的使愿耳見!耳鼻耳耳耳耳"NX用耳耳耳J耳XJtXXXKKXXXJKWWXX耳JHXXJC耳耳耳J耳耳氧耳耳耳鼻耳耳耳耳JKWWXX耳JKXP艸辭 emy 血9 to continue第六章 源程序清單/定義節(jié)點類型#include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct nodechar num6;char name10; char sex3;char edu6; struct node *next;

21、 node,*linklist;int creatlist(linklist &L)/頭插法生成單鏈表linklist p; p=(linklist)malloc(sizeof(node);if(!p)return (0); elseprintf(" 請輸入員工的工號 :n"); printf("t");scanf("%s",p->num);printf(" 請輸入員工的姓名 :n"); printf("t");scanf("%s",p->name);pr

22、intf(" 請輸入員工的性別 :n"); printf("t");scanf("%s",p->sex);printf(" 請輸入員工的學(xué)歷 :n"); printf("t");scanf("%s",p->edu);p->next=L->next;L->next=p;int initlist(linklist &L)/ 初始化單鏈表L=(linklist)malloc(sizeof(node); if(!L) return (0);L-&

23、gt;next=NULL;return 1;void meau()/顯示所有員工信息printf("t* 八 a歡迎使用企業(yè)員工信息系統(tǒng)a_a *n")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 退出管理

24、系統(tǒng)*n");printf("n");printf("t* a_a歡迎使用企業(yè)員工信息系統(tǒng)a_a *n")printf("n");printf("tXXXn");printf("t2012 年 9 月 12 日 n");printf("n");printf(" 請您從 0-5 中選擇:n");printf(" 您選擇的是: ");printf("t");void display(linklist &

25、L)linklist p; for(p=L->next;p;p=p->next) printf("t");printf(" 工號%s",p->num);printf("t");printf(" 姓名%s",p->name);printf("n");printf("t");printf(" 性別%s",p->sex);printf("t");printf("t");printf("

26、; 學(xué)歷 %s",p->edu);printf("n");printf("n"); printf("n");int delet(linklist &L,char num6)/ 按工號刪除node *p; /* 實現(xiàn)刪除操作的臨時的結(jié)構(gòu)體指針變量 */ node *r;p=L->next;r=L;if(!L->next)/ 當(dāng) list 無后繼結(jié)點時,提示和結(jié)束返回 del()printf("n=> 提示 : 沒有記錄可以刪除 !n"); printf("n&quo

27、t;);return 1;while(!(strcmp(p->num,num)=0)&&p)r=p;p=p->next;if(!p)printf("nnttt 找不到該職工信息 !n");else r->next=p->next;free(p);printf(" 刪除成功 n");printf("n");return 1;/查詢工號int searchnum(linklist &L,char num10)/查詢姓名node *p; p=L; while(p) if(strcmp(p-&g

28、t;num,num)=0)printf("t");printf(" 工號%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(&qu

29、ot;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(" 工號%s",p->num);printf("t");printf(" 姓名%s",p->name);printf("n");printf("t");printf(&q

30、uot; 性別%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) / 修改信息node *p;p=L;while(p)if(strcmp(p->num,num)=0)printf(" 請輸入員工的工號 :n"); printf(" 您輸入的是: &quo

31、t;);printf("t"); scanf("%s",p->num);printf(" 請輸入員工的姓名 :n"); printf(" 您輸入的是: ");printf("t"); scanf("%s",p->name);printf(" 請輸入員工的性別 :n"); printf(" 您輸入的是: "); printf("t");scanf("%s",p->sex);prin

32、tf(" 請輸入員工的學(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;char name10;char num6;initlist(L);int g;int f=1;while(f)meau();scanf("%d",&g);printf(&q

33、uot;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(" 請輸入修改員工的工號 :");printf(" 您輸入的是: ");

34、 printf("t");getchar(); scanf("%s",&num); alter(L,num); printf("n"); break;case 3: printf("請選擇查詢方式(1.按工號查詢,2按姓名查找)"); printf("n");printf(" 您選擇的是: ");printf("t"); scanf("%d",&a); if(a=1)printf(" 請輸入查詢員工的工號 :n"); printf(" 您輸入的是: "); printf("t");scanf("%s",&num);printf("n");searchnum(L,num);if(a=2)printf(" 請輸入查詢員工的姓名 :n");printf(" 您輸

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論