小型公司的工資管理系統(tǒng)_第1頁
小型公司的工資管理系統(tǒng)_第2頁
小型公司的工資管理系統(tǒng)_第3頁
小型公司的工資管理系統(tǒng)_第4頁
小型公司的工資管理系統(tǒng)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、中國石油大學(xué)(華東)信息與控制工程學(xué)院程序設(shè)計實習(xí)報告小型公司工資管理系統(tǒng)的設(shè)計專業(yè)班級:電子信息工程學(xué)號:姓名:指導(dǎo)教師: 時 間:20202013年7月目錄一、 實習(xí)內(nèi)容1二、 設(shè)計思路2三、 程序調(diào)試過程中典型問題及解決方法4四、 運行結(jié)果5五、 程序使用說明12六、 心得體會及課程改進設(shè)想12備注:頁碼根據(jù)目錄的實際頁碼進行標(biāo)注一、實習(xí)內(nèi)容1.1、課程設(shè)計的目的 此次課程設(shè)計的目的是以程序設(shè)計語言(C/C+)為基礎(chǔ),針對具有一定難度的綜合性題目,進行分析、編程、調(diào)試和運行,進一步掌握面向?qū)ο蠛兔嫦蜻^程程序設(shè)計的基本方法和編程技巧,鞏固所學(xué)理論知識,使理論與實踐相結(jié)合,提高分析問題、解決

2、問題的能力。通過設(shè)計一個簡單的小型公司工資管理系統(tǒng),進一步熟悉C+中類的概念、類的封裝、繼承和多態(tài)的實現(xiàn)方式。了解系統(tǒng)開發(fā)的需要分析,類層次設(shè)計,模塊分析,編碼測試,模塊組裝與整體調(diào)試的全過程,逐步熟悉程序設(shè)計的方法,并養(yǎng)成良好的編程習(xí)慣。1.2、設(shè)計題目及要求1 題目:小型公司工資關(guān)系系統(tǒng)設(shè)計2 設(shè)計說明與要求 (1) 公司主要有4類人員:經(jīng)理、技術(shù)員、銷售員、銷售經(jīng)理。要求儲存這些人的職工號姓名、月工資、年齡、性別等信息。 (2) 工資的計算方法A、經(jīng)理:固定月薪為8000元;B、技術(shù)員:工作時間小時工資(100元每小時);C、銷售員:銷售額4%提成;D、銷售經(jīng)理:底薪(5000元)+所轄

3、部門銷售額總額0.5%;(3) 類的層次結(jié)構(gòu)大體如下:雇員類 技術(shù)員類銷售員類經(jīng)理類銷售經(jīng)理類 (4) 輸入員工基本數(shù)據(jù),要求每類人員不能少于4人,員工信息輸出格式參考運行效果。 (5) 實現(xiàn)功能 應(yīng)用程序中要有菜單,用于選擇各種功能,其中 數(shù)據(jù)輸入:輸入各種數(shù)據(jù); 數(shù)據(jù)統(tǒng)計:統(tǒng)計各種銷售經(jīng)理下屬銷售員的銷售額及限售額之和;銷售經(jīng)理按工資進行的冒泡排序; 數(shù)據(jù)打?。捍蛴「黝悊T工的數(shù)據(jù)信息; 數(shù)據(jù)備份:把各類員工的數(shù)據(jù)星系寫入文件中保存; 推出本系統(tǒng); (6) 菜單說明 數(shù)據(jù)錄入指通過鍵盤輸入各類員工的各項數(shù)據(jù); 數(shù)據(jù)統(tǒng)計指統(tǒng)計各銷售經(jīng)理下屬銷售員的銷售額及銷售額之和;銷售經(jīng)理按工資進行冒泡法排

4、序; 數(shù)據(jù)打印指按照表格的格式在屏幕上輸出個員工的信息; 數(shù)據(jù)備份指將所有員工的信息保存到文件; 退出:結(jié)束程序的運行。 (7) 注意一個銷售經(jīng)理管轄多個銷售員。 (8) 其他功能可以自己擴充(擴充的功能若比較合理可適當(dāng)加分)。 (9) 要求在控制臺下完成(顯示內(nèi)容都在黑屏下顯示)。二、設(shè)計思路1、程序應(yīng)實現(xiàn)的功能,有數(shù)據(jù)輸入,數(shù)據(jù)統(tǒng)計,數(shù)據(jù)打印,數(shù)據(jù)備份和退出系統(tǒng)5個。2、考慮各種數(shù)據(jù)類型還有所需的C+內(nèi)的函數(shù),要引用 這四個頭文件。用其setw(n)設(shè)置其后輸出數(shù)據(jù)的寬度為n位,便于表格的制作。用于數(shù)據(jù)備份,使用時,先用ofstream outfile(即定義ofstream類對象outf

5、ile)。3、outfile.open(小型公司工資管理系統(tǒng).txt,ios:out);打開磁盤流文件,并且對備份文件進行命名,同時確定存儲位置。4、首先定義一個employee的雇員基類,然后得到technician、manager、seller三個分別為技術(shù)員類,經(jīng)理類,銷售員類的派生類,再由manager派生出銷售經(jīng)理類salesmanager。每個類中的數(shù)據(jù)成員都是protected型的,成員函數(shù)都是public型的,所有的繼承都是公有繼承,基類中定義有數(shù)據(jù)輸入函數(shù),各派生類中有由基類繼承過來的不同的數(shù)據(jù)輸入函數(shù)。5、然后定義各功能的函數(shù),如f1()、f2()、begin()等。4、數(shù)

