員工管理系統(tǒng)數(shù)據(jù)結(jié)構(gòu)資料_第1頁
員工管理系統(tǒng)數(shù)據(jù)結(jié)構(gòu)資料_第2頁
員工管理系統(tǒng)數(shù)據(jù)結(jié)構(gòu)資料_第3頁
員工管理系統(tǒng)數(shù)據(jù)結(jié)構(gòu)資料_第4頁
員工管理系統(tǒng)數(shù)據(jù)結(jié)構(gòu)資料_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 / 18學(xué) 號(hào) 09710219 書直,優(yōu)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)設(shè)計(jì)說明書員工管理系統(tǒng)起止日期: 2012年1月2日至 2012年1月6日學(xué)生 姓 名 孫久巖班級(jí)09計(jì)算機(jī)2班成績指導(dǎo)教師(簽字)電子與信息工程系2012年1月4日天津城市建設(shè)學(xué)院課程設(shè)計(jì)任務(wù)書20102011學(xué)年第1學(xué)期電子與信息工程 系計(jì)算機(jī)專業(yè) 09級(jí)二班級(jí)課程設(shè)計(jì)名稱:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)設(shè)計(jì)題目:員工管理系統(tǒng)完成期限:自 2成2年1 月 2 日至 2012 年 1 月 6日共 1 周設(shè)計(jì)依據(jù)、要求及主要內(nèi)容(可另加附頁):一、設(shè)計(jì)目的熟悉各種數(shù)據(jù)結(jié)構(gòu)和運(yùn)算,會(huì)使用數(shù)據(jù)結(jié)構(gòu)的基本操作解決一些實(shí)際問題。二、設(shè)計(jì)要求(1)重視課程設(shè)

2、計(jì)環(huán)節(jié),用嚴(yán)謹(jǐn)、科學(xué)和踏實(shí)的工作態(tài)度對(duì)待課程設(shè)計(jì)的每一項(xiàng)任務(wù);(2)按照課程設(shè)計(jì)的題目要求,獨(dú)立地完成各項(xiàng)任務(wù),嚴(yán)禁抄襲;凡發(fā)現(xiàn)抄襲,抄襲者與被抄 襲者皆以零分計(jì)入本課程設(shè)計(jì)成績。凡發(fā)現(xiàn)實(shí)驗(yàn)報(bào)告或源程序雷同,涉及的全部人員皆以零分計(jì)入 本課程設(shè)計(jì)成績;(3)學(xué)生在接受設(shè)計(jì)任務(wù)后,首先要按設(shè)計(jì)任務(wù)書的要求編寫設(shè)計(jì)進(jìn)程表;(4)認(rèn)真編寫課程設(shè)計(jì)報(bào)告。三、設(shè)計(jì)內(nèi)容員工管理系統(tǒng):1)問題描述每個(gè)員工的信息包括:編號(hào)、姓名、性別、出生年月、學(xué)歷、職務(wù)、電話、住址等。系統(tǒng)能夠完成員工信息的查詢、更新、插入、刪除、排序等功能。2)基本要求(1)排序:按不同關(guān)鍵字,對(duì)所有員工的信息進(jìn)行排序。(2)查詢:按特定

3、條件查找員工。(3)更新:按編號(hào)對(duì)某個(gè)員工的某項(xiàng)信息進(jìn)行修改。(4)插入:加入新員工的信息。(5)刪除:按編號(hào)刪除已離職的員工的信息。四、參考文獻(xiàn)數(shù)據(jù)結(jié)構(gòu).清華大學(xué)出版社2.王紅梅.數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)輔導(dǎo)與實(shí)驗(yàn)指導(dǎo).清華大學(xué)出版社吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語言版).清華大學(xué)出版社五.主要內(nèi)容:1.系統(tǒng)流程圖添加用戶功能2.源代碼:#include #include #include /清屏函數(shù)頭文件#include struct Stuffchar number10;/員工編號(hào)char name10;/員工姓名char sex8;/員工性別char borth10;/員工生日char degree20;/

