c++課題設(shè)計報告_第1頁
c++課題設(shè)計報告_第2頁
c++課題設(shè)計報告_第3頁
c++課題設(shè)計報告_第4頁
c++課題設(shè)計報告_第5頁
已閱讀5頁,還剩70頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、下栽可編輯.專業(yè),整理.專業(yè),整理.課程設(shè)計報告課程名稱一面向?qū)ο蟪绦蛟O(shè)計課題名稱公司人用管理系統(tǒng)2011年12月28日湖南工程學(xué)院課程設(shè)計任務(wù)書課程名稱而向?qū)ο蟪绦蛟O(shè)計課題公司人員管理系統(tǒng)專業(yè)班級學(xué)生姓名學(xué)號指導(dǎo)老師一審批F我町編輯F我町編輯專業(yè),整理.專業(yè),整理.任務(wù)書下達日期2011年11月15日任務(wù)完成日期2011年12月28日下栽可編輯下栽可編輯下栽町編輯.專業(yè),整理.專業(yè),整理.專業(yè),整理.一、設(shè)計內(nèi)容與設(shè)計要求課程設(shè)計目的:面向?qū)ο蟪绦蛟O(shè)計課程設(shè)訃是集中實踐性環(huán)節(jié)之一,是學(xué)習(xí)完面向?qū)ο蟪绦蛟O(shè)計課程后進行的一次全面的綜合練習(xí)。要求學(xué)主達到熟練掌握C+語言的基本知識和技能;歴本掌握面

2、向?qū)ο蟪绦蛟O(shè)訃的思想和方法:能夠利用所學(xué)的基本知識和技能,解決簡單的面向?qū)ο蟪绦蛟O(shè)計問題,從而提高動手編程解決實際問題的能力。2.瞄題目1)公司庫存管理系統(tǒng)2)高校學(xué)籍管理系統(tǒng)3)高校工資管理系統(tǒng)4)高校人事管理系統(tǒng)5)通訊錄程序設(shè)訃6)學(xué)生成績管理系統(tǒng)7)圖書管理系統(tǒng)8)文本編輯器的設(shè)計與實現(xiàn)9)學(xué)生考勤管理系統(tǒng)10)公司人員管理系統(tǒng)3設(shè)計要求:(1)設(shè)計課題題日:毎位同學(xué)根據(jù)自己學(xué)號除以io所得的余數(shù)加1選擇相應(yīng)題號的課題。隨意換題者不記成績。(2)根據(jù)自己對應(yīng)的課題完成以下主要工作:完成系統(tǒng)需求分析:包括系統(tǒng)設(shè)計目的與意義;系統(tǒng)功能需求(系統(tǒng)流程圖);輸入輸出的要求。完成系統(tǒng)總體設(shè)計:包

3、括系統(tǒng)功能分析;系統(tǒng)功能模塊劃分與設(shè)計(系統(tǒng)功能模塊圖1完成系統(tǒng)詳細設(shè)訃:包括數(shù)據(jù)庫需求分析;數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(E-R圖);數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)訃;類層次圖;界面設(shè)計與各功能模塊實現(xiàn)。系統(tǒng)調(diào)試:調(diào)試出現(xiàn)的上要問題,編譯語法錯誤及修改,重點是運行邏輯問題修改和調(diào)整。使用說明書及編程體會:說明如何使用你編耳的程序,詳細列岀毎一步的操作步驟。關(guān)鍵源程序(帶注釋)按規(guī)定格式完成課程設(shè)計報告,將其打印稿(A4紙)上交給老師存檔。不得抄襲他人程序、課程設(shè)計報告,毎個人應(yīng)體現(xiàn)自己的個性設(shè)訃。下載可編輯下載可編輯下栽町編輯專業(yè),整理.專業(yè),整理.專業(yè),整理.二、進度安排第17周星期一008:008:星期/:。0

4、012:8:星期四8:0012:第18周星期一W14:30星期二18:300012:星期三8:0012:00三、參考書籍1XC+程序設(shè)汁課程設(shè)計劉振安編著TP312C563清華大學(xué)岀版社7-5084-2007-17-302-05968-3東南大學(xué)出版社C+Builder和Delphi課程設(shè)訃與系統(tǒng)開發(fā)案例伍俊良7-302-06072-XVisualC+課程設(shè)計案例精編嚴華峰中國水利水電出版社2004VisualC+課程設(shè)計與系統(tǒng)開發(fā)案例伍俊良清華大學(xué)出版社2002VisualC+語言課程設(shè)計:案例精選與編程指導(dǎo)陳淸華朱紅7-81089-275-420036.VisualC+課程設(shè)計案例精編中國

