C課程設計職工工資管理系統(tǒng)報告內含程序清單_第1頁
C課程設計職工工資管理系統(tǒng)報告內含程序清單_第2頁
C課程設計職工工資管理系統(tǒng)報告內含程序清單_第3頁
C課程設計職工工資管理系統(tǒng)報告內含程序清單_第4頁
C課程設計職工工資管理系統(tǒng)報告內含程序清單_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、目錄目錄.1概括.1.1程序的基本功能.1.2其余功能.1.3擴展功能.2課題的解析.2.1會員登入系統(tǒng)模塊即SYSTEMHEAD靜態(tài)全局函數模塊.2.2查問功能模塊即SEARCH函數模塊.2.3職務信息般配及辦理模塊即SYSTEMBODY靜態(tài)全局函數模塊模塊4.2.4循環(huán)控制模塊即WHILE(1)模塊.3詳盡設計.3.1類申明.3.2系統(tǒng)簡單流程圖.3.3會員登入系統(tǒng)模塊即SYSTEMHEAD靜態(tài)全局函數模塊.3.4查問功能模塊即SEARCH函數模塊.3.5職務信息般配及辦理模塊即SYSTEMBODY靜態(tài)全局函數模塊.3.6循環(huán)控制模塊即WHILE(1)模塊.4課程設計總結.4.1達成狀況.

2、4.2碰到的問題及解決.參照文件.附錄.概括本課程設計是面向對象程序設計課程的后繼教課環(huán)節(jié),學好C+語言就一定堅持用面向對象的思想方式解析問題、解決問題,最好的方法是模仿教材編寫C+實質應用程序。此次課程設計的題目及要求:實現一個簡單的薪資管理系統(tǒng)。1.1程序的基本功能系統(tǒng)的主要功能是計算員工當月薪資并存檔。企業(yè)內有5種不一樣種類的員工:技術人員、銷售人員、文秘、技術經理和銷售經理,他們的薪資計算方式各不同樣。1.2其余功能將薪資信息存入salary.txt文件中,薪資信息包含雇員編號、姓名、職務、月份、月收入。Info.txt文件中只存留一些信息及會員最后進入系統(tǒng)時輸入的數據,最多含有編號、

3、姓名、職務、月份的信息。1.3擴展功能采納了會員制度,并將登入信息及編號、密碼存入number.txt文件中。課題的解析經過對課題的深入解析,我將這個課題分為以下幾個模塊,深入詳盡得解析它們。2.1會員登入系統(tǒng)模塊即systemhead靜態(tài)全局函數模塊程序運轉后,先進行會員選擇判斷。為減少會員從頭注冊,經過輸入兩次編號及密碼,增添繁瑣度。同時在必定的方面上,又方便忘掉密碼的會員。經過密碼般配,雇員的薪資信息這一隱私獲得了很好的保障。2.2查問功能模塊即search函數模塊第一,從info.txt中提取編號,與salary.txt中的編號進行般配,般配成功,輸出薪資信息,直到文件!indata.

4、eof()=0。.2.3職務信息般配及辦理模塊即systembody靜態(tài)全局函數模塊模塊4從info.txt中提取職務信息,用switch語句進行般配,據般配狀況調用不一樣的函數進行輸入、辦理、顯示并以增添方式記錄到salary.txt中。2.4循環(huán)控制模塊即while(1)模塊為了更為方便使用,盡量改良系統(tǒng),實現search函數及systembody函數功能,在search函數及systembody函數模塊的基礎上加了一些必需的語句,并增添了外層循環(huán)控制。詳盡設計作為一個面向對象程序設計,我們不得不先從類的申明開始設計,爾后是一個整體的流程圖做框架。最后在從小的模塊構造著手。3.1類申明圖3

