公司人員管理系統(tǒng)實訓(xùn)報告課程設(shè)計_第1頁
公司人員管理系統(tǒng)實訓(xùn)報告課程設(shè)計_第2頁
公司人員管理系統(tǒng)實訓(xùn)報告課程設(shè)計_第3頁
公司人員管理系統(tǒng)實訓(xùn)報告課程設(shè)計_第4頁
公司人員管理系統(tǒng)實訓(xùn)報告課程設(shè)計_第5頁
已閱讀5頁,還剩47頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、沈 陽 工 程 學(xué) 院課 程 設(shè) 計設(shè)計題目: C+程序設(shè)計課程設(shè)計 公司人員管理系統(tǒng) 系 別 xx 班級 xx 學(xué)生姓名 XX 學(xué) 號 xx 指導(dǎo)教師 xx 職稱 講師 副教授 起止日期:2013 年12月30日起至 2014 年01月03日止沈 陽 工 程 學(xué) 院課程設(shè)計任務(wù)書 課程設(shè)計題目: 公司人員管理系統(tǒng) 系 別 信息學(xué)院 班級 計算本121 學(xué)生姓名 學(xué) 號 指導(dǎo)教師 職稱 課程設(shè)計進(jìn)行地點(diǎn): F608 任 務(wù) 下 達(dá) 時 間: 2013年 12月01日起止日期:2013年12月30日起至2014年01月03日止教研室主任 年 月 日批準(zhǔn)一、 課程設(shè)計的原始資料及依據(jù)公司人員管理系

2、統(tǒng)的總目標(biāo)是:在計算機(jī)網(wǎng)絡(luò),數(shù)據(jù)庫和先進(jìn)的開發(fā)平臺上,利用現(xiàn)有的軟件,配置一定的硬件,分析和設(shè)計一個具有開放體系結(jié)構(gòu)的、易擴(kuò)充的、易維護(hù)的、具有良好人機(jī)交互界面的公司人員管理系統(tǒng),為公司主管部門的決策者和管理者提供充足的信息、快捷的查詢和有效的管理方式,減少不必要的損失和浪費(fèi),提高人員管理的效率。二、 課程設(shè)計主要內(nèi)容及要求設(shè)計名稱:公司人員管理系統(tǒng)設(shè)計內(nèi)容:某小型公司,主要有四類人員:經(jīng)理,兼職技術(shù)人員,銷售經(jīng)理和兼職推銷員.1) 人員信息包括姓名,編號,級別,當(dāng)月薪水,計算月薪總額等2) 能夠顯示這些人員的全部信息.3) 添加刪除功能:能根據(jù)公司人事的變動情況,添加刪除記錄;4) 查詢功能

3、:能根據(jù)編號和姓名進(jìn)行查詢;5) 保存功能:啟動程序時能讀取人員信息,關(guān)閉程序時能將信息保存至硬盤文件。6) 人員編號在生成人員信息時自動生成,每輸入一個人員信息編號順序加1。設(shè)計要求:(1) 要求在設(shè)計的過程中建立清晰的類層次,并畫出類圖;(2) 設(shè)計功能滿足要求、易于操作的友好界面;(3) 在系統(tǒng)的設(shè)計中,至少要用到面向?qū)ο蟮囊环N機(jī)制:繼承、多態(tài)等;(4) 在完成該題目時,小組人員進(jìn)行詳細(xì)的任務(wù)分工,并要在報告中體現(xiàn)出來。三、 對課程設(shè)計說明書撰寫內(nèi)容、格式、字?jǐn)?shù)的要求1課程設(shè)計說明書是體現(xiàn)和總結(jié)課程設(shè)計成果的載體,主要內(nèi)容包括:設(shè)計題目、設(shè)計目的、設(shè)備器材、設(shè)計原理及內(nèi)容、設(shè)計步驟、遇到

4、的問題及解決方法、設(shè)計總結(jié)、參考文獻(xiàn)等。一般不應(yīng)少于3000字。2在適當(dāng)位置配合相應(yīng)的實驗原理圖、功能模塊圖、算法流程圖等圖表進(jìn)行說明。應(yīng)做到文理通順,內(nèi)容正確完整,書寫工整,裝訂整齊。3設(shè)計總結(jié)部分主要寫本人完成工作簡介以及自己的設(shè)計體會,包括通過課程設(shè)計學(xué)到了什么,哪里遇到了困難,解決的辦法以及今后的目標(biāo)。4課程設(shè)計說明書手寫或打印均可。手寫要用學(xué)校統(tǒng)一的課程設(shè)計用紙,用黑或藍(lán)黑墨水工整書寫;打印時采用A4紙,頁邊距均為20mm,正文采用宋體小四號字,行間距18磅。文中大標(biāo)題采用黑體小三號字,一級節(jié)標(biāo)題采用黑體四號字,二級節(jié)標(biāo)題采用黑體小四號字,表題與圖題采用宋體五號字。5課程設(shè)計說明書裝