5、水利水電出版社7-5084-1004-120027.數(shù)據(jù)結(jié)構(gòu)課程設(shè)計案例精編:用C/C+描述李建學(xué)李光元吳春芳清華大學(xué)出版社7-302-14536-92007(編程平臺不限,vc+,C+Builder等等。)課題5:公司人員管理系統(tǒng)(_X課程設(shè)計題目:公司人員管理系統(tǒng)(-1目的與要求:1、目的:(1)要求學(xué)生達到熟練掌握C+語言的基本知識和技能;(2)基本掌握面向?qū)ο蟪绦蛟O(shè)訃的叢本思路和方法;(3)能夠利用所學(xué)的基本知識和技能,解決簡單的面向?qū)ο蟪绦蛟O(shè)計問題。2、基本要求:(1)要求利用面向?qū)ο蟮姆椒ㄒ约癈+的編程思想來完成系統(tǒng)的設(shè)計;(2)要求在設(shè)計的過程中,建立清晰的類層次;(3)在系統(tǒng)中

6、至少要定義四個類,毎個類中要有各自的屬性和方法;(4)在系統(tǒng)的設(shè)計中,至少要用到面向?qū)ο蟮囊环N機制。3、創(chuàng)新要求:在叢本要求達到后,可進行創(chuàng)新設(shè)計,如根據(jù)查找結(jié)果進行修改的功能。4、寫出設(shè)計說明書(三X設(shè)計方法和基本原理:1、問題描述(功能要求):公司人員管理系統(tǒng)實現(xiàn)對公司人員按姓名或者編號顯示、查找、增加、刪除和保存各類人員信息的操作。某小型公司,主要有四類人員:經(jīng)理、兼職技術(shù)人員、銷售經(jīng)理和兼職推銷員?,F(xiàn)在,需要存儲這些人員的姓名、編號、級別、當月薪水,計算月薪總額并顯示全部信息。人員編號在生成人員信息時同時生成,毎輸入一個人員信息編號順序加lo程序?qū)λ腥藛T有提升級別的功能。薪金的計算方

7、法是:經(jīng)理拿固定月薪,兼職技術(shù)人員按工作小時數(shù)領(lǐng)取月薪,兼職推銷員的報酬按該推銷員當月銷售額提成,銷售經(jīng)理既拿固定月薪也領(lǐng)取銷售提成。能按姓名或者編號顯示、查找、增加、刪除和保存各類人員的信息。在基本要求達到后,可設(shè)計出比較友好的界面(如下拉菜單),也可用VC+Classwizard設(shè)計(選作12、問題的解決方案:根據(jù)系統(tǒng)功能要求,可以將問題解決分為以下步驟:下栽可編輯下栽可編輯.專業(yè),整理.專業(yè),整理.(1)應(yīng)用系統(tǒng)分析,建立該系統(tǒng)的功能模塊框圖以及界面的組織和設(shè)計:(2)分析系統(tǒng)中的各個實體及它們之間的關(guān)系包括屬性和行為;(3)根據(jù)問題描述,設(shè)計系統(tǒng)的類層次;(4)完成類層次中各個類的描述

8、(包括屬性和方法);(5)完成類中各個成員函數(shù)的定義:(6)完成系統(tǒng)的應(yīng)用模塊;(7)功能調(diào)試;(8)完成系統(tǒng)總結(jié)報告以及系統(tǒng)使用說明書。F我町編輸F我町編輸.專業(yè),祭理.專業(yè),祭理.目錄TOC o 1-5 h z HYPERLINK l bookmark22 o Current Document L系統(tǒng)需求分析1 HYPERLINK l bookmark28 o Current Document 總體設(shè)計3詳細設(shè)計5 HYPERLINK l bookmark40 o Current Document 系統(tǒng)調(diào)試11 HYPERLINK l bookmark60 o Current Docume

9、nt 結(jié)果分析18總、結(jié)20附錄21下栽可編輯下栽可編輯下載町編輯.專業(yè),整理.專業(yè),整理.專業(yè),整理.系統(tǒng)需求分析1.1問題描述公司人員管理系統(tǒng)實現(xiàn)對公司人員按姓名或者編號顯示、查找、增加、刪除和保存各類人員信息的操作。某小型公司,主要有四類人員:經(jīng)理、兼職技術(shù)人員、銷售經(jīng)理和兼職推銷員?,F(xiàn)在,需要存儲這些人員的姓名、編號、級別、當月薪水,計算月薪總額并顯示全部信息。人員編號在生成人員信息時同時生成,每輸入一個人員信息編號順序加lo程序?qū)λ腥藛T有提升級別的功能。薪金的計算方法是:經(jīng)理拿固定月薪,兼職技術(shù)人員按工作小時數(shù)領(lǐng)取月薪,兼職推銷員的報酬按該推銷員當月銷售額提成,銷售經(jīng)理既拿固定月薪

