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

下載本文檔

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

文檔簡介

1、算法與數(shù)據(jù)結構課程設計題目:企業(yè)員工信息管理系統(tǒng)設計與實現(xiàn)院、 系: 計算機信息與技術系學科專業(yè): 軟件工程 學 號: B10060XXX 學生姓名: XX 指導教師: X X 2012年9月16日目 錄第一章 設計要求21.1 問題描述21.2 需求分析2第二章 概要設計32.1 主界面設計32.2 存儲結構設計32.3 系統(tǒng)功能設計4第三章 模塊設計43.1 系統(tǒng)子程序及功能設計43.2 系統(tǒng)功能圖5第四章 詳細設計54.1 數(shù)據(jù)類型定義54.2 系統(tǒng)主要子程序詳細設計61.顯示函數(shù):62.刪除函數(shù):63.查詢函數(shù):74.修改函數(shù):95.主函數(shù):108.其他函數(shù):11第五章 測試分析125

2、.程序各功能的運行結果:125.1系統(tǒng)主界面125.2建立信息125.3修改信息135.4查詢信息135.5顯示信息145.6刪除信息145.7退出系統(tǒng)15第六章 源程序清單16第七章 工作總結23第八章 參考文獻23第一章 設計要求1.1 問題描述企業(yè)員工信息管理系統(tǒng),包括企業(yè)中所有員工的基本信息,如:工號、姓名、性別、學歷等。且該系統(tǒng)能夠完成新員工的增添、所有員工信息的相應查詢、修改、刪除等各項功能。1.2 需求分析(1)在相應的每條記錄中,應該包括該員工的所有信息,如:工號、姓名、性別、學歷等;(2)根據(jù)不同關鍵字(如工號,姓名等),對所有員工的信息進行排序;(3)按照指定條件查找某個員

3、工的所有信息;(4)按工號對某個員工的信息進行修改;(5)添加新員工的信息;(6)按工刪除已離職、退休員工的信息;(7)與此同時,除了以上基本的需求以外,該企業(yè)員工信息管理系統(tǒng)的程序源代碼還應具有良好的編程結構和適當?shù)淖⑨?,運行界面清晰,提示內(nèi)容明確,易于操作。第二章 概要設計2.1 主界面設計 當輸入相應的操作字符(如:數(shù)字0-6),實現(xiàn)并完成各項功能操作(如:建立、修改、刪除、顯示、退出等)。系統(tǒng)主界面如下:2.2 存儲結構設計依據(jù)給定的數(shù)據(jù)格式,個人信息由四個字段來組成,即工號、姓名、性別、學歷,外加一個判斷關鍵字。如: 工號 | 姓名 | 性別 | 學歷 123 feng n daxu

4、e 本課程設計根據(jù)功能需求,使用線性結構來組織數(shù)據(jù),由于要對表中某項數(shù)據(jù)進行插入、刪除操作,所以使用鏈表比較方便。2.3 系統(tǒng)功能設計依據(jù)程序的數(shù)據(jù)結構和功能,遵照“自頂向下,逐步細化”原則,描述該程序的層次結構,在總體上包括數(shù)據(jù)的增添、修改、刪除、查詢以及數(shù)據(jù)的顯示等功能模塊。(1)新增函數(shù)功能:通過輸入各項數(shù)據(jù)給數(shù)據(jù)元素,來建立一個數(shù)據(jù)表。(2)顯示函數(shù)功能:輸出表中所有節(jié)點的信息。(3)查詢函數(shù)功能:按照指定關鍵字,對相應員工信息進行查詢。(4)修改函數(shù)功能:輸入員工工號,查詢員工信息,對其信息進行修改。(5)刪除函數(shù)功能:查找到要刪除員工的相應信息,并將其從表中永久的刪除。(6)主函數(shù)

5、功能:調(diào)用以上子函數(shù),并用開關語句進行選擇性的調(diào)用。第三章 模塊設計3.1 系統(tǒng)子程序及功能設計(1) 新增員工信息,利用函數(shù): 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) 修

6、改員工信息,利用函數(shù): alter(linklist &L,char num6)3.2 系統(tǒng)功能圖主頁面建立鏈表查詢顯示信息退出修改刪除按工號按姓名按工號圖3-2 系統(tǒng)功能圖第四章 詳細設計4.1 數(shù)據(jù)類型定義結構體定義:typedef struct node char num6; /工號 char name10; /姓名 char sex6; /性別 char degree20; /學歷 struct node *next; /指針域 node,*linklist;4.2 系統(tǒng)主要子程序詳細設計1. 顯示函數(shù)函數(shù)原型: void display(linklist &L)函數(shù)功能:輸出表中所有