5、訂順序為:封面、任務(wù)書、成績評定表、目錄、正文、參考文獻(xiàn)。四、 設(shè)計完成后應(yīng)提交成果的種類、數(shù)量、質(zhì)量等方面的要求1完成“任務(wù)書”中指定的功能,運(yùn)行結(jié)果正確。2課程設(shè)計說明書。五、 時間進(jìn)度安排順序階段日期計 劃 完 成 內(nèi) 容備注1第1天(12月30號)閱讀資料2第2天(12月31號)系統(tǒng)分析設(shè)計3第3天(01月01號)程序編制、調(diào)試及運(yùn)行4第4天(01月02號)成績評定5第5天(01月02號)撰寫課程設(shè)計說明書六、 參考文獻(xiàn)1劉覺夫 王更生等編著C+程序設(shè)計.北京郵電大學(xué)出版社2曾輝 王更生 李廣麗等編著C+程序設(shè)計實訓(xùn)教程.北京郵電大學(xué)出版社3譚浩強(qiáng)編著C+面向?qū)ο蟪绦蛟O(shè)計.北京清華大學(xué)

6、出版社4鄭莉 董淵 何江舟等編著的C+語言程序設(shè)計.北京清華大學(xué)出版社5李強(qiáng) 賈云霞等編著的VisualC+項目開發(fā)實踐.北京中國鐵道出版社6皮德常編著的C+程序設(shè)計教程(第一版).北京清華大學(xué)出版社7錢能編著的C+程序設(shè)計教程(第二版).北京清華大學(xué)出版社8鄭阿奇編著VisualC+教程.北京清華大學(xué)出版社沈 陽 工 程 學(xué) 院 C+程序設(shè)計 課程設(shè)計成績評定表系(部): 信息學(xué)院 班級: 計算本121 學(xué)生姓名: 指 導(dǎo) 教 師 評 審 意 見評價內(nèi)容具 體 要 求權(quán)重評 分加權(quán)分調(diào)研論證能獨(dú)立查閱文獻(xiàn),收集資料;能制定課程設(shè)計方案和日程安排。0.15432工作能力態(tài)度工作態(tài)度認(rèn)真,遵守紀(jì)

7、律,出勤情況是否良好,能夠獨(dú)立完成設(shè)計工作, 0.25432工作量按期圓滿完成規(guī)定的設(shè)計任務(wù),工作量飽滿,難度適宜。0.25432說明書的質(zhì)量說明書立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理,文字通順,技術(shù)用語準(zhǔn)確,符號統(tǒng)一,編號齊全,圖表完備,書寫工整規(guī)范。0.55432指導(dǎo)教師評審成績(加權(quán)分合計乘以12) 分加權(quán)分合計指 導(dǎo) 教 師 簽 名: 年 月 日評 閱 教 師 評 審 意 見評價內(nèi)容具 體 要 求權(quán)重評 分加權(quán)分查閱文獻(xiàn)查閱文獻(xiàn)有一定廣泛性;有綜合歸納資料的能力0.25432工作量工作量飽滿,難度適中。0.55432說明書的質(zhì)量說明書立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理,文字通順,技術(shù)用語準(zhǔn)確

8、,符號統(tǒng)一,編號齊全,圖表完備,書寫工整規(guī)范。0.35432評閱教師評審成績(加權(quán)分合計乘以8)分加權(quán)分合計評 閱 教 師 簽 名: 年 月 日課 程 設(shè) 計 總 評 成 績分沈 陽 工 程 學(xué) 院 C+程序設(shè)計 課程設(shè)計成績評定表系(部): 信息學(xué)院 班級: 計算本121 學(xué)生姓名: 指 導(dǎo) 教 師 評 審 意 見評價內(nèi)容具 體 要 求權(quán)重評 分加權(quán)分調(diào)研論證能獨(dú)立查閱文獻(xiàn),收集資料;能制定課程設(shè)計方案和日程安排。0.15432工作能力態(tài)度工作態(tài)度認(rèn)真,遵守紀(jì)律,出勤情況是否良好,能夠獨(dú)立完成設(shè)計工作, 0.25432工作量按期圓滿完成規(guī)定的設(shè)計任務(wù),工作量飽滿,難度適宜。0.25432說明

9、書的質(zhì)量說明書立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理,文字通順,技術(shù)用語準(zhǔn)確,符號統(tǒng)一,編號齊全,圖表完備,書寫工整規(guī)范。0.55432指導(dǎo)教師評審成績(加權(quán)分合計乘以12) 分加權(quán)分合計指 導(dǎo) 教 師 簽 名: 年 月 日評 閱 教 師 評 審 意 見評價內(nèi)容具 體 要 求權(quán)重評 分加權(quán)分查閱文獻(xiàn)查閱文獻(xiàn)有一定廣泛性;有綜合歸納資料的能力0.25432工作量工作量飽滿,難度適中。0.55432說明書的質(zhì)量說明書立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理,文字通順,技術(shù)用語準(zhǔn)確,符號統(tǒng)一,編號齊全,圖表完備,書寫工整規(guī)范。0.35432評閱教師評審成績(加權(quán)分合計乘以8)分加權(quán)分合計評 閱 教 師 簽 名:

10、年 月 日課 程 設(shè) 計 總 評 成 績分沈 陽 工 程 學(xué) 院 C+程序設(shè)計 課程設(shè)計成績評定表系(部): 信息學(xué)院 班級: 計算本121 學(xué)生姓名: 指 導(dǎo) 教 師 評 審 意 見評價內(nèi)容具 體 要 求權(quán)重評 分加權(quán)分調(diào)研論證能獨(dú)立查閱文獻(xiàn),收集資料;能制定課程設(shè)計方案和日程安排。0.15432工作能力態(tài)度工作態(tài)度認(rèn)真,遵守紀(jì)律,出勤情況是否良好,能夠獨(dú)立完成設(shè)計工作, 0.25432工作量按期圓滿完成規(guī)定的設(shè)計任務(wù),工作量飽滿,難度適宜。0.25432說明書的質(zhì)量說明書立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理,文字通順,技術(shù)用語準(zhǔn)確,符號統(tǒng)一,編號齊全,圖表完備,書寫工整規(guī)范。0.55432指導(dǎo)

11、教師評審成績(加權(quán)分合計乘以12) 分加權(quán)分合計指 導(dǎo) 教 師 簽 名: 年 月 日評 閱 教 師 評 審 意 見評價內(nèi)容具 體 要 求權(quán)重評 分加權(quán)分查閱文獻(xiàn)查閱文獻(xiàn)有一定廣泛性;有綜合歸納資料的能力0.25432工作量工作量飽滿,難度適中。0.55432說明書的質(zhì)量說明書立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理,文字通順,技術(shù)用語準(zhǔn)確,符號統(tǒng)一,編號齊全,圖表完備,書寫工整規(guī)范。0.35432評閱教師評審成績(加權(quán)分合計乘以8)分加權(quán)分合計評 閱 教 師 簽 名: 年 月 日課 程 設(shè) 計 總 評 成 績分摘要在當(dāng)前的市場經(jīng)濟(jì)體制下,企業(yè)要想提高市場的競爭力,取得好的經(jīng)濟(jì)效益,不但要有好的產(chǎn)品和銷

12、售服務(wù),還必須加強(qiáng)對公司內(nèi)部的人員管理,以提高內(nèi)部人員的凝聚力和積極性、提高工作效率等。本文利用VisualC+6.0 編寫程序,實現(xiàn)了用戶對公司人員的編號、姓名、性別、部門。級別、工資等信息的管理操作。本系統(tǒng)主要有八個功能模塊:到添加信息子系統(tǒng)、查詢信息子系統(tǒng)、統(tǒng)計子系統(tǒng)、顯示子系統(tǒng)、修改子系統(tǒng)、刪除子系統(tǒng)、保存子系統(tǒng)和讀取子系統(tǒng)。已經(jīng)過全面的系統(tǒng)測試,能夠很好的運(yùn)行,達(dá)到了預(yù)期的效果。本系統(tǒng)主要實現(xiàn)了對四類人員的管理:經(jīng)理管理、銷售人員管理、技術(shù)人員管理、銷售經(jīng)理管理;主要運(yùn)用了繼承友元等編程方法來實現(xiàn)對這些人員的管理。 關(guān)鍵詞:系統(tǒng)設(shè)計 人員管理 信息 公司目錄摘要I目錄II第一章 問題

13、分析- 1 -11引言- 1 -12課程設(shè)計的目的- 1 -13設(shè)計題目(問題)描述和要求- 1 -14系統(tǒng)分析與分工- 2 -15設(shè)備器材- 3 -16課程設(shè)計意義- 3 -第二章 設(shè)計原理與運(yùn)行環(huán)境- 4 -21 c+語言概述- 4 -22 基本操作- 5 -第三章 系統(tǒng)分析與設(shè)計- 11 -31系統(tǒng)設(shè)計- 11 -32系統(tǒng)關(guān)鍵算法流程圖- 13 -第四章 系統(tǒng)功能的實現(xiàn)- 17 -4.1菜單函數(shù)- 17 -4.2添加功能- 18 -4.3刪除功能- 20 -4.4顯示功能- 22 -4.5基礎(chǔ)數(shù)據(jù)設(shè)置- 24 -4.6查詢功能- 26 -4.7保存功能- 28 -4.8退出功能- 30

14、-總結(jié)- 31 -致謝- 32 -參考文獻(xiàn)- 33 -第一章 問題分析11引言公司人員管理系統(tǒng)是公司管理中的一個重要內(nèi)容,隨著時代的進(jìn)步,公司人員數(shù)量也不斷增加、分工的不斷細(xì)化、各個行業(yè)間聯(lián)系的不斷密切,對人事管理的要求也不斷提高。早期的人工方式的管理系統(tǒng)已不適合現(xiàn)代企業(yè)的公司的發(fā)展,實現(xiàn)企業(yè)人事管理的系統(tǒng)化、規(guī)范化、自動化,是現(xiàn)代公司管理的首選。此次課程設(shè)計的目的是以C+語言程序設(shè)計為基礎(chǔ),針對具有一定難度的綜合性題目,進(jìn)行分析、編程、調(diào)試和運(yùn)行,進(jìn)一步掌握面向?qū)ο蠛兔嫦蜻^程程序設(shè)計的基本方法和編程技巧,鞏固所學(xué)理論知識,使理論與實踐相結(jié)合,提高分析問題、解決問題的能力。通過設(shè)計一個簡單的公

