版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
公司工資管理系統(tǒng)公司工資管理系統(tǒng)PAGE數學與計算機學院課程設計說明書課程名稱:面向對象程序設計-課程設計課程代碼:8404101題目:公司工資管理系統(tǒng)年級/專業(yè)/班:2007級軟件工程1學生姓名:劉遠強學號:312007080611109開始時間:2009年06月10日完成時間:2009年06月28日課程設計成績:學習態(tài)度及平時成績(30)技術水平與實際能力(20)創(chuàng)新(5)說明書撰寫質量(45)總分(100)指導教師簽名:年月日目錄TOC\o"1-2"\h\z1引言 11.1問題的提出 11.2國內外研究的現(xiàn)狀 11.5任務與分析 12程序的主要功能 22.1添加功能 22.2刪除功能 22.3顯示功能 22.4數據設置功能 22.5修改功能 23程序運行平臺 34總體設計 45程序類的說明 56模塊分析 86.1添加模塊 86.2查詢本月經營模塊 86.3修改模塊 86.4數據存盤模塊 86.5刪除模塊 86.6基礎數據設置模塊 86.7數據裝入模塊 87系統(tǒng)測試 98結論 10致謝 11參考文獻 12
摘要隨著計算機的普及……計算機科學越來越變得重要,程序設計作為計算機科學的基本,地位也變得越來越重要。C++作為程序設計的基礎,地位也是很重要的。C++是開發(fā)性能高復雜度系統(tǒng)的最好語言。此次進行C++課程設計,做一個公司工資管理系統(tǒng),讓我更為深層次地了解到了C++的魅力所在,讓我懂得什么才叫編程的快樂。社會在進步,計算機科學也在進步,C++的重要性也越來越重要,我們只有不斷地學習,才能趕上時代的步伐……關鍵詞:公司工資管理系統(tǒng);計算機;C++;程序設計……公司工資管理系統(tǒng)公司工資管理系統(tǒng)課程設計題目(改為黑色)課程設計題目(改為黑色)1引言1.1問題的提出在現(xiàn)代化的企業(yè)管理中,人事管理系統(tǒng)有著十分重要的作用,然而,用大型軟件系統(tǒng)來于小型的企事業(yè)單位,不啻于“殺雞用牛刀”,因此小型的的軟件對于這種單位自然有十分重要作用。某小型企業(yè)出與這種目的制作了這個人事管理系統(tǒng)。1.2國內外研究的現(xiàn)狀C++發(fā)展至今已經有20年的時光了,在這20年里,C++逐步的發(fā)展壯大,為面向對象開發(fā)思維的推廣提供了實現(xiàn)的基礎??梢哉fC++對于現(xiàn)在思想的成熟以及在企業(yè)開發(fā)中的大量應用時功不可沒的。蛋隨著1995年網絡時代的到來,以及JAVA語言的誕生使得C++逐步進入一個尷尬的境地。由于沒有跨平臺以及網絡應用的優(yōu)勢,在企業(yè)級應用開發(fā)中逐步被JAVA所替代。這幾年來笑道LOKI,大到STL等程序庫已經為C++語言擴展了廣泛的應用領域。我相信通過大家的努力,C++的未來必將更加精彩!1.5任務與分析通過設計一個較為簡單的《小型公司工資管理系統(tǒng)》,進一步熟悉C++中類的概念、類的封裝、繼承的實現(xiàn)方式。了解系統(tǒng)開發(fā)的需求分析、類層次設計、模塊分析、編碼測試、模塊組裝與整體調試的全過程,加深對C++的理解與VisualC++環(huán)境的使用;逐步熟悉程序設計的方法,并養(yǎng)成良好的編程習慣。2程序的主要功能2.1添加功能添加一個職員的基本信息,包括職工類型,姓名等等,2.2刪除功能能夠對一個職員的信息進行刪除按員工號進行刪除。 2.3顯示功能顯示所有職員的主要信息包括員工類型,姓名,工資。2.4數據設置功能設置不同員工類型的工資要求。2.5修改功能對職員的信息進行修改。3程序運行平臺VC++6.0。4總體設計主主函數添加信息刪除信息清空信息修改信息顯示信息查找信息圖4.1系統(tǒng)總體框架圖雇員類雇員類銷售員類經理類技術員類銷售員類經理類技術員類銷售經理類 銷售經理類圖4.2類的層次結構圖5程序類的說明總職工類的聲明classPerson//員工類{protected:intNo;//編號charName[20];//姓名intDuty;//崗位doubleEarning;//收入Person*next;public:Person(charID,char*Name,intDuty){this->Duty=Duty;strcpy(this->Name,Name);this->No=ID;}virtualvoidCalcSalary()=0;virtualvoidOutput()=0;friendclassCompany;};技術員類的聲明classtechnician:virtualpublicEmployee{public: technician(){}virtual voidshanchu(){*name=*sex=0;number=age=hour=0;pay1=0;} voidwage(){pay1=100*hour;} virtualvoidprint() { wage(); cout<<"技術員員工號:"<<number<<"" <<"姓名:"<<name<<"" <<"性別:"<<sex<<"" <<"年齡:"<<age<<"" <<"工資:"<<pay1<<endl; } voidinput() { Employee::input(); cout<<"工作時間(以小時計算)"<<endl; cin>>hour; }protected: inthour,pay1;};經理類的聲明classManager:publicPerson//經理類{public:Manager(charID,char*Name,intDuty):Person(ID,Name,Duty){}voidCalcSalary(){Earning=ManagerSalary;}voidOutput(){CalcSalary();cout<<No<<"\t"<<Name<<"\t經理\t"<<Earning<<endl;}};銷售員類的聲明classSales:publicPerson//銷售員類{private:doubleAmount;public:Sales(charID,char*Name,intDuty,doubleAmount):Person(ID,Name,Duty){this->Amount=Amount;}doubleGetAmount(){returnAmount;}voidSetAmount(doubleAmount){this->Amount=Amount;}voidCalcSalary(){Earning=SalesPercent/100*Amount;}voidOutput(){CalcSalary();cout<<No<<"\t"<<Name<<"\t銷售員\t"<<Amount<<"\t"<<Earning<<endl;}};銷售經理類的聲明classSalesManager:publicPerson//銷售經理類{private:doubleAmount;public:SalesManager(charID,char*Name,intDuty):Person(ID,Name,Duty){}voidSetAmount(doubles){Amount=s;}voidCalcSalary(){Earning=SalesManagerSalary+Amount*SalesManagerPercent/100;}voidOutput(){CalcSalary();cout<<No<<"\t"<<Name<<"\t銷售經理\t"<<Earning<<endl;}};公司類的聲明classCompany//公司類{private:Person*Worker;//員工表voidClear();//清除內存中數據public:Company(){Worker=0;Load();}~Company(){Person*p;p=Worker;while(p){p=p->next;deleteWorker;Worker=p;}Worker=0;}voidAdd();//增加人員voidDelete();//刪除人員voidModify();//修改人員voidQuery();//查詢人員voidSet();//基礎數據設置voidSave();//數據存盤(包括基礎數據,人員數據)voidLoad();//數據裝入(包括基礎數據,人員數據)};6模塊分析6.1添加模塊添加函數如下:voidCompany::Add(){Person*p;//新結點指針intDuty;charName[20];doubleAmount,T;cout<<"\n**新增員工**\n";//輸入員工信息ID++;cout<<"輸入崗位(1-經理2-銷售經理3-銷售員4-技術員):";cin>>Duty;cout<<"輸入姓名:";cin>>Name;if(Duty==3){cout<<"本月銷售額:";cin>>Amount;}elseif(Duty==4){cout<<"本月工作小時數(0-168):";cin>>T;}6.2查詢本月經營模塊顯示函數如下:voidCompany::Query(){cout<<"\n**查詢人員本月銷售信息**\n";doublesum=0;//銷售額總和Person*p=Worker;while(p){if(p->Duty==3)sum+=((Sales*)p)->GetAmount();p=p->next;}p=Worker;doublesum2=0;//工資總和while(p){if(p->Duty==2)((SalesManager*)p)->SetAmount(sum);p->Output();sum2+=p->Earning;p=p->next;}cout<<"本月盈利:"<<sum*0.20-sum2<<endl;cout<<"(按照20%利潤計算)\n";}6.3修改模塊修改函數如下:voidCompany::Modify(){intNo,Duty;charName[20];doubleAmount,T;cout<<"\n**修改員工**\n";cout<<"ID:";cin>>No;//查找要修改的結點Person*p1,*p2;p1=Worker;while(p1){if(p1->No==No)break;else{p2=p1;p1=p1->next;}}//修改結點if(p1!=NULL)//若找到結點{p1->Output();cout<<"調整崗位(1-經理2-銷售經理3-銷售員4-技術員):";cin>>Duty;if(p1->Duty!=Duty)//若崗位發(fā)生變動{//修改其它數據cout<<"輸入姓名:";cin>>Name;if(Duty==3){cout<<"本月銷售額:";cin>>Amount;}elseif(Duty==4){cout<<"本月工作小時數(0-168):";cin>>T;}//創(chuàng)建新員工結點Person*p3;switch(Duty){case1:p3=newManager(p1->No,Name,Duty);break;case2:p3=newSalesManager(p1->No,Name,Duty);break;case3:p3=newSales(p1->No,Name,Duty,Amount);break;case4:p3=newTechnician(p1->No,Name,Duty,T);break;}//員工結點替換到鏈表p3->next=p1->next;if(p1==Worker)//若要替換的結點是第一個結點Worker=p3;else//若要刪除的結點是后續(xù)結點p2->next=p3;//刪除原來的員工結點deletep1;}else//若崗位沒有變動{cout<<"輸入姓名:";cin>>p1->Name;if(Duty==3){cout<<"本月銷售額:";cin>>Amount;((Sales*)p1)->SetAmount(Amount);}elseif(Duty==4){cout<<"本月工作小時數(0-168):";cin>>T;((Technician*)p1)->SetT(T);}}cout<<"修改成功!\n";}else//未找到結點cout<<"未找到!\n";}6.4數據裝盤模塊數據裝盤函數如下:voidCompany::Save(){ofstreamfPerson,fBase;charc;cout<<"\n保存人員和基礎數據,是否繼續(xù)?[Y/N]:";cin>>c;if(toupper(c)!='Y')return;//保存人員編號、姓名、崗位fPerson.open("person.txt",ios::out);Person*p=Worker;while(p){fPerson<<p->No<<"\t"<<p->Name<<"\t"<<p->Duty<<"\t";if(p->Duty==3)fPerson<<((Sales*)p)->GetAmount()<<"\t";elseif(p->Duty==4)fPerson<<((Technician*)p)->GetT()<<"\t";fPerson<<endl;p=p->next;}fPerson.close();//保存基礎數據fBase.open("base.txt",ios::out);fBase<<"經理固定月薪\t"<<ManagerSalary<<endl;fBase<<"銷售經理固定月薪\t"<<SalesManagerSalary<<endl;fBase<<"銷售經理提成%\t"<<SalesManagerPercent<<endl;fBase<<"銷售人員提成%\t"<<SalesPercent<<endl;fBase<<"技術人員小時工資\t"<<WagePerHour<<endl;fBase<<"ID\t"<<ID<<endl;fPerson.close();cout<<"\n保存人員和基礎數據已經完成...\n";}6.5刪除模塊刪除函數如下:voidCompany::Delete()//刪除人員{intNo;cout<<"\n**刪除員工**\n";cout<<"ID:";cin>>No;//查找要刪除的結點Person*p1,*p2;p1=Worker;while(p1){if(p1->No==No)break;else{p2=p1;p1=p1->next;}}//刪除結點if(p1!=NULL)//若找到結點,則刪除{if(p1==Worker)//若要刪除的結點是第一個結點{Worker=p1->next;deletep1;}else//若要刪除的結點是后續(xù)結點{p2->next=p1->next;deletep1;}cout<<"找到并刪除\n";}else//未找到結點cout<<"未找到!\n";}6.6基礎數據設置模塊基礎數據設置函數如下:voidCompany::Set(){cout<<"\n**設置基礎數據**\n";cout<<"經理固定月薪["<<ManagerSalary<<"元]:";cin>>ManagerSalary;cout<<"銷售經理固定月薪["<<SalesManagerSalary<<"元]:";cin>>SalesManagerSalary;cout<<"銷售經理提成["<<SalesManagerPercent<<"%]:";cin>>SalesManagerPercent;cout<<"銷售人員提成["<<SalesPercent<<"%]:";cin>>SalesPercent;cout<<"技術人員小時工資["<<WagePerHour<<"(元/小時)]:";cin>>WagePerHour;cout<<"員工標識[>="<<ID<<"]:";cin>>ID;}6.7數據裝入模塊數據裝入函數:voidCompany::Load()//數據裝入(包括基礎數據,人員數據){//基礎數據裝入ifstreamfBase;charbuf[80];//buf用于保存數據文件中的注釋字符串fBase.open("base.txt",ios::in);fBase>>buf>>ManagerSalary;//經理固定月薪fBase>>buf>>SalesManagerSalary;//銷售經理固定月薪fBase>>buf>>SalesManagerPercent;//銷售經理提成%fBase>>buf>>SalesPercent;//銷售人員提成%fBase>>buf>>WagePerHour;//技術人員小時工資fBase>>buf>>ID;//員工標識fBase.close();//清除內存人員數據Clear();//人員數據數據裝入ifstreamfPerson;Person*p=Worker;intNo;charName[20];intDuty;doubleAmount,T;fPerson.open("person.txt",ios::in);//讀一條記錄fPerson>>No>>Name>>Duty;if(Duty==3)fPerson>>Amount;elseif(Duty==4)fPerson>>T;while(fPerson.good()){//創(chuàng)建員工結點switch(Duty){case1:p=newManager(No,Name,Duty);break;case2:p=newSalesManager(No,Name,Duty);break;case3:p=newSales(No,Name,Duty,A
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 老年終末期認知下降癥狀群管理方案
- 老年終末期疼痛評估的全程管理策略
- 科技創(chuàng)新能力培養(yǎng)實施細則
- 創(chuàng)新公共服務提供方式滿足多樣需求
- 敏視通過ISOSAE 21434道路車輛-網絡安全工程認證
- 老年癡呆癥早期篩查中的醫(yī)患溝通倫理
- 申論國家公務員考試(行政執(zhí)法)試題與參考答案(2024年)
- 老年消化性潰瘍患者跌倒預防與安全用藥教育方案
- 老年慢性病管理游戲化模擬教學
- 2026年及未來5年市場數據中國割草機器人行業(yè)市場深度分析及投資規(guī)劃建議報告
- 重慶市2026年高一(上)期末聯(lián)合檢測(康德卷)化學+答案
- 2026年湖南郴州市百福控股集團有限公司招聘9人備考考試題庫及答案解析
- 綠電直連政策及新能源就近消納項目電價機制分析
- 鐵路除草作業(yè)方案范本
- 2026屆江蘇省常州市生物高一第一學期期末檢測試題含解析
- 2026年及未來5年市場數據中國高溫工業(yè)熱泵行業(yè)市場運行態(tài)勢與投資戰(zhàn)略咨詢報告
- 教培機構排課制度規(guī)范
- 2026年檢視問題清單與整改措施(2篇)
- 認識時間(課件)二年級下冊數學人教版
- 【四年級】【數學】【秋季上】期末家長會:數海引航愛伴成長【課件】
- 紹興東龍針紡織印染有限公司技改年產10500萬米印染面料生產線項目環(huán)境影響報告
評論
0/150
提交評論