小型公司工資管理系統(tǒng)設(shè)計(jì)課設(shè)報(bào)告_第1頁(yè)
小型公司工資管理系統(tǒng)設(shè)計(jì)課設(shè)報(bào)告_第2頁(yè)
小型公司工資管理系統(tǒng)設(shè)計(jì)課設(shè)報(bào)告_第3頁(yè)
小型公司工資管理系統(tǒng)設(shè)計(jì)課設(shè)報(bào)告_第4頁(yè)
小型公司工資管理系統(tǒng)設(shè)計(jì)課設(shè)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、基于 c+的面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)例課程設(shè)計(jì)報(bào)告報(bào)告題目: 小型公司工資管理系統(tǒng)設(shè)計(jì) 作者所在系部: 計(jì)算機(jī)科學(xué)與工程系 作者所在專業(yè): 計(jì)算機(jī)應(yīng)用技術(shù) 作者所在班級(jí): * 作 者 姓 名 : * 指導(dǎo)教師姓名: * 完 成 時(shí) 間 : 2012-6-21 北華航天工業(yè)學(xué)院教務(wù)處制摘 要在當(dāng)前的市場(chǎng)經(jīng)濟(jì)體制下,一個(gè)公司要好的發(fā)展,不但要有好的管理制度,優(yōu)秀的管理人員,同時(shí)也要有一個(gè)健全的并且適合自身特點(diǎn)的公司人員管理和員工工資管理系統(tǒng),以實(shí)現(xiàn)公司人員管理、工資管理的目。本文在 microsoft visual c+ 6.0 環(huán)境下,利用 c+語(yǔ)言編寫(xiě)程序,實(shí)現(xiàn)了公司對(duì)雇員工資信息的管理操作。本系統(tǒng)

2、一簡(jiǎn)單易懂為原則,便于操作。本系統(tǒng)一簡(jiǎn)單易懂為原則,便于操作。本系統(tǒng)主要有九個(gè)功能模塊:1、修改職工信息、 2、查詢職工信息、3、刪除職工信息、4、添加職工信息、5、顯示所有職工信息、6、計(jì)算員工工資、7、讀入員工信息 8、保存員工信息、9、統(tǒng)計(jì)員工信息。已經(jīng)通過(guò)全面的系統(tǒng)測(cè)試,能夠很好的運(yùn)行,達(dá)到了預(yù)期的效果。關(guān)鍵詞: c+ 功能模塊 工資 信息目錄目錄摘摘 要要.i目錄目錄.ii課程設(shè)計(jì)任務(wù)書(shū)課程設(shè)計(jì)任務(wù)書(shū).iv第一章第一章 緒論緒論.11 11 1 課程設(shè)計(jì)的目的課程設(shè)計(jì)的目的.11 12 2 課程設(shè)計(jì)的背景和意義課程設(shè)計(jì)的背景和意義.1121 課程設(shè)計(jì)的背景 .1122 課程設(shè)計(jì)的意義

3、 .21 13 3 課程設(shè)計(jì)環(huán)境課程設(shè)計(jì)環(huán)境.2第二章第二章 需求分析需求分析.321 問(wèn)題描述問(wèn)題描述.322 功能要求功能要求.322 問(wèn)題的解決方案問(wèn)題的解決方案.3第三章第三章 系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì).43 31 1 數(shù)據(jù)設(shè)計(jì)數(shù)據(jù)設(shè)計(jì).4311 類設(shè)計(jì) .4312 類之間的關(guān)系 .6313 函數(shù)設(shè)計(jì) .632 結(jié)構(gòu)設(shè)計(jì) .6321 系統(tǒng)流程圖 .6322 界面設(shè)計(jì) .7第四章第四章 系統(tǒng)實(shí)現(xiàn)系統(tǒng)實(shí)現(xiàn).84 41 1 類實(shí)現(xiàn)類實(shí)現(xiàn).84 43 3 主函數(shù)實(shí)現(xiàn)主函數(shù)實(shí)現(xiàn).35第五章第五章 系統(tǒng)測(cè)試系統(tǒng)測(cè)試.365 51 1 模塊測(cè)試模塊測(cè)試.365 52 2 課程設(shè)計(jì)過(guò)程中遇到的問(wèn)題課程設(shè)計(jì)過(guò)程