15、司人員管理系統(tǒng),進(jìn)一步熟悉C+中類的概念、類的封裝、繼承和多態(tài)的實現(xiàn)方式。了解系統(tǒng)開發(fā)的需要分析,類層次設(shè)計,模塊分析,編碼測試,模塊組裝與整體調(diào)試的全過程,逐步熟悉程序設(shè)計的方法,并養(yǎng)成良好的編程習(xí)慣。12課程設(shè)計的目的 要求學(xué)生能夠熟練掌握C+語言的基本知識和技能。 基本掌握面向?qū)ο蟪绦蛟O(shè)計的基本思路和方法。 能夠利用所學(xué)的基本知識和技能,解決簡單的面向?qū)ο蟪绦蛟O(shè)計問題。13設(shè)計題目(問題)描述和要求1.3.1設(shè)計內(nèi)容: 某小型公司,主要有四類人員:經(jīng)理,兼職技術(shù)人員,銷售經(jīng)理和兼職推銷員. 人員信息包括姓名,編號,級別,當(dāng)月薪水,計算月薪總額等能夠顯示這些人員的全部信息.添加刪除功能:能

16、根據(jù)公司人事的變動情況,添加刪除記錄;查詢功能:能根據(jù)編號和姓名進(jìn)行查詢;保存功能:啟動程序時能讀取人員信息,關(guān)閉程序時能將信息保存至硬盤文件。人員編號在生成人員信息時自動生成,每輸入一個人員信息編號順序加1。1.3.2設(shè)計要求:要求在設(shè)計的過程中建立清晰的類層次,并畫出類圖;設(shè)計功能滿足要求、易于操作的友好界面;在系統(tǒng)的設(shè)計中,至少要用到面向?qū)ο蟮囊环N機(jī)制:繼承、多態(tài)等;在完成該題目時,小組人員進(jìn)行詳細(xì)的任務(wù)分工,并要在報告中體現(xiàn)出來。14系統(tǒng)分析與分工1.4.1問題分析根據(jù)問題描述和要求,系統(tǒng)要求能夠按姓名或者編號顯示、查找、增加、刪除和保存各類人員的信息。確定程序至少應(yīng)該具備如下功能:“

17、查詢?nèi)藛T”、“增加人員”、“刪除人員”、“數(shù)據(jù)存盤”基本模塊。系統(tǒng)既然具有“數(shù)據(jù)存盤”功能人員數(shù)據(jù)可以保存到磁盤文件,那么也就意味著今后可以從磁盤文件讀出人員數(shù)據(jù),所以系統(tǒng)增加了“人員數(shù)據(jù)裝入”模塊,以方便用戶使用、避免數(shù)據(jù)重復(fù)錄入??紤]到系統(tǒng)實現(xiàn)簡捷,人員數(shù)據(jù)文件采用文本文件,人員數(shù)據(jù)文件名:Person.txt。考慮到根據(jù)編號查找人員信息功能在“刪除人員”模塊都使用,所以可以考慮設(shè)置為一個模塊。考慮到系統(tǒng)要求人員編號在生成人員信息時同時生成,每輸入一個人員信息編號順序加1。這樣就要求人員編號在增加人員時自動生成(增加1)且不重復(fù)。根據(jù)這個要求,可以考慮設(shè)置一個全局量:“當(dāng)前最大編號”,每增

18、加一個人員,當(dāng)前最大編號自動增1,然后新增加人員使用這個編號。為了保證系統(tǒng)能記憶這個編號,可以使用一個數(shù)據(jù)文件保存當(dāng)前這個編號。系統(tǒng)每次開始運(yùn)行前從文件讀入這個編號,隨著人員增加,編號自動增加,系統(tǒng)每次運(yùn)行結(jié)束時將這個編號寫入文件。本系統(tǒng)將初值(沒有一個用戶時)設(shè)置為0??紤]到人員的許多固定信息如:經(jīng)理、銷售經(jīng)理的固定月薪,銷售經(jīng)理、銷售人員提成,技術(shù)人員小時工資等都是一些不需要每個人員都要輸入的信息,所以可以將這些信息都保存在一個數(shù)據(jù)文件中,本系統(tǒng)為了方便起見,將這些信息與“最大編號”全部保存在一個文件中,并使用“基礎(chǔ)數(shù)據(jù)設(shè)置”模塊進(jìn)行設(shè)置和管理?;A(chǔ)數(shù)據(jù)文件也采用文本文件,基礎(chǔ)數(shù)據(jù)文件名:

19、Base.txt。本系統(tǒng)還提供“查詢本月經(jīng)營信息”幫助計算銷售總額,工資總額,并按照公式計算本月盈虧。綜合考慮系統(tǒng)具有下面8項功能模塊:增加人員,刪除人員,修改人員,查詢本月經(jīng)營信息,基礎(chǔ)數(shù)據(jù)設(shè)置,數(shù)據(jù)存盤,數(shù)據(jù)裝入。系統(tǒng)使用的數(shù)據(jù)文件格式如下:Base.txt:(格式:項目 數(shù)據(jù))經(jīng)理固定月薪 3000銷售經(jīng)理固定月薪2000銷售經(jīng)理提成 1銷售人員提成 2技術(shù)人員小時工資20ID6Person.txt:(格式:編號,姓名,人員類別,其它數(shù)據(jù),銷售員銷售額,技術(shù)人員工作小時)2shijinwan31000003hejinwei 14zengying 4 1005chenying26sunyi

