




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
C++程序設計課程設計瞄課題:小型公司工資管理系統(tǒng)專業(yè)班級:學號:姓名:指導教師:評閱意見:評定成績:指導老師簽名:目錄設計系統(tǒng)的目的意義第1頁系統(tǒng)需求、功能分析第2頁數(shù)據結構表第3頁數(shù)據測試表第5頁運行和調試第7頁課程心得體會第16頁參考書目第17頁附錄第18頁課程設計報告內容:1、設計系統(tǒng)的目的意義本次課程設計所編輯的C++程序是為了建立“小型公司工資管理系統(tǒng)”。通過對該系統(tǒng)的建立進一步掌握面向過程和面面相對象程序的設計的幾本方法和編程技巧,鞏固所學理論知識,是理論與實踐相結合,提高分析問題、解決問題的能力。具體一點主要是為了進一步熟悉C++中類的概念、類的繼承、抽象類、虛函數(shù)、虛基類、多態(tài)和文件的輸入/輸出等內容的實現(xiàn)方式。了解系統(tǒng)開發(fā)的需求分析、類層次設計、模塊分析、編碼測試、模塊組裝與整體調試的全過程;逐步熟悉程序設計的方法,并養(yǎng)成良好的編程習慣。2、系統(tǒng)需求、功能分析A、公司主要有四類雇員:經理、技術人員、銷售人員、銷售經理。要求儲存雇員的編號、姓名、性別、所在部門、級別等信息,并進行工資計算。B、工資的計算方法(1)經理:領取固定月薪,固定月薪5000元;(2)技術人員:按小時領取月薪,工作時間*小時工資(80元/小時);(3)銷售人員:按鞏固銷售額領取月薪,0.33*銷售額;(4)銷售經理:既拿固定月薪也領取銷售提成,0.33*銷售額+固定月薪(5000元)。C、功能分析(1)添加功能:程序能夠任意添加上述四類人員的記錄,可提供選擇界面供用戶選擇所要添加的人員類別,要求員工的編號要唯一,如果添加了重復編號的記錄時,則提示數(shù)據添加重復并取消添加。(2)查詢功能:可根據編號、姓名等信息對已添加的記錄進行查詢,如果未找到,給出相應的提示信息,如果找到,則顯示相應的記錄信息;(3)顯示功能:可顯示當前系統(tǒng)中所有記錄,每條記錄占據一行。(4)編輯功能:可根據查詢結果對相應的記錄進行修改,修改時注意編號的唯一性。(5)刪除功能:主要實現(xiàn)對已添加的人員記錄進行刪除。如果當前系統(tǒng)中沒有相應的人員記錄,則提示“記錄為空!”并返回操作;否則,輸入要刪除的人員的編號或姓名,根據所輸入的信息刪除該人員記錄,如果沒有找到該人員信息,則提示相應的記錄不存。(6)統(tǒng)計功能:能根據多種參數(shù)進行人員的統(tǒng)計。例如,統(tǒng)計四類人員數(shù)量以及總數(shù),或者統(tǒng)計男、女員工的數(shù)量,或者統(tǒng)計平均工資、最高工資、最低工資等信息。(7)讀取功能:可將保存在文件中的人員信息讀入到當前系統(tǒng)中,供用戶進行使用。(8)退出功能:退出程序。添加后的數(shù)據:編號姓名性別部門等級工資1張三男經理A5000元2李四男經理A5000元編3王五男經理A5000元輯后4李白男技術B4320元的數(shù)5杜甫男技術B3440元據:6洋洋女銷售C2525元7麗麗女銷售C2159元8武凱旋男銷售D7525元9劉玲女銷售D7159元編號姓名性別部門等級工資1張三男經理A5000元2李四男經理A5000元3王五男經理A5000元4李白男技術B4320元5杜甫男技術B3440元6洋洋女銷售C2525元7麗麗女銷售C2159元8武凱旋男銷售D7525元9李平男銷售D7159元按編號刪除后的數(shù)據:編號姓名性別部門等級工資2李四男經理A5000元3王五男經理A5000元4李白男技術B4320元5杜甫男技術B3440元6洋洋女銷售C2525元7麗麗女銷售C2159元8武凱旋男銷售D7525元9李平男銷售D7159元按姓名刪除后的數(shù)據:編號姓名性別部門等級工資2李四男經理A5000元3王五男經理A5000元5杜甫男技術B3440元6洋洋女銷售C2525元7麗麗女銷售C2159元8武凱旋男銷售D7525元9李平男銷售D7159元5、運行和調試添加功能說明:輸入1,選擇添加功能.充-務一條一--------B----------K_LK_K-K_H-K_tK_k-L」手=|.1目4目.。日4目I曰』目一目7目寄功功功功功功功驢詢示輯隼雷--C-■■■-■■■■12345678清輸入1-8選擇相應功能:1說明:輸入1,選擇添加經理習口口口口-土1力力力一寐添添添層據員員理一?人經上J-理蕾fiCI回荏蓄熹At1234*5輸入1-5您據提示版勇經理否還套寐而數(shù)據:?V?主性別,部門『并按下回車福認完餡融人■輸入該經理的姓名’性別'否還真添疝數(shù)據:?yOHNf部門'井按下回車?■!通認元汐輸八:否還要凜加數(shù)據:?丫OR,'性別.部門,'開按下回車確認完成輸人」榛如成功!嚕按任意健繼續(xù)??-說明:輸入2,添加技術人員nunununu-±uu-一3添添添添層Z據員員理-(?人經卜」理在?11回4£.112345部門,并按下回車靜認完成輸入:性別,人員的姓名,魴在荏日寸間,按回車鍵完成輸入:否還要添加瞥據;?Y期N=您據靄蘿輸入該技術人員的姓名,您據靄蘿輸入該技術人員的姓名,I/Mw間,按回車鍵完成輸入:否還要添加數(shù)據:?V011N=性別,部門,并按「回車礁認完成輸入:岸如成切'嚕按任意鍵繼續(xù)??-說明:輸入3,添加銷售人員用i=e用i=enn_unu-±iiu-「海舔舔海層7據員員理一¥人經上"理查SLIIP*工支肖有.1玉/-p-^.l*-玉-L.t、112345PR"陵黔僻疆人員的姓名,性別,部門,并按下回車確認完成輸入:羸晶S當晝銷售額,按回車鍵完成輸人7&54搴否還要添加敖據:?YOR能暢譬||次輸人該銷售人員的姓名,性別,部門,并按下回車確認完成輸入:ISAxig銷售額,按回車鍵完成輸人E亭否還要添加敖據:爭度燃贍漆加成功!PR請按任意槌繼堵.??說明:輸入4,添加銷售經理
謎示與丁添.1-提身員要A尊入還輸否盤,口口口口-里方力力J謎示與丁添.1-提身員要A尊入還輸否盤,口口口口-里方力力J一鬃添添添層9S理一經上一」理olfiEI回饕甯察涉12345開按下回秀角角認完場.",夔箱次輸人該銷售經理的姓名,'性別,'部門「并按下回車確認完成輸入:占..…旗£曾&銷售額,'按回車鍵完成輸入:6543是否還要添加新?lián)?VOSN:漆加成功!請按任意鍵繼續(xù)?--查詢功能說明:輸入2,選擇查詢功能充-鄉(xiāng)一條一充-鄉(xiāng)一條一務一里^k-K_k-K_k-K_k-K_k-K_k-K_k-K_k-K-^114目4目4目4目4目4目4目人目切柜力力力-力氣農功功功功功功功功蒂詢示輯犀案匚警豆編?5螢.12345678請輸人1-8選擇相應功能:2>#■■■、'■?慫荻5、;,*虹■■玲W暗,?編說明:輸入1,編號查詢一號名回編姓返■■■123園?人仁瑛擇相應查澗!1詢新入編號:備號姓名性別部門級別工資2季四男經理n5000請按任意捱繼象一B9說明:輸入2,姓名查詢當gi春擇相應查詢'2[五i號姓名當gi春擇相應查詢'2[五i號姓名性別王五勇
情按任意鍵繼續(xù)一.部門
經理級別A工資5000說明:輸入3,選擇顯示功能.充一務一戔一務?_里-迪巳匕匕匕匕匕匕匕匕匕巳匕E匕匕巳季=|。目1目1目一目比nn^nH^nH^nn鬻功功功功功功功g.噂.1^^噫k-^1234E678么________珥一登一卜-d一青輸入選擇相應功能=3.充--------務一條一---------里i公巨I目『目.4目.4目J目.n目-目I目節(jié)功功功功功功功功
豪詢示輯年苦,12345678;育輸入1選擇相應功能:(4)編輯功能說明:輸入4,選擇編輯功能B----------H_R:T目4HE*目.4Rn.^Rn.^目烏目.4目穿功功功功功功功功寸加詢示輯隼眼出如嚏.1^^噫一12345678請輸入1-8選擇相應功能:47159性別,部門,并按下回車確認完成輸入:售理首犬工隹tl呼入需編輯者的姓名劉玲女王根據提示賽孜輸入該5T7男銷隹畜按任--說明:編輯后讀取數(shù)據系::二■■::里--------^LtEtEttKEtEtEtEK-AWJ縣B目J目』目J目J目「目罪功功功功功功功功L詢示楫茸蚩曹顯JJ‘芋?工弒司衍‘:!——;:-.1234567S呀________旦________3--------'青輸七-8選擇相應功能:7□銷胃人員、虬銷售經理級別工資A5眺^fl50H0fl5甌]?B4320B3440C2S25C2159D7525B7159□BE理理理1<olsfis口人部經經經葺術技銷銷銷銷--i^u-B吳,-H-Irn-l.m^nl—mPm-JT、T.mpmp^L-目--■■耳-目--■nn---nn-lT-lT--目--■■目._-■.m-.璉-經旋統(tǒng)心名三四五白甫注釀平^:e:姓善王李杜洋一黑李譴ad意/任級號按2345&7S(5)刪除功能說明:輸入5,選擇刪除功能H'T目-4目目A目A目-目晝目.T目死功功功功功功功功
珞加詢示輯字笛司*W::j::-.<^12345676--------川坨-b________--------請輸入7選擇相應功能:5說明:輸入1,編號刪除WA1-3選擇相應查詞*1編人你要刪除入員的始號:5000432034402S器215?7525715?如果是則輸入.眨理理^ofis崔敦經經銷銷弟員男男男男女女男男人下旋除
剩四五白?平刪
后季王李杜洋黑李要曰說明:輸入2,姓名刪除費管理系統(tǒng)
刪除——小型公耳1.費管理系統(tǒng)
刪除————2?建名刪除-3.返回上層-)示刪除后剩下人員的信息李四牌?嬲旋?李以L否確定要刪除該入員的基居理理否崔Ife式工r<工支肖肖肖當t-i£k£t-PH-L壬-L.千-l.t*T..4AA弘CCDD?,5^035^0334402b2b215975257ib9如果是則輸入雙.充.充--------.筍一珅匕旨旨自自自自旨匕^1-14目-目J目J目I目I目I目-月曾功功功功,功功功擊加詢示蝠辱笛jj-t:t9^噌12345678說明:輸入6,選擇統(tǒng)計功能請輸知-8選擇相應功能:6AAAAAA蚌
222七E*9/wmA=耳坦:9蚩.AA經數(shù)任理蠶星flA按(7)讀取功能說明:輸入7,選擇讀取功能趣二二二一蒜一百-■--------珅L日日日日日日它匕也耳1UKfHE.JLEE』LEE』目』目』目』目3功功功功功功功
弟加詢示輯庫*
--匚12345678
一一一____一型青輸入.1-8選擇相垣功能=75銷晴人員、虬銷售經理級副工資n6閭0fi5岫A5傾E432HE344HC252SC2159D7525D7159理理理44ofissu人部經經經銷銷銷術技B0^■、性男男男男男女女男女,m_一踱-經旋成M名三四五晝成!te:姓張李王李杜洋裊蓄摯(8)退出功能說明:輸入8,選擇退出功能充________野一條務?-旦一珅匕自日日自:自旨LA.It!E<f目』目』目.J目』目1目<f目溫功功功功功功功睦加詢示S導苦§.■14.$嚅頃噫123456787Z--------清輸衣1-8選擇相應助能:8[Ppessanykeytocontintie6、課程設計的心得通過這次課程設計,加深了對類與派生的理解。類與派生類之間的關系,通過上機實踐得到了進一步的深化。從數(shù)據成員的繼承到派生類對象對基類成員函數(shù)的調用。對于類的保護成員只能被本身的成員函數(shù)使用,而不能直接從類外通過對象直接調用,所以如果想單獨調用對象內的被保護的數(shù)據成員或私有的數(shù)據成員時,應該通過友元函數(shù)來實現(xiàn)。在編輯程序是應該多敲回車將花括號單列一行,一行只寫一條語句如此可使程序看起來非常有層次感,檢查錯誤的時候也會非常方便,最大可能的減輕了單個花括號不易檢查的問題的難度。解決花括號不配對問題更好的方法是將程序分裝打包成函數(shù),放于主函數(shù)外,不過要注意定義在調用前的話,可以直接進行函數(shù)的調用,否則要先聲明該函數(shù),然后才能調用該函數(shù)。雖然有了一年的上機課,但在課程設計這一段時間,使我收獲了很多在上機課上無法學習到的知識,尤其是C++的流類庫與輸入輸出。因為這一部分知識的不熟練,在程序設計過程中遇到了不少困難,但通過老師的指導和一次又一次的改寫、調試,將這些困難都解決了,心中的喜悅感油然而生。為了能使程序更加的完善,我也利用了不少的課余時間,查找了各方面的資料,當看到程序從一個頭文件名到一個900多行的程序,到最后的成功運行,感覺自己這段時間的付出是非常值得的,也使我對C++產生了更濃厚的興趣,對自己的學習以及將來的工作都是有很大的幫助的。整個實習過程讓我的C++知識得到了應用,體驗了程序員編程時的喜怒哀樂,知識、心智,得到全方位提升,收獲頗豐。參考書目林小茶、陳維興,《C++面向對象課程設計教程》,清華大學出版社,2009年譚浩強,《C語言程序設計》,清華大學出版社,2008年附錄#include<iostream>#include<string>#include<fstream>#include<stdlib.h>usingnamespacestd;classemployee//雇員類{protected:intnumber;//編號charname[10];//姓名charsex[3];//性別chardepartment[20];//部門chargrade;//級別intpay;//工資employee*next;public:friendistream&operator>>(istream&input,employee&ob)//運算符">>"重載為友元函數(shù){input>>>>ob.sex>>ob.department;returninput;}friendostream&operator<<(ostream&output,employee&ob)/運算符"<<"重載為友元函數(shù){output<<ob.number<<'\t'<<<<'\t'<<ob.sex<<'\t'<<ob.department<<'\t'<<ob.grade<<'\t'<<ob.pay<<endl;returnoutput;}friendvoidtianjia();//添加功能friendvoidchaxun_number();friendvoidchaxun_name();friendvoidchaxun();//查詢功能friendvoidxianshi();//顯示功能friendvoidbianji();//編輯功能friendvoidshanchu_number();friendvoidshanchu_name();friendvoidshanchu();//刪除功能friendvoidtongji();//統(tǒng)計功能friendvoidduqu();//讀取功能friendintgetnumber();//獲取編號};classmanager:virtualpublicemployee//經理類固定工資{public:voidget(){grade=,A,;pay=5000;number=getnumber();}};voidtianjia_manager()//經理數(shù)據添加{while(1){ofstreamofs("d:\\file1.txt”,ios::app);managerma;chargra,ch;cout<<"請根據提示依次輸入該經理的姓名,性別,部門,并按下回車確認完成輸入:"<<endl;cin>>ma;ma.get();gra=,A,;ofs.write((char*)&gra,sizeof(char));ofs.write((char*)&ma,sizeof(manager));ofs.close();cout<<"是否還要添加數(shù)據:?YORN:\n";cin>>ch;if(ch=='Y')continue;elsecout<<"添加成功!"<<endl;system("pause");break;}}classartisan:publicemployee//技術人員類按小時領月薪{public:voidget(){intper,hour;cout<<"請輸入工作時間,按回車鍵完成輸入:"<<endl;cin>>hour;per=80;//每小時工資80grade=,B,;pay=per*hour;number=getnumber();}};voidtianjia_artisan()//技術人員數(shù)據添加{while(1){ofstreamofs("d:\\file1.txt”,ios::app);artisanar;chargra,ch;cout<<"請根據提示依次輸入該技術人員的姓名,性別,部門,并按下回車確認完成輸入:"<<endl;cin>>ar;ar.get();gra=,B,;ofs.write((char*)&gra,sizeof(char));ofs.write((char*)&ar,sizeof(artisan));ofs.close();cout<<"是否還要添加數(shù)據:?YORN:\n";cin>>ch;if(ch==,Y,)continue;elsecout<<"添加成功!"<<endl;system("pause");break;}}classsalesman:virtualpublicemployee//銷售人員類當月銷售提成{public:voidget(){intscore;cout<<"請輸入員工當月銷售額,按回車鍵完成輸入:〃;cin>>score;grade=,C,;pay=0.33*score;number=getnumber();}};voidtianjia_salesman()//銷售人員數(shù)據添加{while(1){ofstreamofs("d:\\file1.txt”,ios::app);salesmansa;chargra,ch;cout<<"請根據提示依次輸入該銷售人員的姓名,性別,部門,并按下回車確認完成輸入:"<<endl;cin>>sa;sa.get();gra-C;ofs.write((char*)&gra,sizeof(char));ofs.write((char*)&sa,sizeof(salesman));ofs.close();cout<<"是否還要添加數(shù)據:?YORN:\n";cin>>ch;if(ch--'Y')continue;elsecout<<"添加成功!"<<endl;system("pause");break;}}classsales_manager:publicmanager,publicsalesman//銷售經理類當月銷售提成+固定工資{public:voidget(){intscore;cout<<"請輸入員工當月銷售額,按回車鍵完成輸入:〃;cin>>score;grade-'D';pay-0.33*score+5000;number-getnumber();}};voidtianjia_sales_manager()//銷售經理數(shù)據添加{while(1){ofstreamofs("d:\\file1.txt”,ios::app);sales_managersam;chargra,ch;cout<<"請根據提示依次輸入該銷售經理的姓名,性別,部門,并按下回車確認完成輸入:"<<endl;cin>>sam;sam.get();gra=,D,;ofs.write((char*)&gra,sizeof(char));ofs.write((char*)&sam,sizeof(sales_manager));ofs.close();cout<<"是否還要添加數(shù)據:?YORN:\n";cin>>ch;if(ch==,Y,)continue;elsecout<<"添加成功!"<<endl;system("pause");break;}}intgetnumber(){ifstreamifs("d:\\file1.txt”);chargra;intn,max=0;ifs.read((char*)&gra,1);while(!ifs.eof()){if(gra==,A,){managerma;ifs.read((char*)&ma,sizeof(manager));n=ma.number;}elseif(gra=='B'){artisanar;ifs.read((char*)&ar,sizeof(artisan));n=ar.number;}elseif(gra=='C'){salesmansa;ifs.read((char*)&sa,sizeof(salesman));n=sa.number;}elseif(gra=='D'){sales_managersam;ifs.read((char*)&sam,sizeof(sales_manager));n=sam.number;}if(max<n)max=n;ifs.read((char*)&gra,1);}ifs.close();returnmax+1;}voidtianjia()//添加功能函數(shù)定義{system("cls");cout<<"\t\t"<<endl;cout<<"\t\t|小型公司工資管理系統(tǒng)|"<<endl;cout<<"\t\t|1.經理數(shù)據添加|"<<endl;cout<<"\t\t|2.技術人員添加|"<<endl;cout<<"\t\t|3.銷售人員添力口1"<<endl;cout<<"\t\t|4.銷售經理添力口1"<<endl;cout<<"\t\t|5.返回上一層|"<<endl;cout<<"\t\t"<<endl;cout<<"請輸入1-5選擇相應添加:";intse;cin>>se;switch(se){case1:tianjia_manager();break;case2:tianjia_artisan();break;case3:tianjia_salesman();break;case4:tianjia_sales_manager();break;case5:return;}}voidchaxun_number(){intnu;cout<<"請輸入編號:"<<endl;cin>>nu;ifstreamifs("d:\\file1.txt”);if(!ifs){cout<<"文件打開失??!";system("pause");return;}chargra;intflag=0;ifs.read((char*)&gra,1);while(!ifs.eof()){if(gra==,A,){managerma;ifs.read((char*)&ma,sizeof(manager));if(ma.number==nu){cout<<"編號〃<<'\t'<<〃姓名〃<<'\t'<<〃性別〃<<'\t'<<〃部門〃<<'\t'<<〃級別〃<<'\t'<<〃工資〃<<endl;cout<<ma;flag=1;}}elseif(gra=='B'){artisanar;ifs.read((char*)&ar,sizeof(artisan));if(ar.number==nu){cout<<"編號〃<<'\t'<<〃姓名〃<<'\t'<<〃性別〃<<'\t'<<〃部門〃<<'\t'<<〃級別〃<<'\t'<<〃工資〃<<endl;cout<<ar;flag=1;}}elseif(gra=='C'){salesmansa;ifs.read((char*)&sa,sizeof(salesman));if(sa.number==nu){cout<<"編號〃<<'\t'<<〃姓名〃<<'\t'<<〃性別〃<<'\t'<<〃部門〃<<'\t'<<〃級別〃<<'\t'<<〃工資〃<<endl;cout<<sa;flag=1;}elseif(gra=='D'){sales_managersam;ifs.read((char*)&sam,sizeof(sales_manager));if(sam.number==nu){cout<<"編號〃<<'\t'<<〃姓名〃<<'\t'<<〃性別〃<<'\t'<<〃部門〃<<'\t'<<〃級別〃<<'\t'<<〃工資〃<<endl;cout<<sam;flag=1;}}ifs.read((char*)&gra,1);}if(!flag)cout<<"沒有找到要查詢的編號”<<endl;ifs.close();system("pause");}voidchaxun_name(){charna[10];cout<<"請輸入姓名:"<<endl;cin>>na;ifstreamifs("d:\\file1.txt”);if(!ifs){cout<<"文件打開失??!";system("pause");return;}chargra;intflag=0;ifs.read((char*)&gra,1);while(!ifs.eof()){if(gra==,A,){managerma;ifs.read((char*)&ma,sizeof(manager));if(strcmp(,na)==0){cout<<"編號"<<,\t,<<"姓名"<<,\t,<<"性別"<<,\t,<<"部門"<<,\t,<<"級別"<<,\t,<<"工資〃<<endl;cout<<ma;flag=1;}}elseif(gra==,B,){artisanar;ifs.read((char*)&ar,sizeof(artisan));if(strcmp(,na)==0){cout<<"編號"<<,\t,<<"姓名"<<,\t,<<"性別"<<,\t,<<"部門"<<,\t,<<"級別"<<,\t,<<"工資〃<<endl;cout<<ar;flag=1;}}elseif(gra==,C,){salesmansa;ifs.read((char*)&sa,sizeof(salesman));if(strcmp(,na)==0){cout<<"編號"<<,\t,<<"姓名"<<,\t,<<"性別"<<,\t,<<"部門"<<,\t,<<"級別"<<'\t'<<”工資〃<<endl;cout<<sa;flag=1;}}elseif(gra=='D'){sales_managersam;ifs.read((char*)&sam,sizeof(sales_manager));if(strcmp(,na)==0){cout<<"編號〃<<'\t'<<〃姓名〃<<'\t'<<〃性別〃<<'\t'<<〃部門〃<<'\t'<<〃級別〃<<'\t'<<〃工資〃<<endl;cout<<sam;flag=1;}}ifs.read((char*)&gra,1);}if(!flag)cout<<"沒有找到要查詢的姓名"<<endl;ifs.close();system("pause");}voidchaxun()//查詢功能函數(shù)定義{system("cls");cout<<"\t\t"<<endl;cout<<"\t\t|小型公司工資管理系統(tǒng)1"<<endl;cout<<"\t\t|1.編號查找|"<<endl;cout<<"\t\t|2.姓名查找|"<<endl;cout<<"\t\t|3.返回上層|"<<endl;cout<<"\t\t"<<endl;cout<<"請輸入1-3選擇相應查詢:";intse;cin>>se;switch(se){case1:chaxun_number();break;case2:chaxun_name();break;case3:return;}}voidxianshi()//顯示功能函數(shù)定義{system("cls");cout<<"\t\t"<<endl;cout<<"\t\t|小型公司工資管理系統(tǒng)1"<<endl;cout<<"\t\t|1.添加功能|"<<endl;cout<<"\t\t|2.查詢功能|"<<endl;cout<<"\t\t|3.顯示功能|"<<endl;cout<<"\t\t|4.編輯功能|"<<endl;cout<<"\t\t|5.刪除功能|"<<endl;cout<<"\t\t|6.統(tǒng)計功能|"<<endl;cout<<"\t\t|7.讀取功能|"<<endl;cout<<"\t\t|8.退出功能|"<<endl;cout<<"\t\t"<<endl;cout<<"請輸入1-8選擇相應功能:";intse;cin>>se;while(se>8||se<1){cout<<"輸入數(shù)據無效,請重新輸入:";cin>>se;}cout<<endl;switch(se){case1:tianjia();break;case2:chaxun();break;case3:xianshi();break;case4:bianji();break;case5:shanchu();break;case6:tongji();break;case7:duqu();break;case8:exit(0);}}voidbianji()//編輯功能函數(shù)定義{charna[10];intz=0;cout<<"請輸入需編輯者的姓名:"<<endl;cin>>na;fstreammystream("d:\\file1.txt”,ios::in|ios::out);if(!mystream){cout<<"文件打開失?。?;system("pause");return;}chargra;intflag=0;mystream.read((char*)&gra,1);while(!mystream.eof()){if(gra==,A,){managerma;mystream.read((char*)&ma,sizeof(manager));if(strcmp(,na)==0){cout<<ma;cout<<"請根據提示依次輸入該經理的姓名,性別,部門,并按下回車確認完成輸入:"<<endl;cin>>ma;mystream.seekp(-sizeof(manager),ios::cur);mystream.write((char*)&ma,sizeof(manager));flag=1;mystream.seekg(sizeof(manager),ios::cur);}}elseif(gra=='B'){artisanar;mystream.read((char*)&ar,sizeof(artisan));if(strcmp(,na)==0){cout<<ar;cout<<"請根據提示依次輸入該技術人員的姓名,性別,部門,并按下回車確認完成輸入:"<<endl;cin>>ar;mystream.seekp(-sizeof(artisan),ios::cur);mystream.write((char*)&ar,sizeof(artisan));flag=1;mystream.seekg(sizeof(artisan),ios::cur);}}elseif(gra=='C'){salesmansa;mystream.read((char*)&sa,sizeof(salesman));if(strcmp(,na)==0){cout<<sa;cout<<"請根據提示依次輸入該銷售人員的姓名,性別,部門,并按下回車確認完成輸入:"<<endl;cin>>sa;mystream.seekp(-sizeof(salesman),ios::cur);mystream.write((char*)&sa,sizeof(salesman));flag=1;mystream.seekg(sizeof(salesman),ios::cur);}}elseif(gra=='D'){sales_managersam;mystream.read((char*)&sam,sizeof(sales_manager));if(strcmp(,na)==0){cout<<sam;cout<<"請根據提示依次輸入該銷售經理的姓名,性別,部門,并按下回車確認完成輸入:"<<endl;cin>>sam;mystream.seekp(-sizeof(sales_manager),ios::cur);mystream.write((char*)&sam,sizeof(sales_manager));flag=1;mystream.seekg(sizeof(sales_manager),ios::cur);}}mystream.read((char*)&gra,1);}if(!flag)cout<<"沒有找到要修改的姓名"<<endl;mystream.close();system("pause");}voidshanchu_number()//編號刪除功能函數(shù)定義{ifstreamifs("d:\\file1.txt”);if(!ifs){cout<<"打開文件失??!";system("pause");return;}intnu;cout<<"請輸入你要刪除人員的編號:"<<endl;cin>>nu;intflag;intflag2=0;employee*head=NULL,*p,*tail=NULL;chargra;ifs.read((char*)&gra,1);while(!ifs.eof()){flag=0;if(gra==,A,){manager*p1;p1=newmanager;ifs.read((char*)p1,sizeof(manager));if(p1->number!=nu){flag=1;flag2=1;}p=p1;}elseif(gra==,B,){artisan*p2;p2=newartisan;ifs.read((char*)p2,sizeof(artisan));if(p2->number!=nu){flag=1;flag2=1;}p=p2;}elseif(gra=='C'){salesman*p3;p3=newsalesman;ifs.read((char*)p3,sizeof(salesman));if(p3->number!=nu){flag=1;flag2=1;}p=p3;}elseif(gra=='D'){sales_manager*p4;p4=newsales_manager;ifs.read((char*)p4,sizeof(sales_manager));if(p4->number!=nu){flag=1;flag2=1;}p=p4;}if(flag){if(head==NULL)head=p;elsetail->next=p;tail=p;tail->next=NULL;}ifs.read((char*)&gra,sizeof(char));}ifs.close();if(!flag2){cout<<"沒有找到要刪除的信息!";return;}cout<<"顯示刪除后剩下人員的信息!"<<endl;p=head;while(p!=NULL){cout<<*p;p=p->next;}cout<<"是否確定要刪除該人員的基本數(shù)據?,如果是則輸入:Y"<<endl;charchw;cin>>chw;if(chw==,Y,){ofstreamofs("d:\\file1.txt”,ios::out);if(!ofs){cout<<"打開文件失敗!";system("pause");return;}p=head;while(p!=NULL){if(p->grade==,A,){chargra=,A,;managerma;ma.number=p->number;strcpy(,p->name);strcpy(ma.sex,p-〉sex);strcpy(ma.department,p->department);ma.grade=p-〉grade;ma.pay=p->pay;ma.next=p->next;ofs.write((char*)&gra,sizeof(char));ofs.write((char*)&ma,sizeof(manager));}elseif(p->grade==,B,){chargra=,B,;artisanar;ar.number=p->number;strcpy(,p->name);strcpy(ar.sex,p->sex);strcpy(ar.department,p->department);ar.grade=p->grade;ar.pay=p->pay;ar.next=p->next;ofs.write((char*)&gra,sizeof(char));ofs.write((char*)&ar,sizeof(artisan));}elseif(p->grade==,C,){chargra='C';salesmansa;sa.number=p->number;strcpy(,p->name);strcpy(sa.sex,p->sex);strcpy(sa.department,p->department);sa.grade=p->grade;sa.pay=p->pay;sa.next=p->next;ofs.write((char*)&gra,sizeof(char));ofs.write((char*)&sa,sizeof(salesman));}elseif(p->grade=='D'){chargra='D';sales_managersam;sam.number=p->number;strcpy(,p->name);strcpy(sam.sex,p->sex);strcpy(sam.department,p->department);sam.grade=p->grade;sam.pay=p->pay;sam.next=p->next;ofs.write((char*)&gra,sizeof(char));ofs.write((char*)&sam,sizeof(sales_manager));}p=p->next;}cout<<"刪除完畢!"<<endl;ofs.close();system("pause");}voidshanchu_name()//姓名刪除功能函數(shù)定義{ifstreamifs("d:\\file1.txt”);if(!ifs){cout<<"打開文件失?。?;system("pause");return;}charna[10];cout<<"請輸入你要刪除人員的姓名:\n”;cin>>na;intflag=0;intflag2=0;employee*head=NULL,*p,*tail=NULL;chargra;ifs.read((char*)&gra,1);while(!ifs.eof()){flag=0;if(gra==,A,){manager*p1;p1=newmanager;ifs.read((char*)p1,sizeof(manager));if(strcmp(p1->name,na)!=0){flag=1;flag2=1;}p=p1;elseif(gra=='B'){artisan*p2;p2=newartisan;ifs.read((char*)p2,sizeof(artisan));if(strcmp(p2->name,na)!=0){flag=1;flag2=1;}p=p2;}elseif(gra=='C'){salesman*p3;p3=newsalesman;ifs.read((char*)p3,sizeof(salesman));if(strcmp(p3->name,na)!=0){flag=1;flag2=1;}p=p3;}elseif(gra=='D'){sales_manager*p4;p4=newsales_manager;ifs.read((char*)p4,sizeof(sales_manager));if(strcmp(p4->name,na)!=0){flag=1;flag2=1;p=p4;}if(flag){p->next=NULL;if(head==NULL)head=p;elsetail->next=p;tail=p;tail->next=NULL;}ifs.read((char*)&gra,sizeof(char));}ifs.close();if(!flag2){cout<<"沒有找到要刪除的信息!";return;}cout<<"顯示刪除后剩下人員的信息!"<<endl;p=head;while(p!=NULL){cout<<*p;p=p->next;}cout<<"是否確定要刪除該人員的基本數(shù)據?,如果是則輸入:Y"<<endl;charchw;cin>>chw;if(chw==,Y,){ofstreamofs("d:\\file1.txt”,ios::out);if(!ofs){cout<<"打開文件失敗!";system("pause");return;}p=head;while(p!=NULL){if(p->grade==,A,){chargra=,A,;managerma;ma.number=p->number;strcpy(,p->name);strcpy(ma.sex,p-〉sex);strcpy(ma.department,p->department);ma.grade=p-〉grade;ma.pay=p->pay;ma.next=p->next;ofs.write((char*)&gra,sizeof(char));ofs.write((char*)&ma,sizeof(manager));}elseif(p->grade==,B,){chargra=,B,;artisanar;ar.number=p->number;strcpy(,p->name);strcpy(ar.sex,p->sex);strcpy(ar.department,p->department);ar.grade=p->grade;ar.pay=p->pay;ar.next=p->next;ofs.write((char*)&gra,sizeof(char));ofs.write((char*)&ar,sizeof(artisan));}elseif(p->grade=='C'){chargra='C';salesmansa;sa.number=p->number;strcpy(,p->name);strcpy(sa.sex,p->sex);strcpy(sa.department,p->department);sa.grade=p->grade;sa.pay=p->pay;sa.next=p->next;ofs.write((char*)&gra,sizeof(char));ofs.write((char*)&sa,sizeof(salesman));}elseif(p->grade=='D'){chargra='D';sales_managersam;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商戶兩用租房合同協(xié)議
- 商品店鋪轉讓合同協(xié)議
- 商場場地出租協(xié)議書模板
- 正規(guī)車位買賣合同協(xié)議
- 正規(guī)窗簾定制合同協(xié)議
- 吳中區(qū)融資租賃合同協(xié)議
- 快遞出兌定金合同協(xié)議
- 商務接待合同協(xié)議
- 正規(guī)汽車質押典當合同協(xié)議
- 商務部設備進口合同協(xié)議
- 連云港2025年連云港市贛榆區(qū)事業(yè)單位招聘31人筆試歷年參考題庫附帶答案詳解
- 8.1薪火相傳的傳統(tǒng)美德 課件-2024-2025學年統(tǒng)編版道德與法治七年級下冊
- 湖北省武漢市2025屆高中畢業(yè)生四月調研考試語文試卷及答案(武漢四調)
- 食堂負面清單管理制度
- 2025年安徽省示范高中皖北協(xié)作區(qū)第27屆聯(lián)考 生物學(含解析)
- 2025年度專業(yè)技術人員繼續(xù)教育公需科目考試題(附答案)
- 2025年中考語文《教材字音、字形》梳理
- 2024年上半年教資科目一試題
- 施工員頂崗實習報告范文
- 毽球知到智慧樹章節(jié)測試課后答案2024年秋武漢職業(yè)技術學院
- 霧化吸入療法合理用藥專家共識(2024版)課件
評論
0/150
提交評論