




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、簡單的員工管理系統(tǒng)1、問題描述: 對單位的職工進行管理,包括插入、刪除、查找、排序等功能。2、要求 : 職工對象包括姓名(字符串)、性別(字符)、出生年月(數(shù)字)、工作年月(數(shù)字)、學歷(字符串)、職務(字符串)、住址(字符串)、電話(字符串)等信息。 (1)新增一名職工:將新增職工對象按姓名以字典方式職工管理文件中。 (2)刪除一名職工:從職工管理文件中刪除一名職工對象。 (3)查詢:從職工管理文件中查詢符合某些條件的職工。 (4)修改:檢索某個職工對象,對其某些屬性進行修改。 (5)排序:按某種需要對職工對象文件進行排序。 3、實現(xiàn)功能 (1)由鍵盤輸入職工對象,以文件方式保存。程序執(zhí)行時
2、先將文件讀入內存。 (2)對職工對象中的“姓名”按字典順序進行排序。 (3)對排序后的職工對象進行增、刪、查詢、修改、排序等操作。4、代碼:#include #include #include #include typedef struct worker 1 / 12 int id; char name20; char sex3; int age; char edu50; int wages; char adr255; char phone13;WORKER, *PWORKER; /typedef struct WORKER *PWORKER;typedef struct link WORKE
3、R w; struct link *next; LINK, *PLINK; /typedef struct LINK *PLINK; /*創(chuàng)建職工信息鏈表*/PLINK create() PLINK p=(PLINK)malloc(sizeof(LINK); if(NULL!=p) p-next=NULL; return p; printf(內存不足!n); return NULL; /*顯示程序界面文字*/ void message() printf(tt*nn); printf(tt歡迎進入職工管理系統(tǒng)next; curr != NULL; curr = curr-next) if(str
4、cmp(, str) = 0) printf(職工工號:%dn,curr-w.id); printf(職工姓名:%sn,); printf(職工性別:%sn,curr-w.sex); printf(職工年齡:%dn,curr-w.age); printf(職工學歷:%sn,); printf(職工工資:%dn,curr-w.wages); printf(職工住址:%sn,curr-w.adr); printf(職工電話:%sn,curr-w.phone); void findid(PLINK plink, int id) for(P
5、LINK curr = plink-next; curr != NULL; curr = curr-next) if(curr-w.id = id) printf(職工工號:%dn,curr-w.id); printf(職工姓名:%sn,); printf(職工性別:%sn,curr-w.sex); printf(職工年齡:%dn,curr-w.age); printf(職工學歷:%sn,); printf(職工工資:%dn,curr-w.wages); printf(職工住址:%sn,curr-w.adr); printf(職工電話:%sn,curr
6、-w.phone); void show(PLINK plink) for(PLINK curr = plink-next; curr != NULL; curr = curr-next) printf(職工工號:%dn,curr-w.id); printf(職工姓名:%sn,); printf(職工性別:%sn,curr-w.sex); printf(職工年齡:%dn,curr-w.age); printf(職工學歷:%sn,); printf(職工工資:%dn,curr-w.wages); printf(職工住址:%sn,curr-w.adr);
7、printf(職工電話:%sn,curr-w.phone); /*錄入職工信息*/int add(PLINK p) PLINK h = NULL; PLINK q=(PLINK)malloc(sizeof(LINK); if(NULL=q) printf(錄入失敗提示:內存不足!n); return -1; printf(請輸入職工號(數(shù)字):); scanf(%d,&q-w.id); h=p-next; while(h) if(h-w.id=q-w.id) free(q); printf(錄入失敗提示:此職工號已經(jīng)存在!n); return -1; h=h-next; printf(請輸入職
8、工姓名(文字):); scanf(%s,&); printf(請輸入職工性別(文字):); scanf(%s,&q-w.sex); printf(請輸入職工年齡(數(shù)字):); scanf(%d,&q-w.age); printf(請輸入職工學歷(文字):); scanf(%s,&); printf(請輸入職工工資(數(shù)字):); scanf(%d,&q-w.wages); printf(請輸入職工住址(文字):); scanf(%s,&q-w.adr); printf(請輸入職工電話(數(shù)字):); scanf(%s,&q-w.phone); q-next=p-nex
9、t; p-next=q; printf(._.錄入成功!._.n); return -1; /*按姓名查詢*/ PLINK findname(PLINK p,char *name) message(); printf(按姓名 查詢n); printf(職工號t姓名t性別t年齡t學歷t工資t住址t電話n); while(NULL!=p-next) if(0=strcmp(,name) printf(%dt%st%st%dt%st%dt%st%sn, p-next-w.id,,p-next-w.sex,p-next-w.adr, p-next-w
10、.edu,p-next-w.wages,p-next-w.adr,p-next-w.phone); return p; p=p-next; printf(._.查詢結束!._.n); return NULL; /*按職工號刪除職工信息*/ int del(PLINK p,int id) message(); printf(按職工號刪除職工信息n); while(NULL!=p-next) if(p-next-w.id=id) PLINK q=p-next; p-next=p-next-next; free(q); printf(._.刪除成功!._.n); return 1; p=p-next
11、; printf(沒有你輸入的職工號!n); return -1; /*程序結束釋放內存*/ void release(PLINK p) PLINK q; while(NULL!=p-next) q=p; p=p-next; free(q); free(p); /*查詢調用*/ void search() int id; char name20; char str20; PLINK pworker; int l; printf(tttt*姓名查找按:1*n); printf(tttt*學歷查找按:2*n); printf(tttt*職工號查按:3*n); scanf(%d,&l); if(l0
12、&lnext; while(h) if(h-w.id=id) break; h=h-next; if (h = NULL) printf(找不到此職工,請重試n); return -1; printf(請輸入職工姓名(文字):); scanf(%s,&); printf(請輸入職工性別(文字):); scanf(%s,&h-w.sex); printf(請輸入職工年齡(數(shù)字):); scanf(%d,&h-w.age); printf(請輸入職工學歷(文字):); scanf(%s,&); printf(請輸入職工工資(數(shù)字):); scanf(%d,&h-w.w
13、ages); printf(請輸入職工住址(文字):); scanf(%s,&h-w.adr); printf(請輸入職工電話(數(shù)字):); scanf(%s,&h-w.phone); q-next=p-next; p-next=q; printf(._.修改成功!._.n); return -1; int main() int cmd=0; int id; char name20; char str20; PLINK pworker; if(!(pworker=create() exit(0); while(cmd!=-1) switch(cmd) case 0: message(); br
14、eak; case 1: add(pworker); break; case 2: show(pworker); break; case 3: search(); break; case 4: printf(請輸入要刪除的職工號:); scanf(%d,&id); del(pworker,id); break; case 5: modify(pworker); break; case 6: message(); break; printf(請輸入操作命令數(shù)字:n); scanf(%d,&cmd); printf(tt謝謝使用nn); release(pworker); return 0;4.測
15、試結果:5總結: 本次課程設計是圍繞數(shù)據(jù)結構進行。根據(jù)問題描述可知,需要解決問題并不復雜,整個問題只需要實現(xiàn)一個職工管理系統(tǒng)功能,那就是在這個系統(tǒng)中實現(xiàn)對職工信息的插入、刪除、查詢、排序、修改以及保存。但是,為了實現(xiàn)該功能,卻需要優(yōu)秀的算法和數(shù)據(jù)結構以保證實現(xiàn)的時間和空間效率。把職工信息存儲在一個單鏈表中,利用指針實現(xiàn)對職工信息的各項基本操作。 雖然設計的程序完成了題目描述所需要實現(xiàn)的功能,但是仍然存在不如人意的地方。那就是可以排序上面多設計幾個算法。實現(xiàn)多角度排序。在這個系統(tǒng)中沒有職工序號的信息,所以允許職工姓名相同,在很大程度上面,可能是的職工信息重復。 經(jīng)過這次數(shù)據(jù)結構課程設計,我們不僅及時鞏固的了數(shù)據(jù)結構、算法、以及軟件工程的知識,并明白數(shù)據(jù)結構和算法對于程序時間和空間性能的影響,及軟件工程提供的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 家庭農場運輸協(xié)議書范本
- 電梯合作協(xié)議書范本
- 家庭戰(zhàn)火離婚協(xié)議書范本
- 離婚財產分割協(xié)議樣本合理分配資產
- 歐洲旅游團導游派遣及培訓服務合同
- 項目眾籌協(xié)議書范本
- 車輛贈與及保險理賠責任劃分合同
- 新能源產業(yè)股份低價轉讓與政策優(yōu)惠對接協(xié)議
- 房屋補償分配協(xié)議書范本
- 離婚財產分割變更協(xié)議重新起訴狀
- 2025年中科院心理咨詢師培訓考試復習題庫-上(單選題)
- 《數(shù)據(jù)類型概述》課件
- 植物細胞的分子生物學研究-深度研究
- 兒童專注力訓練300題可打印
- DeepSeek零基礎到精通手冊(保姆級教程)
- 2025年度工業(yè)園區(qū)物業(yè)管理及服務收費標準及細則
- 2024-2030年中國橋梁管理與養(yǎng)護市場調查研究及發(fā)展趨勢分析報告
- 《施工現(xiàn)場安全用電》課件
- 小學四年級下冊四則混合運算及簡便運算
- 國家開放大學本科《商務英語4》一平臺機考真題及答案(第四套)
評論
0/150
提交評論