10、也領(lǐng)取銷售提成。能按姓名或者編號顯示、查找、增加、刪除和保存各類人員的信息。在基本要求達到后,可設(shè)計岀比較友好的界面(如下拉菜單),也可用VC+Classwizard設(shè)計(選作)1.2功能分析o査詢功能:voidQuery()。刪除功能:voidDeleteO。添加功能:voidAdd()。修改功能:voidModifyOo保存功能:voidSaveOo數(shù)據(jù)裝入:voidLoad()1.2.1查詢功能函數(shù)原型:voidQuery()說明:查詢一個職員的壘本信息,包括職工號,姓名,性別,所在部門,職務(wù),薪水。1.2.2刪除功能函數(shù)原型:voidDeleteO說明:能夠?qū)σ粋€職員的信息進行刪除,按

11、職工號+姓名進行刪除。1.2.3添加功能函數(shù)原型:voidAdd()說明:添加一個職員的基本信息,包括職工號,姓名,性別,所在部門,職務(wù),薪水。12.4修改功能函數(shù)原型:voidModifyO說明:對滿足條件的職員的信息進行修改,可以修改職工所在部門、職務(wù)、工資。1.2.5保存功能函數(shù)原型:voidSave()說明:保存想要保存的人員信息。1.2.6數(shù)據(jù)裝入函數(shù)原型:voidLoad()說明:將保存在磁盤的數(shù)據(jù)裝入到內(nèi)存中,以便對數(shù)據(jù)的再次管理和操作。下栽可編輯下栽可編輯總體設(shè)計2.1系統(tǒng)總體框架系統(tǒng)總體框架使用面向?qū)ο蟮某淘O(shè)計思想逬行分析,整個系統(tǒng)涉及兩大類信息和操作,公司,人員。所以系統(tǒng)主

12、要涉及兩個大類:公司類Company.人員類Person。系統(tǒng)的總體框架就是公司類,人員類的定義;主函數(shù)中定義一個公司對象,循環(huán)顯示主菜單并根據(jù)用戶選擇調(diào)用公司類的相應(yīng)方法(成員函數(shù))。公司類Company:考慮系統(tǒng)操作的人員信息的數(shù)量具有不確定性,所以考慮使用鏈表保存、處理人員信息。公司類包含:所有人員信息的一個不帶頭結(jié)點的鏈表(作為數(shù)據(jù)成員)及可以對人員信息進行增,刪,改,查詢,數(shù)據(jù)存盤等操作的相關(guān)模塊(Add,Delete,Modify,Query,Set)作為成員函數(shù)。人員類Person:所有人員都具有的公共信息及操作可以使用人員類進行描述。由于系統(tǒng)具有4類人員且4類人員數(shù)據(jù),操作有所

13、不同,如銷售員包含銷售額,而技專業(yè),櫻下栽町編輯下栽町編輯理.下栽可編輯下栽可編輯下栽町編輯.專業(yè),整理.專業(yè),整理.專業(yè),整理.術(shù)人員包含工作小時數(shù)且計算工資的方法不同,所以應(yīng)當為4類人員創(chuàng)建相應(yīng)的Person類的派生類。為了使公司類可以方便處理人員信息,可以考慮將公司類確定為人員類的友元類或者人員類提供公共的方法以便公司類進行操作。為了公司類可以用共同方法操作人員類,可以將人員類的方法確定為虛函數(shù)。2.2結(jié)構(gòu)框圖2.3類的層次圖People類其中:(1)Person類有N。-人員編號,Name-人員姓名,Duty-人員類別,Earning-工資,next-指向下一個人員的指針;Person