4、中遇到的問(wèn)題.37總總 結(jié)結(jié).39致致 謝謝.40參考文獻(xiàn)參考文獻(xiàn) .40附附 錄錄.40課題名稱課題名稱小型公司工資管理系統(tǒng)設(shè)計(jì)完成時(shí)間完成時(shí)間2012-6-212012-6-21指導(dǎo)教師指導(dǎo)教師賈振華賈振華職稱職稱講師講師學(xué)生姓名學(xué)生姓名孟偉閃孟偉閃班班 級(jí)級(jí)1151311513總體設(shè)計(jì)要求和技術(shù)要點(diǎn)總體設(shè)計(jì)要求和技術(shù)要點(diǎn)1、問(wèn)題描述某公司需要存儲(chǔ)雇員的編號(hào)、姓名、性別、所在部門,級(jí)別,并進(jìn)行工資的計(jì)算。其中,雇員分為經(jīng)理、技術(shù)人員、銷售人員和銷售經(jīng)理。四類人員的月薪計(jì)算方法如下:經(jīng)理拿固定月薪;技術(shù)人員按小時(shí)領(lǐng)取月薪;銷售人員按其當(dāng)月銷售額的提成領(lǐng)取工資;銷售經(jīng)理既拿固定月薪也領(lǐng)取銷售提

5、成。設(shè)計(jì)一程序能夠?qū)救藛T進(jìn)行管理,應(yīng)用到繼承、抽象類、虛函數(shù)、虛基類、多態(tài)和文件的輸入/輸出等內(nèi)容。2、功能要求(1)添加功能:程序能夠任意添加上述四類人員的記錄,可提供選擇界面供用戶選擇所要添加的人員類別,要求員工的編號(hào)要唯一,如果添加了重復(fù)編號(hào)的記錄時(shí),則提示數(shù)據(jù)添加重復(fù)并取消添加。(2)查詢功能:可根據(jù)編號(hào)、姓名等信息對(duì)已添加的記錄進(jìn)行查詢,如果未找到,給出相應(yīng)的提示信息,如果找到,則顯示相應(yīng)的記錄信息;(3)顯示功能:可顯示當(dāng)前系統(tǒng)中所有記錄,每條記錄占據(jù)一行。(4)編輯功能:可根據(jù)查詢結(jié)果對(duì)相應(yīng)的記錄進(jìn)行修改,修改時(shí)注意編號(hào)的唯一性。(5)刪除功能:主要實(shí)現(xiàn)對(duì)已添加的人員記錄進(jìn)行

6、刪除。如果當(dāng)前系統(tǒng)中沒(méi)有相應(yīng)的人員記錄,則提示“記錄為空!”并返回操作;否則,輸入要?jiǎng)h除的人員的編號(hào)或姓名,根據(jù)所輸入的信息刪除該人員記錄,如果沒(méi)有找到該人員信息,則提示相應(yīng)的記錄不存。(6)統(tǒng)計(jì)功能:能根據(jù)多種參數(shù)進(jìn)行人員的統(tǒng)計(jì)。例如,統(tǒng)計(jì)四類人員數(shù)量以及總數(shù),或者統(tǒng)計(jì)男、女員工的數(shù)量,或者統(tǒng)計(jì)平均工資、最高工資、最低工資等信息。(7)保存功能:可將當(dāng)前系統(tǒng)中各類人員記錄存入文件中,存入方式任意。(8)讀取功能:可將保存在文件中的人員信息讀入到當(dāng)前系統(tǒng)中,供用戶進(jìn)行使用。工作內(nèi)容及時(shí)間進(jìn)度安排工作內(nèi)容及時(shí)間進(jìn)度安排16 月 4 日10 日:布置任務(wù),軟件設(shè)計(jì);26 月 11 日18 日:編寫(xiě)

7、代碼,上機(jī)調(diào)試;36 月 19、20、21 日:軟件驗(yàn)收,撰寫(xiě)課程設(shè)計(jì)報(bào)告;4各班在 6 月 22 日下午五點(diǎn)前將課程設(shè)計(jì)報(bào)告收齊并上交。課程設(shè)計(jì)任務(wù)書(shū)第一章 緒論11 課程設(shè)計(jì)的目的1)此次課程設(shè)計(jì)的目的是以c+程序設(shè)計(jì)基礎(chǔ)為基礎(chǔ),針對(duì)具有一定難度的綜合性題目,進(jìn)行分析、編程、調(diào)試和運(yùn)行,進(jìn)一步掌握面向?qū)ο蠛兔嫦蜻^(guò)程程序設(shè)計(jì)的基本方法和編程技巧, 鞏固所學(xué)理論知識(shí), 使理論與實(shí)踐相結(jié)合, 提高分析問(wèn)題、解決問(wèn)題的能力。要求學(xué)生達(dá)到熟練掌握 c+語(yǔ)言的基本知識(shí)和技能。2)基本掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思路和方法3)能夠利用所學(xué)的基本知識(shí)和技能,解決簡(jiǎn)單的面向?qū)ο蟪绦蛟O(shè)計(jì)問(wèn)題。4)通過(guò)設(shè)計(jì)一個(gè)簡(jiǎn)

