C++課程設計報告-公司人員管理系統(tǒng).doc

上傳人:good****022 文檔編號:116520616 上傳時間:2022-07-05 格式:DOC 頁數(shù):30 大?。?38.50KB
收藏 版權申訴 舉報 下載
C++課程設計報告-公司人員管理系統(tǒng).doc_第1頁
第1頁 / 共30頁
C++課程設計報告-公司人員管理系統(tǒng).doc_第2頁
第2頁 / 共30頁
C++課程設計報告-公司人員管理系統(tǒng).doc_第3頁
第3頁 / 共30頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《C++課程設計報告-公司人員管理系統(tǒng).doc》由會員分享,可在線閱讀,更多相關《C++課程設計報告-公司人員管理系統(tǒng).doc(30頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、內(nèi)蒙古科技大學面向?qū)ο蟪绦蛟O計課程設計報告設計題目:公司人員管理系統(tǒng)學 院:信息學 院專 業(yè):電子信息工程 班 級:xxxxx班 學 號:xxxxxxxxxx 學生姓名: xxxxxxxxx 指導教師: 余金林 2011613-2011.6.24內(nèi)蒙古科技大學課程設計任務書課程名稱C+語言課程設計設計題目公司人員管理系統(tǒng)指導教師余金林時間2011.6.132011.6.24一、教學要求1. 鞏固和加深學生對C+語言課程的基本知識的理解和掌握2. 掌握C+語言編程和程序調(diào)試的基本技能3. 利用C+語言進行基本的軟件設計4. 掌握書寫程序設計說明文檔的能力5. 提高運用C+語言解決實際問題的能力二

2、、設計資料及參數(shù)每個學生在教師提供的課程設計題目中任意選擇一題,獨立完成,可根據(jù)設計內(nèi)容適當修改題目名稱。公司人員管理系統(tǒng)定義人員基類,并派生出兼職技術人員類、經(jīng)理類、部門管理人員類并在類中聲明各自的成員函數(shù);要求至少設計以下各功能模塊:v 輸入記錄v 查詢功能v 計算工資v 顯示信息三、設計要求及成果1. 分析課程設計題目的要求2. 寫出詳細設計說明3. 編寫程序代碼,調(diào)試程序使其能正確運行4. 設計完成的軟件要便于操作和使用4. 設計完成后提交課程設計報告四、進度安排資料查閱與討論(1天)系統(tǒng)分析(2天)系統(tǒng)的開發(fā)與測試(5天)編寫課程設計說明書和驗收(2天)五、評分標準1. 根據(jù)平時上機

3、考勤、表現(xiàn)和進度,教師將每天點名和檢查2. 根據(jù)課程設計完成情況,必須有可運行的軟件。3. 根據(jù)課程設計報告的質(zhì)量,如有雷同,則所有雷同的所有人均判為不及格。六、建議參考資料1C+面向?qū)ο蟪绦蛟O計,吳敏、楊國林 主編,內(nèi)蒙古大學出版社2C+語言程序設計(第三版),鄭莉,清華大學出版社 目 錄一 摘要 二 需求分析三 概要設計 四 詳細設計 五 總結 六 參考文獻 一 摘要C+簡介:Stroustrup工作起于1979年的C with Classes。這個構思起源于 Stroustrup 做博士論文時的一些程序撰寫經(jīng)驗。他發(fā)現(xiàn)Simula具備很利于大型軟件開發(fā)的特點,但Simula的運行速度太慢

4、,無法對現(xiàn)實需求發(fā)揮功效;BCPL雖快得多,但它過于低級的特性,使其不適于大型軟件的開發(fā)。當Stroustrup開始在貝爾實驗室工作時,他有分析UNIX核心關于分布式計算的問題?;叵肫鹚牟┦空撐慕?jīng)驗,Stroustrup開始為C語言增強一些類似Simula的特點。之所以選擇C,是因為它適于各種用途、快速和可移植性。除了C和Simula之外,同時也從其它語言中取得靈感,如ALGOL 68、Ada、CLU以及ML。剛開始時,類、派生類、存儲類型檢查、內(nèi)聯(lián)和默認參數(shù)特性,都是通過CfrONt引入C語言之中。1985年10月出現(xiàn)了第一個商業(yè)化發(fā)布。1983年,C with Classes改命名為C+