4、員工學(xué)歷char business20;/員工職務(wù)char phone15;/員工電話char place50;/員工住址char con50;/判斷關(guān)鍵字專用struct Stuff *next;char Menu(void);/菜單顯示struct Stuff *App(struct Stuff *head);/添加void Sort(struct Stuff *head);/排序struct Stuff *Ser(struct Stuff *head);/查找void Chn(struct Stuff *head,char n10);/更改void Scpy(char *p,char *

5、q);/排序中用于交換員工信息struct Stuff *Del(struct Stuff *head,char n10); /刪除int Sel(char ch,struct Stuff *p,struct Stuff *q); /判斷排序及關(guān)鍵字專用函數(shù)void Prf(struct Stuff *head);/輸出void Fre(struct Stuff *head);/釋放int i=1; / 定義全局變量,實(shí)現(xiàn)實(shí)時(shí)員工人數(shù)統(tǒng)計(jì)int main(void)char n10;struct Stuff *head=NULL; /鏈表頭指針定義while(1)switch(Menu()ca

6、se 1:printf( 請(qǐng)輸入員工信息,直接輸入 # 結(jié)束 n);head=App(head);break;case 2:Sort(head);break;case 3:head=Ser(head);break;case 4:printf( 員工信息如下:n);Prf(head);break;case 5:printf( 請(qǐng)輸入員工編號(hào) :);scanf(%s,n);Chn(head,n);break;case 6:printf( 請(qǐng)輸入員工編號(hào) :);scanf(%s,n);head=Del(head,n);break;case 0:printf( 歡迎下次光臨, 88!n);exit(0

7、);default:printf( 輸入錯(cuò)誤,請(qǐng)重新輸入 !n);fflush(stdin); /清楚緩沖區(qū)printf( 按任意鍵繼續(xù));getchar();system(cls); /清屏效果Fre(head);return 0;/ 菜單函數(shù)char Menu(void)char ch;printf(請(qǐng)選擇 n);printf(1. 添加員工信息n2. 員工信息排序n3. 查找員工信息n4. 輸出員工信息n5. 更改員工信息 n6. 刪除員工信息n0. 退出 nn);scanf( %c,&ch);return ch;/ 添加成員函數(shù)/ 輸入?yún)?shù): 鏈表頭指針/ 返回參數(shù) : 鏈表頭指針st

8、ruct Stuff *App(struct Stuff *head)struct Stuff *p=NULL,*q=head;while(i)p=(struct Stuff *)malloc(sizeof(struct Stuff); / 申請(qǐng)結(jié)構(gòu)體空間if(p=NULL)printf( 內(nèi)存不夠 !n);exit(0);p-next =NULL; / 指針域?yàn)榭誴rintf( 請(qǐng)輸入第d名員工:n”,i);printf( 編號(hào) | 姓名 | 性別 | 出生年月 | 學(xué)歷 | 職務(wù) | 電話 | 住址 :n);fflush(stdin);scanf(%s,p-number );if(!str

9、cmp(p-number ,#)free(p); /釋放不需要的結(jié)構(gòu)體內(nèi)存break;else+i;scanf(%s%s%s%s%s%s%s,p-name ,p-sex ,p-borth ,p-degree ,p-business ,p-phone ,p-place );p-con0=0; / 防止后面判斷出現(xiàn)隨機(jī)值if(head=NULL)head=p;elsewhile(q-next !=NULL) / 防止結(jié)束后再次輸入時(shí)出現(xiàn)問題q=q-next ;q-next =p;q=p; /每次都加在鏈表尾return head;/ 排序函數(shù)/ 輸入?yún)?shù): 頭指針void Sort(struct

10、Stuff *head)char ch;struct Stuff *p,*q,*r;while(1)printf( 請(qǐng)選擇排序條件:1. 編號(hào) 2.姓名 3. 性別 4. 出生年月 5. 學(xué)歷 6. 職務(wù) 7. 電話 8.地址 0. 退出n);scanf( %c,&ch);if(ch=0)break;if(ch8)printf( 輸入錯(cuò)誤,請(qǐng)重新輸入 !n);continue;p=head;while(p-next!=NULL)/q=p-next;r=p;while(q!=NULL)if(Sel(ch,r,q)/r=q;q=q-next;if(r!=p)/Scpy(r-number,p-num

11、ber);Scpy(r-name,p-name);Scpy(r-sex,p-sex);Scpy(r-borth,p-borth);Scpy(r-degree,p-degree);Scpy(r-business,p-business);Scpy(r-phone,p-phone);Scpy(r-place,p-place);p=p-next;Prf(head); /輸出調(diào)用判斷函數(shù)交換內(nèi)容選擇排序/ 交換函數(shù)void Scpy(char *p,char *q)char c50;strcpy(c,p);strcpy(p,q);strcpy(q,c);/ 判斷函數(shù)/ 輸出參數(shù) :1 為真, 0 為假i

12、nt Sel(char ch,struct Stuff *p,struct Stuff *q)switch(ch) / 實(shí)現(xiàn)各個(gè)關(guān)鍵字查找case 1:return strcmp(q-number ,p-number )con ,p-number )=0 ; /排序條件及查找條件case 2:return strcmp(q-name ,p-name )con ,p-name )=0 ;case 3:return strcmp(q-sex ,p-sex )con ,p-sex )=0 ;case 4:return strcmp(q-borth ,p-borth)con ,p-borth )=0