14、類的CalcSalaryO,OutputO定義為純虛函數(shù)分別表示要計算人員工資和輸出人員信息,由于定義純虛函數(shù),所以Person是抽象類,具體訃算工資,輸出人員信息111派生類完成。(2)各個派生的類,包含本類對象特有的數(shù)據(jù),Sales::Amount-銷售員銷售額,SalesManagen:Amount-銷售經(jīng)理的總銷售額(系統(tǒng)統(tǒng)計各個銷售員銷售額得到銷售經(jīng)理的總銷售額),Technician:!-技術(shù)人員工作小時數(shù)。CompanyPersorWorker,CompanyOCompanyO.AddO.DeleteO.ModifyO,Query(),Set(),Save(),Load()其中:

15、(DWorker就是人員鏈表。Add。,Delete。,Modify(),Query(),Set(),Saveo,Load()分別表示系統(tǒng)各個功能模塊:增加人員,刪除人員,修改人員,查找人員,基本數(shù)據(jù)的設(shè)置,數(shù)據(jù)存盤,數(shù)據(jù)裝入。下栽可編輯下栽可編輯專業(yè),整理.專業(yè),整理.詳細設(shè)計3.1.程序的運行步驟及函數(shù)的實專)主函數(shù)流程%“応11016I0%2p+下栽可編輯下栽可編輯專業(yè),整理.專業(yè),整理.Company::Add()開始ID號增1/輸入南位/(3)Company:Delete()開始/輸入員工ID/査找要刪除的結(jié)點鏈表刪除員工結(jié)點提示未找到并返回(4)Company::Modify下栽町

16、編輯下栽町編輯專業(yè),整理.專業(yè),整理.(5)Company:Query()下栽可編輯下栽可編輯專業(yè),整理.專業(yè),整理.下栽可編輯下栽可編輯一專業(yè)整理.專業(yè),整理.(6)Company:Save()Ooad1ny%YIA%bleAuAilEaeEOeyY;10OlA%pae沁y%Y10OlA%f)(7)Company:Load()下栽町編輯下栽町編輯下栽可編輯專業(yè),整理.專業(yè),整理.專業(yè),整理.系統(tǒng)調(diào)試4.1界面的顯示,選擇功能項G*C:D()CUIEHTSANDSETTINGSHHIEFA0RITESDebu2ll.ex人員和基礎(chǔ)數(shù)據(jù)己經(jīng)裝入.公可人員管理系統(tǒng)數(shù)功系餐出圖4.14.2最開始先增

17、加人員1)增加經(jīng)理ANDSETTIRGSUiNIEXFAVORITESUkbueXlk-1項選擇功能項.輸入17:1k拿新増員工榊灘乙陟V經(jīng)理2平色經(jīng)理3肖售員4水術(shù)員:1隔入姓名儀健否保存數(shù)據(jù)(Y/NLY如存人員和基礎(chǔ)數(shù)據(jù).是否繼續(xù)?【Y/NJ:保存人員和基礎(chǔ)數(shù)據(jù)己經(jīng)完成.圖4.2.12)增加銷售經(jīng)理ANDSETTIHCSHHIEFAVORlTESIkbu011公可人員管理系統(tǒng)謂m擇功能項輸入1?:】-新增員工一-經(jīng)理2瑚售經(jīng)理卜銷皆員4-技術(shù)員:2匕入姓名:B匚月個售額:19000當否保存數(shù)擁Y/H|Y祿存人加I心訛數(shù)裾己經(jīng)窩圖4.2.23)增加技術(shù)人員C:D001IEBTSAIDSKTT

18、IVCSIDITEFAVOKITE!rU)ebuc11.raoe一一一二二1234567公司人員青礙卒統(tǒng)請選擇功能項.1-7:10?衢右竝2-他垃理3韋善恥技木員川!H箱侵20理人人人人馮修壹矗iH下栽町編輯下栽町編輯專業(yè),整理.專業(yè),整理.4.4如果能査找到就說明增加成功,然后在進行修改操作丨口AMDSElTIRGSniIEFAV()RITFDebugil.exe,公可人員管理系統(tǒng)一01余墳號U占増刪修査攝退:項.輸入A7:3m:2HIB鉗售經(jīng)理100002850寧樓鳥一經(jīng)理2-雄經(jīng)理3銅吿員4-技術(shù)員:1八燃名:B改成功?否保存數(shù)據(jù)Y/NLY或”C:DOCniEHTSAMDSETTnrcS