6、據(jù)統(tǒng)計、打印以及備份都以表格形式輸出。表格通過制表符進行設(shè)計。表頭表中表尾還有分隔符均單獨定義成void 型的函數(shù)。如:void begin()coutendl;cout 職工號 姓名 性別 年齡 工資 endl;void middle()coutendl;。6、因為類中成員都是保護類型的,所以要定義屬于各類的返回成員值的函數(shù),如rshuyu ()、rnum ()等,在后面統(tǒng)計、打印時會用到。7、在進行銷售經(jīng)理的數(shù)據(jù)輸出時,考慮其與銷售員之間所屬關(guān)系,定義全局?jǐn)?shù)組double wagen4單獨存放銷售經(jīng)理的工資,排序時通過if語句先判斷所屬關(guān)系,再進行冒泡法排序,這是要用到雙重循環(huán)。8、mai

7、n函數(shù)里定義了四個對象數(shù)組,technician tn1、manager mn2、seller sn3、salesmanager man4,其中n1、n2、n3、n4都是全局常變量,分別代表技術(shù)員、經(jīng)理、銷售員、銷售經(jīng)理的人數(shù),便于程序修改。9、整個程序由主函數(shù)的一個for循環(huán)控制,根據(jù)輸入的操作選項通過一個switch語句判斷該進行什么操作,每一個case后面對應(yīng)一個函數(shù),每個函數(shù)對應(yīng)一個操作,1對應(yīng)數(shù)據(jù)輸入,2對應(yīng)數(shù)據(jù)統(tǒng)計,3對應(yīng)數(shù)據(jù)打印,4對應(yīng)數(shù)據(jù)備份,5對應(yīng)退出系統(tǒng)。10、case 中調(diào)用四個帶參數(shù)的函數(shù)f3(t,m,s,ma)、statistics(t,m,s,ma)、print(t

8、,m,s,ma)、beifen(t,m,s,ma)。四個函數(shù)均用了四個循環(huán)語句分別進行輸入、統(tǒng)計、打印、備份。如輸入中的一個:for(i=0;in1;i+)ti.input();input()這類函數(shù)在各個類中定義,并且同名,這樣能簡化程序。3、 程序調(diào)試過程中典型問題及解決方法1、 第一天和第二天是完成總體設(shè)計及數(shù)據(jù)輸入功能及調(diào)試。共有三個問題需要注意:第一是,成員函數(shù)要設(shè)計成protected。第二,銷售經(jīng)理是經(jīng)理的派生類,而不是雇員類的派生,要注意。第三,f3(technician t,manager m,seller s,salesmanager ma)是一個帶有參數(shù)的函數(shù),后面調(diào)用時

9、也要給參數(shù),如f3(t,m,s,ma)。2、 第三天要求完成數(shù)據(jù)統(tǒng)計及排序功能。這次問題比較多:第一,要在基類及派生類中加入具有返回值的函數(shù),如返回姓名、性別等,數(shù)據(jù)打印的時候也會用到。第二,計算銷售經(jīng)理的工資時要先找到與其對應(yīng)的銷售員才可計算,還有,銷售經(jīng)理的工資要求用冒泡法進行排序,也要熟練掌握冒泡法。第三,int money4=0,0,0,0是對四個經(jīng)理所對應(yīng)的總銷售額驚醒初始化為0,若不進行初始化,得到的是隨機值。要用setw(n)控制寬度,使表格對齊。3、 第四天完成程序輸出顯示及退出系統(tǒng)等操作,退出系統(tǒng)之前還要進行數(shù)據(jù)備份。ofstream outfile;和outfile.ope

10、n(小型公司工資管理系統(tǒng).txt,ios:out);兩句是完成備份的關(guān)鍵,第一句是定義ofstream類對象outfile,第二句是打開磁盤流文件。備份時不能用cout,要用outfile,才能將文件備份成功。因為循環(huán)設(shè)定的次數(shù)為100次,所以判斷玩是否退出系統(tǒng)后,如果是退出系統(tǒng),要用exit(0)結(jié)束。4、 總體的問題就是要注意符號的運用,不要把分好達成冒號,也不要漏加大括號,做到各方面的細心,才可以變出最好的程序。四、運行結(jié)果五、程序使用說明1、看到菜單后,屏幕上有提示“請選擇一個操作:”,用戶首先輸入1進行數(shù)據(jù)輸入;2、輸入1后,會逐項顯示所要輸入的成員信息,按順序輸入即可;3、數(shù)據(jù)輸入