8、單的小型公司工資管理系統(tǒng)小型公司工資管理系統(tǒng) ,進(jìn)一步熟悉 c+中類的概念、類的封裝、 繼承和多態(tài)的實(shí)現(xiàn)方式;掌握文件的錄入、查找;對(duì)象指針的使用。了解系統(tǒng)開(kāi)發(fā)的需要分析, 類層次設(shè)計(jì),模塊分析, 編碼測(cè)試,模塊組裝與整體調(diào)試的全過(guò)程, 逐步熟悉程序設(shè)計(jì)的方法,并養(yǎng)成良好的編程習(xí)慣。 12 課程設(shè)計(jì)的背景和意義121 課程設(shè)計(jì)的背景1. 理論研究基礎(chǔ)c+面向?qū)ο蟪绦蛟O(shè)計(jì)是計(jì)算機(jī)專業(yè)的基礎(chǔ)課程,本課程按照軟件程序設(shè)計(jì)所需能力進(jìn)行教學(xué)設(shè)計(jì),提出以項(xiàng)目模塊方式帶動(dòng)相關(guān)知識(shí)點(diǎn)、實(shí)踐項(xiàng)目和理論并行的思路,將案例貫穿于課程始終,對(duì)原有的教學(xué)體系、教學(xué)內(nèi)容進(jìn)行重新編排,按照從易到難的原則,將其巧妙地融入到項(xiàng)

9、目開(kāi)發(fā)過(guò)程中,降低學(xué)習(xí)難度,提高學(xué)生學(xué)習(xí)的信心,有效培養(yǎng)學(xué)生的應(yīng)用能力和學(xué)習(xí)能力。2. 技術(shù)層面的支持本系統(tǒng)運(yùn)用到:類與對(duì)象在 c+中的實(shí)現(xiàn)、靜態(tài)數(shù)據(jù)成員、運(yùn)算符重載、友元函數(shù)繼承與派生的基本知識(shí)、單繼承和多繼承、虛基類的作用與使用、虛函數(shù)的定義和使用、純虛函數(shù)和抽象類的定義和使用、輸入輸出流的概念、輸入、輸出流操作、文件的創(chuàng)建、打開(kāi)、讀寫(xiě)、關(guān)閉等操作。122 課程設(shè)計(jì)的意義本課程按照軟件程序設(shè)計(jì)所需能力進(jìn)行教學(xué)設(shè)計(jì),提出以項(xiàng)目模塊方式帶動(dòng)相關(guān)知識(shí)點(diǎn)、實(shí)踐項(xiàng)目和理論并行的思路,將案例貫穿于課程始終,對(duì)原有的教學(xué)體系、教學(xué)內(nèi)容進(jìn)行重新編排,按照從易到難的原則,將其巧妙地融入到項(xiàng)目開(kāi)發(fā)過(guò)程中,降低

10、學(xué)習(xí)難度,提高學(xué)生學(xué)習(xí)的信心,有效培養(yǎng)學(xué)生的應(yīng)用能力和學(xué)習(xí)能力。小型公司工資管理對(duì)公司管理有著很重要的作用。在當(dāng)今社會(huì)應(yīng)用廣泛。13 課程設(shè)計(jì)環(huán)境硬件平臺(tái): cpu:i5。2.67ghz。 ram:512mb 以上。軟件平臺(tái): 操作系統(tǒng):windows xp/ windows 7 編輯環(huán)境:visual c+ 6.0分辨率:最佳效果 1024768 像第二章 需求分析21 問(wèn)題描述 某公司需要存儲(chǔ)雇員的編號(hào)、姓名、性別、所在部門,級(jí)別,并進(jìn)行工資的計(jì)算。其中,雇員分為經(jīng)理、技術(shù)人員、銷售人員和銷售經(jīng)理。四類人員的月薪計(jì)算方法如下:經(jīng)理拿固定月薪;技術(shù)人員按小時(shí)領(lǐng)取月薪;銷售人員按其當(dāng)月銷售額的