19、HJnFAFAVORITESDebugll.exe,公可人員言理系沆項戈咎卜我可維輯圖4.44.5修改之后再查找這個人員,看是否修改成功。.專業(yè)整理.專業(yè)整理.圖4.54.6確定修改成功后再進行刪除人員C:DOCUIEJnSABDSErTIKSIOIIEFAVORITESDftbuc11.人人人人敦功耳_1234587$選擇功能項.統(tǒng)心?:2疇為工-D:2圖4.64.7確定是否刪除成功人zJ1147卜我可維輯卜我可維輯4.8確定刪除Z后再進行保存或*C:DOniEBTSAMDSETTnKSHHIEtAMORITESU)ebugMl.exe,公司人員管理系統(tǒng)一吉選擇功能項.輸入17:6呆存人員和

20、基礎(chǔ)數(shù)據(jù).是否繼續(xù)?tY/N:Y圖4.84.9對數(shù)據(jù)進行修改林公可人躺理蔡2無屮林公可人躺理蔡2無屮UlvWAKSisrascffiJJff(so;CJ:6000埋換定甬繭(2旳獷3廉卅決成VSh9$處小時匸資I2IK元/小時】:3佃圖494.10看一下修改后的效果人人人人徴123456圖4.104.11修改正確,整個系統(tǒng)無誤,退出系統(tǒng)專盤整理.下栽可編輯下栽可編輯下栽町編輯.專業(yè),整理.專業(yè),整理.專業(yè)整理.CC:DOCniEBTSAHDSETnHGSHHIEAVORITESDebugll.es導(dǎo)選擇功能項輸入I-?-?rcssanykeytocontinue.圖4.11結(jié)果分析本系統(tǒng)獨特的

21、設(shè)計兩個類的設(shè)計1.1Company類有數(shù)據(jù)成員員工,這個類的主要功能是對功能模塊的實現(xiàn),可以設(shè)計Add。,Delete。,Modify。,Query。,Set。,Save。,Load。函數(shù)對系統(tǒng)功能需求的實現(xiàn)。查詢功能voidQueryO查詢一個職員的基本信息,包括職工號,姓名,性別,所在部門,職務(wù),薪水。刪除功能voidDeleteO能夠?qū)σ粋€職員的信息進行刪除,按職工號+姓名進行刪除。添加功能voidAdd()添加一個職員的基本信息,包括職工號,姓名,性別,所在部門,職務(wù),薪水。修改功能voidModifyO對滿足條件的職員的信息進行修改,可以修改職工所在部門、職務(wù)、工資。保存功能voi

22、dSaveQ保存想要保存的人員信息。數(shù)據(jù)裝入voidLoadO將保存在磁盤的數(shù)據(jù)裝入到內(nèi)存中,以便對數(shù)據(jù)的再次管理和操作。2People類有數(shù)據(jù)成員姓名,編號,職務(wù),月總工資,還有兩個純虛函數(shù),純虛數(shù)不給出實現(xiàn),在People類的派生類中再給出兩個純虛函數(shù)的相應(yīng)的實現(xiàn),一個純虛函數(shù)是virtualvoidCalcSalary()=0;實現(xiàn)對毎個人員工資的計算,另一個就是virtualvoidOutput0二0;實現(xiàn)對毎個人員的具體信息的輸ill。這個設(shè)計是一個殼點。鏈表的設(shè)計,使用鏈表可以動態(tài)的增加人員,而不受內(nèi)存的限制,先定義一個People類的鏈表頭指針,再在以后毎增加的人員設(shè)置為一個節(jié)點

23、然后再把節(jié)電連接到頭指針就實現(xiàn)了人員的增加。界面的設(shè)計,毎對一個具體的操作進行完之后,利用一個return;就可以返回主函數(shù),在進行下一步操作,這是個很好的操作。二.本系統(tǒng)不足之處我設(shè)計的思路是由People類派生出四個類,Manager類,Sales類,SalesManager類,和Technician類。但也可以用Manager類和Sales類共同派生出SalesManager類,這樣就更接近我們學(xué)習(xí)的面向?qū)ο蟮脑O(shè)計的思路,這是一個不足之處。本系統(tǒng)的刪除功能不是很完善,問題就是毎當刪除一個人員的時候,這個人員的所有信息都被刪除了,包括人員的編號,編號一旦刪除了就找不回了,也就是說刪除了一號