11、完以后,會返回菜單由用戶重新選擇其他操作,包括數(shù)據(jù)統(tǒng)計,數(shù)據(jù)打印和數(shù)據(jù)備份,最后還有退出系統(tǒng)的選項;4、如果輸入2,則進行數(shù)據(jù)統(tǒng)計,會在屏幕顯示各個銷售經(jīng)理下屬銷售員的業(yè)績,還有對銷售經(jīng)理按工資從高到低進行排序;5、如果輸入3,則進行數(shù)據(jù)打印,屏幕會顯示各類成員的基本信息,包括編號、姓名、性別、年齡、工資,銷售員的還有其所屬部門經(jīng)理的編號;6、如果輸入4,則進行數(shù)據(jù)備份,將打印出來的信息備份到系統(tǒng)指定的文件夾中;7、輸入5就是退出系統(tǒng),退出前可以循環(huán)操作,但有一定的次數(shù)限制,最好不要超過100次,一般情況夠用;8、由于人數(shù)固定,所以數(shù)據(jù)輸入時只能輸入確定人數(shù)的信息,四名技術(shù)員,四名經(jīng)理,八名銷

12、售員,四名銷售經(jīng)理;六、心得體會及課程改進設(shè)想通過對小型公司工資管理系統(tǒng)的C+程序編寫,加強了我對C+功能的了解,對象與類之間關(guān)系的理解,同時也提高了上機實踐能力,自主學(xué)習(xí)能力,錯誤分析能力從實習(xí)前開始對實習(xí)進行構(gòu)思,如老師所言,要全局考慮,而我也正因為編寫前考慮不周全,在定義完類以后,很快把輸入數(shù)據(jù)的函數(shù)編寫出來了,上機操作也很成功??墒堑浇y(tǒng)計部分還有打印和備份部分就開始發(fā)現(xiàn)原寫的程序有許多地方需要改動,或者增添新的成員或函數(shù),比如統(tǒng)計數(shù)據(jù)時需要計算銷售經(jīng)理的工資并且排序,這就需要定義新的數(shù)組,新的函數(shù)來判斷哪些銷售員屬于哪位銷售經(jīng)理,并按其工資從高到低排序。還有打印數(shù)據(jù)時需要計算各類對象的

13、工資,就得回頭重新定義一些成員函數(shù),而且由于成員都是保護類型的,類外不能直接訪問,所以需要在類中定義具有返回類中各數(shù)據(jù)功能的函數(shù)。這些都是數(shù)據(jù)輸入時沒有考慮到的。所以說,全局統(tǒng)籌規(guī)劃,有縝密的構(gòu)思很重要。當(dāng)然,快速接受新事物的能力也是必備的,因為備份數(shù)據(jù)在課堂上未曾提及,就得自己通過網(wǎng)絡(luò)查找相關(guān)信息,百度后才知道要添加這個頭文件,用outfile來進行數(shù)據(jù)備份,并用outfile.open(“”,ios:out)打開磁盤流文件。還有如果需要退出系統(tǒng),除了我用break跳出循環(huán)的方法外,也可以用exit(0)函數(shù)退出,只需增加一個頭文件。這些知識都是自己查找相關(guān)信息分析才知道的,所以自學(xué)能力也很

14、重要。再者,由于程序編寫過程中出現(xiàn)錯誤是常有的事,那么,分析錯誤的能力也就需要慢慢提高,因為錯誤提示都是英文,所以學(xué)好英語也很有必要。錯誤往往是粗心或者語法不對,比如大括號少了或者多了或者放錯了位置,少打分號了,輸入法轉(zhuǎn)換時符號輸入不經(jīng)意間改變了,或者一些函數(shù)沒有聲明,聲明位置靠后了,由于程序較長,有時候搞不清在哪定義在哪調(diào)用了。有時也可能重復(fù)定義了。但其實難改的錯誤并不是這些,當(dāng)一個程序可以運行時,發(fā)現(xiàn)輸出的數(shù)據(jù)存在問題這才是最頭疼的,我用了幾天時間找一個錯誤的出錯原因。就是銷售經(jīng)理的工資和排序有問題。整個程序編譯連接都沒有問題,除了銷售經(jīng)理的工資外其他數(shù)據(jù)也都正確。最后找老師幫忙,才發(fā)現(xiàn)是一處極不起眼的地方出現(xiàn)了錯誤,程序段是這樣的:for(i=0;iD;i+)double sum=0;for(j=0;jC;j+)if(SMi.turn_num()=Sj.turn_belong() /其中的i被我寫成了jsum+=Sj.turn_sales_money();wagei=sum*c+b;所以說,算法出錯時最不好改的,比較計算機是

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論