11、提成領(lǐng)取工資;銷售經(jīng)理既拿固定月薪也領(lǐng)取銷售提成。設(shè)計(jì)一程序能夠?qū)救藛T進(jìn)行管理,應(yīng)用到繼承、抽象類、虛函數(shù)、虛基類、多態(tài)和文件的輸入/輸出等內(nèi)容。22 功能要求(1)添加功能:程序能夠任意添加上述四類人員的記錄,可提供選擇界面供用戶選擇所要添加的人員類別,要求員工的編號(hào)要唯一,如果添加了重復(fù)編號(hào)的記錄時(shí),則提示數(shù)據(jù)添加重復(fù)并取消添加。(2)查詢功能:可根據(jù)編號(hào)、姓名等信息對(duì)已添加的記錄進(jìn)行查詢,如果未找到,給出相應(yīng)的提示信息,如果找到,則顯示相應(yīng)的記錄信息;(3)顯示功能:可顯示當(dāng)前系統(tǒng)中所有記錄,每條記錄占據(jù)一行。(4)編輯功能:可根據(jù)查詢結(jié)果對(duì)相應(yīng)的記錄進(jìn)行修改,修改時(shí)注意編號(hào)的唯一性

12、。(5)刪除功能:主要實(shí)現(xiàn)對(duì)已添加的人員記錄進(jìn)行刪除。如果當(dāng)前系統(tǒng)中沒(méi)有相應(yīng)的人員記錄,則提示“記錄為空!”并返回操作;否則,輸入要?jiǎng)h除的人員的編號(hào)或姓名,根據(jù)所輸入的信息刪除該人員記錄,如果沒(méi)有找到該人員信息,則提示相應(yīng)的記錄不存。(6)統(tǒng)計(jì)功能:能根據(jù)多種參數(shù)進(jìn)行人員的統(tǒng)計(jì)。例如,統(tǒng)計(jì)四類人員數(shù)量以及總數(shù),或者統(tǒng)計(jì)男、女員工的數(shù)量,或者統(tǒng)計(jì)平均工資、最高工資、最低工資等信息。(7)保存功能:可將當(dāng)前系統(tǒng)中各類人員記錄存入文件中,存入方式任意。(8)讀取功能:可將保存在文件中的人員信息讀入到當(dāng)前系統(tǒng)中,供用戶進(jìn)行使用。22 問(wèn)題的解決方案根據(jù)系統(tǒng)功能要求,可以將問(wèn)題解決分為以下步驟:(1)應(yīng)

13、用系統(tǒng)分析,建立該系統(tǒng)的功能模塊框圖以及界面的組織和設(shè)計(jì);(2)分析系統(tǒng)中的各個(gè)實(shí)體及它們之間的關(guān)系;(3)根據(jù)問(wèn)題描述,設(shè)計(jì)系統(tǒng)的類層次;(4)完成類層次中各個(gè)類的描述;(5)完成類中各個(gè)成員函數(shù)的定義;(6)完成系統(tǒng)的應(yīng)用模塊;(7)功能調(diào)試;(8)完成系統(tǒng)總結(jié)報(bào)告。第三章 系統(tǒng)設(shè)計(jì)31 數(shù)據(jù)設(shè)計(jì)311 類設(shè)計(jì)根據(jù)課程設(shè)計(jì)要求,需要定義六個(gè)類:雇員類(基類) (worker) (如表 3-1-1) 、經(jīng)理類(manager) (如表 3-1-2) 、技術(shù)人員類(technologyman) (表 3-1-3) 、銷售人員類(saleman) (如表 3-1-4) 、銷售經(jīng)理類(salema

14、nager) (如表 3-1-5)和管理類(control)(如表 3-1-6) 。表 3-1-1 雇員類數(shù)據(jù)成員:編號(hào) int num; 姓名 char name20; 性別 char sex5; 部門 char branch20;int mark; static int count, static int count1, static int count2, static int count3,static int count4, static int count5, static int count6; int basic; double worktime;double xiaoshou

15、e; int job; 雇員類成員函數(shù): worker() worker(int mark) virtual worker() static int display1() friend istream& operator (istream& in,worker& w) ;friend ostream& operator (istream& in,manager& w) ;friend ostream& operator (istream& in,technologyman& w) ;friend ostream& operator (istream& in,saleman& w) ;frien

16、d ostream& operator (istream& in,salemanager& s) ;friend ostream& operator 、 operator mark=mark; count+; virtual worker() cout員工類被析構(gòu);(istream& in,worker& w) ; friend ostream& operator (ostream& out,worker& w); static int display1() return count; void input(); virtual void inputmoney(); virtual void