20、ming 3150000注:人員類型編號1經(jīng)理;2銷售經(jīng)理;3銷售員;4技術(shù)人員1.4.2任務(wù)分工小組成員個人任務(wù)描述Xx 我主要負(fù)責(zé)小組分工合作,編寫添加函數(shù)、刪除函數(shù),以及撰寫論文的設(shè)計原理及部分內(nèi)容,完成最后的論文匯總。Xxx 我主要負(fù)責(zé)編寫程序的查找和修改模塊及主函數(shù)等程序功能,負(fù)責(zé)鏈接調(diào)試程序,結(jié)合大家感受撰寫論文的總結(jié)部分。Xx表1.1 任務(wù)分工 我主要負(fù)責(zé)編寫程序的菜單,顯示和刪除模塊,并負(fù)責(zé)撰寫論文的摘要,引言,致謝部分。15設(shè)備器材參考書目、計算機(jī)、編譯軟件Microsoft Visual Studio 201016課程設(shè)計意義通過設(shè)計此系統(tǒng),熟練掌握C+語言的基本知識和技能

21、,基本掌握面向?qū)ο蟪绦蜷_發(fā)的基本思路和方法,培養(yǎng)學(xué)生的動手操作能力,提高自主學(xué)藝能力,能夠利用所學(xué)的基本知識和技能,進(jìn)行簡單應(yīng)用程序設(shè)計。加深理解利用程序設(shè)計思想開發(fā)一個系統(tǒng)的整個流程,提高分析問題、解決問題和實際動手的能力。第二章 設(shè)計原理與運(yùn)行環(huán)境21 c+語言概述2.1.1 C+語言出現(xiàn)的歷史背景 偉大的C+語言之父,Bjarne Stroustrup博士曾經(jīng)說過:“一種程序設(shè)計思想要為人所用,不僅語言的特性必須是典雅的,而且它必須在真正的程序環(huán)境中能經(jīng)得起考驗。”面向?qū)ο蟪绦蛟O(shè)計方法的提出,以及它在編寫大規(guī)模程序方面顯示出的優(yōu)越性,使人們開始重視面向?qū)ο蟪绦蛟O(shè)計語言的研究。在面向過程的

22、ALGoL、ADA和MoDuLA2等語言的基礎(chǔ)上,逐步演變形成了面向?qū)ο蟮某绦蛟O(shè)計語言。20世紀(jì)60年代,美國國防部投入巨大的人力和物力,研制開發(fā)了ADA語言。ADA語言并非面向?qū)ο蟮某绦蛟O(shè)計語言,但它具有的模塊化、信息隱藏、數(shù)據(jù)抽和并發(fā)執(zhí)行等特點(diǎn)對于面向?qū)ο蟪绦蛟O(shè)計方法和技術(shù)起到了積極的推動作用。人們普遍認(rèn)為,ADA語言是一種基于對象的程序設(shè)計語言。1967年出現(xiàn)了simula67語言,它是面向?qū)ο蟪绦蛟O(shè)計語言的鼻祖,提出了對象的概念,并且支持類和繼承。隨后出現(xiàn)的Smalltalk語言繼續(xù)豐富和發(fā)展了面向?qū)ο蟪绦蛟O(shè)計的概念,并且提供了更加嚴(yán)格的信息隱藏機(jī)制。1980年問世的Smalltalk

23、80語言是Smalltalk語言的改進(jìn)版,開始向世人展現(xiàn)面向?qū)ο蟪绦蛟O(shè)計的魅力。 1982年,美國AT&T公司貝爾實驗室的Bjarne Stroustrup博士在c語言的基礎(chǔ)上引入并擴(kuò)充了面向?qū)ο蟮母拍?,發(fā)明了種新的程序語言。為了表達(dá)該語言與c語言的淵源關(guān)系,它被名為c+。此后c+語言歷經(jīng)了不斷地完善,例如1990年c+語言引入模板和異常處理的概念,1993年引入運(yùn)行時類型識別(RTTI)和名字空間(Name Space)的概念。1997年,c+語言成為美國國家標(biāo)準(zhǔn)(ANSI)。1998年,c+語言又成為了國際標(biāo)準(zhǔn)(ISO)。目前,c+語言已成為使用最廣泛的面向?qū)ο蟪绦蛟O(shè)計語言之一。c+語言是

24、以c語言為基礎(chǔ)的,支持c語言的所有語法和幾乎所有的技術(shù),因此也有人把c+語言看作是c語言的超集。同時c+語言支持面向?qū)ο蟪绦蛟O(shè)計方法的所有概念,它是一種非常實用的、功能極為強(qiáng)大的程序語言,相對而言較難掌握。2.1.2 C+語言的主要特點(diǎn)【優(yōu)點(diǎn)】C+設(shè)計成靜態(tài)類型、和C同樣高效且可移植的多用途程序設(shè)計語言。 C+設(shè)計成直接的和廣泛的支持多種程序設(shè)計風(fēng)格(程序化程序設(shè)計、資料抽象化、面向?qū)ο蟪绦蛟O(shè)計、泛型程序設(shè)計)。 C+設(shè)計成給程序設(shè)計者更多的選擇,即使可能導(dǎo)致程序設(shè)計者選擇錯誤。 C+設(shè)計成盡可能與C兼容,籍此提供一個從C到C+的平滑過渡。 C+避免平臺限定或沒有普遍用途的特性。 C+不使用會