5、。加入了新的特性,其中包括虛函數(shù)、函數(shù)名和運算符重載、參考、常數(shù)、用戶可控制的自由空間存儲區(qū)控制、改良的類型檢查,以及新的雙斜線(/)單行注解風格。1985年,發(fā)布第一版C+程序設計語言,提供一個重點的語言參考,至此還不是官方標準。1989年,發(fā)布了Release 2.0。引入了多重繼承、抽象類、靜態(tài)成員函數(shù)、常數(shù)成員函數(shù),以及成員保護。1990年,出版了The Annotated C+ Reference Manual。這本書后來成為標準化的基礎。稍后還引入了模板、異常處理、命名空間、新的強制類型轉(zhuǎn)換,以及布爾類型。隨著C+語言的演變,也逐漸演化出相應的標準程序庫。最先加進C+標準庫的是流I

6、/O程序庫,其用以取代傳統(tǒng)的C函數(shù),如printf和scanf。隨后所引入的程序庫中最重要的便是標準模板庫,簡稱STL。多年后,一個聯(lián)合的ANSI-ISO委員會于1998年對C+標準化(ISO/IEC 14882:1998)。在官方釋出1998標準的若干年后,委員會處理缺陷報告,并于2003年發(fā)布一個C+標準的修正版本。2005年,一份名為Library Technical Report 1(簡稱TR1)的技術報告釋出。雖然還不是官方標準的一部分,不過它所提供的幾個擴展可望成為下一版C+標準的一部分。幾乎所有目前仍在維護的C+編譯器皆已支持TR1。雖然C+免專利,但標準文件本身并不是免費的,盡

7、管標準文檔不是免費的,但是很容易從網(wǎng)絡中取得,最簡單的就是C+標準文檔之前的最后一次草稿版本,它與標準的差別幾乎只在于排版上。C+語言既保留了C語言的有效性、靈活性、便于移植等全部精華和特點,又添加了面向?qū)ο缶幊痰闹С郑哂袕姶蟮木幊坦δ?,可方便地構造出模擬現(xiàn)實問題的實體和操作;編寫出的程序具有結構清晰、易于擴充等優(yōu)良特性,適合于各種應用軟件、系統(tǒng)軟件的程序設計。用C+編寫的程序可讀性好,生成的代碼質(zhì)量高,運行效率僅比匯編語言慢10%20%。C+語言具有以下特點:(1) C+是C語言的超集。它既保持了C語言的簡潔、高效和接近匯編語言等特點,又克服了C語言的缺點,其編譯系統(tǒng)能檢查更多的語法錯誤,

8、因此,C+比C語言更安全。(2) C+保持了與C語言的兼容。絕大多數(shù)C語言程序可以不經(jīng)修改直接在C+環(huán)境中運行,用C語言編寫的眾多庫函數(shù)可以用于C+程序中。(3) 支持面向?qū)ο蟪绦蛟O計的特征。C+既支持面向過程的程序設計,又支持面向?qū)ο蟮某绦蛟O計。(4) C+程序在可重用性、可擴充性、可維護性和可靠性等方面都較C語言得到了提高,使其更適合開發(fā)大中型的系統(tǒng)軟件和應用程序。每個學生在教師提供的課程設計題目中任意選擇一題,獨立完成,可根據(jù)設計內(nèi)容適當修改題目名稱。二需求分析某小型公司,主要有四類人員:經(jīng)理、技術工人、銷售人員以及部門管理人員?,F(xiàn)在、需要建立一個小型的公司人員管理系統(tǒng),能夠以文件方式存

9、儲這些人員的各類信息并能按照其編號查詢輸出所輸入的所有信息,還要按照公司的要求計算出每名員工一個月的工資。要求:1) 可以錄入并保存四類人員的信息;2) 可以按照職工的類別以及姓名查詢并顯示四類人員的信息;3) 可以按照規(guī)定的方法計算每名員工每月所得的工資;方法:A 經(jīng)理:固定工資(5000 可更改)+工齡工資(工齡*100)+領導能力評價;B 技術工人:固定工資(2500 可更改)+工齡工資(工齡*50)+工時工資(工時*10)+工作表現(xiàn)評價;C 銷售員:工齡工資(工齡*50)+銷售額*0.05+銷售效率評價;D 部門管理人員:固定工資(3500 可更改)+工齡工資(工齡*50)+銷售額*0