17、display(); virtual void display2()=0; virtual void money()=0; char *getjibie() return jibie; double getworktime()return worktime; double getxiaoshoue() return xiaoshoue; worker * next; int num; char name20; char sex5; char branch20;/部門 char jibie20; int mark; static int count,count1,count2,count3,co

18、unt4,count5,count6; int basic; double worktime; double xiaoshoue; int job; /職務(wù);(2)經(jīng)理類:class manager:virtual public worker /經(jīng)理 public:manager() manager(int mark):worker(mark) manager() cout經(jīng)理類被析構(gòu);(istream& in,manager& w) ; friend ostream& operator (ostream& out,manager& w); void inputmoney() job=1; c

19、out請(qǐng)輸入職員基本工資:basic; count3+; void display2() cout職務(wù):經(jīng)理 職員基本工資 : endl; coutbasic; void money() cout該員工的實(shí)際工資是:basicendl; ;(3)技術(shù)人員類:class technologyman:virtual public worker /技術(shù)人員public:technologyman() technologyman(int mark):worker(mark) technologyman() cout技術(shù)人員類被析構(gòu);endl; void inputmoney() job=3; cout

20、請(qǐng)輸入職員工作時(shí)間:worktime; count5+; void display2()cout職務(wù):技術(shù)人員 職員工作時(shí)間:endl; coutworktime; void money() jine=35; cout該員工的實(shí)際工資是:(jine*worktime)(istream& in,technologyman& w) ; friend ostream& operator (ostream& out,technologyman& w); int jine; ;(4)銷售人員類:class saleman:virtual public worker /銷售人員 public:salema

21、n()saleman(int mark):worker(mark)saleman() cout銷售人員類被析構(gòu);endl;void inputmoney()job=2;cout請(qǐng)輸入職員銷售額:xiaoshoue;ount4+;oid display2()cout職務(wù):銷售人員 職員銷售額: endl; coutxiaoshoue;void money() tichengbili=0.05;cout該員工的實(shí)際工資是:xiaoshoue*tichengbili(istream& in,saleman& w) ;friend ostream& operator (ostream& out,sal

22、eman& w);double tichengbili; ;(5)銷售經(jīng)理:class salemanager: public manager, public saleman /銷售經(jīng)理public: salemanager() salemanager(int mark):worker(mark) salemanager() cout銷售經(jīng)理類被析構(gòu);endl; void inputmoney() job=4; cout請(qǐng)輸入職員基本工資,銷售額:basicxiaoshoue; count6+; void display2() cout職務(wù):銷售經(jīng)理 職員基本工資,銷售額:endl; cout

23、basic xiaoshoue; void money() tichengbili=0.03; cout該員工的實(shí)際工資是:basic+xiaoshoue*tichengbili(istream& in,salemanager& s) ; friend ostream& operator next; /指向下一個(gè)節(jié)點(diǎn) delete head; /釋放空間 head=p; head=null; void showface(); void changeinformation();/修改 void cancelinformation();/刪除 void addinformation(); /添加

24、void showinformation(); /顯示 void searchinformation(); / 查詢 void countinformation(); / 計(jì)算 void readinformation(); / 讀入 void keepinformation(); / 保存 void tongjiformation(); /統(tǒng)計(jì); 42 函數(shù)實(shí)現(xiàn)(雇員類) int worker:count=0; int worker:count1=0; int worker:count2=0; int worker:count3=0; int worker:count4=0; int wor

25、ker:count5=0; int worker:count6=0; void worker:input() cout請(qǐng)輸入職員信息:endl; coutnum; coutname; int i; coutsex; if(strcmp(sex,nan)=0|strcmp(sex,nv)=0)if(strcmp(sex,nan)=0) count1+; else count2+;break;else cout輸入錯(cuò)誤請(qǐng)重新輸入endl; coutbranch; void worker:inputmoney() cout基本工資:basic; void worker:display() cout編

26、號(hào):num 姓名:name 性別:sex 部門:(istream& in,worker& w) w.input(); w.inputmoney(); return in; ostream& operator (istream& in,manager& w) w.input(); w.inputmoney(); return in; ostream& operator (istream& in,technologyman& w) w.input(); w.inputmoney(); return in; ostream& operator (istream& in,saleman& w) w.i