25、帶來額外開銷的特性。 C+設(shè)計成無需復(fù)雜的程序設(shè)計環(huán)境。 出于保證語言的簡潔和運(yùn)行高效等方面的考慮,C+的很多特性都是以庫(如STL)或其他的形式提供的,而沒有直接添加到語言本身里。C+在一定程度上可以和C語言很好的結(jié)合,甚至大多數(shù)C語言程序是在C+的集成開發(fā)環(huán)境中完成的。C+相對眾多的面向?qū)ο蟮恼Z言,具有相當(dāng)高的性能。C+引入了面向?qū)ο蟮母拍睿沟瞄_發(fā)人機(jī)交互類型的應(yīng)用程序更為簡單、快捷。很多優(yōu)秀的程序框架包括MFC、QT、wxWidgets就是使用的C+。人們一般認(rèn)為,使用Java或C#的開發(fā)成本比C+低。但是,如果充分分析C+和這些語言的差別,會發(fā)現(xiàn)這句話的成立是有條件的。這個條件就是:

26、軟件規(guī)模和復(fù)雜度都比較小。如果不超過3萬行有效代碼(不包括生成器產(chǎn)生的代碼),這句話基本上還能成立。否則,隨著代碼量和復(fù)雜度的增加,C+的優(yōu)勢將會越來越明顯。造成這種差別的就是C+的軟件工程性。 【缺點(diǎn)】C+由于語言本身過度復(fù)雜,這甚至使人類難于理解其語義。更為糟糕的是C+的編譯系統(tǒng)受到C+的復(fù)雜性的影響,非常難于編寫,即使能夠使用的編譯器也存在了大量的問題,這些問題大多難于被發(fā)現(xiàn)。由于本身的復(fù)雜性,復(fù)雜的C+程序的正確性相當(dāng)難于保證。也有人提出不支持多線程的原語等缺陷。不過有如此多的知名人士提出了如此多的缺陷,正說明C+被廣泛使用和成功。C+語言由于過度的復(fù)雜性,以及與unix的文化相抵觸,

27、在unix/linux領(lǐng)域受到很多著名人士(比如Linux之父linus torvalds與著名黑客Eric S. Raymond)的強(qiáng)烈批評與抵制。22 基本操作1新建一個工程 首先鼠標(biāo)左鍵單擊“文件”菜單,選擇“新建”單擊鼠標(biāo)左鍵,系統(tǒng)將彈出一個窗口,單擊“工程”選項,將得到圖2.1所示窗口。請在“工程名稱”欄填入工程名,然后鼠標(biāo)左鍵單擊左邊窗口倒數(shù)第三項“Win32 Console Application”,使該項變藍(lán),然后鼠標(biāo)左鍵單擊“確定”按鈕。得到圖2.2所示窗口,選擇“一個空工程”,單擊“完成”得到圖2.3。再單擊“確定”得到圖2.4所示的窗口。圖2.1新建工程窗口圖2.2 選擇

28、控制臺程序圖2.3 創(chuàng)建新工程圖2.4 Visual C+ 6.0 的工作環(huán)境2新建一個源文件 要新建一個C程序源文件可以選擇“文件”菜單的“新建”選項,在彈出的窗口中選擇“文件”選項單擊,得到如圖2.5所示的窗口,其“位置”欄中的內(nèi)容是默認(rèn)的,在“添加到工程”前打勾,“工程名”也是默認(rèn)的。圖2.5 新建源文件3編輯程序編輯環(huán)境如圖2.6所示。把程序代碼輸入計算機(jī),如圖2.7所示。圖2.6 編輯區(qū)域圖2.7 編輯程序4. 編譯、連接、運(yùn)行、調(diào)試一個程序 當(dāng)源文件編輯完成后,就可以編譯、連接和運(yùn)行程序了。方法如下:單擊“組建”菜單的“編譯”選項,將完成編譯工作得到*.cpp目標(biāo)文件(文件名就是源

29、文件的名字),編譯結(jié)果將在窗口最下面的輸出窗口顯示??筛鶕?jù)窗口的提示修改源文件以改正錯誤。單擊“組建”菜單的“組建”選項,完成連接工作得到可執(zhí)行文件(文件名是工程名),連接的結(jié)果也將在窗口最下面的輸出窗口顯示。單擊“組建”菜單的“全部重建”選項,將完成編譯和連接兩項工作,編譯和連接的結(jié)果將在輸出窗口顯示。單擊“組建”菜單的“執(zhí)行”選項,可運(yùn)行程序,程序運(yùn)行的結(jié)果如圖2.8所示。圖2.8 程序運(yùn)行結(jié)果第三章 系統(tǒng)分析與設(shè)計31系統(tǒng)設(shè)計3.1.1系統(tǒng)總體框架使用面向?qū)ο蟮某绦蛟O(shè)計思想進(jìn)行分析,整個系統(tǒng)涉及兩大類信息和操作,公司,人員。所以系統(tǒng)主要涉及兩個大類:公司類Company、人員類Perso

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

