職工信息管理系統(tǒng)_第1頁
職工信息管理系統(tǒng)_第2頁
職工信息管理系統(tǒng)_第3頁
職工信息管理系統(tǒng)_第4頁
職工信息管理系統(tǒng)_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計報告設(shè)計題目職工信息管理系統(tǒng)專業(yè)班級姓名學(xué)號完成日期目錄1。問題描述………………(3)精品文檔放心下載系統(tǒng)設(shè)計………………(3)數(shù)據(jù)結(jié)構(gòu)與算法描述…………………(5)4。測試結(jié)果與分析………(15)精品文檔放心下載5???結(jié)…………………(20)感謝閱讀6.參考文獻(xiàn)………………(20)精品文檔放心下載附錄程序源代碼…………(20)謝謝閱讀職工信息管理系統(tǒng)問題描述試設(shè)計一個職工信息管理系統(tǒng)。要求可對職工信息進行插入、刪除、查找、感謝閱讀排序、輸出等功能,職工對象包括編號、姓名、性別、出生年月、學(xué)歷、工作年精品文檔放心下載月、基本工資、電話、家庭住址等等。12。系統(tǒng)設(shè)計2。1設(shè)計目標(biāo)隨著計算機產(chǎn)業(yè)的不斷發(fā)展和信息時代的到來,各個企業(yè)和部門對員工的信息管理也已經(jīng)走上了數(shù)字化的階段,尤其是利用微機對工資的管理已經(jīng)在各個企業(yè)單位起著越來越多的作用.以前的財會人員完全是靠手寫來完成員工的各種記錄,每天都忙碌于各種繁多的票據(jù)之間,這種工作繁重復(fù)雜,容易出錯,不易修改,所以使用一個好的管理系統(tǒng)對減輕管理人員的工作量是很有幫助的,也是一個企業(yè)發(fā)展不可缺少的基礎(chǔ),它的開發(fā)應(yīng)用簡單而不失一般性,操作方便,功能強大,系統(tǒng)化,規(guī)范化,自動化,而且經(jīng)濟使用的職工管理系統(tǒng)已經(jīng)成為了各個企業(yè)和部門離不開的電腦軟件.謝謝閱讀本系統(tǒng)實現(xiàn)的操作和功能如下:1)職工信息表的建立:根據(jù)職工提供的信息,按單鏈表的方法建立職工信息表;精品文檔放心下載2)職工信息的添加:根據(jù)公司的需要,增加新的職工,必須把職工的基本信息寫入職工信息表,方便公司管理;謝謝閱讀3)職工信息的查詢:根據(jù)公司需要,查找某一個職工的信息,可以按姓名或編號查找,將都顯示職工的全部信息。謝謝閱讀4)職工信息的修改:根據(jù)公司或職工需要,如果信息需要修改,可對職工的人一個信息進行更改。感謝閱讀5)職工信息的排序:根據(jù)公司需要,可對職工進行排序;感謝閱讀6)職工信息的刪除:根據(jù)公司需要,若職工不在公司工作,可對其信息刪除,以及時更新職工信息表;精品文檔放心下載7)職工信息的輸出:根據(jù)公司需要,若要瀏覽職工信息,可對職工的全部信息輸出,方便觀看。謝謝閱讀2。2設(shè)計思想職工信息表用單鏈表作為存儲結(jié)構(gòu),且為了查找方便,職工信息應(yīng)有序.為謝謝閱讀了查找方便,職工的線性表按職工編號有序,并且,為了插入和刪除方便,應(yīng)以謝謝閱讀鏈表作為存儲結(jié)構(gòu)。通過c++,使系統(tǒng)實現(xiàn)建表、增加信息、刪除信息、查找信感謝閱讀息、排序、輸出等功能,而且提供一個界面來調(diào)用各個功能,并使界面盡可能清精品文檔放心下載2晰美觀。2.3系統(tǒng)模塊劃分菜單界面建職職職職職職統(tǒng)退立工工工工工工出職信信信信信信職工息息息息息息工信的的的的的的管息添查修排刪輸理表加詢改序除出系尾插按按按無冒刪輸結(jié)插入姓編菜記泡除出束法新名號單錄排結(jié)記程3.數(shù)據(jù)結(jié)構(gòu)與算法描述查選序點錄序建的查立結(jié)詢詢項法運職點實行3.2職工信息表的建立,將一個職工結(jié)點按其編號的次序插入有序職工鏈表工現(xiàn)信的相息應(yīng)位置,以保持鏈表的有序性.基本思想是使用尾插法建立新的結(jié)點。建表精品文檔放心下載表算法如下描述://用尾插法建立職工鏈表函數(shù)voidCreateList(NodePtr&head)精品文檔放心下載{//尾插法建立帶頭結(jié)點的職工鏈表算法NodePtrrear;rear=newListNode;intflag=0;//結(jié)束標(biāo)志置0rear=head;//尾指針初始指向頭結(jié)點while(flag==0){NodePtrp;p=newListNode;p->link=NULL;cout〈<"請輸入:";cout〈〈"編號姓名性別出生日期學(xué)歷工作年月職務(wù)基本工資電話地址\n”;謝謝閱讀cout3"——-——--—-----————-—-—--—-———-—-———--——-—--感謝閱讀——\n”;cin〉>p-〉num>〉p—〉name>>p—〉sex〉〉p-〉感謝閱讀birthday>>p—>education>>p->working_day;精品文檔放心下載cin〉〉p-〉post〉>p-〉base_pay〉〉p->phone〉>p—>addr;精品文檔放心下載rear—〉link=p;//新結(jié)點連接到尾結(jié)點之后謝謝閱讀rear=p;//尾結(jié)點指向新結(jié)點cout〈<"結(jié)束建表嗎?(0/1):”;cin>〉flag;}filesave(head);}3。2職工信息的輸出voidPrintList(NodePtrhead)精品文檔放心下載{NodePtrp;p=newListNode;p=head->link;//因為鏈表帶頭結(jié)點,使p指向鏈表開始接點感謝閱讀cout<<"編號姓名性別出生年月學(xué)歷工作年月職務(wù)基本工資電話地址\n";感謝閱讀cout<<”—--—--—-—--—--———-—-—-—---—--—---—--—-——-———\n”;謝謝閱讀while(p!=NULL){cout〈〈p—>num<〈"”<〈p—>name〈〈""<<p—>sex<<""<〈p->birthday〈〈””;謝謝閱讀cout<〈p->education〈〈" ”<<p->working_day〈<" "〈<p—〉post謝謝閱讀〈<” ";4cout<〈p—>base_pay<〈” ”〈〈p-〉phone<〈” ”〈<p->addr<精品文檔放心下載〈endl;p=p—〉link;//后移一個結(jié)點}}3.2職工信息的查詢,如果結(jié)點為空,輸出:沒有查到要查詢的職工;若結(jié)點不為空,可按姓名和編號進行查詢。感謝閱讀voidListFind(NodePtr&head)謝謝閱讀{//有序職工鏈表上的查找NodePtrp;p=newListNode;p=head->link;//假定職工表帶頭結(jié)點charnum[10],name[20];intxz;cout〈<"================\n";感謝閱讀cout〈〈” 1。按編號查詢 \n”;cout<〈" 2。按姓名查詢 \n";cout<〈"================\n";感謝閱讀cout<<"請選擇:";cin〉〉xz;if(xz==1){cout<〈”請輸入要查找者的編號:”;cin〉>num;do{if(strcmp(p—〉num,num)==0){感謝閱讀cout<<"編號姓名性別出生年月學(xué)歷工作年月職務(wù)基本工資電話地址\n”;謝謝閱讀cout〈〈"————-——--——-—----—-——---—-———----——-\n";精品文檔放心下載cout〈〈p—〉num〈<" "〈〈p-〉name<〈" "〈<p—>sex<〈" "感謝閱讀5〈〈p-〉birthday〈〈” ”;cout〈<p-〉education〈〈""〈<p—>working_day<〈”"<〈p—〉post〈<"”;精品文檔放心下載cout〈<p-〉base_pay〈〈" ”〈〈p->phone〈〈” ”<〈p->addr<精品文檔放心下載〈endl;cout〈<"---—-———--------——------——-—————--——\n”;謝謝閱讀break;}elsep=p-〉link;if(p==NULL)cout〈〈”沒有查到要查詢的職工!\n”;}while(p!=NULL);}if(xz==2){cout<<"請輸入要查找者的姓名:";cin〉>name;do{if(strcmp(p->name,name)==0){精品文檔放心下載cout〈〈”編號 姓名 性別出生年月學(xué)歷 工作年月職務(wù)謝謝閱讀基本工資 電話 地址\n";cout〈〈"---—-—--—--——----——---—--————---—-—-\n”;精品文檔放心下載cout<<p->num〈<” "〈<p-〉name〈<" "<〈p—〉sex〈〈" "感謝閱讀〈〈p—>birthday〈〈" ";cout〈<p—〉education〈〈" "<<p->working_day<〈" ”〈<p-〉謝謝閱讀post〈<" ”;cout〈〈p—>base_pay<〈” ”<<p—>phone〈<” ”〈<p—>addr精品文檔放心下載〈<endl;cout6〈〈”—-—--—---—-—--—-——-———-—-—--——--—-—-\n”;break;精品文檔放心下載}elsep=p—〉link;if(p==NULL)cout<<”沒有查到要查詢的職工!\n";}while(p!=NULL);}}3.2職工信息插入voidInsertNode(NodePtr&head)精品文檔放心下載{NodePtrp;p=newListNode;p—>link=head-〉link;head—>link=p;cin〉>p—〉num>>p—>name〉〉p-〉sex〉〉p—〉birthday〉>p—〉education〉〉p—>working_day;謝謝閱讀cin〉〉p-〉post〉〉p->base_pay〉〉p—〉phone>>p->addr;感謝閱讀}3.2職工信息的修改,先輸入職工的姓名,若沒有該職工,輸出:該系統(tǒng)沒有該姓名的職工信息,無法修改。。,若有該職工,則可以修改該職工的任何一個信息;具體算法如下:謝謝閱讀voidModify(NodePtr&head) //修改職工信息謝謝閱讀{NodePtrp;p=head-〉link;charname[15];//姓名cout<<"請輸入你要修改職工信息的姓名:";cin>〉name;7while(p){if(strcmp(p—>name,name)==0)精品文檔放心下載break;p=p-〉link;}if(p==NULL){cout〈〈"該系統(tǒng)沒有該姓名的職工信息,無法修改...”<〈endl;謝謝閱讀cout<<"請按任意鍵繼續(xù)..。"〈<endl;getch();ListFind(head);}else{cout〈<"--—--—-你現(xiàn)在可以修改此職工的信息了----———”<<endl;感謝閱讀//數(shù)據(jù)域。cout<〈”請輸入職工新編號:";cin〉〉p-〉num;cout〈<endl<〈"請輸入職工新姓名:";cin〉>p->name;cout<〈endl〈<"請輸入職工新性別:”;cin〉>p->sex;cout<〈endl<<”請輸入職工新出生年月:";精品文檔放心下載cin〉>p—〉birthday;while(cin.fail()){cout<<”請輸入正確的年份格式?!?lt;〈endl;謝謝閱讀cin。clear();8fflush(stdin);cin>〉p—〉birthday;}cout<<endl〈〈”請輸入職工新學(xué)歷:”;cin〉>p->education;cout〈〈endl〈〈"請輸入職工新工作年月:”;感謝閱讀cin>>p—〉working_day;cout<<endl〈<"請輸入職工新職稱:”;cin>〉p->post;cout〈〈endl〈〈”請輸入職工基本工資:";cin>>p-〉base_pay;while(cin.fail()){cout<〈"請輸入正確的工資數(shù)據(jù)."〈〈endl;精品文檔放心下載cin.clear();fflush(stdin);cin〉>p—>base_pay;}cout〈<endl<<”請輸入職工新電話:";cin〉>p->phone;cout<<endl<〈"請輸入職工新地址:";cin〉〉p->addr;cout〈<endl;}}3。2職工信息的排序,若系統(tǒng)沒有職工信息,無法進行排序,若有職工信息,則按冒泡法進行排序.具體算法如下:精品文檔放心下載voidSort(NodePtrhead){9NodePtrp,q;p=head->link;if(p==NULL){cout〈<”該系統(tǒng)還沒有儲存一個職工,沒法進行排序。.?!?lt;〈endl;謝謝閱讀cout〈<"請按任意鍵繼續(xù)。。。\n";getch();//menu_select();}else{while(p!=NULL){q=p—〉link;while(q!=NULL){if(p-〉base_pay<q-〉base_pay)精品文檔放心下載swap(p,q);q=q-〉link;}p=p->link;}cout〈<"排序成功。。.”〈<endl;}}voidswap(NodePtr&p,NodePtr&q)//交換兩個節(jié)點里所含的信息精品文檔放心下載{charnum[10];//編號charname[15];//姓名10charsex[5];//性別charbirthday[50];//出生年月chareducation[50];//學(xué)歷charworking_day[50];//工作年月精品文檔放心下載charpost[50];//職務(wù)intbase_pay;//基本工資charphone[50];//電話charaddr[50];//地址strcpy(num,p-〉num);strcpy(p—>num,q—〉num);strcpy(q—〉num,謝謝閱讀num);strcpy(name,p—>name);strcpy(p-〉name,q—>name);strcpy(q—〉name,name);謝謝閱讀strcpy(sex,p-〉sex);strcpy(p—〉sex,q->sex);strcpy(q—〉sex,sex);感謝閱讀strcpy(birthday,p->birthday ) ;strcpy(p- 〉 birthday ,謝謝閱讀q->birthday);strcpy(q->birthday,birthday);謝謝閱讀strcpy(education,p-〉education);strcpy(p—〉education,q—〉education);strcpy(q-〉感謝閱讀education,education);strcpy ( working_day , p- 〉 working_day) ; strcpy感謝閱讀(p—>working_day,q->working_day);strcpy(q-〉working_day,working_day);精品文檔放心下載strcpy(post,p—>post);strcpy(p-〉post,q->post);strcpy(q->post,post);感謝閱讀base_pay=p-〉base_pay;p-〉base_pay=q->base_pay;q->base_pay=base_pay;精品文檔放心下載strcpy(phone,p—>phone);strcpy(p—>phone,q-〉phone);strcpy(q—〉phone,感謝閱讀phone);strcpy(addr,p->addr);strcpy(p->addr,q—〉addr);strcpy(q-〉addr,addr);感謝閱讀}3.2職工信息的刪除,先輸入職工的工號,若結(jié)點為空,則輸出:沒有找到要刪除的職工,若結(jié)點不為空,輸出職工信息,提示真的要刪除該職工嗎,選擇y或感謝閱讀可進行操作。具體算法如下:voidDelNode(NodePtr&head)謝謝閱讀{11NodePtrp,q;p=newListNode;q=newListNode;精品文檔放心下載p=head—〉link;//假定職工信息表帶頭結(jié)點感謝閱讀q=head;charnum[10];intflag=0;cout〈〈”請輸入要刪除者的編號:";cin>>num;do{if(strcmp(p—>num,num)==0){cout〈<”編號 姓名 性別出生年月 學(xué)歷 工作年月職精品文檔放心下載務(wù)基本工資 電話 地址\n";cout〈〈"-——----——-————-—-——--—----———---——--\n";精品文檔放心下載cout<<p->num 〈 <" " 〈〈 p— 〉 name< 〈 "感謝閱讀"<<p->sex<<" ”<<p—>birthday〈<” ";感謝閱讀cout〈〈p—>education〈〈” "<<p—>working_day〈〈" ”<精品文檔放心下載〈p—〉post〈<" ”;cout〈〈p—>base_pay<<” "〈<p->phone〈〈" ”<<p-〉addr謝謝閱讀〈<endl;cout<〈”-—--————--—--——————--—-—-—--—-—-----\n”;精品文檔放心下載flag=1;break;}elsep=p-〉link;if(p==NULL)cout〈<"沒有查到要刪除的職工!\n”;12q=q-〉link;}while(p!=NULL);if(flag==1){cout〈〈"真的要刪除該結(jié)點嗎?(y/n):”;謝謝閱讀charjx;cin>>jx;if(jx=='y'||jx=='Y’){q—>link=p—>link;//刪除結(jié)點free(p);//釋放被刪除的結(jié)點空間cout<〈”職工已被刪除!\n”;}}//return0;}通過以上算法實現(xiàn)以下菜單模塊:printf("歡迎進入職工信息管理系統(tǒng)\n”);printf(”==============================\n");printf(”1.職工信息表的建立\n");printf("2。職工結(jié)點的添加\n");精品文檔放心下載printf(”3.職工結(jié)點的查詢\n");printf(”4.職工信息的修改\n");printf(”5.職工信息的排序\n”);printf(”6。職工結(jié)點的刪除\n");printf(”7。職工鏈表的輸出\n”);printf("0。退出管理系統(tǒng)\n”);printf("==============================\n”);謝謝閱讀printf(”請選擇0—7:”);134.測試結(jié)果與分析(將測試結(jié)果抓圖說明)5??偨Y(jié)通過本次課程設(shè)計,我學(xué)會了如何工程化的編寫以下系統(tǒng)軟件。首先,要對軟精品文檔放心下載件的需求有一個比較明確的認(rèn)識,然后系統(tǒng)分析與系統(tǒng)設(shè)計,最后是代碼設(shè)計與謝謝閱讀調(diào)試。軟件實現(xiàn)上,設(shè)計了清楚的界面,并采用功能模塊的設(shè)計思想。精品文檔放心下載在這個過程中,確實付出了很對努力,流了很多汗水,比如,要思考整個設(shè)計謝謝閱讀過程,要一點一點的改正代碼中出現(xiàn)的錯誤等等,但現(xiàn)在想想,都不值得一提,精品文檔放心下載因為從中的收獲比什么都重要。同時,我也知道,我的設(shè)計還存在不足之處,我感謝閱讀會堅持不懈!繼續(xù)努力!6。參考文獻(xiàn)(包括書籍、論文、網(wǎng)絡(luò)資料等)C++buider實例入門陳雪飛中國青年出版社C++buider徹底研究陳燦煌中國鐵路出版社C++面向?qū)ο蟪绦蛟O(shè)計(第6版)清華出版社網(wǎng)絡(luò)上一些代碼資料謝謝閱讀附錄 程序源代碼//主控菜單處理測試程序#include〈stdio。h>#include〈string>#include<stdlib.h>#include<conio。h〉#include〈fstream>#include<iostream〉usingnamespacestd;structListNode{//職工結(jié)點類型charnum[10];//編號charname[15];//姓名charsex[5];//性別charbirthday[50];//出生年月14chareducation[50];//學(xué)歷charworking_day[50];//工作年月感謝閱讀charpost[50];//職務(wù)intbase_pay;//基本工資charphone[50];//電話charaddr[50];//地址ListNode*link;//結(jié)點指針域};typedefListNode*NodePtr;精品文檔放心下載NodePtrload();//導(dǎo)入信息到系統(tǒng)voidfilesave(NodePtrhead);//將鏈表中的信息保存到文件里intmenu_select();精品文檔放心下載voidCreateList(NodePtr&head);感謝閱讀voidPrintList(NodePtrhead);感謝閱讀voidListFind(NodePtr&head);精品文檔放心下載voidInsertNode(NodePtr&head);感謝閱讀voidDelNode(NodePtr&head);精品文檔放心下載//voidDomoDify(NodePtr&head);精品文檔放心下載voidModify(NodePtr&head);精品文檔放心下載voidSort(NodePtrhead);voidswap(NodePtr&p,NodePtr&q);//交換兩個節(jié)點里所含的信息謝謝閱讀//voidDisp(NodePtr&base_pay);謝謝閱讀//主函數(shù)intmain(){NodePtrhead,p,ptr;//intbase_pay;head=newListNode;//申請頭結(jié)點head=load();15//intn;//chartp[100];for(;;){switch(menu_select()){case1:cout<<"***********************\n";精品文檔放心下載cout〈〈"*職工信息表的建立*\n”;cout〈<”***********************\n";CreateList(head);break;感謝閱讀case2:cout〈<"***********************\n”;謝謝閱讀cout〈<”*職工信息的添加*\n”;cout<〈”編號姓名性別出生日期學(xué)歷工作年月職務(wù)基本工資電話地址\n”;感謝閱讀cout<〈”****************************謝謝閱讀******\n”;InsertNode(head);filesave(head);break;case3:cout〈〈"**********************************\n”;謝謝閱讀cout<<"*職工信息的查詢*\n”;cout<〈”************************謝謝閱讀**********\n”;ListFind(head);break;case4:cout<〈”**********************************\n”;謝謝閱讀cout〈<"*職工信息的修改*\n”;cout〈〈”****************************感謝閱讀16******\n”;DomoDify(head);//修改結(jié)點Modify(head);break;case5:cout〈〈”**********************************\n";精品文檔放心下載//cout<〈”*按工資排序*\n";cout<〈"******************************感謝閱讀****\n";Sort(head);//按工資排序//PrintList(head);//Disp(tp,n);break;case6:cout<<"**********************************\n”;感謝閱讀cout<<”*職工信息的刪除*\n";cout〈〈”************************精品文檔放心下載**********\n”;DelNode(head);//刪除結(jié)點filesave(head);break;case7:cout〈〈”**********************************\n”;謝謝閱讀cout<<"*職工信息表的輸出*\n”;cout〈〈”*************************感謝閱讀*********\n”;PrintList(head);break;case0:cout<<"再見!\n”;17return0;}}}voidfilesave(NodePtrhead)//將鏈表中的信息保存到文件里精品文檔放心下載{NodePtrp=head—>link;FILE*fp;intnum=0;if((fp=fopen(”file.txt”,"w"))==NULL)感謝閱讀{cout〈〈”新建文件失敗.。."〈<endl;cout〈<"請按任意鍵退出系統(tǒng).。?!?lt;〈endl;精品文檔放心下載getch();exit(0);}while(p!=NULL){num++;p=p—>link;}p=head-〉link;charc[255];sprintf(c,"文件中%d個信息如下:\n”,num);謝謝閱讀fputs(c,fp);while(p!=NULL){fprintf(fp,”%s",p->num);fprintf(fp,"\t”);fprintf(fp,”%s”,p—〉name);fprintf(fp,”\t");感謝閱讀18fprintf(fp,"%s”,p—>sex);fprintf(fp,"\t");感謝閱讀fprintf(fp,"%s”,p->birthday);fprintf(fp,”\t”);謝謝閱讀fprintf(fp,”%s",p-〉education);fprintf(fp,”\t”);謝謝閱讀fprintf(fp,”%s”,p->working_day);fprintf(fp,”\t”);精品文檔放心下載fprintf(fp,”%s”,p—>post);fprintf(fp,"\t");謝謝閱讀fprintf(fp,"%d",p-〉base_pay);fprintf(fp,"\t”);感謝閱讀fprintf(fp,"%s”,p—〉phone);fprintf(fp,”\t");感謝閱讀fprintf(fp,”%s",p-〉addr);fprintf(fp,”\t");感謝閱讀fprintf(fp,”\n");p=p—〉link;}fclose(fp);}NodePtrload(){NodePtrp,q,head;head=newListNode;head-〉link=NULL;q=head;charbase_pay[10];//p=newListNode;intnum,i=0;FILE*fp;if((fp=fopen("file。txt”,”r"))==NULL)精品文檔放心下載{cout〈<”文件尚未存儲數(shù)據(jù)。..!\n”;//exit(1);returnhead;}19charc[255];fgets(c,256,fp);sscanf(c,"文件中%d個信息如下:\n",&num);while(i〈num)感謝閱讀{p=newListNode;//這里需要注意,必須放在這個循環(huán)的位置里,這是每一次都產(chǎn)生一個節(jié)點,鏈接到鏈表中去精品文檔放心下載fscanf(fp,”%s",p—>num);fscanf(fp,”%s",p—>name);fscanf(fp,"%s",p—>sex);fscanf(fp,"%s”,p—〉birthday);謝謝閱讀fscanf(fp,"%s”,p-〉education);謝謝閱讀fscanf(fp,"%s",p-〉working_day);感謝閱讀fscanf(fp,”%s",p—〉post);fscanf(fp,"%d",p—>base_pay);fscanf(fp,”%s”,base_pay);p—〉base_pay=atoi(base_pay);精品文檔放心下載fscanf(fp,"%s”,p—〉phone);fscanf(fp,”%s”,p—〉addr);p—〉link=NULL;q-〉link=p;q=p;i++;}fclose(fp);returnhead;}//菜單選擇函數(shù)程序intmenu_select()20{intsn;printf("歡迎進入職工信息管理系統(tǒng)\n");printf("==============================\n”);printf(”1.職工信息表的建立\n”);printf(”2。職工結(jié)點的添加\n”);printf("3.職工結(jié)點的查詢\n”);感謝閱讀printf(”4。職工信息的修改\n”);printf(”5。職工信息的排序\n”);printf(”6.職工結(jié)點的刪除\n");printf("7.職工鏈表的輸出\n”);printf("0。退出管理系統(tǒng)\n”);printf("==============================\n");謝謝閱讀printf("請選擇0-7:”);for(;;){cin>〉sn;if(sn<0||sn〉7)cout<〈”\n\t輸入錯誤,重選0—6:";精品文檔放心下載elsebreak;}returnsn;}//用尾插法建立職工鏈表函數(shù)voidCreateList(NodePtr&head)謝謝閱讀{//尾插法建立帶頭結(jié)點的職工鏈表算法NodePtrrear;rear=newListNode;intflag=0;//結(jié)束標(biāo)志置021rear=head;//尾指針初始指向頭結(jié)點while(flag==0){NodePtrp;p=newListNode;p->link=NULL;cout〈〈”請輸入:";cout<<”編號姓名性別出生日期學(xué)歷工作年月職務(wù)基本工資電話地址\n”;精品文檔放心下載cout<〈”—--———-——-—---—---—-——--—-——--—---———---———-\n";感謝閱讀cin>>p-〉num>〉p—>name〉>p-〉sex>〉p->birthday〉>p-〉education〉〉p-〉working_day;精品文檔放心下載cin〉〉p->post〉〉p->base_pay〉〉p->phone>>p—>addr;rear->link=p;//新結(jié)點連接到尾結(jié)點之后rear=p;//尾結(jié)點指向新結(jié)點cout<<”結(jié)束建表嗎?(0/1):”;cin>>flag;精品文檔放心下載}filesave(head);}//職工鏈表的輸出函數(shù)voidPrintList(NodePtrhead)謝謝閱讀{NodePtrp;p=newListNode;p=head-〉link;//因為鏈表帶頭結(jié)點,使p指向鏈表開始接點感謝閱讀cout<〈”編號 姓名 性別出生年月學(xué)歷 工作年月職務(wù)基本工精品文檔放心下載資 電話 地址\n”;22cout<<”—-—-—-——---—--——----—-————--———-———-—-—-感謝閱讀—-——\n”;while(p!=NULL){cout<<p->num<<””〈〈p->name〈〈”"〈〈p-〉sex<<”"〈〈p—〉birthday〈<"”;精品文檔放心下載cout〈<p—〉education〈<"”<〈p-〉working_day<<”"〈<p—>post<<””;謝謝閱讀cout〈<p—〉base_pay<<" ”〈p->phone〈〈" "<<p—>addr<精品文檔放心下載〈endl;p=p-〉link;//后移一個結(jié)點}}//有序職工鏈表的查找voidListFind(NodePtr&head)謝謝閱讀{//有序職工鏈表上的查找NodePtrp;p=newListNode;p=head-〉link;//假定職工表帶頭結(jié)點charnum[10],name[20];intxz;cout<<"================\n";精品文檔放心下載cout〈〈" 1.按編號查詢 \n";cout〈〈” 2。按姓名查詢 \n”;cout<<”================\n";謝謝閱讀cout<〈”請選擇:”;cin>〉xz;if(xz==1){cout〈<"請輸入要查找者的編號:";23cin>〉num;do{if(strcmp(p—〉num,num)==0){謝謝閱讀cout<〈"編號姓名性別出生年月學(xué)歷工作年月職務(wù)基本工資電話地址\n";感謝閱讀cout〈〈”—-——-———-———--——--——-——-——-——————--—\n";cout<<p-〉num<〈”"<〈p->name<<"”<<p—〉sex<精品文檔放心下載〈" ”<<p->birthday<<” ”;cout〈<p->education<<"”<<p—>working_day<<"”〈<p—〉post<<”";精品文檔放心下載cout<〈p—〉base_pay〈〈” "〈<p-〉phone<<” ”<<p—〉精品文檔放心下載addr<<endl;cout〈<"———---—----——-——--—--—-——---—----——-\n”;感謝閱讀break;}elsep=p—〉link;if(p==NULL)cout〈〈"沒有查到要查詢的職工!\n”;}while(p!=NULL);精品文檔放心下載}if(xz==2){cout<〈”請輸入要查找者的姓名:”;cin>〉name;do{if(strcmp(p—>name,name)==0){謝謝閱讀cout<<"編號姓名性別出生年月學(xué)歷工作年月職務(wù)基本工資電話地址\n”;感謝閱讀cout24〈〈"-------———-————----—-—--—-—--————-——\n";精品文檔放心下載cout<〈p—〉num〈〈”"〈<p—〉name<〈”"<<p—〉sex<<""<〈p—>birthday<〈””;感謝閱讀cout〈<p—>education〈<"”<<p—〉working_day〈〈””〈<p—>post<<"”;謝謝閱讀cout<〈p—〉base_pay<<" "〈〈p-〉phone〈<" ”<<p—〉感謝閱讀addr<〈endl;cout<〈”-—-—-——-—-—-—-—-———---—--—---—-————-\n”;break;精品文檔放心下載}elsep=p-〉link;if(p==NULL)cout〈〈"沒有查到要查詢的職工!\n”;}while(p!=NULL);}}在職工鏈表head中插入結(jié)點voidInsertNode(NodePtr&head)感謝閱讀{NodePtrp;p=newListNode;p-〉link=head-〉link;head->link=p;cin〉〉p-〉num〉>p—>name〉〉p—>sex〉>p->birthday>>p-〉education>>p—〉working_day;謝謝閱讀cin>>p-〉post>〉p->base_pay〉〉p->phone>〉p->addr;感謝閱讀}//職工信息的修改voidModify(NodePtr&head) //修改職工信息謝謝閱讀25{NodePtrp;p=head—〉link;charname[15];//姓名cout〈〈”請輸入你要修改職工信息的姓名:";cin〉>name;while(p){if(strcmp(p-〉name,name)==0)感謝閱讀break;p=p—>link;}if(p==NULL){cout<<”該系統(tǒng)沒有該姓名的職工信息,無法修改。。."〈〈endl;cout<<”請按任意鍵繼續(xù)。。.”〈〈endl;getch();感謝閱讀ListFind(head);}else{cout<<"--———--你現(xiàn)在可以修改此職工的信息了---—--—”〈<endl;精品文檔放心下載//數(shù)據(jù)域。cout<〈”請輸入職工新編號:";cin〉>p->num;cout<<endl<〈”請輸入職工新姓名:";cin〉>p-〉name;cout<〈endl<〈"請輸入職工新性別:”;cin〉〉p—〉sex;26cout〈<endl<<”請輸入職工新出生年月:”;精品文檔放心下載cin>>p-〉birthday;while(cin。fail()){cout〈<”請輸入正確的年份格式。”<<endl;精品文檔放心下載cin.clear();fflush(stdin);cin>〉p—〉birthday;}cout〈〈endl<<"請輸入職工新學(xué)歷:";cin>>p-〉education;cout〈<endl〈〈”請輸入職工新工作年月:”;感謝閱讀cin>>p—>working_day;cout〈〈endl〈<”請輸入職工新職稱:";cin〉>p—>post;cout〈〈endl〈<"請輸入職工基本工資:";cin>〉p-〉base_pay;while(cin.fail()){cout<〈"請輸入正確的工資數(shù)據(jù)?!薄?lt;endl;謝謝閱讀cin.clear();fflush(stdin);cin〉〉p—>base_pay;}cout〈〈endl〈〈"請輸入職工新電話:”;cin>〉p—〉phone;cout<<endl〈〈”請輸入職工新地址:";cin>>p—〉addr;cout〈<endl;27}}/*利用冒泡排序法實現(xiàn)數(shù)組的按基本工資排序,從高到低*/謝謝閱讀voidSort(NodePtrhead){NodePtrp,q;p=head—>link;if(p==NULL){cout<〈”該系統(tǒng)還沒有儲存一個職工,沒法進行排序。.."<<endl;cout〈<"請按任意鍵繼續(xù)。.。\n”;getch();謝謝閱讀//menu_select();}else{while(p!=NULL){q=p->link;while(q!=NULL){if(p—〉base_pay<q-〉base_pay)感謝閱讀swap(p,q);q=q—>link;}p=p-〉link;}cout<<”排序成功.。。"〈<endl;}28}voidswap(NodePtr&p,NodePtr&q)//交換兩個節(jié)點里所含的信息謝謝閱讀{charnum[10];//編號charname[15];//姓名char

溫馨提示

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

評論

0/150

提交評論