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

下載本文檔

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

文檔簡介

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

2、定義 54.2 系統(tǒng)主要子程序詳細設計 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第八章參考文獻23第一章 設計要求1.1 問題描述企業(yè)員工信息管理系統(tǒng),包括企業(yè)中所有員工的基本信息,如:工號、姓名、性別、學歷等。且該系統(tǒng)能夠完成新員工的增添、所有員工信息的相應查詢、

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

4、、修改、刪除、顯示、退出等)。系統(tǒng)主界面如下:人八 歡:卬使用傘1/員工信.息、,皋統(tǒng) 人 人 就JtXJtM猶M*/錄錄表息記記息信息息息統(tǒng)代工密宿代和工員工工工理立人詢除一甯建排查刪顯退12 3 4-50mu *_*歡迎使用企業(yè)員工信息系統(tǒng)"_人坤售.20129 P12 B2.2 存儲結(jié)構(gòu)設計依據(jù)給定的數(shù)據(jù)格式,個人信息由四個字段來組成,即工號、姓名、性別、學歷,外 加一個判斷關(guān)鍵字。如:工號|姓名|性別|學歷123 feng n daxue本課程設計根據(jù)功能需求,使用線性結(jié)構(gòu)來組織數(shù)據(jù),由于要對表中某項數(shù)據(jù)進行插 入、刪除操作,所以使用鏈表比較方便。2.3 系統(tǒng)功能設計依據(jù)程序

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

6、creatlist(linklist &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、圖第四章詳細設計4.1 數(shù)據(jù)類型定義結(jié)構(gòu)體定義:typedef struct nodechar num6;/ 工號char name10;/ 姓名char sex6;/ 性別char degree20; / 學歷struct node *next;/ 指針域 node,*linklist;4.2 系統(tǒng)主要子程序詳細設計1. 顯示函數(shù)函數(shù)原型:void display(linklist &L)函數(shù)功能:輸出表中所有節(jié)點的信息。算法要點:使用循環(huán)輸出所有信息。主要算法:void display(linklist &L)linklist p;for(p=L->next;p;p=

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

9、&L, char num6 )node *p;/*實現(xiàn)刪除操作的臨時的結(jié)構(gòu)體指針變量*/node *r;p=L->next;r=L;if(!L->next)/當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");elser-&g

10、t;next=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(" 學歷 %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(" 工號%s",p->num);printf("t");printf(" 姓名%s",p->name);printf("n");printf("t");printf(" 性別 %s",p->sex);printf("t");printf("t");printf(" 學歷 %s",p->edu);printf(&

13、quot;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(" 請輸入員工的工號:n");printf(" 您輸入的是:");printf("t");scanf("%s",p->num);printf(" 請輸入員工的姓名:n");printf(" 您輸入的是:&

14、quot;);printf("t");scanf("%s",p->name);printf(" 請輸入員工的性別:n");printf(" 您輸入的是:");printf("t");scanf("%s",p->sex);printf(" 請輸入員工的學歷: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)語句進行選擇性的調(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(" 請輸入修改員工的工號:");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ù),主要起到引導作用;菜單函數(shù)原型:void menu()第五章測試分析5.程序各功能的運行結(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é)束輸入請您從。-5中選擇; 您選擇的是:*請輸入員工的工號

18、工 12 3請軸I,、員31.的名二 F encf請輸入員工的性另h 請輸入民主的學歷二 dcixiLie 是否泄續(xù)輸入牙 請輸入員工的工號二鼻5E請輸入員工的姓名: 請輸入員空的性別:請輸入員士的學歷;5.3 修改信息(1)首先輸入操作字符“ 2”;(2)再輸入新的員工信息,情您從陰T中選擇:色選擇的是:2請輸入修改員工的工號二您輸入的是.123人入1A入人入喻.勒軸輔憫鐲號名別歷在世再 夜糕.琶糕曷456工號姓名學歷馮 大學性別n124姓名學歷f engi5.4 查詢信息(1)首先輸入操作字符“ 3”;(2)接著輸入操作字符“ 1”或者“2”(即實現(xiàn)按“工號”查詢,或者按“姓名”查詢);(

19、3)再輸入編號的字符“1”;請您從dt中選擇:您另擇的是;3請選擇查詢方式C.技工號查詢.2 .按姓名查找,壁選擇的是i1請薪人查詢員工的工號,您輸入的是:124工號 124姓名 fenff性別n學歷.請選擇查詢方式。.按工號查詢,2 .按姓名查找)您選擇的456n請前入查詢員工的姓名, 您輸入的是:肖姓名學歷5.5 顯示信息輸入操作字符“ 5” ;請您從"S中選擇:您費擇的是:S所有員工的信息如下所示5.6刪除信息輸入操作字符“ 4”;456124 n姓名學歷姓名學歷馮 大學您選擇的是;4所有員工的信息如下所示產(chǎn)、刪除員工的工號;您輸入的是. 124IJ除成功5.7退出系統(tǒng)輸入操作

20、字符“ 0”;請您從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é)點類型int creatlist(linklist &L)linklist p;p=(linkl

21、ist)malloc(sizeof(node); if(!p)return (0);elseprintf(" 請輸入員工的工號printf("t");scanf("%s",p->num);printf(" 請輸入員工的姓名printf("t");scanf("%s",p->name);printf(" 請輸入員工的性別printf("t");scanf("%s",p->sex);printf(" 請輸入員工的學歷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(" 請您從 0-5 中選擇 :n");printf(" 您選擇的是:");printf("t");void display(linklist &L)/顯示所有員工信息linklist p;for(p=L->next;p;p=p->next)printf("t");printf("

25、; 工號%s",p->num);printf("t");printf(" 姓名%s",p->name);printf("n");printf("t");printf(" 性別 %s",p->sex);printf("t");printf("t");printf(" 學歷 %s",p->edu);printf("n");printf("n"); printf(&qu

26、ot;n");int delet(linklist &L,char num6)/按工號刪除node *p;/*實現(xiàn)刪除操作的臨時的結(jié)構(gòu)體指針變量*/node *r;p=L->next;r=L;if(!L->next) /當 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

27、("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->num,num)=0)printf("t");printf(" 工號%s",p->num);printf("t");pri

28、ntf(" 姓名%s",p->name);printf("n");printf("t");printf(" 性別 %s",p->sex);printf("t");printf("t");printf(" 學歷 %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(" 工號%s",p->num);printf("t");printf(" 姓名%s",p->name);printf("n");printf("t");printf(" 性別 %s",p->sex);printf("t");printf("t");printf(" 學歷 %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(" 請輸入員工的工號:n");printf(" 您輸入的是:");printf("t");scanf("%s",p->num);printf(" 請輸入員工的姓名:n");print

31、f(" 您輸入的是:");printf("t");scanf("%s",p->name);printf(" 請輸入員工的性別:n");printf(" 您輸入的是:");printf("t");scanf("%s",p->sex);printf(" 請輸入員工的學歷: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("請輸入修改員工的工號:");printf(" 您輸入的是:");printf("t");getchar();scanf("%s",&num);alter(L,num);printf("n");break;case 3: printf(&qu

34、ot;請選擇查詢方式(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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論