31、,操作有所不同,如銷售員包含銷售額,而技術(shù)人員包含工作小時數(shù)且計算工資的方法不同,所以應(yīng)當(dāng)為4類人員創(chuàng)建相應(yīng)的Person類的派生類。(3)為了使公司類可以方便處理人員信息,可以考慮將公司類確定為人員類的友元類或者人員類提供公共的方法以便公司類進(jìn)行操作。為了公司類可以用共同方法操作人員類,可以將人員類的方法確定為虛函數(shù)。3.1.2類的層次圖 類的層次圖如圖3.1所示。Person No,Name,Duty,Earning,next,Person(),CalcSalary(),Output()Manager Sales SalesManager Technician Manager(), Amo

32、unt, Amount, t,CalcSalary(), Sales(),GetAmount(), SalesManager(), Technician(),Output() SetAmount(), SetAmount(), GetT(),SetT(),CalcSalary(), CalcSalary(), CalcSalary(),Output() Output() Output()3.1 類的層次圖其中:Person 類的No-人員編號,Name-人員姓名,Duty-人員類別,Earning-工資,next-指向下一個人員的指針;Person 類的CalcSalary(),Output(

33、)定義為純虛函數(shù)分別表示要計算人員工資和輸出人員信息,由于定義純虛函數(shù),所以Person是抽象類,具體計算工資,輸出人員信息由派生類完成。各個派生的類,包含本類對象特有的數(shù)據(jù),Sales:Amount-銷售員銷售額,SalesManager:Amount-銷售經(jīng)理的總銷售額(系統(tǒng)統(tǒng)計各個銷售員銷售額得到銷售經(jīng)理的總銷售額),Technician:t-技術(shù)人員工作小時數(shù)。Company Person *Worker,Clear(),Company(),Company(),Add(),Delete(),Modify(),Query(),Set(),Save(),Load()其中:Worker就是人

34、員鏈表。Clear()用于清除人員鏈表所有結(jié)點(diǎn)。Add(),Delete(),Modify(),Query(),Set(),Save(),Load()分別表示系統(tǒng)各個功能模塊:增加人員,刪除人員,修改人員,查詢本月經(jīng)營信息,基礎(chǔ)數(shù)據(jù)設(shè)置,數(shù)據(jù)存盤,數(shù)據(jù)裝入。3.1.3系統(tǒng)流程圖主函數(shù)首先調(diào)用菜單函數(shù),顯示菜單,菜單函數(shù)給出用戶可選擇的項目,用戶可以通過選擇該項前的代碼來實現(xiàn)想要實現(xiàn)的功能。菜單函數(shù)返回一個值給主函數(shù),主函數(shù)根據(jù)返回值,調(diào)用相應(yīng)函數(shù)。主函數(shù)流程圖如圖3.2所示圖3.2 主函數(shù)流程圖32系統(tǒng)關(guān)鍵算法流程圖(1)增加人員Company:Add()圖3.3 增加人員函數(shù)流程圖(2) 刪

35、除人員Company:Delete()圖3.4 刪除人員函數(shù)流程圖(3) 顯示本月經(jīng)營信息Company:Display() 圖3.5 顯示本月經(jīng)營信息函數(shù)流程圖(4) 查詢Company:Query()圖3.6 查詢函數(shù)流程圖(4) 保存Company:Save() 圖3.7 保存函數(shù)流程圖(7) 數(shù)據(jù)裝入Company:Load()圖3.7 數(shù)據(jù)裝入函數(shù)流程圖第四章 系統(tǒng)功能的實現(xiàn)4.1菜單函數(shù)菜單函數(shù)首先標(biāo)出歡迎使用公司人員管理系統(tǒng),然后給出用戶可選擇的項目,用戶可以通過選擇該項前的代碼來實現(xiàn)想要實現(xiàn)的功能。程序源代碼如下:void main()char c;Company a;dosy

36、stem(cls);coutntt* 公司人員管理系統(tǒng) *n;coutttt1增加人員n;coutttt2刪除人員n;coutttt3顯示本月經(jīng)營信息n;coutttt4基礎(chǔ)數(shù)據(jù)設(shè)置n;coutttt5查詢n;coutttt6保存n;coutc;switch(c)case 1: a.Add(); system(pause);break;case 2: a.Delete();system(pause);break;case 3: a.display(); system(pause);break;case 4: a.Set(); system(pause);break;case 5: a.Quer

37、y(); system(pause);break;case 6: a.Save(); system(pause);break;while(c!=7);程序運(yùn)行時,主界面如圖4.1所示圖4.1 菜單功能實現(xiàn)用戶可以通過選擇該項前的代碼來實現(xiàn)想要實現(xiàn)的功能,例如,要添加記錄,從鍵盤輸入1,按回車后,用戶可按相應(yīng)的提示進(jìn)行添加操作。4.2添加功能添加功能要求:能根據(jù)公司人事的變動情況,添加記錄。人員編號在生成人員信息時自動生成,每輸入一個人員信息編號順序加1。程序源代碼如下:void Company:Add() Person *p; /新結(jié)點(diǎn)指針 int Duty; char Name20; dou