5、.1類申明3.2系統(tǒng)簡單流程圖圖3.2員工薪資管理系統(tǒng)簡單流程圖優(yōu)開始點:否一注冊能否會員個是入口輸入編號及密碼,假查驗?一真?zhèn)€輸入姓名、職務、月份出記錄編碼姓名職務月份至info.txt口從info.txt提取職務代碼!0再次輸入1假查問信息選擇?3.3會員登入系統(tǒng)模塊即結束靜態(tài)全局函數模塊systemhead圖3.3登入系統(tǒng)模塊詳盡流程圖3.4查問功能模塊即search函數模塊classTechManager:publicTechnician,public圖3.4查問功能模塊Manager否職務代碼解析3.5private:能否會靜態(tài)全局函數模塊職務信息般配及辦理模塊即systembody

6、floatgradeBonus;輸入2輸入3輸入4輸入5輸入1intgrade;以默認方式翻開info.txtpublic:圖3.5systembody函數模塊TechManager(floatx=1000);辦理.輸入編號及密碼辦理3辦理輸4入編號及處密理碼5voidsetgrade(floatx);從文件info.txt中提取編號并封閉文件voidcountSalary();以默認方式翻開info.txt;以增添方式翻開name.txt并工輸資入記輯錄號在及salary.txt以默認方提式取打info開.salarytxt中的.txt職務信息3.6循環(huán)控制模塊即while(1)模塊圖3.6

7、循環(huán)控制模塊即while(1)模塊輸當選擇操作10選擇?查問功能模塊Info及recordinfo調用2systembody調用結束課程設計總結4.1達成狀況本次面向對象課程設計的所有功能基本達成,而且擴展功能也成功的實現!可履行文件能正常履行指令并運轉!4.2碰到的問題及解決圖錯誤Error權Desktopmain.o(.data$_vt$8Employee+0 xc):main.cpp:undefinedreferencetoEmployee:countSalary(void)錯誤:沒有定義Employee類中的countSalary函數!更正:將原來的“virtualvoidcountS

8、alary();”改為”virtualvoidcountSalary()”圖錯誤錯誤解析:(會員板塊中)提示:“數字1表示是!其余鍵表示否!”,但定義的選擇變量為整型。加上我當時輸入字符p。更正:“其余鍵表示否!”改為”數字0表示否”。輸入時按提示進行輸入即可!圖錯誤調試解析:錯誤發(fā)生在systemhead靜態(tài)全局函數內的文件輸入循環(huán)模塊中!更正:將以nocreate方式即”ifstreamindata(d:number.txt,ios:nocreate);“該為默認翻開方式即“ifstreamindata(d:number.txt);”。圖錯誤調試解析:錯誤發(fā)生在調用systembody靜態(tài)

9、全局函數前后的while循環(huán)模塊中,很有可能是數據存取雜亂造成的。更正:systemhead靜態(tài)全局函數內“ofstreamoutdata(d:info.txt,ios:trunc);”改為先清后在以默認方式輸入!且將存取整型編號的變量種類從字符型改為整型。圖錯誤錯誤:后邊無緣無故的隨著一個提示語句指令。解析調試:當語句指令是基類info函數內的語句,很有可能是循環(huán)控制出現了一些問題。更正:見程序源代碼!參照文件下邊給出幾個參照文件的格式參照2匿名,不知道,特別多計算機適用教程北京:XX大學第一版社,2004,123234美DonisSomethingVisualX#2008技術內情北京:YY

10、Y大學第一版社,2007,5678JohnsSmith,JamesNothing.ProgramminginC+orAnythingandSomething.worldplus/nothing/index.html2007Anonymous.SomethingtoSay.面向對象程序設計,鄭莉,清華大學第一版社,面向對象程序設計C+語言,朱戰(zhàn)立等編西安電子科技大學第一版社8面向對象程序設計-VisualC+,劉斌等編,清華大學第一版社面向對象程序設計-C+語言描繪,RichardJohnsonbaugh(美)等著,蔡宇輝等譯,機械工業(yè)第一版社,2003附錄本系統(tǒng)有三個源程序言件組成,分別為sy

