![簡單的員工管理系統(tǒng)(共32頁)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/18/6dc6cecd-9f00-48ee-8f0d-826538e1ea35/6dc6cecd-9f00-48ee-8f0d-826538e1ea351.gif)
![簡單的員工管理系統(tǒng)(共32頁)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/18/6dc6cecd-9f00-48ee-8f0d-826538e1ea35/6dc6cecd-9f00-48ee-8f0d-826538e1ea352.gif)
![簡單的員工管理系統(tǒng)(共32頁)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/18/6dc6cecd-9f00-48ee-8f0d-826538e1ea35/6dc6cecd-9f00-48ee-8f0d-826538e1ea353.gif)
![簡單的員工管理系統(tǒng)(共32頁)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/18/6dc6cecd-9f00-48ee-8f0d-826538e1ea35/6dc6cecd-9f00-48ee-8f0d-826538e1ea354.gif)
![簡單的員工管理系統(tǒng)(共32頁)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/18/6dc6cecd-9f00-48ee-8f0d-826538e1ea35/6dc6cecd-9f00-48ee-8f0d-826538e1ea355.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優(yōu)質文檔-傾情為你奉上淮 海 工 學 院 計算機工程學院課程設計報告設計名稱: 數(shù)據(jù)結構課程設計 選題名稱: 簡單的員工管理系統(tǒng) 姓 名: 徐峰 學 號: 專業(yè)班級: 網(wǎng)絡工程132 系 (院): 計算機工程學院 設計時間: 2013.12.232013.1.3 設計地點: 軟件工程實驗室、教室105 成績:指導教師評語: 簽名: 年 月 日專心-專注-專業(yè)1課程設計目的1、訓練學生靈活應用所學數(shù)據(jù)結構知識,獨立完成問題分析,結合數(shù)據(jù)結構理論知識,編寫程序求解指定問題。 2.初步掌握軟件開發(fā)過程的問題分析、系統(tǒng)設計、程序編碼、測試等基本方法和技能;3.提高綜合運用所學的理論知識和方法獨立分
2、析和解決問題的能力;4.訓練用系統(tǒng)的觀點和軟件開發(fā)一般規(guī)范進行軟件開發(fā),鞏固、深化學生的理論知識,提高編程水平,并在此過程中培養(yǎng)他們嚴謹?shù)目茖W態(tài)度和良好的工作作風。2課程設計任務與要求:任務根據(jù)教材數(shù)據(jù)結構-C語言描述(耿國華主編)和參考書數(shù)據(jù)結構題集(C語言版)(嚴蔚敏、吳偉民主編)選擇課程設計題目,要求通過設計,在數(shù)據(jù)結構的邏輯特性和物理表示、數(shù)據(jù)結構的選擇應用、算法的設計及其實現(xiàn)等方面加深對課程基本內容的理解和綜合運用。設計題目從任務書所列選題表中選取,每班每題不得超過2人。學生自選課題學生原則上可以結合個人愛好自選課題,要求課題有一定的深度與難度,有一定的算法復雜性,能夠鞏固數(shù)據(jù)結構課
3、程所學的知識。學生自選課題需在18周前報課程設計指導教師批準方可生效。要求:1、在處理每個題目時,要求從分析題目的需求入手,按設計抽象數(shù)據(jù)類型、構思算法、通過設計實現(xiàn)抽象數(shù)據(jù)類型、編制上機程序和上機調試等若干步驟完成題目,最終寫出完整的分析報告。前期準備工作完備與否直接影響到后序上機調試工作的效率。在程序設計階段應盡量利用已有的標準函數(shù),加大代碼的重用率。 2、.設計的題目要求達到一定工作量(300行以上代碼),并具有一定的深度和難度。3、程序設計語言推薦使用C/C+,程序書寫規(guī)范,源程序需加必要的注釋;4、每位同學需提交可獨立運行的程序;5 、每位同學需獨立提交設計報告書(每人一份),要求編
4、排格式統(tǒng)一、規(guī)范、內容充實,不少于10頁(代碼不算);6、課程設計實踐作為培養(yǎng)學生動手能力的一種手段,單獨考核。 3課程設計說明書一 需求分析 職工管理系統(tǒng)是一個工作單位不可缺少的管理工具,它管理的數(shù)據(jù)對于公司的決策者和管理者來說都至關重要,所以職工管理系統(tǒng)應該能夠為用戶提供充足的信息和快捷的查詢手段。但一直以來各個公司基本上都是靠傳統(tǒng)的人工方式來管理職工信息,這種管理方式存在著許多缺點,如:效率低、保密性差,另外時間一長,將產(chǎn)生大量的文件和數(shù)據(jù),這對于信息的查找、更新和維護都帶來了不少的困難。職工管理系統(tǒng)作為一種管理軟件正在各公司中得到越來越廣泛的應用,且已達到了良好效果。簡單的
5、職工管理系統(tǒng): 1、問題描述 對單位的職工進行管理,包括插入、刪除、查找、排序等功能。 2、要求 職工對象包括代碼(字符串)、姓名(字符串)、性別(字符)、出生年月(字符串)、學歷(字符串)、職務(字符串)、工資(數(shù)字)等信息。 (1) 新增一名職工:將新增職工對象按姓名以字典方式職工管理文件中。 (2) 刪除一名職工:從職工管理文件中刪除一名職工對象。 (3) 查詢:從職工管理文件中查詢符合某些條件的職工。 (4) 修改:檢索某個職工對象,對其某些屬性進行修改。 (5) 排序:按某種需要對職工對象文件進
6、行排序。 3、實現(xiàn)功能 (1)由鍵盤輸入職工對象,以文件方式保存。程序執(zhí)行時先將文件讀入內存。 (2)對職工對象中的“工資”按字典順序進行排序。 (3)對排序后的職工對象進行增、刪、查詢、修改、排序等操作。二 概要設計 1、輸入功能的實現(xiàn):要想實現(xiàn)職工管理系統(tǒng)的輸入,必須要建立一個職工信息系統(tǒng)的抽象數(shù)據(jù)類型,其中職工信息以鏈表的存儲方式實現(xiàn)。由鍵盤輸入職工對象,以文件方式保存。程序執(zhí)行時先將文件讀入內存。 2、系統(tǒng)處理功能的實現(xiàn):系統(tǒng)管理員根據(jù)公司的人員流動情況,在提示信息的提示下,選擇相應的服務進行操作。如對職工對
7、象中的"工資"按字典順序進行排序;對排序后的職工對象進行增、刪、查詢、修改、排序等操作。 3、輸出的實現(xiàn):根據(jù)選擇的操作,輸出與之對應的信息。 綜上可以繪制出職工管理功能的系統(tǒng)流程圖,如圖1所示 總控模塊 輸出模塊 系統(tǒng)處理模塊 輸入模塊 測試模塊4. 系統(tǒng)功能結構根據(jù)職工管理系統(tǒng)問題的分析和設計要求,可以得到該職工管理系統(tǒng)可以分為五個模塊:職工信息添加模塊、職工信息修改模塊、職工信息刪除模塊、職工信息查詢模塊、職工信息排序模塊。其系統(tǒng)功能結構如圖2所示。職工管理系統(tǒng) 信息處理退出系統(tǒng)排序功能查詢信息注冊職工工資排序保存文件職務查詢姓名查詢
8、代碼查詢工資查詢修改信息刪除信息信息顯示 圖2 系統(tǒng)功能結構圖5.模塊函數(shù)構造根據(jù)系統(tǒng)功能結構圖的描述,可以構造出該系統(tǒng)的抽象數(shù)據(jù)類型和相對應的函數(shù),其方法名和功能如表1所示。 1. 函數(shù)功能表模塊 函數(shù)或數(shù)據(jù)結構 功能 鏈表數(shù)據(jù)模塊typedef struct Employee Node; typedef Node* Link; 定義鏈表結點系統(tǒng)處理模塊Link Create(Link Head)創(chuàng)建帶頭節(jié)點的空鏈表void Release(Link Head) 釋放鏈表Link Add(Link Head) 前插法添加數(shù)據(jù)bool Search(Link Head) 查詢職工信息void
9、Display_List(Link Head) 顯示職工信息Link Modify(Link Head) 修改職工信Link Del(Link Head) 刪除職工信息Link Sort(Link Head) 職工信息排序VoidSave_ByFile(LinkHead,fstream& ofile) 保存職工信息輸出模塊void Display_Node(Link pNode)輸出職工信息三 詳細設計1、抽象數(shù)據(jù)類型定義1)定義表結點(typedef struct Node)struct Employee* Next; typedef struct Employee Node; ty
10、pedef Node* Link;2)初始化鏈表Link Create(Link Head) /創(chuàng)建一個帶頭節(jié)點的空鏈表。 Head=(Link)new Node; if(!Head) cout<<"分配內存失?。?quot;<<endl; return NULL; Head->m_Code="" Head->m_Name="" Head->m_Year=0; Head->m_Sex="" Head->m_Post="" Head->m_Depa
11、rtment="" Head->m_Wage=0; Head->Next=NULL; return Head; 2. 主函數(shù)設計根據(jù)詳細設計要求,可以得到主函數(shù)代碼及其對應的程序流程圖:在主函數(shù)中,實現(xiàn)了友好的界面設計。系統(tǒng)需要輸入職工的基本信息:姓名、性別、出生年月、工作年月、學歷、職務、工資等。這個系統(tǒng)還利用鍵盤輸入提供的主菜單服務,在主菜單中,有八種操作的調用:Link Create(Link Head)創(chuàng)建帶頭節(jié)點的空鏈表void Release(Link Head) 釋放鏈表Link Add(Link Head) 前插法添加數(shù)據(jù)bool Search(
12、Link Head) 查詢職工信息void Display_List(Link Head) 顯示職工信息Link Modify(Link Head) 修改職工信息Link Del(Link Head) 刪除職工信息Link Sort(Link Head) 職工信息排序VoidSave_ByFile(LinkHead,fstream& ofile) 保存職工信息void Display_Node(Link pNode)輸出職工信息主函數(shù)代碼見附錄1主函數(shù)程序流程圖如圖4所示:圖 4 主函數(shù)程序流程圖3添加職工信息Link Add(Link Head) /前插法添加數(shù)據(jù)。 Link pNe
13、w;/ 聲明一個新節(jié)點。 char again; string code,name,sex,post,department; unsigned short int year; unsigned int wage; do pNew=(Link)new Node; /數(shù)據(jù)域。 cout<<"請輸入職工代碼:" cin>>code; cout<<endl<<"請輸入職工姓名:" cin>>name; cout<<endl<<"請輸入職工出生年份:" cin&
14、gt;>year; cout<<endl<<"請輸入職工性別:" cin>>sex; cout<<endl<<"請輸入職工職稱:" cin>>post; cout<<endl<<"請輸入職工部門:" cin>>department; cout<<endl<<"請輸入職工工資:" cin>>wage; while(cin.fail() cout<<"
15、;請輸入正確的工資數(shù)據(jù)。"<<endl; cin.clear(); fflush(stdin); cin>>wage; cout<<endl; pNew->m_Code=code; pNew->m_Name=name; pNew->m_Year=year; pNew->m_Sex=sex; pNew->m_Post=post; pNew->m_Department=department; pNew->m_Wage=wage; /指針域。 pNew->Next=Head->Next; Head-&
16、gt;Next=pNew; cout<<"數(shù)據(jù)添加成功!是否繼續(xù)添加?(Y/N)"<<endl; cin>>again; while(again='Y'|again='y'); return Head; cin>>department; cout<<endl<<"請輸入職工工資:" cin>>wage; while(cin.fail() cout<<"請輸入正確的工資數(shù)據(jù)。"<<endl; cin
17、.clear(); fflush(stdin); cin>>wage; cout<<endl; pNew->m_Code=code; pNew->m_Name=name; pNew->m_Year=year; pNew->m_Sex=sex; pNew->m_Post=post; pNew->m_Department=department; pNew->m_Wage=wage; /指針域。 pNew->Next=Head->Next; Head->Next=pNew; cout<<"數(shù)據(jù)添
18、加成功!是否繼續(xù)添加?(Y/N)"<<endl; cin>>again; while(again='Y'|again='y'); return Head; 4信息查詢模塊在查詢算法中,職工管理系統(tǒng)提供了七種查詢操作,實現(xiàn)了系統(tǒng)的人性化查詢操作。這些查詢操作分別為:對姓名進行查詢,對性別進行查詢,對出生年月進行查詢,對學歷進行查詢,對職位進行查詢,對工資進行查詢等一些列操作。查找算法中,利用鏈表的指針的移動掃描整個職工信息表,利用strcmp()函數(shù)判斷字符串是否匹配。bool Search(Link Head) /查詢同時滿足&
19、quot;姓名"和"部門"的職工信息。 Link ptr; string department; string name; ptr=Head->Next; cout<<"請輸入部門:" cin>>department; cout<<endl<<"請輸入姓名:" cin>>name; cout<<endl<<"-查詢結果-"<<endl;cout<<endl<<"職工代碼
20、姓名 出生年份 性別 職稱 部門 工資"<<endl; while(ptr) if(ptr->m_Name=name)&&(ptr->m_Department=department) Display_Node(ptr);/打印滿足條件的節(jié)點。 return true; ptr=ptr->Next;/查詢下一節(jié)點。 cout<<"無此職工的信息。"<<endl; return false; 5 排序算法設計在排序算法中,對工資進行排序的核心代碼:Link Sort(Link Head) /我創(chuàng)建的
21、是帶頭節(jié)點的鏈表。用直接插入法。 if(Head->Next=NULL)|(Head->Next->Next=NULL)/此步條件判斷非常有價值。 cout<<"數(shù)據(jù)節(jié)點數(shù)少于2個,不用排序!"<<endl; return Head; /-第二步; Link ptr; Link ptr_F; Link ptr_N; ptr=Head->Next->Next;Head->Next->Next=NULL;/到此,分成了兩個鏈表。 /第三步。 while(ptr) ptr_N=ptr->Next; ptr_F
22、=Head;/ptr_F的歸位。 while(ptr_F->Next) if(ptr->m_Wage>ptr_F->Next->m_Wage) ptr->Next=ptr_F->Next; ptr_F->Next=ptr; break; /if else ptr_F=ptr_F->Next; /while(ptr_F->Next) if(ptr_F->Next=NULL) ptr->Next=ptr_F->Next; ptr_F->Next=ptr;/表示插到有序鏈表的最后面了。 ptr=ptr_N;/歸位,準
23、備下一次排序。 /while(ptr) cout<<"從高到低,排序成功!"<<endl; return Head; 6刪除核心算法在刪除算法中,職工管理系統(tǒng)提供操作,實現(xiàn)了系統(tǒng)的人性化刪除操作。提示對姓名進行輸入,對性別進行輸入,等一些列操作。查找算法中,利用鏈表的指針的移動掃描整個職工信息表,如果存在,則刪除該職工信息,如果不存在,則提示輸入信息錯誤。Link Del(Link Head) Link ptr; Link ptr_front; ptr_front=Search_Unique_Front(Head); ptr=ptr_front-&g
24、t;Next; if(ptr) ptr_front->Next=ptr->Next; delete ptr;/刪除此節(jié)點。 cout<<"沒找到此職工的記錄,無法刪除。"<<endl; return Head; 四 設計與調試分析測試是使用人工或者自動手段來運行或測試某個系統(tǒng)的過程,其目的在于檢驗是否滿足規(guī)定的需求或弄清預期結果與實際結果之間的差別。 在調試查詢修改功能過程中,查詢的總是不正確,查詢的結果顯示,沒有找到職工信息,最后發(fā)現(xiàn)查找的結點不正確,查詢應該與輸入的值和頭結點next比較,而不是頭結點。還有就是查詢結點不知道
25、如何循環(huán),最后又看看了記得筆記和書,才知道如何繼續(xù)查找而不出錯誤。 修改時總是不能正確的修改,最初時修改總是修改最后輸入的數(shù)據(jù)。最后終于找到了,又是結點寫錯了。 排序時注意交換的先后順序就可以了,刪除時注意交換結點的順序。 經(jīng)驗與體會: 本次課程設計是圍繞數(shù)據(jù)結構進行。根據(jù)問題描述可知,需要解決問題并不復雜,整個問題只需要實現(xiàn)一個職工管理系統(tǒng)功能,那就是在這個系統(tǒng)中實現(xiàn)對職工信息的插入、刪除、查詢、排序、修改以及保存。但是,為了實現(xiàn)該功能,卻需要優(yōu)秀的算法和數(shù)據(jù)結構以保證實現(xiàn)的時間和空間效率。把職工信息存儲在一個單鏈表中,利用指針實現(xiàn)對職工信息的各項基本
26、操作。 雖然設計的程序完成了題目描述所需要實現(xiàn)的功能,但是仍然存在不如人意的地方。那就是可以排序上面多設計幾個算法。實現(xiàn)多角度排序。在這個系統(tǒng)中沒有職工序號的信息,所以允許職工姓名相同,在很大程度上面,可能是的職工信息重復。 經(jīng)過這次數(shù)據(jù)結構課程設計,我們不僅及時鞏固的了數(shù)據(jù)結構、算法、以及軟件工程的知識,并明白數(shù)據(jù)結構和算法對于程序時間和空間性能的影響,及軟件工程提供的開發(fā)流程和工具對于實現(xiàn)特定功能程序的重要意義。 當我們面對一個實際問題,應該迅速根據(jù)問題性質和特點抽象成特定的數(shù)據(jù)結構,當然每個問題都有可能能夠抽象成多種數(shù)據(jù)結構,每種數(shù)據(jù)結構適應于不同的算法。因
27、此應該綜合考慮這樣的數(shù)據(jù)結構、算法以及它們的空間和時間效率,然后從中選擇一個作為實現(xiàn)程序的基礎。 此外,對程序的測試應該要仔細,根據(jù)模塊的特點和測試階段,采用各種軟件測試方法對程序進行測試,確保各個模塊的正確性和完整性,最后集成起來測試其是否正確和完整地實現(xiàn)了問題描述中要求的功能。五 用戶手冊進入職工管理系統(tǒng),首先看到的就是歡迎界面:輸入相應操作的數(shù)字, 1.新增職工信息2.修改信息3.刪除信息4.信息查詢5.保存文件6.工資排行7.信息顯示0.退出系統(tǒng)輸入相應操作的數(shù)字, 選擇1、請輸入注冊職工:按次序依次輸入職工的姓名、性別、出生年月、學歷、職務、工資的信息(
28、注意是依次輸入,中間可以用空格,tab,回車做切換輸入),輸完信息后自動回到主界面。選擇2,提示修改信息的代碼、姓名,成功正確返回,錯誤有提示無此員工信息;選擇3,提示刪除信息方式:成功正確返回,錯誤有提示無此員工信息;選擇4,信息查詢,顯示統(tǒng)計的數(shù)據(jù);選擇5,保存文件;選擇6. 按工資進行排序,進行輸出排序后的數(shù)據(jù);選擇7.信息顯示;選擇0.退出系統(tǒng).六 測試成果(1)進入職工管理系統(tǒng)(2) 注冊職工信息(3) 修改信息(4) 刪除信息(5) 信息查詢(6) 保存文件(7)工資排行(8)信息顯示七 附錄(源程序清單)參考文獻:1李云清,楊慶紅,揭安全.數(shù)據(jù)結構(C語言版)M.北京:人民郵電大
29、學出版社,2004.6 2潘彥.算法設計與分析基礎M.北京:清華大學出版社,2007.1 3肖夢強,曲秀清.軟件工程原理、方法與應用 M.北京:中國水利水電出版社,2005.10 4 呂鳳翥.C+語言程序設計(第2版)M.北京:電子工業(yè)出版社,2007.2 5 嚴蔚敏,吳偉民.數(shù)據(jù)結構(C語言版)M.北京:清華大學出版社,2002.9 #include <string> #include <iostream> #include <fstream> #include &
30、lt;iomanip> #include <memory.h> #include <stdio.h> #include <conio.h> #include <stdlib.h> using namespace std; struct Employee /聲明職工的結構作為鏈表節(jié)點。 /-數(shù)據(jù)域- string m_Code; string m_Name; unsigned int m_Year; string m_Sex; string m_Post; string m_Department; unsigned int m_Wage; /
31、鏈表節(jié)點的指針域- struct Employee* Next; ; typedef struct Employee Node; typedef Node* Link; /-函數(shù)聲明- Link Create(Link Head); void Release(Link Head); Link Add(Link Head); bool Search(Link Head); Link Search_Unique(Link Head); void Display_List(Link Head); void Display_Node(Link pNode); Link Modify(Link Head
32、); Link Del(Link Head); void Save_ByFile(Link Head,fstream& ofile); Link Sort(Link Head); /-函數(shù)實現(xiàn)- Link Create(Link Head) /創(chuàng)建一個帶頭節(jié)點的空鏈表。 Head=(Link)new Node; if(!Head) cout<<"分配內存失??!"<<endl; return NULL; Head->m_Code="" Head->m_Name="" Head->m_Ye
33、ar=0; Head->m_Sex="" Head->m_Post="" Head->m_Department="" Head->m_Wage=0; Head->Next=NULL; return Head; void Release(Link Head) /釋放鏈表。 Link ptr;/聲明一個操作用的指針。 while(Head!=NULL) ptr=Head; Head=Head->Next; delete ptr;/釋放節(jié)點資源。 Link Add(Link Head) /前插法添加數(shù)據(jù)。
34、 Link pNew;/ 聲明一個新節(jié)點。 char again; string code,name,sex,post,department; unsigned short int year; unsigned int wage; do pNew=(Link)new Node; /數(shù)據(jù)域。 cout<<"請輸入職工代碼:" cin>>code; cout<<endl<<"請輸入職工姓名:" cin>>name; cout<<endl<<"請輸入職工出生年份:&q
35、uot; cin>>year; while(cin.fail() cout<<"請輸入正確的年份格式。"<<endl; cin.clear(); fflush(stdin); cin>>year; cout<<endl<<"請輸入職工性別:" cin>>sex; cout<<endl<<"請輸入職工職稱:" cin>>post; cout<<endl<<"請輸入職工部門:"
36、 cin>>department; cout<<endl<<"請輸入職工工資:" cin>>wage; while(cin.fail() cout<<"請輸入正確的工資數(shù)據(jù)。"<<endl; cin.clear(); fflush(stdin); cin>>wage; cout<<endl; pNew->m_Code=code; pNew->m_Name=name; pNew->m_Year=year; pNew->m_Sex=sex;
37、 pNew->m_Post=post; pNew->m_Department=department; pNew->m_Wage=wage; /指針域。 pNew->Next=Head->Next; Head->Next=pNew; cout<<"數(shù)據(jù)添加成功!是否繼續(xù)添加?(Y/N)"<<endl; cin>>again; while(again='Y'|again='y'); return Head; bool Search(Link Head) /查詢同時滿足&quo
38、t;姓名"和"部門"的職工信息。 Link ptr; string department; string name; ptr=Head->Next; cout<<"請輸入部門:" cin>>department; cout<<endl<<"請輸入姓名:" cin>>name; cout<<endl<<"-查詢結果-"<<endl;cout<<endl<<"職工代碼 姓名
39、出生年份 性別 職稱 部門 工資"<<endl; while(ptr) if(ptr->m_Name=name)&&(ptr->m_Department=department) Display_Node(ptr);/打印滿足條件的節(jié)點。 return true; ptr=ptr->Next;/查詢下一節(jié)點。 cout<<"無此職工的信息。"<<endl; return false; Link Search_Unique_Front(Link Head) /查詢滿足"職工代碼"
40、的職工信息(職工代碼必需唯一)。 Link ptr; string code; ptr=Head; cout<<"請輸入職工代碼:" cin>>code; cout<<endl<<"-查詢結果-"<<endl; cout<<endl<<"職工代碼 姓名 出生年份 性別 職稱 部門 工資"<<endl; while(ptr->Next) if(ptr->Next->m_Code=code) /Display_Node(ptr
41、);/打印滿足條件的節(jié)點。 return ptr;/注意,是返回的查詢到的節(jié)點的直接前趨節(jié)點。 ptr->Next=ptr->Next->Next;/查詢下一節(jié)點。 return ptr; void Display_List(Link Head) Link ptr; ptr=Head->Next; cout<<"=所有職工信息="<<endl;cout<<endl<<"職工代碼 姓名 出生年份 性別 職稱 部門 工資"<<endl; while(ptr) Display_
42、Node(ptr); ptr=ptr->Next; void Display_Node(Link pNode) /在標準輸出設備上輸出。 cout<<setw(10)<<left<<pNode->m_Code <<setw(10)<<left<<pNode->m_Name <<setw(10)<<left<<pNode->m_Year <<setw(10)<<left<<pNode->m_Sex <<setw(
43、10)<<left<<pNode->m_Post <<setw(10)<<left<<pNode->m_Department <<setw(10)<<left<<pNode->m_Wage<<endl;/setw(10)表示占10個字符位置。 Link Modify(Link Head) / 修改單一個節(jié)點。 Link ptr; ptr=Search_Unique_Front(Head); string code,name,sex,post,department; un
44、signed short int year; unsigned int wage; if(ptr->Next) cout<<"-你現(xiàn)在可以修改此職工的信息了-"<<endl;cout<<endl<<"職工代碼 姓名 出生年份 性別 職稱 部門 工資"<<endl; /數(shù)據(jù)域。 cout<<"請輸入職工代碼:" cin>>code; cout<<endl<<"請輸入職工姓名:" cin>>na
45、me; cout<<endl<<"請輸入職工出生年份:" cin>>year; while(cin.fail() cout<<"請輸入正確的年份格式。"<<endl; cin.clear(); fflush(stdin); cin>>year; cout<<endl<<"請輸入職工性別:" cin>>sex; cout<<endl<<"請輸入職工職稱:" cin>>post
46、; cout<<endl<<"請輸入職工部門:" cin>>department; cout<<endl<<"請輸入職工工資:" cin>>wage; while(cin.fail() cout<<"請輸入正確的工資數(shù)據(jù)。"<<endl; cin.clear(); fflush(stdin); cin>>wage; cout<<endl; ptr->Next->m_Code=code;/因ptr是前趨節(jié)點
47、,所以要用ptr->Next; ptr->Next->m_Name=name; ptr->Next->m_Year=year; ptr->Next->m_Sex=sex; ptr->Next->m_Post=post; ptr->Next->m_Department=department; ptr->Next->m_Wage=wage; cout<<"沒找到此職工的記錄,無法修改。"<<endl; return Head; Link Del(Link Head) Link
48、ptr; Link ptr_front; ptr_front=Search_Unique_Front(Head); ptr=ptr_front->Next; if(ptr) ptr_front->Next=ptr->Next; delete ptr;/刪除此節(jié)點。 cout<<"沒找到此職工的記錄,無法刪除。"<<endl; return Head; void Save_ByFile(Link Head,fstream& ofile) Link pNode; pNode=Head->Next; ofile.clear(
49、);/清除文件結束狀態(tài)。 while(pNode) ofile<<setw(10)<<left<<pNode->m_Code <<setw(10)<<left<<pNode->m_Name <<setw(10)<<left<<pNode->m_Year <<setw(10)<<left<<pNode->m_Sex <<setw(10)<<left<<pNode->m_Post <&
50、lt;setw(10)<<left<<pNode->m_Department <<setw(10)<<left<<pNode->m_Wage<<endl;/setw(10)表示占10個字符位置。 pNode=pNode->Next; cout<<"數(shù)據(jù)文件保存成功!"<<endl; Link Sort(Link Head) /我創(chuàng)建的是帶頭節(jié)點的鏈表。用直接插入法。 if(Head->Next=NULL)|(Head->Next->Next=N
51、ULL)/此步條件判斷非常有價值。 cout<<"數(shù)據(jù)節(jié)點數(shù)少于2個,不用排序!"<<endl; return Head; /-第二步; Link ptr; Link ptr_F; Link ptr_N; ptr=Head->Next->Next; ptr_F=Head; Head->Next->Next=NULL;/到此,分成了兩個鏈表。 /第三步。 while(ptr) ptr_N=ptr->Next; ptr_F=Head;/ptr_F的歸位。 while(ptr_F->Next) if(ptr->m_
52、Wage>ptr_F->Next->m_Wage) ptr->Next=ptr_F->Next; ptr_F->Next=ptr; break; /if else ptr_F=ptr_F->Next; /while(ptr_F->Next) if(ptr_F->Next=NULL) ptr->Next=ptr_F->Next; ptr_F->Next=ptr;/表示插到有序鏈表的最后面了。 ptr=ptr_N;/歸位,準備下一次排序。 /while(ptr) cout<<"從高到低,排序成功!&quo
53、t;<<endl; return Head; int main() Link Head=0; Head=Create(Head); fstream iofile; iofile.open("d:iofile.txt",ios_base:in|ios_base:out|ios_base:app);/文件以三種方式打開。 if(!iofile) cout<<"打開文件失??!"<<endl; return -1; int menu; while(1) cout<<"*"<<endl;cout<<"*歡迎進入職工管理系統(tǒng)*"<<endl;cout<<"*"<<endl;cout<<endl;cout<<" "<<endl;cout<<" 主菜單 "<<endl; cout<<" = "<<endl;cout<<&qu
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度新能源汽車充電樁建設與運維服務合同范本
- 2025年度建筑工程竣工驗收后深度保潔合同范本
- 2025年度深海油氣資源勘探開發(fā)合同管理細則
- 2025年度財務報表編制與代理合同范本
- 2025年度酒類專賣店綠色能源使用與節(jié)能改造合同
- 珠海廣東珠海市立潮人力資源服務有限公司招聘食堂廚師筆試歷年參考題庫附帶答案詳解
- 蕪湖安徽蕪湖市中西醫(yī)結合醫(yī)院(灣沚區(qū)總醫(yī)院)招聘第三方救護車駕駛員(二次)筆試歷年參考題庫附帶答案詳解
- 甘肅2025年甘肅省科學院博士畢業(yè)生招聘26人筆試歷年參考題庫附帶答案詳解
- 溫州浙江溫州甌海區(qū)公安分局招聘警務輔助人員41人筆試歷年參考題庫附帶答案詳解
- 玉林2025年廣西玉林市事業(yè)單位招聘2966人筆試歷年參考題庫附帶答案詳解
- 花城版音樂四下-第四課-認知音樂節(jié)奏(教案)
- 寵物醫(yī)院員工手冊
- 2024年高考英語讀后續(xù)寫高分寶典專題08讀后續(xù)寫肢體動作描寫積累1(詞-句-文)講義
- 商業(yè)與公積金貸款政策
- 年獸的故事之The Legend of Nian
- 初中美術教學策略與方法
- 甲流護理查房病例
- 2024屆高考作文主題訓練:時評類(含解析)
- 260噸汽車吊地基承載力驗算
- 譯林版英語小學四年級下冊-課文翻譯(英漢對照)
- Vue.js前端開發(fā)實戰(zhàn)(第2版)全套完整教學課件
評論
0/150
提交評論