27、nput(); w.inputmoney(); return in; ostream& operator (istream& in,salemanager& s) s.input(); s.inputmoney(); return in; ostream& operator (ostream& out,salemanager& s) s.display(); s.display2(); return out; (管理類)void control:showface() control control1; int i;do cout*endl;cout* *endl; cout* 歡迎使用本職工信

28、息管理系統(tǒng) *endl; cout* 1、添加職工信息 2、查詢職工信息 *endl; cout* 3、刪除職工信息 4、修改職工信息 *endl;cout* 5、顯示所有職工信息 6、計(jì)算員工工資 *endl; cout* 7、讀入員工信息 8、保存員工信息 *endl; cout* 9、統(tǒng)計(jì)員工信息 0、退出系統(tǒng) *endl; cout* 請(qǐng)選擇相應(yīng)編號(hào): *endl;cout*i;if(i9|i0) cout輸入錯(cuò)誤請(qǐng)重新輸入endl;else break; /選擇相應(yīng)標(biāo)號(hào)所對(duì)應(yīng)的功能 switch(i)case 1: control1.addinformation(); break;

29、case 2: control1.searchinformation(); break;case 3: control1.cancelinformation(); break; case 4: control1.changeinformation(); break; case 5: control1.showinformation(); break; case 6: control1.countinformation(); break;case 7: control1.readinformation(); break;case 8: control1.keepinformation(); br

30、eak;case 9: control1.tongjiformation(); break;case 0: break; default: cout選擇錯(cuò)誤,請(qǐng)重新選擇!endl; while(i!=0); void control:addinformation() /添加職工信息 control control1; worker* p=null; /新增結(jié)點(diǎn)指針 int i; /選擇變量 do /添加職工信息菜單 cout*endl;cout* *endl;cout* 請(qǐng)選擇增加的員工種類 *endl;cout* 1、增加經(jīng)理 2、增加銷售人員 *endl;cout* 3、增加技術(shù)人員 4、

31、增加銷售經(jīng)理 *endl;cout* 5、返回上級(jí)菜單 *endl;cout* *endl;cout* 請(qǐng)選擇相應(yīng)編號(hào): *endl; cout*i;if(i5|i=0) cout輸入錯(cuò)誤請(qǐng)重新輸入(*p); break; case 2: p=new saleman(2); cin(*p); break; case 3: p=new technologyman(3); cin(*p); break; case 4: p=new salemanager(4); cin(*p); break; case 5: break; p-next=null;/員工結(jié)點(diǎn)加入鏈表 if(i!=5) if (he

32、ad!=null) /鏈表已經(jīng)存在 worker* p1=null,* p2=null; /指針初始化 p1=head; if(p1-num=p-num) cout添加重復(fù)!next; p2-next=p; /連接結(jié)點(diǎn) cout信息添加成功!endl; else /鏈表不存在 head=p; /連接結(jié)點(diǎn) cout信息添加成功!endl; while (i!=5); void control:cancelinformation() /刪除職工信息 worker*p1=null,*p2=null; p1=head; if(p1=null) cout 系統(tǒng)暫無(wú)信息,無(wú)法刪除,請(qǐng)錄入信息!endl;

33、return; int i; /選擇變量 do /刪除職工信息菜單cout*endl;cout* *endl;cout* 請(qǐng)選擇刪除方式 *endl;cout* 1、按照編號(hào) 2、按照姓名 *endl;cout* 3、按照部門 4、返回上級(jí)菜單 *endl;cout* *endl;cout* 請(qǐng)選擇相應(yīng)編號(hào): *endl; cout*i;if(i4|i=0) cout輸入錯(cuò)誤請(qǐng)重新輸入endl;else break;switch (i) case 1: int num; coutnum; p1=head; while (p1!=null) if (p1-num=num) break; else

34、 p2=p1; p1=p1-next; break; case 2: char name20; coutname; p1=head; while (p1!=null) if (strcmp(p1-name,name)=0) break; else p2=p1; p1=p1-next; break; case 3: char branch20; coutbranch; p1=head; while (p1!=null) if (strcmp(p1-branch,branch)=0) break; else p2=p1; p1=p1-next; break; case 4: return;/刪除結(jié)

35、點(diǎn)if(i!=4)if (p1!=null) /找到結(jié)點(diǎn),刪除f (p1=head) /要?jiǎng)h除的結(jié)點(diǎn)是第一個(gè)結(jié)點(diǎn) head=p1-next; delete p1;else /要?jiǎng)h除的結(jié)點(diǎn)不是第一個(gè)結(jié)點(diǎn) p2-next=p1-next; delete p1; cout信息刪除成功!endl; worker:count-; else /未找到結(jié)點(diǎn) cout信息刪除失敗!endl; while (i!=4); void control:searchinformation() /查詢職工信息 worker *p1=null,*p2=null; p1=head; if(p1=null) cout 系統(tǒng)暫