11、stem.h,system.cpp及main.cpp。同時含有三個系統(tǒng)文件,分別為info.txt,name.txt及salary.txt,且所有寄存在D盤根目錄下,請勿任意挪動或改正系統(tǒng)文件。當會員正式進入系統(tǒng),info.txt是先清空后用來儲存會員輸入的信息,最多含有編號、姓名、職務及月份。當僅會員注冊時,會將編碼及密碼儲存到name.txt中。當僅會員登入的編號及密碼進行般配時,會翻開輸入文件name.txt,提取編號及密碼,進行般配。當僅當輸入薪資數據時,會將薪資、編號、姓名、職務、月份儲存到salary.txt中。當僅當查問薪資信息時,會翻開salary.txt,提取編號、姓名、職務

12、、月份及薪資。該系統(tǒng)是一個只合適5種及5種職務的薪資管理系統(tǒng)。并將職務分為技術人員、銷售人員、文秘、技術經理和銷售經理,其代號分別為1,2,3,4,5。雇員編號以整型變量儲存,編號所取范圍在-65536至65535以內(包含界限值),首位數字表示相應的職務代碼。該系統(tǒng)能力有限,請依據指示嚴格輸入相應字符!程序清單Main函數#includesystem.cpp#includecstringstaticvoidsystemhead();staticvoidsystembody();staticvoidtechnician();staticvoidsalesman();staticvoidsecr

13、etary();staticvoidtechmanager();staticvoidsalesmanager();usingnamespacestd;voidmain()systemhead();/調用systemhead靜態(tài)全局函數coutnn1:查問薪資;coutnn2:輸入薪資數據;coutnn0:退出系統(tǒng)!nn;coutxuanze;if(xuanze=1)employeea;coutendlendl;a.search();coutnn輸入薪資數據請按數字2,退出系統(tǒng)請按數字0!nn;/查問薪資信息if(xuanze=2)employeea;();a.recordinfo(

14、);/輸入辦理薪資數據并臨時記錄systembody();/調用systembody靜態(tài)全局函數coutnn查問薪資請按數字1,退出系統(tǒng)請按數字0!nn;if(xuanze=0)exit(0);staticvoidsalesmanager()SalesManagera5;floatsum;coutsum;a5.setsalesnum(sum);a5.countSalary();a5.recordSalary();staticvoidtechmanager()TechManagera4;intgra;coutgra;a4.setgrade(gra);a4.countSalary();a4.rec

15、ordSalary();staticvoidsecretary()Secretarya3;floatbon;coutbon;a3.setbonus(bon);a3.countSalary();a3.recordSalary();staticvoidsalesman()Salesmana2;floatsum;coutsum;a2.setsalesnum(sum);a2.countSalary();a2.recordSalary();staticvoidtechnician()Techniciana1;floathour;couthour;a1.setHour(hour);a1.countSala

16、ry();a1.recordSalary();staticvoidsystembody()ifstreamindata(info.txt);if(indata=NULL)exit(0);intnum;charna25;intsta;indatanumnasta;/職務代號分別為1,2,3,4,5switch(sta)case1:technician();break;case2:salesman();break;case3:secretary();break;case4:techmanager();break;case5:salesmanager();break;default:cout職務代號

