




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