10、.005+統(tǒng)率力評價;其中,每一類員工的前一部分的計算方法是固定了的,而后面的評價部分分為了優(yōu)、良、中、差四個等級,在最終評定某一位員工該月應得的工資時可以按評定等級酌情考慮,這樣能更加體現(xiàn)人性化并且更能夠提高員工積極性。4) 可以在各個界面中實現(xiàn)退出以及進入的循環(huán)。5) 可以退出本系統(tǒng)。 三概要設計3.1系統(tǒng)功能分析和設計思路、系統(tǒng)功能模塊我們使用面向?qū)ο蟪绦蛟O計方法的思路進行分析,得出了整個系統(tǒng)應該涉及兩個基類的信息和操作,首先是公司雇員這一個大基類,其它諸如經(jīng)理等的類應該由此類派生;再有、為了方便實現(xiàn)各類信息以文件方式的儲存以及實現(xiàn)各種功能和界面,我們決定再創(chuàng)建一個系統(tǒng)類。所以我們接下來

11、所要做的一切工作都要圍繞這兩個類(公司雇員類 employee以及系統(tǒng)類 system)來展開。(1)公司雇員類 employee:可以說這是本系統(tǒng)的一個“總基類”,我們按照預期的設計及要求由它(公司雇員類 employee)派生出了經(jīng)理類 manager、一般工人類 worker、銷售員類 sale以及部門管理人員類 Branch_manage。由于考慮到各個小的分類之間在形式下差不多,為了不出現(xiàn)“二義性”的問題,我們主要在各個類之間采取定義虛基類以及純虛函數(shù)的思路進行調(diào)用。另外、由于我們對鏈表的運用以及鏈表的掌握還不是很熟練,再加上為了使各個類方便與系統(tǒng)類 system進行直接連接,我們遂

12、決定采用對象數(shù)組存放文件中讀入或讀出的各類公司人員信息。但是我們發(fā)現(xiàn)這樣做有一個缺陷:因為無法事先確定各類人員及各類人員的各種信息,所以無法確定對象數(shù)組的大小。這里我們討論后決定事先確定一個較大的數(shù)組空間來決定這個問題,當然,解決這個問題的最好方法還是采用異質(zhì)鏈表來存放從文件中讀取的信息。(2)系統(tǒng)類 system:由于這個系統(tǒng)涉及到了文件的應用,所以系統(tǒng)類 system是必不可少的。我們對問題分析、討論以后決定,系統(tǒng)類 system的主要成員函數(shù)要包括:提供輸入各類數(shù)據(jù)的 inform、確認各類輸入成功的 success、添加各類信息的 in_information、用于各類查詢的 sear

13、ch、計算并顯示總工資的 out_total_salary以及用于各個選項之間輸出界面的 interface。(3)由于考慮到這應該是一個完整的管理系統(tǒng),加上我們希望這個系統(tǒng)的界面能夠做到清晰、明了,我們經(jīng)討論后決定采用一個總操作界面,三個分操作界面??偛僮鹘缑鎽摪?(分別對應 1.輸入信息 2.查詢信息并顯示 3.計算總工資并顯示 4.退出)輸入信息界面中又因該包括 1.經(jīng)理類 2.工人類 3.銷售員類 4.部門管理人員類 5.退出。查詢信息并顯示界面中又應該包括 1.經(jīng)理類 2.工人類 3.銷售員類 4.部門管理人員類 5.退出。計算總工資并顯示界面中又應該包括 1.經(jīng)理類 2.工人類

14、 3.銷售員類 4.部門管理人員類 5.退出。3.2系統(tǒng)使用說明文字說明:進入主菜單后: 選1-1為輸入經(jīng)理類的記錄;1-2為輸入工人類的記錄;1-3為輸入銷售員類的記錄;1-4為輸入部門管理人員類的記錄;1-5為退出此界面并返回到主界面。選2-1為查找經(jīng)理類的記錄;2-2為查找工人類的記錄;2-3為查找銷售員類的記錄;2-4為查找部門管理人員類的記錄;2-5為退出此界面并返回到主界面。以上操作的詳細流程請參照流程圖3。選3-1為計算經(jīng)理類的總工資;3-2為計算工人類的總工資;3-3為計算銷售員類的總工資;3-4為計算部門管理人員類的總工資;3-5為退出此界面并返回到主界面。以上操作的詳細流程

15、請參照流程圖4。選4會輸出“謝謝您使用本系統(tǒng),次再見!”并退出程序。軟件界面說明例子:四詳細設計4.1系統(tǒng)流程圖說明:以下是對應上面系統(tǒng)功能模塊實圖的系統(tǒng)流程圖。4.2程序代碼/Employee.h#include#include#include#includeclass Employee /*基類(雇員類)*/protected:int lb;int num;char name20;int work_age;double total_salary;public:int Get_lb()return lb;int Get_num();int Get_work_age();char *Getna