17、錯誤!n請從頭輸入!;staticvoidsystemhead()charx,y=y;intnum;charsecret6;while(y)coutx;if(x)coutnum;coutsecret;/輸入編號及密碼ifstreamindata(number.txt);if(indata=NULL)coutnum1;while(!indata.eof()indatasecret1;if(num=num1)&(strcmp(secret,secret1)=0)y=0;/改變判斷變量的值,停止外層循環(huán)break;/停止內層循環(huán)indatanum1;indata.close();/查驗登入信息els

18、ecoutnum;coutsecret;/注冊輸入編號及密碼ofstreamoutdata(number.txt,ios:app);outdatanumtsecrett;outdata.close();/將編號及密碼保留到number.txt中coutendlendl;ofstreamoutdata(info.txt,ios:trunc);outdata.close();/清空文件內容ofstreamoutdata1(info.txt);outdata1numt;outdata.close();/輸入編號至info.txtSystem.cpp#include#include#includesy

19、stem.husingnamespacestd;voidEmployee:info()charna25;intsta,mon;coutnastamon;name=na;status=sta;month=mon;/儲存姓名、職務、月份voidEmployee:search()intnum;ifstreamindata0(info.txt);if(indata0=NULL)exit(0);indata0num;indata0.close();/從文件info.txt中提取編號intnum1;charna125;intsta1;intmon1;floatsal;intmon0;ifstreamind

20、ata(salary.txt);if(indata=NULL)exit(0);while(!indata.eof()indatanum1na1sta1mon1sal;if(num=num1)coutnum1tna1tsta1tmon1tsaln;挨次輸出該雇員的薪資信息if(indata.eof()coutnn以上是你的薪資信息!nn;indata.close();voidEmployee:recordinfo()ofstreamoutdata(info.txt,ios:app);outdatanametstatustnumbernamestatusmonth;indata.close();/

21、挨次輸出該雇員的薪資信息intnum1;charna125;intsta1;intmon1;floatsal;ifstreamindata1(salary.txt);if(indata1=NULL)exit(0);while(!indata1.eof()indata1num1na1sta1mon1sal;if(month!=mon1)coutnum1tna1tsta1tmon1tsaln;elseexit(0);挨次輸出該雇員的薪資信息coutnumbertnametstatustmonthtsalary;/顯示薪資信息ofstreamoutdata(salary.txt,ios:app);o

22、utdatannumbertnametstatustmonthtsalary;outdata.close();voidTechnician:setHour(floatx)workHour=x;Technician:Technician(floatx)hourSalary=x;voidTechnician:countSalary()salary=workHour*hourSalary;voidSalesman:setsalesnum(floatx)salesnum=x;Salesman:Salesman(floatx)getRate=x;voidSalesman:countSalary()sal

23、ary=salesnum*getRate;voidSecretary:setbonus(floatx)bonus=x;Secretary:Secretary(floatx)fixedSalary=x;voidSecretary:countSalary()salary=fixedSalary+bonus;Manager:Manager(floatx)fixedSalary=x;voidTechManager:setgrade(intx)grade=x;TechManager:TechManager(floatx)gradeBonus=x;voidTechManager:countSalary()

24、salary=fixedSalary+grade*gradeBonus;SalesManager:SalesManager(floatx)getRate=x;voidSalesManager:countSalary()salary=fixedSalary+salesnum*getRate;voidTechnician:setHour(floatx)workHour=x;Technician:Technician(floatx)hourSalary=x;voidTechnician:countSalary()salary=workHour*hourSalary;voidSalesman:sets

25、alesnum(floatx)salesnum=x;Salesman:Salesman(floatx)getRate=x;voidSalesman:countSalary()salary=salesnum*getRate;voidSecretary:setbonus(floatx)bonus=x;Secretary:Secretary(floatx)fixedSalary=x;voidSecretary:countSalary()salary=fixedSalary+bonus;Manager:Manager(floatx)fixedSalary=x;voidTechManager:setgr

26、ade(intx)grade=x;TechManager:TechManager(floatx)gradeBonus=x;voidTechManager:countSalary()salary=fixedSalary+grade*gradeBonus;SalesManager:SalesManager(floatx)getRate=x;voidSalesManager:countSalary()salary=fixedSalary+salesnum*getRate;System.hclassEmployeeprotected:intnumber;charname25;intstatus;int

溫馨提示

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

評論

0/150

提交評論