36、無(wú)信息,無(wú)法查詢,請(qǐng)錄入信息!endl; return; int i; /選擇變量 do cout*endl;cout* *endl;cout* 請(qǐng)選擇查詢方式 *endl;cout* 1、按照編號(hào) 2、按照姓名 *endl;cout* 3、按照部門 4、按照職務(wù) *endl;cout* 5、返回上級(jí)菜單 *endl;cout* *endl;cout* 請(qǐng)選擇相應(yīng)編號(hào): *endl; cout*i;if(i5|i=0) cout輸入錯(cuò)誤請(qǐng)重新輸入endl;else break; switch (i) case 1:int num; coutnum; p1=head; while(p1!=nul

37、l) if(p1-num=num)break; else p2=p1;p1=p1-next; if(p1!=null) /若找到結(jié)點(diǎn) cout職工信息為:endlendl(*p1)endl; else cout該職工信息不存在!endl; break; case 2:char name20; coutname; p1=head; while (p1!=null) if (strcmp(p1-name,name)=0) break; else p2=p1; p1=p1-next; if (p1!=null) /若找到結(jié)點(diǎn) cout(*p1)endl; else cout信息查詢失敗!endl;b

38、reak; case 3:char branch20;int m=0; coutbranch; p1=head; while (p1!=null) if (strcmp(p1-branch,branch)=0) cout(*p1)next; m+; else p2=p1; p1=p1-next; if (m=0) cout信息查詢失敗!endl; break; case 4:int job; int n=0; coutjob; p1=head; while (p1!=null) if (p1-job=job) cout(*p1)next; n+; else p2=p1; p1=p1-next;

39、 if (n=0) cout查詢失敗!endl; break; case 5: return; while (i!=5);void control:changeinformation() /修改職工信息 worker*p1=null,*p2=null; if(head=null) cout 系統(tǒng)暫無(wú)信息,無(wú)法修改,請(qǐng)錄入信息!endl; return; int i; /選擇變量 do cout*endl; cout* *endl; cout* 1、修改姓名 2、修改部門 *endl;cout* 3、修改職務(wù) 4、返回上級(jí)菜單 *endl;cout* *endl;cout* 請(qǐng)選擇相應(yīng)編號(hào): *

40、endl;cout*i;if(i4|i=0) cout輸入錯(cuò)誤請(qǐng)重新輸入endl;else break; if(i!=4) int num; coutnum; p1=head; while(p1!=null)if(p1-num=num)break;elsep2=p1;p1=p1-next;if(p1!=null) /若找到結(jié)點(diǎn)cout編號(hào)為num的職工原信息為:endlendl(*p1)endl;else cout該職工信息不存在!endl; return; /執(zhí)行修改結(jié)點(diǎn) switch (i) case 1: coutnewname; strcpy(p1-name,newname);brea

41、k; case 2: coutnewbranch; strcpy(p1-branch,newbranch); break; case 3: coutnewjob; p1-job=newjob; break; case 4: return; if(p1!=null) /若找到結(jié)點(diǎn) cout修改成功!endl;cout該職工現(xiàn)在的信息為:endlendl(*p1)endl; while (i!=4); void control:showinformation() /顯示所有職工信息cout*顯示所有職工信息*endl;worker* p1=head; /初始化 aif(p1=null)cout 系

42、統(tǒng)暫無(wú)信息,請(qǐng)錄入!endl;while(p1!=null)cout(*p1)next; void control:countinformation() worker*p1=null,*p2=null; if(head=null) cout 系統(tǒng)暫無(wú)信息,無(wú)法計(jì)算,請(qǐng)錄入信息!endl; return; int i; /選擇變量 do cout*endl; cout* *endl; cout* 1、按照編號(hào) 2、按照姓名 *endl;cout* 0、返回上級(jí)菜單 *endl;cout* 請(qǐng)選擇相應(yīng)編號(hào): *endl;cout*i;if(i2|i0) cout輸入錯(cuò)誤請(qǐng)重新輸入endl;else

43、 break; switch (i) case 1:int num; coutnum; p1=head; while(p1!=null) if(p1-num=num)break; else p2=p1;p1=p1-next; if(p1!=null) /若找到結(jié)點(diǎn) cout職工的實(shí)際工資為:money(); else cout該職工信息不存在!endl; break; case 2:char name20; coutname; p1=head; while (p1!=null) if (strcmp(p1-name,name)=0) break; else p2=p1; p1=p1-next;