7、節(jié)點的信息。算法要點:使用循環(huán)輸出所有信息。主要算法:void display(linklist &L)linklist p;for(p=L-next;p;p=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) 按關鍵字查找信息;(2) 鏈表中刪除節(jié)點信息,并釋放節(jié)點空間。主要算法:int delet(l

8、inklist &L, char num6)node *p; /*實現(xiàn)刪除操作的臨時的結構體指針變量*/node *r; p=L-next;r=L; if(!L-next) /當list無后繼結點時,提示和結束返回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-next=p-next; free(p);printf(刪除成功n);printf(n);return 1;3. 查詢函數(shù)(

9、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-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 name

10、10)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(性別 %s,p-sex);printf(t);printf(t);printf(學歷 %s,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,

11、num)=0)printf(請輸入員工的工號:n);printf(您輸入的是:); printf(t); scanf(%s,p-num); printf(請輸入員工的姓名:n); printf(您輸入的是:); 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-next; printf(n); return 1;5. 主函數(shù)主

12、函數(shù)主要是調(diào)用以上的子函數(shù),用開關語句進行選擇性的調(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); do printf(是否繼續(xù)輸入?(y/n); printf(t); getchar(); scanf(%c,&m); if(m=y) creatlist(L); while(m!=n); printf(n); break;

13、 case 2: printf(請輸入修改員工的工號:); printf(您輸入的是:); printf(t); getchar(); scanf(%s,&num); alter(L,num); printf(n); break; case 0: f=0; printf(nn); break;6. 其他函數(shù)這些函數(shù)主要起到輔助功能,比如:菜單函數(shù),主要起到引導作用;菜單函數(shù)原型:void menu()第五章 測試分析5. 程序各功能的運行結果:5.1 系統(tǒng)主界面5.2 建立信息(1)首先輸入操作字符“1”;(2)接著輸入員工信息;(3)最后輸入操作字符“n”結束輸入。5.3 修改信息(1)首先

14、輸入操作字符“2”;(2)再輸入新的員工信息, 5.4 查詢信息(1)首先輸入操作字符“3”;(2)接著輸入操作字符“1”或者“2”(即實現(xiàn)按“工號”查詢,或者按“姓名”查詢);(3)再輸入編號的字符“1”;5.5 顯示信息輸入操作字符“5”;5.6 刪除信息輸入操作字符“4”; 5.7退出系統(tǒng)輸入操作字符“0”;第六章 源程序清單#include#include#includetypedef struct node /定義節(jié)點類型char num6;char name10;char sex3;char edu6;struct node *next;node,*linklist;int cre

15、atlist(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); printf(請輸入員工的性別:n);printf(t); scanf(%s,p-sex); printf(請輸入員工的學歷:n);printf(t); scanf(%s,p-edu); p-next=L-next; L-nex

16、t=p;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); printf(t * 4 刪除員工信息記錄 *n); printf(t * 5 顯示員工信息 *n); printf(t

17、* 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(請您從0-5中選擇: n);printf(您選擇的是:);printf(t);void display(linklist &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)

18、;printf(t);printf(性別 %s,p-sex);printf(t);printf(t);printf(學歷 %s,p-edu);printf(n);printf(n);printf(n);int delet(linklist &L,char num6) /按工號刪除node *p; /*實現(xiàn)刪除操作的臨時的結構體指針變量*/node *r; p=L-next;r=L; if(!L-next) /當list無后繼結點時,提示和結束返回del()printf(n=提示:沒有記錄可以刪除!n); printf(n);return 1; while(!(strcmp(p-num,num)

19、=0)&p)r=p;p=p-next;if(!p)printf(nnttt 找不到該職工信息!n);elser-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); printf(姓名 %s,p-name); printf(n); printf(t); printf(性別 %s,p-se

20、x); 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;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); pri

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

22、t); scanf(%s,p-sex); printf(請輸入員工的學歷: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(n);switch(g) case 1: creatlist(L); do printf(是否繼續(xù)輸入?(y/n); pr

23、intf(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); 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(您輸入的是:); printf(t); scanf(%s,&name); printf(n); searchname(L,name); printf(n); break; case 4: pri

溫馨提示

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

最新文檔

評論

0/150

提交評論