38、ble Amount,T; coutn* 新增員工 *n; /輸入員工信息 ID+; coutDuty; coutName; if(Duty=3)coutAmount; else if(Duty=4)coutT; /創(chuàng)建新員工結(jié)點(diǎn) switch(Duty)case 1:p=new Manager(ID,Name,Duty); break;case 2:p=new SalesManager(ID,Name,Duty); break;case 3:p=new Sales(ID,Name,Duty,Amount); break;case 4:p=new Technician(ID,Name,Duty

39、,T); break;p-next=0; /員工結(jié)點(diǎn)加入鏈表 if(Worker) /若已經(jīng)存在結(jié)點(diǎn)Person *p2;p2=Worker;while(p2-next) /查找尾結(jié)點(diǎn)p2=p2-next; p2-next=p; /連接 else /若不存在結(jié)點(diǎn)(表空)Worker=p; /連接在主界面中,選擇1(即輸入1,回車),即可輸入要添加的信息,如圖4.2所示。系統(tǒng)會羅列需要添加的項目,用戶只需根據(jù)對應(yīng)項目輸入信息。圖4.2 添加功能實現(xiàn)4.3刪除功能刪除功能要求:選中某個人的ID時,可對此人的相應(yīng)數(shù)據(jù)進(jìn)行刪除。程序源代碼如下:void Company:Delete() /刪除人員 i

40、nt No; coutn* 刪除員工 *n; coutNo; /查找要刪除的結(jié)點(diǎn) Person *p1,*p2; p1=Worker; while(p1)if(p1-No=No) break; elsep2=p1;p1=p1-next; /刪除結(jié)點(diǎn) if(p1!=NULL)/若找到結(jié)點(diǎn),則刪除if(p1=Worker) /若要刪除的結(jié)點(diǎn)是第一個結(jié)點(diǎn)Worker=p1-next;delete p1; else /若要刪除的結(jié)點(diǎn)是后續(xù)結(jié)點(diǎn)p2-next=p1-next;delete p1;cout找到并刪除n; else /未找到結(jié)點(diǎn)cout未找到!n;在主界面中輸入2,系統(tǒng)提示輸入要刪除的名字,

41、用戶從鍵盤輸入名字,系統(tǒng)便自動刪除要刪除的通訊錄信息,并提示已經(jīng)刪除成功,如圖4.3和4.4所示:圖4.3 刪除功能實現(xiàn)圖4.4 顯示找到并刪除4.4顯示功能顯示功能要求:能夠顯示這些人員的全部信息。程序源代碼如下:void Company:display() coutn* 公司人員本月工資和銷售信息 *n; cout編號t姓名tt職位tt月工資tt銷售額或工作時間Duty=3)sum+=(Sales *)p)-GetAmount(); p=p-next; p=Worker; double sum2=0; /工資總和 while(p) if(p-Duty=2)(SalesManager *)p

42、)-SetAmount(sum); /sum和sum2必須分開計算 p-Output(); sum2+=p-Earning; p=p-next; cout本月盈利:sum*0.20-sum2 (按照20利潤計算)endl;/*設(shè)置基礎(chǔ)數(shù)據(jù)*/void Company:Set()coutn* 設(shè)置基礎(chǔ)數(shù)據(jù) *n;cout經(jīng)理固定月薪ManagerSalaryManagerSalary; cout銷售經(jīng)理固定月薪SalesManagerSalarySalesManagerSalary; cout銷售經(jīng)理提成SalesManagerPercentSalesManagerPercent; cout銷售

43、人員提成SalesPercentSalesPercent;cout技術(shù)人員小時工資WagePerHourWagePerHour;cout=IDID;在主界面中輸入3,顯示通訊錄中所有人信息。如圖4.5所示:圖4.5 顯示功能實現(xiàn)4.5基礎(chǔ)數(shù)據(jù)設(shè)置基礎(chǔ)設(shè)置要求:對各類人員的基本信息進(jìn)行初始設(shè)置。程序源代碼如下:void Company:Load() /數(shù)據(jù)裝入(包括基礎(chǔ)數(shù)據(jù),人員數(shù)據(jù))/基礎(chǔ)數(shù)據(jù)裝入ifstream fBase; /建立文件輸入流對象char buf80; /buf用于保存數(shù)據(jù)文件中的注釋字符串fBase.open(base.txt,ios:in);fBasebufManager

44、Salary; /經(jīng)理固定月薪fBasebufSalesManagerSalary; /銷售經(jīng)理固定月薪fBasebufSalesManagerPercent; /銷售經(jīng)理提成fBasebufSalesPercent; /銷售人員提成fBasebufWagePerHour; /技術(shù)人員小時工資fBasebufID; /員工標(biāo)識fBase.close(); /人員數(shù)據(jù)數(shù)據(jù)裝入ifstream fPerson;Person *p=Worker;int No; char Name20; int Duty;double Amount,T;fPerson.open(person.txt,ios:in);

45、/讀一條記錄fPersonNoNameDuty;if(Duty=3)fPersonAmount;else if(Duty=4)fPersonT;while(fPerson.good()/創(chuàng)建員工結(jié)點(diǎn)switch(Duty)case 1:p=new Manager(No,Name,Duty); break;case 2:p=new SalesManager(No,Name,Duty); break;case 3:p=new Sales(No,Name,Duty,Amount); break;case 4:p=new Technician(No,Name,Duty,T); break;p-next=0;/員工結(jié)點(diǎn)加入鏈表

溫馨提示

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

最新文檔

評論

0/150

提交評論