16、me();double Get_total_salary();virtual void Compute_total_salary()=0;virtual void Input();virtual void Output();class Manager:virtual public Employee /*派生類(經(jīng)理類)*/protected:float salary;char leadership10;public:Manager()lb=1;Manager();void Input();void Output();void Compute_total_salary();class Worke

17、r:public Employee /*派生類(技術工人類)*/float salary;int work_hour;char performance10;public:Worker()lb=2;Worker();void Input();void Output();void Compute_total_salary();class Sale:virtual public Employee /*派生類(銷售人員類)*/protected:float sale;char efficiency10;public:Sale()lb=3;Sale();void Input();void Output(

18、);void Compute_total_salary();class Branch_Manage:public Manager, public Sale /*派生類(部門管理人員類)*/char command10;public:Branch_Manage()lb=4;Branch_Manage();void Input();void Output();void Compute_total_salary();class System /*系統(tǒng)類*/Manager B10;Worker C10;Sale D10;Branch_Manage E10;static int j1,j2,j3,j4;

19、void infor1();void infor2();void infor3();void infor4();void Search1(int h,char ch20);void Out_total_salary1(int h,char *name);void Interface1();public:System();void In_information();void Search();void Out_total_salary();void Interface();/carry out.cpp#include#include#include#includechar fileName=co

20、mpany.dat;int Employee:Get_num()return num;int Employee:Get_work_age()return work_age;double Employee:Get_total_salary()return total_salary;char *Employee:Getname()return name;void Employee:Input()coutnum;coutname;coutwork_age;void Employee:Output()coutttt員工編號:numendl;coutttt員工姓名:nameendl;coutttt員工工

21、齡:work_ageendl;coutttt總工資:total_salaryendl;void Manager:Input()Employee:Input();coutsalary;coutleadership;void Manager:Output()Employee:Output();coutttt領導能力(優(yōu)、良、中、差):leadershipendl;void Manager:Compute_total_salary()total_salary=salary+100*work_age;void Worker:Input()Employee:Input();coutsalary;cout

22、work_hour;coutperformance;void Worker:Output()Employee:Output();coutttt工時:work_hourendl;coutttt工作表現(xiàn)(優(yōu)、良、中、差):performanceendl;void Worker:Compute_total_salary()total_salary=salary+10*work_hour+50*work_age;void Sale:Input()Employee:Input();coutsale;coutefficiency;void Sale:Output()Employee:Output();co

23、utttt當月銷售額:saleendl;coutttt銷售效率(優(yōu)、良、中、差):efficiencyendl;void Sale:Compute_total_salary()total_salary=50*work_age+sale*0.05;void Branch_Manage:Input()Employee:Input();coutsalary;coutsale;coutcommand;void Branch_Manage:Output()Employee:Output();coutttt當月銷售總額:saleendl;coutttt統(tǒng)率力(優(yōu)、良、中、差):commandendl;vo

24、id Branch_Manage:Compute_total_salary()total_salary=salary+50*work_age+sale*0.005;int System:j1=0;int System:j2=0;int System:j3=0;int System:j4=0;void System:Interface1()coutnnn;couttt *按雇員類別進行管理*endl;couttt *公司人員類別*endl;couttt 1.經(jīng)理類 endl;couttt 2.兼職技術工人類 endl;couttt 3.銷售類 endl;couttt 4.部門管理人員類 endl