24、,這個系統(tǒng)就沒有了一號,這是一個不足之處。其他的還算比較好。下栽可編輯下栽可編輯下栽可編輯.專業(yè),整理.專業(yè),整理.6.總結(jié)這次課程設(shè)計所設(shè)訃的公司員工管理系統(tǒng)(CEMS)是一個小型的人事信息管理系統(tǒng),該系統(tǒng)實現(xiàn)了職工信息的添加、刪除、修改、顯示、查詢等功能,并且運用了文件操作技術(shù),可以實現(xiàn)數(shù)據(jù)的永久性保存。通過這次課程設(shè)計,我拓寬了知識面,鍛煉了能力,綜合素質(zhì)得到較大提高。運用學(xué)習(xí)成果,把課堂上學(xué)到的系統(tǒng)化的理論知識,嘗試性地應(yīng)用于實際設(shè)汁工作,并從理論的高度對設(shè)計工作的現(xiàn)代化提出一些有針對性的建議和設(shè)想。檢驗學(xué)習(xí)成果,看一看課堂學(xué)習(xí)與實際工作到底有多大距離,并通過綜合分析,找出學(xué)習(xí)中存在的

25、不足,以便為完善學(xué)習(xí)計劃,改變學(xué)習(xí)內(nèi)容與方法提供實踐依據(jù)。對我們訃算機專業(yè)的本科主來說,實際能力的培養(yǎng)至關(guān)重要,而這種實際能力的培養(yǎng)單靠課堂教學(xué)是遠遠不夠的,必須從課堂走向?qū)嶕羞@也是一次預(yù)演和準備畢業(yè)設(shè)計工伍通過課程設(shè)計,讓我們找出自身狀況與實際需要的差距,芥在以后的學(xué)習(xí)期間及時補充相關(guān)知識,為求職與正式工作做好充分的知識、能力準備,從而縮短從校園走向社會的心理轉(zhuǎn)型期。經(jīng)過兩周的C+課程實踐,我對C+語言設(shè)計有了一個更深,更全面的了解,尤其體會到C+面向?qū)ο蟛僮鲗喕绦虻闹匾饔?下面是我的幾點體會:剛拿到課題時,我一臉的茫然,看到如此龐大的工程,不知如何下手.這個工資管理系統(tǒng)中職工子信息竟

26、然包15條,以前從來沒有遇到過如此多的變量.和同學(xué)討論很久好,我發(fā)現(xiàn)其實可以化繁為簡的,信息15條不一定全都要,因為其中本身就有重復(fù)的.所以做任何事情都必須要開動腦筋,積極思考,有時還要學(xué)會化繁為簡.在編程時條理清晰是至關(guān)重要的.主函數(shù),函數(shù),成員函數(shù)之間的層次關(guān)系,調(diào)用關(guān)系一定要有一個全面的把握,尤其要體會類的封裝.專業(yè),整理.性.另外很重要的一點就是一定要對鏈表的五種操作熟練的掌握.在編譯,鏈接,調(diào)試的過程中一定要有耐心因為一個程序中會有很多小的錯誤,甚至有的問題要幾個小時才能解決.遇到問題,一定要全面分析,有時候還要向同學(xué)請教.總得來說編程時極需要耐心的.C+課程設(shè)計實踐為我們提供了一個

27、綜合運用所學(xué)知識,解決實際問題的平臺,增強了我們實踐動手的能力和工程實踐能力,并且鍛煉和培養(yǎng)了我們的自學(xué)能力,讓我們對C+有了一個更全面的了解。7附錄源程序清單:ftincludeftincludeftincludeftincludeftinclude全局數(shù)據(jù),對象doubleManagerSalary=5000;/經(jīng)理固定月嶄doubleSalesManagerSalary=2000;”銷售經(jīng)理固定月赫doubleSalesManagerPercent=0.5;銷售經(jīng)理提成doubleSalesPercent=5;/tfi售人員提成doubleWagePerHour=20;”技術(shù)人員小時工資

28、intID;員工標識(要保證唯一)classPerson員工類下栽町編輯下栽町編輯專業(yè),整理.專業(yè),整理.protected:intNo;編號charName20;/姓名intDuty;/崗位doubleEarning;“q攵入Person*next;publicPerson(charID,char*Name,intDuty)this-Duty二Duty;strcpy(this-Name,Name);this-No二ID;virtualvoidCalcSalary()=0;virtualvoidOutput()=0;friendclassCompany;classManagenpublicPe

29、rson/經(jīng)理類publicManager(charID,char*Name,intDuty):Person(ID,Name,Duty)voidCalcSalaryOEarning=ManagerSalary;voidOutput()CalcSalaryO;coutNoNameWt經(jīng)理WtEarningAmounts二Amounts;voidSetAmounts(doubles)Amounts=s;doubleGetAmountsOreturnAmounts;下栽町編輯下栽町編輯下栽町編輯專業(yè),整理.專業(yè),整理.專業(yè),整理.voidCalcSalaryOEarning=SalesManager