13、;case 5:return strcmp(q-degree ,p-degree )con ,p-degree )=0 ;case 6:return strcmp(q-business ,p-business )con ,p-business)=0 ;case 7:return strcmp(q-phone ,p-phone )con ,p-phone)=0;case 8: return strcmp(q-place ,p-place )con ,p-place )=0;default :exit(0);/ 查找函數(shù)struct Stuff *Ser(struct Stuff *head)st

14、ruct Stuff *p=NULL,*q,a=0,0,0,0,0,0,0,0; / 防止判斷時(shí)錯(cuò)誤int flag; / 查找判斷char ch,sh;q=&a;while(1)printf( 請(qǐng)輸入要查找的條件:1. 編號(hào) 2. 姓名 3.性別 4. 出生年月 5. 學(xué)歷 6. 職務(wù) 7. 電話 8. 住址 0.退出 n);scanf( %c,&ch);if(ch=0)break;if(ch8)printf( 輸入錯(cuò)誤,請(qǐng)重新輸入 !n);continue;fflush(stdin);printf( 請(qǐng)輸入 :);gets(q-con );p=head; / 指向表頭flag=0;whil

15、e(p!=NULL)if(Sel(ch,p,q)printf( 員工信息如下 :n);printf( 編 號(hào) | 姓 名 | 性 別 | 出 生 年 月 | 學(xué) 歷 | 職 務(wù) | 電 話 | 住 址 n%s %s %s %s %s %s %s %sn,p-number ,p-name ,p-sex ,p-borth ,p-degree ,p-business ,p-phone ,p-place );printf( 是否需要 :1. 更改 2. 刪除 3. 繼續(xù) n);scanf( %c,&sh);if(sh=1)調(diào)用更改函數(shù)調(diào)用刪除函數(shù),得到的 head 必須 returnChn(head,

16、p-number); /else if(sh=2)head=Del(head,p-number); /flag=1;break;p=p-next ;if(flag=0)printf( 沒有找到該員工信息!n);return head;/ 更改函數(shù)/ 輸入?yún)?shù):n10 為員工編號(hào)void Chn(struct Stuff *head,char n10) struct Stuff *p=head;int flag=0;if(head=NULL)printf( 未找到員工信息 !n);elsewhile(p!=NULL)if(!strcmp(p-number,n)printf( 請(qǐng)輸入新的信息 :n

17、 編號(hào) | 姓名 | 性別 | 出生年月 | 學(xué)歷 | 職務(wù) | 電話 | 住址 n);scanf(%s%s%s%s%s%s%s%s,p-number ,p-name ,p-sex ,p-borth ,p-degree ,p-business ,p-phone ,p-place );printf( 員工信息如下 :n);flag+;break;p=p-next;if(flag=0)printf( 未找到該員工信息!n);Prf(head);/ 刪除函數(shù)/ 輸入?yún)?shù):n 為員工編號(hào)/ 輸出參數(shù): 頭指針struct Stuff *Del(struct Stuff *head,char n10)

18、/ 18 / 18struct Stuff *p,*pr;int flag;flag=0;p=head,pr=head;if(head=NULL)printf( 未找到員工信息 !n);elsewhile(strcmp(p-number ,n)&p-next !=NULL)pr=p;p=p-next ;if(!strcmp(p-number ,n)if(p=head)head=p-next ;elsepr-next=p-next ;free(p);printf( 刪除成功 !n);i-;elseprintf( 未找到員工信息!n);Prf(head);return head;/ 輸出函數(shù)voi

19、d Prf(struct Stuff *head)struct Stuff *p=head;int i=1;while(p!=NULL)printf(%d. %s %s %s %s %s %s %s %sn,i+,p-number ,p-name ,p-sex ,p-borth ,p-degree ,p-business ,p-phone ,p-pla ce);p=p-next ;/ 釋放函數(shù)void Fre(struct Stuff *head)struct Stuff *p;while(head!=NULL)p=head;head=head-next ;free(p);六實(shí)驗(yàn)界面截圖:( 1 )管理界面F:09710219Debug員工管璉-exe”(3)修改信息界面 / 18目自心 息

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論