25、;couttt 5.退出 endl;coutrev1;switch(rev1) case 1: infor1(); break;case 2: infor2(); break;case 3: infor3(); break;case 4: infor4(); break;case 5: Interface(); break;default: coutttt 對不起、沒有此類人員!endl; continue;coutttt 信息儲存成功!endl;coutt;coutendl;if(!(t=Y|t=y)again=0;Interface();void System:infor1()fstrea

26、m datafile(fileName,ios:in|ios:out|ios:binary);datafile.seekp(0,ios:end);Bj1.Input();datafile.write(char *)&Bj1,sizeof(class Manager);datafile.close();j1+;void System:infor2()fstream datafile(fileName,ios:in|ios:out|ios:binary);datafile.seekp(0,ios:end);Cj2.Input();datafile.write(char *)&Cj2,sizeof(

27、class Worker);datafile.close();j2+;void System:infor3()fstream datafile(fileName,ios:in|ios:out|ios:binary);datafile.seekp(0,ios:end);Dj3.Input();datafile.write(char *)&Dj3,sizeof(class Sale);datafile.close();j3+;void System:infor4()fstream datafile(fileName,ios:in|ios:out|ios:binary);datafile.seekp

28、(0,ios:end);Ej4.Input();datafile.write(char *)&Ej4,sizeof(class Branch_Manage);datafile.close();j4+;void System:Search1(int h,char ch20)int s=0,found=0;switch(h)case 1:while(sj1)if(strcmp(ch,Bs.Getname()=0)Bs.Compute_total_salary();Bs.Output();coutttt*endl;found=1;break;s+;break;case 2:while(sj2)if(

29、strcmp(ch,Cs.Getname()=0)Cs.Compute_total_salary();Cs.Output();coutttt*endl;found=1;break;s+;break;case 3:while(sj3)if(strcmp(ch,Ds.Getname()=0)Ds.Compute_total_salary();Ds.Output();coutttt*endl;found=1;break;s+;break;case 4:while(sj4)if(strcmp(ch,Es.Getname()=0)Es.Compute_total_salary();Es.Output()

30、;coutttt*endl;found=1;break;s+;break;if(found=0)coutnntt 對不起,該類別中并沒有此人!rev;if(rev=5) break;coutname;Search1(rev,name);coutt;coutendl;if(!(t=Y|t=y)again=0;Interface();void System:Out_total_salary1(int h,char *name)int s=0,found=0;switch(h)case 1:while(sj1)if(strcmp(name,Bs.Getname()=0)Bs.Compute_tota

31、l_salary();Bs.Output();found=1;break; s+;break;case 2:while(sj2)if(strcmp(name,Cs.Getname()=0)Cs.Compute_total_salary();Cs.Output();found=1;break;s+;break;case 3:while(sj3)if(strcmp(name,Ds.Getname()=0)Ds.Compute_total_salary();Ds.Output();found=1;break;s+;break;case 4:while(sj4)if(strcmp(name,Es.Ge

32、tname()=0)Es.Compute_total_salary();Es.Output();found=1;break;s+;break;if(found=0)coutnntt 對不起,該類別中并沒有這種類型的總工資!rev;if(rev=5) break;coutname;Out_total_salary1(rev,name);coutt;coutendl;if(!(t=Y|t=y)again=0;Interface();void System:Interface()int rev;coutnnnnnnn;couttt *歡迎使用*endl;couttt *公司人員管理系統(tǒng)*endl;c

33、outtt 1.輸入記錄 endl;couttt 2.查詢信息并顯示 endl;couttt 3.計算總工資并顯示 endl;couttt 4.退出 endl;coutrev;switch(rev)case 1:In_information();break;case 2:Search();break;case 3:Out_total_salary();break;case 4:coutttt 謝謝您使用本系統(tǒng),下次再見!endl;exit(0);/主函數(shù):main.cppvoid main(void)System s;s.Interface();五.總結、心得與體會通過這次課題設計,我覺得做好

34、一個程序,靈活運用是關鍵。把基礎學好不一定能把程序編好,但基礎知識不好,一定編不出好程序。做大規(guī)模的程序不只是一個人努力就行了,一定要有團隊合作能力。編程最主要是思路清晰,只要你把思路理順了,就有利于你在編程的過程中少走彎路。 要想學好C+我覺得除了在課堂上認真學習之外也要做好以下幾點:1.認真對待每一個程序的編寫; 2.做好對每一個所編程序的總結 3.寫程序盡量要規(guī)范、嚴謹,效率盡量要高; 4.養(yǎng)成自我測試的習慣; 5.多看一些別人編的程序,把好的思路和方法記下來,以備不時之需 6.要有恃之以恒的精神以及嚴謹?shù)目茖W研究作風 。在這短短的兩個星期的努力奮斗中、在余金林老師的辛勤指導下。我們終于把本次課題設計順利完成?;叵肫鹫n題設計過程中面對程序錯誤一大堆的失望與成功完成程序中每一個模塊的喜悅時,我真正的體會到了:1. 一個人好難做得來,需要一個團隊合作來做好一件工作,提高工作的質(zhì)量與效率;2.細節(jié)決定成??;3.學術不管是哪一門,只要你用心去對待它,它也會用心地來回報你,這也正印證了一句話:“一分耕耘一分收獲”!六.參考書目1.C+面向?qū)ο蟪绦蛟O計,吳敏,楊國林 主編,內(nèi)蒙古大學出版社2.C+語言程序(第三版),鄭莉,清華大學出版社3.面向?qū)ο蟪绦蛟O計與Visual C+6.0教程,陳天華,清華大學出版社30

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

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!