30、Salary+Amounts*SalesManagerPercent/100;voidOutput()(CalcSalaryO;coutNoNameWt銷售經(jīng)SWt/zAmounts,Wtz/Earningt=T;doubleGetT()returnt;voidSetTfdoubleT)this-t二T;voidCalcSalaryO(Earning=WagePerHour*t;voidOutput()(CalcSalaryO;coutNo,Wt,Name,Wt技術(shù)員,Earningendl;classSales:publicPerson銷售員類下栽可編輯下栽可編輯下栽町編輯專業(yè)整理.專業(yè)整理

31、.專業(yè),整理.private:doubleAmount;publicSales(charID,char*NameJntDuty,doubleAmount):Person(ID,Name,Duty)this-Amount=Amount;doubleGetAmount()returnAmount;voidSetAmount(doubleAmount)this-Amount=Amount;voidCalcSalaryOEarning=SalesPercent/100*Amount;voidOutputO(CalcSalaryO;EarningcoutNo,Wt,Name,Wt俏皆員Wtz,Amoun

32、tz,Wf,zendl;;classCompany公可類(private:PersonWorker;員工表publicCompanyO(Worker=0;Load();-Company。Person*p;p二Workenwhile(p)下栽可編輯下栽可編輯下栽可編輯專業(yè),整理.專業(yè),整理.專業(yè),整理.p二p-next;deleteWorker:Worker=p;Worker=0;voidAdd();増加人員voidDeleteQ;“刪除人員voidModify。;修改人員voidQueryO;査ifu人員voidSeto:/設(shè)置基本數(shù)拯voidSave();/數(shù)據(jù)存盤(包括基礎(chǔ)數(shù)據(jù),人員數(shù)據(jù))

33、voidLoadQ;/數(shù)據(jù)的裝入voidCompany:Add、/増加1人員Person*p;/新結(jié)點指針intDuty;charName20;doubleAmount,Amounts,T;coutWn*新增員ID+;/,/輸入員工信息cout輸入崗位(1-經(jīng)理2銷售經(jīng)理3銷售員4技術(shù)員V:cinDuty;coutF入姓名cinName;if(Duty=2)coutAmounts;if(Duty=3)(coutAmount:elseif(Duty二二4)下栽町編輯下栽可編輯專業(yè),整理.專業(yè),整理.coutnext二0;“員工結(jié)點加入鏈表if(Worker)/若已經(jīng)存在結(jié)點Person*p2:p

34、2二Workerwhile(p2-next)/査找尾結(jié)點(p2二p2-next;p2-next=p;/連接elseR若不存在結(jié)點(表空Worker二p;“連接數(shù)據(jù)的保存coutch;if(ch=Y)(SaveQ:voidCompany:DeleteO/刪除人員intNo;cout,Wn*AM除員工*Wn;coutID:;cinNo;査找要刪除的結(jié)點Person*pl,*p2;pl=Worker;while(pl)if(Pl-No=No)break;else(P2二pl;pl=pl-next;刪除結(jié)點if(pl!=NULL)/若找到結(jié)點,則刪除(if(pl二二Worker)“若要刪除的結(jié)點是第一

35、個結(jié)點Worker二pl-next;deletepl:else若要刪除的結(jié)點是后續(xù)結(jié)點p2-next二pl-next;deletepl:下栽可編輯下栽可編輯專業(yè),整理.專業(yè),整理.coutz,找到并刪除WrT;else未找到結(jié)點(cout未找到!Wn;charch;cout一按任總鍵返回菜單J:cinch;if(ch!=W)(return;voidCompany:Modify。修改人員函數(shù)的實現(xiàn)(intNo,Duty;charName20;doubleAmount,Amounts,!;coutWn*修改員工*Wn;coutNo;查找要修改的結(jié)點Person*plf*p2;pl=Worker;w

36、hile(pl)(if(Pl-No=No)break;elseP2=PLpl=pl-next:修改結(jié)點if(pl!=NULL)若找到結(jié)點charch;plOutputo;cinDuty;cout,/調(diào)整崗位(1-經(jīng)理2銷售經(jīng)理3銷售員4技術(shù)員):if(pl-Duty!=Duty)/若崗位發(fā)生變動下栽可編輯下栽可編輯.專業(yè)整理.專業(yè)整理.修改其它數(shù)據(jù)coutName;if(Duty=2)cout”本月銷售額:;cinAmounts;if(Duty=3)(cout-本月銷售額:;cinAmount:elseif(Duty二二4)coutH本月工作小時數(shù)(0-160):cinT;創(chuàng)建新員工結(jié)點Per

37、son*p3;switch(Duty)F栽可編輯F栽可編輯casebreak;1:p3二newManager(pl-No,Name,Duty);case2:p3=newSalesManager(pl-No,NamefDuty,Amounts);break;case3:p3二newSales(pl-No,Name,Duty,Amount);break;case4:p3二newTechnician(pl-No,Name,Duty,T);break;員工結(jié)點替換到鏈表p3-next二pl-next;if(pl二二Worker)若要替換的結(jié)點是第一個結(jié)點Worker二p3;else若要刪除的結(jié)點是后續(xù)

38、結(jié)點p2-next二p3;刪除原來的員工結(jié)點deletepl:else若崗位沒有變動cout輸入姓名:;cinplName;if(Duty=2)專業(yè),整理下栽可編輯下栽可編輯下栽町編輯.專業(yè),整理.專業(yè),整理.專業(yè),整理.*)PD-coutAmounts:(SalesManagerSetAmounts(Amounts);if(Duty=3)coutSetAmount(Amount);elseif(Duty二二4)coutT;(Technician*)pl)-SetT(T);cout修改成功!Wn;cout,z是否保存數(shù)據(jù)Y/Ncinch;if(ch二二Y)SaveO;else未找到結(jié)點cout

39、ch;if(ch!二WO)(return;voidCompany:QueryO(inti;Person*pl,*p2;pl=Worker;if(pl)(cout-清輸入要查找的人的編號:;cini;while(pl)(if(pl-No=i)(break;else(p2=pl;pl二pl-next;if(pl!二NULL)(if(pl-Duty二二1)(cout,z編號姓名pl-Output。辻(pl-Duty=2)cout,/編號姓名pl-Outputo;I職位月總工資z,endl;職位月銷售量月總工資Duty二二3)cout,/編號姓名pl-Output。下栽町編輯下栽町編輯下栽町編輯.專業(yè)

40、,整理.專業(yè),整理.專業(yè),整理.if(pl-Duty二二4)cout/,編號姓名職位月工作量月總工資endl;pl-OutputQ;elsecharch;coutzz查無此人,按任意鍵返回菜單:;cinch;if(ch!=W)(return;elsecoutz,系統(tǒng)還未存入人員endl;return;voidCompany::Set()/基本數(shù)據(jù)的設(shè)置(coutWn*設(shè)置基礎(chǔ)數(shù)據(jù);cout經(jīng)理固定月薪ManagerSalaryManagerSalary;cout,z銷售經(jīng)理固定月薪,zSalesManagerSalarySalesManagerSalary:cout/,銷售經(jīng)理提成SalesM

41、anagerPercentSalesManagerPercent;cout”銷售人員提成SalesPercentSalesPercent;coutWagePerHour;cout=*ID:;cinID;voidCompany::SaveO/數(shù)據(jù)存盤(包括基礎(chǔ)數(shù)據(jù),人員數(shù)據(jù)),均采用文本文件(ofstream(Person,fBase;charc下栽可編輯下栽可編輯.專業(yè),整理.專業(yè),整理.coutz,Wn保存人員和基礎(chǔ)數(shù)據(jù),是否繼續(xù)?Y/N:;cinc;if(c!=Y)coutz,數(shù)據(jù)未保存!”endl;return;保存人員編號、姓名、崗位fPerson.open(person,txt,io

42、s:out);Person*p=Worker;while(p)(fPersonNo,Wt,NameDutyDuty=2)fPersonGetAmountsOWt;i.f(p-Duty=3)fPersonGetAmountODuty=4)fPerson(Technician*)p)-GetT0Wt;fPersonnext;fPerson.closeO;保存基礎(chǔ)數(shù)據(jù)fBase.open(base,txt,ios::out);fBase,z經(jīng)理固定月薪ManagerSalaryendl:fBase銷售經(jīng)理固定月薪Wt,SalesManagerSalaryendl;fBase銷售經(jīng)理提成%Wt,SalesManagerPercentendl;fBase銷售人員提成%WtSalesPercentendl;fBase技術(shù)人員小時工資WtWagePerHourendl:fBasebufManagerSalary;/經(jīng)理固定月薪fBasebufSalesManagerSalary:銷售經(jīng)理固定月薪fBasebufSalesManagerPercent:銷售經(jīng)理提成下栽町編輯下栽町編

溫馨提示

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

評論

0/150

提交評論