44、 if (p1!=null) /若找到結(jié)點(diǎn) cout職工的實(shí)際工資為:money(); else cout信息查詢失敗!endl; break;case 0: return;while(i!=0); void control:readinformation() /讀入員工信息 int mark; /類標(biāo)記worker *p=null;ifstream infile(worker1.txt,ios:in);/讀取一條記錄if(!infile) cerropen error!mark; switch(mark) case 1: p=new manager(1);p-mark=1;infilep-n

45、ump-namep-sexp-branchp-jobp-basic;infilep-jibie; break; case 2:p=new saleman(2);p-mark=2;infilep-nump-namep-sexp-branchp-jobp-xiaoshoue;break; case 3:p=new technologyman(3);p-mark=3;infilep-nump-namep-sexp-branchp-jobp-worktime;break; case 4:p=new salemanager(4);p-mark=4;infilep-nump-namep-sexp-bran

46、chp-jobp-basicp-jibiep-xiaoshoue;break; p-next=null; if(mark!=0) if (head!=null) /鏈表已經(jīng)存在 worker* p1=null; /指針初始化 p1=head; while (p1-next!=null) /查找尾結(jié)點(diǎn) p1=p1-next; p1-next=p; /連接結(jié)點(diǎn) cout信息讀入成功!endl;break; else /鏈表不存在 head=p; /連接結(jié)點(diǎn) cout信息成功!endl; infile.close(); cout*信息讀入成功*endl;void control:keepinform

47、ation() /保存員工信息worker* p=head; if(p=null)cout 系統(tǒng)暫無(wú)信息,無(wú)法保存,請(qǐng)錄入信息!endl;return; ofstream outfile(worker1.txt,ios:out); if(!outfile)cerropen error!endl;/abort();while(p!=null) outfilemark num name sex branch jobmark=1)outfilegetjibie();else if(p-mark=2)outfilegetxiaoshoue();else if(p-mark=3)outfilegetwo

48、rktime();else if(p-mark=4)outfilegetjibie() getxiaoshoue(); outfilenext; outfile0endl;outfile.close(); cout*保存信息成功*endl; void control:tongjiformation()worker *p1=null,*p2=null; p1=head; if(p1=null) cout 系統(tǒng)暫無(wú)信息,請(qǐng)錄入信息!endl; return; int i; /選擇變量 do cout*endl;cout* *endl;cout* 請(qǐng)選擇統(tǒng)計(jì)參數(shù) *endl;cout* 1、按照性別

49、 2、按照職務(wù) *endl;cout* 3、總?cè)藬?shù) 4、返回上級(jí)菜單 *endl;cout* *endl;cout* 請(qǐng)選擇相應(yīng)編號(hào): *endl; cout*i;if(i4|i=0) cout輸入錯(cuò)誤請(qǐng)重新輸入endl;else break;switch (i) case 1: int k;do cout*endl; cout* *endl; cout* 請(qǐng)選擇: *endl; cout* 1、男員工 2、女員工 *endl; cout* 0、返回上級(jí)菜單 *endl; cout* *endl; cout* 請(qǐng)選擇相應(yīng)編號(hào): *endl; cout*k; if(k2|k0) cout輸入錯(cuò)誤

50、請(qǐng)重新輸入endl; else break; switch (k) case 1: cout男職工數(shù)為:worker:count1endl;break;case 2: cout女職工數(shù)為:worker:count2endl;break;case 0: break;default:cout輸入錯(cuò)誤!endl;while(k!=0);break;case 2:int k;docout*endl;cout* *endl;cout* 請(qǐng)選擇: *endl;cout* 1、經(jīng)理 2、技術(shù)人員 *endl;cout* 3、銷售人員 4、銷售經(jīng)理 *endl;cout* 0、返回上級(jí)菜單 *endl;cout* *endl;cout* 請(qǐng)選擇相應(yīng)編號(hào): *endl cout*k;if(k4|k0) cout輸入錯(cuò)誤請(qǐng)重新輸入endl; else break;switch (k) case 1:cout經(jīng)理人數(shù)為: worker:count3endl;break;case 2:cout技術(shù)人員人數(shù)為: worker:count5endl;break;case 3:cout銷售人員人數(shù)為: worker:count4endl;break;case 4:cout銷售經(jīng)理人數(shù)為: worker:count6endl

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論