版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、基于 c+的面向?qū)ο蟪绦蛟O(shè)計實例課程設(shè)計報告報告題目: 小型公司工資管理系統(tǒng)設(shè)計 作者所在系部: 計算機科學(xué)與工程系 作者所在專業(yè): 計算機應(yīng)用技術(shù) 作者所在班級: * 作 者 姓 名 : * 指導(dǎo)教師姓名: * 完 成 時 間 : 2012-6-21 北華航天工業(yè)學(xué)院教務(wù)處制摘 要在當(dāng)前的市場經(jīng)濟體制下,一個公司要好的發(fā)展,不但要有好的管理制度,優(yōu)秀的管理人員,同時也要有一個健全的并且適合自身特點的公司人員管理和員工工資管理系統(tǒng),以實現(xiàn)公司人員管理、工資管理的目。本文在 microsoft visual c+ 6.0 環(huán)境下,利用 c+語言編寫程序,實現(xiàn)了公司對雇員工資信息的管理操作。本系統(tǒng)
2、一簡單易懂為原則,便于操作。本系統(tǒng)一簡單易懂為原則,便于操作。本系統(tǒng)主要有九個功能模塊:1、修改職工信息、 2、查詢職工信息、3、刪除職工信息、4、添加職工信息、5、顯示所有職工信息、6、計算員工工資、7、讀入員工信息 8、保存員工信息、9、統(tǒng)計員工信息。已經(jīng)通過全面的系統(tǒng)測試,能夠很好的運行,達到了預(yù)期的效果。關(guān)鍵詞: c+ 功能模塊 工資 信息目錄目錄摘摘 要要.i目錄目錄.ii課程設(shè)計任務(wù)書課程設(shè)計任務(wù)書.iv第一章第一章 緒論緒論.11 11 1 課程設(shè)計的目的課程設(shè)計的目的.11 12 2 課程設(shè)計的背景和意義課程設(shè)計的背景和意義.1121 課程設(shè)計的背景 .1122 課程設(shè)計的意義
3、 .21 13 3 課程設(shè)計環(huán)境課程設(shè)計環(huán)境.2第二章第二章 需求分析需求分析.321 問題描述問題描述.322 功能要求功能要求.322 問題的解決方案問題的解決方案.3第三章第三章 系統(tǒng)設(shè)計系統(tǒng)設(shè)計.43 31 1 數(shù)據(jù)設(shè)計數(shù)據(jù)設(shè)計.4311 類設(shè)計 .4312 類之間的關(guān)系 .6313 函數(shù)設(shè)計 .632 結(jié)構(gòu)設(shè)計 .6321 系統(tǒng)流程圖 .6322 界面設(shè)計 .7第四章第四章 系統(tǒng)實現(xiàn)系統(tǒng)實現(xiàn).84 41 1 類實現(xiàn)類實現(xiàn).84 43 3 主函數(shù)實現(xiàn)主函數(shù)實現(xiàn).35第五章第五章 系統(tǒng)測試系統(tǒng)測試.365 51 1 模塊測試模塊測試.365 52 2 課程設(shè)計過程中遇到的問題課程設(shè)計過程
4、中遇到的問題.37總總 結(jié)結(jié).39致致 謝謝.40參考文獻參考文獻 .40附附 錄錄.40課題名稱課題名稱小型公司工資管理系統(tǒng)設(shè)計完成時間完成時間2012-6-212012-6-21指導(dǎo)教師指導(dǎo)教師賈振華賈振華職稱職稱講師講師學(xué)生姓名學(xué)生姓名孟偉閃孟偉閃班班 級級1151311513總體設(shè)計要求和技術(shù)要點總體設(shè)計要求和技術(shù)要點1、問題描述某公司需要存儲雇員的編號、姓名、性別、所在部門,級別,并進行工資的計算。其中,雇員分為經(jīng)理、技術(shù)人員、銷售人員和銷售經(jīng)理。四類人員的月薪計算方法如下:經(jīng)理拿固定月薪;技術(shù)人員按小時領(lǐng)取月薪;銷售人員按其當(dāng)月銷售額的提成領(lǐng)取工資;銷售經(jīng)理既拿固定月薪也領(lǐng)取銷售提
5、成。設(shè)計一程序能夠?qū)救藛T進行管理,應(yīng)用到繼承、抽象類、虛函數(shù)、虛基類、多態(tài)和文件的輸入/輸出等內(nèi)容。2、功能要求(1)添加功能:程序能夠任意添加上述四類人員的記錄,可提供選擇界面供用戶選擇所要添加的人員類別,要求員工的編號要唯一,如果添加了重復(fù)編號的記錄時,則提示數(shù)據(jù)添加重復(fù)并取消添加。(2)查詢功能:可根據(jù)編號、姓名等信息對已添加的記錄進行查詢,如果未找到,給出相應(yīng)的提示信息,如果找到,則顯示相應(yīng)的記錄信息;(3)顯示功能:可顯示當(dāng)前系統(tǒng)中所有記錄,每條記錄占據(jù)一行。(4)編輯功能:可根據(jù)查詢結(jié)果對相應(yīng)的記錄進行修改,修改時注意編號的唯一性。(5)刪除功能:主要實現(xiàn)對已添加的人員記錄進行
6、刪除。如果當(dāng)前系統(tǒng)中沒有相應(yīng)的人員記錄,則提示“記錄為空!”并返回操作;否則,輸入要刪除的人員的編號或姓名,根據(jù)所輸入的信息刪除該人員記錄,如果沒有找到該人員信息,則提示相應(yīng)的記錄不存。(6)統(tǒng)計功能:能根據(jù)多種參數(shù)進行人員的統(tǒng)計。例如,統(tǒng)計四類人員數(shù)量以及總數(shù),或者統(tǒng)計男、女員工的數(shù)量,或者統(tǒng)計平均工資、最高工資、最低工資等信息。(7)保存功能:可將當(dāng)前系統(tǒng)中各類人員記錄存入文件中,存入方式任意。(8)讀取功能:可將保存在文件中的人員信息讀入到當(dāng)前系統(tǒng)中,供用戶進行使用。工作內(nèi)容及時間進度安排工作內(nèi)容及時間進度安排16 月 4 日10 日:布置任務(wù),軟件設(shè)計;26 月 11 日18 日:編寫
7、代碼,上機調(diào)試;36 月 19、20、21 日:軟件驗收,撰寫課程設(shè)計報告;4各班在 6 月 22 日下午五點前將課程設(shè)計報告收齊并上交。課程設(shè)計任務(wù)書第一章 緒論11 課程設(shè)計的目的1)此次課程設(shè)計的目的是以c+程序設(shè)計基礎(chǔ)為基礎(chǔ),針對具有一定難度的綜合性題目,進行分析、編程、調(diào)試和運行,進一步掌握面向?qū)ο蠛兔嫦蜻^程程序設(shè)計的基本方法和編程技巧, 鞏固所學(xué)理論知識, 使理論與實踐相結(jié)合, 提高分析問題、解決問題的能力。要求學(xué)生達到熟練掌握 c+語言的基本知識和技能。2)基本掌握面向?qū)ο蟪绦蛟O(shè)計的基本思路和方法3)能夠利用所學(xué)的基本知識和技能,解決簡單的面向?qū)ο蟪绦蛟O(shè)計問題。4)通過設(shè)計一個簡
8、單的小型公司工資管理系統(tǒng)小型公司工資管理系統(tǒng) ,進一步熟悉 c+中類的概念、類的封裝、 繼承和多態(tài)的實現(xiàn)方式;掌握文件的錄入、查找;對象指針的使用。了解系統(tǒng)開發(fā)的需要分析, 類層次設(shè)計,模塊分析, 編碼測試,模塊組裝與整體調(diào)試的全過程, 逐步熟悉程序設(shè)計的方法,并養(yǎng)成良好的編程習(xí)慣。 12 課程設(shè)計的背景和意義121 課程設(shè)計的背景1. 理論研究基礎(chǔ)c+面向?qū)ο蟪绦蛟O(shè)計是計算機專業(yè)的基礎(chǔ)課程,本課程按照軟件程序設(shè)計所需能力進行教學(xué)設(shè)計,提出以項目模塊方式帶動相關(guān)知識點、實踐項目和理論并行的思路,將案例貫穿于課程始終,對原有的教學(xué)體系、教學(xué)內(nèi)容進行重新編排,按照從易到難的原則,將其巧妙地融入到項
9、目開發(fā)過程中,降低學(xué)習(xí)難度,提高學(xué)生學(xué)習(xí)的信心,有效培養(yǎng)學(xué)生的應(yīng)用能力和學(xué)習(xí)能力。2. 技術(shù)層面的支持本系統(tǒng)運用到:類與對象在 c+中的實現(xiàn)、靜態(tài)數(shù)據(jù)成員、運算符重載、友元函數(shù)繼承與派生的基本知識、單繼承和多繼承、虛基類的作用與使用、虛函數(shù)的定義和使用、純虛函數(shù)和抽象類的定義和使用、輸入輸出流的概念、輸入、輸出流操作、文件的創(chuàng)建、打開、讀寫、關(guān)閉等操作。122 課程設(shè)計的意義本課程按照軟件程序設(shè)計所需能力進行教學(xué)設(shè)計,提出以項目模塊方式帶動相關(guān)知識點、實踐項目和理論并行的思路,將案例貫穿于課程始終,對原有的教學(xué)體系、教學(xué)內(nèi)容進行重新編排,按照從易到難的原則,將其巧妙地融入到項目開發(fā)過程中,降低
10、學(xué)習(xí)難度,提高學(xué)生學(xué)習(xí)的信心,有效培養(yǎng)學(xué)生的應(yīng)用能力和學(xué)習(xí)能力。小型公司工資管理對公司管理有著很重要的作用。在當(dāng)今社會應(yīng)用廣泛。13 課程設(shè)計環(huán)境硬件平臺: cpu:i5。2.67ghz。 ram:512mb 以上。軟件平臺: 操作系統(tǒng):windows xp/ windows 7 編輯環(huán)境:visual c+ 6.0分辨率:最佳效果 1024768 像第二章 需求分析21 問題描述 某公司需要存儲雇員的編號、姓名、性別、所在部門,級別,并進行工資的計算。其中,雇員分為經(jīng)理、技術(shù)人員、銷售人員和銷售經(jīng)理。四類人員的月薪計算方法如下:經(jīng)理拿固定月薪;技術(shù)人員按小時領(lǐng)取月薪;銷售人員按其當(dāng)月銷售額的
11、提成領(lǐng)取工資;銷售經(jīng)理既拿固定月薪也領(lǐng)取銷售提成。設(shè)計一程序能夠?qū)救藛T進行管理,應(yīng)用到繼承、抽象類、虛函數(shù)、虛基類、多態(tài)和文件的輸入/輸出等內(nèi)容。22 功能要求(1)添加功能:程序能夠任意添加上述四類人員的記錄,可提供選擇界面供用戶選擇所要添加的人員類別,要求員工的編號要唯一,如果添加了重復(fù)編號的記錄時,則提示數(shù)據(jù)添加重復(fù)并取消添加。(2)查詢功能:可根據(jù)編號、姓名等信息對已添加的記錄進行查詢,如果未找到,給出相應(yīng)的提示信息,如果找到,則顯示相應(yīng)的記錄信息;(3)顯示功能:可顯示當(dāng)前系統(tǒng)中所有記錄,每條記錄占據(jù)一行。(4)編輯功能:可根據(jù)查詢結(jié)果對相應(yīng)的記錄進行修改,修改時注意編號的唯一性
12、。(5)刪除功能:主要實現(xiàn)對已添加的人員記錄進行刪除。如果當(dāng)前系統(tǒng)中沒有相應(yīng)的人員記錄,則提示“記錄為空!”并返回操作;否則,輸入要刪除的人員的編號或姓名,根據(jù)所輸入的信息刪除該人員記錄,如果沒有找到該人員信息,則提示相應(yīng)的記錄不存。(6)統(tǒng)計功能:能根據(jù)多種參數(shù)進行人員的統(tǒng)計。例如,統(tǒng)計四類人員數(shù)量以及總數(shù),或者統(tǒng)計男、女員工的數(shù)量,或者統(tǒng)計平均工資、最高工資、最低工資等信息。(7)保存功能:可將當(dāng)前系統(tǒng)中各類人員記錄存入文件中,存入方式任意。(8)讀取功能:可將保存在文件中的人員信息讀入到當(dāng)前系統(tǒng)中,供用戶進行使用。22 問題的解決方案根據(jù)系統(tǒng)功能要求,可以將問題解決分為以下步驟:(1)應(yīng)
13、用系統(tǒng)分析,建立該系統(tǒng)的功能模塊框圖以及界面的組織和設(shè)計;(2)分析系統(tǒng)中的各個實體及它們之間的關(guān)系;(3)根據(jù)問題描述,設(shè)計系統(tǒng)的類層次;(4)完成類層次中各個類的描述;(5)完成類中各個成員函數(shù)的定義;(6)完成系統(tǒng)的應(yīng)用模塊;(7)功能調(diào)試;(8)完成系統(tǒng)總結(jié)報告。第三章 系統(tǒng)設(shè)計31 數(shù)據(jù)設(shè)計311 類設(shè)計根據(jù)課程設(shè)計要求,需要定義六個類:雇員類(基類) (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ù)成員:編號 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請輸入職員基本工資:basic; count3+; void display2() cout職務(wù):經(jīng)理 職員基本工資 : endl; coutbasic; void money() cout該員工的實際工資是: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、請輸入職員工作時間:worktime; count5+; void display2()cout職務(wù):技術(shù)人員 職員工作時間:endl; coutworktime; void money() jine=35; cout該員工的實際工資是:(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請輸入職員銷售額:xiaoshoue;ount4+;oid display2()cout職務(wù):銷售人員 職員銷售額: endl; coutxiaoshoue;void money() tichengbili=0.05;cout該員工的實際工資是: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請輸入職員基本工資,銷售額:basicxiaoshoue; count6+; void display2() cout職務(wù):銷售經(jīng)理 職員基本工資,銷售額:endl; cout
23、basic xiaoshoue; void money() tichengbili=0.03; cout該員工的實際工資是:basic+xiaoshoue*tichengbili(istream& in,salemanager& s) ; friend ostream& operator next; /指向下一個節(jié)點 delete head; /釋放空間 head=p; head=null; void showface(); void changeinformation();/修改 void cancelinformation();/刪除 void addinformation(); /添加
24、void showinformation(); /顯示 void searchinformation(); / 查詢 void countinformation(); / 計算 void readinformation(); / 讀入 void keepinformation(); / 保存 void tongjiformation(); /統(tǒng)計; 42 函數(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請輸入職員信息: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輸入錯誤請重新輸入endl; coutbranch; void worker:inputmoney() cout基本工資:basic; void worker:display() cout編
26、號: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、計算員工工資 *endl; cout* 7、讀入員工信息 8、保存員工信息 *endl; cout* 9、統(tǒng)計員工信息 0、退出系統(tǒng) *endl; cout* 請選擇相應(yīng)編號: *endl;cout*i;if(i9|i0) cout輸入錯誤請重新輸入endl;else break; /選擇相應(yīng)標號所對應(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選擇錯誤,請重新選擇!endl; while(i!=0); void control:addinformation() /添加職工信息 control control1; worker* p=null; /新增結(jié)點指針 int i; /選擇變量 do /添加職工信息菜單 cout*endl;cout* *endl;cout* 請選擇增加的員工種類 *endl;cout* 1、增加經(jīng)理 2、增加銷售人員 *endl;cout* 3、增加技術(shù)人員 4、
31、增加銷售經(jīng)理 *endl;cout* 5、返回上級菜單 *endl;cout* *endl;cout* 請選擇相應(yīng)編號: *endl; cout*i;if(i5|i=0) cout輸入錯誤請重新輸入(*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é)點加入鏈表 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é)點 cout信息添加成功!endl; else /鏈表不存在 head=p; /連接結(jié)點 cout信息添加成功!endl; while (i!=5); void control:cancelinformation() /刪除職工信息 worker*p1=null,*p2=null; p1=head; if(p1=null) cout 系統(tǒng)暫無信息,無法刪除,請錄入信息!endl;
33、return; int i; /選擇變量 do /刪除職工信息菜單cout*endl;cout* *endl;cout* 請選擇刪除方式 *endl;cout* 1、按照編號 2、按照姓名 *endl;cout* 3、按照部門 4、返回上級菜單 *endl;cout* *endl;cout* 請選擇相應(yīng)編號: *endl; cout*i;if(i4|i=0) cout輸入錯誤請重新輸入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、點if(i!=4)if (p1!=null) /找到結(jié)點,刪除f (p1=head) /要刪除的結(jié)點是第一個結(jié)點 head=p1-next; delete p1;else /要刪除的結(jié)點不是第一個結(jié)點 p2-next=p1-next; delete p1; cout信息刪除成功!endl; worker:count-; else /未找到結(jié)點 cout信息刪除失敗!endl; while (i!=4); void control:searchinformation() /查詢職工信息 worker *p1=null,*p2=null; p1=head; if(p1=null) cout 系統(tǒng)暫
36、無信息,無法查詢,請錄入信息!endl; return; int i; /選擇變量 do cout*endl;cout* *endl;cout* 請選擇查詢方式 *endl;cout* 1、按照編號 2、按照姓名 *endl;cout* 3、按照部門 4、按照職務(wù) *endl;cout* 5、返回上級菜單 *endl;cout* *endl;cout* 請選擇相應(yīng)編號: *endl; cout*i;if(i5|i=0) cout輸入錯誤請重新輸入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é)點 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é)點 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)暫無信息,無法修改,請錄入信息!endl; return; int i; /選擇變量 do cout*endl; cout* *endl; cout* 1、修改姓名 2、修改部門 *endl;cout* 3、修改職務(wù) 4、返回上級菜單 *endl;cout* *endl;cout* 請選擇相應(yīng)編號: *
40、endl;cout*i;if(i4|i=0) cout輸入錯誤請重新輸入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é)點cout編號為num的職工原信息為:endlendl(*p1)endl;else cout該職工信息不存在!endl; return; /執(zhí)行修改結(jié)點 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é)點 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)暫無信息,請錄入!endl;while(p1!=null)cout(*p1)next; void control:countinformation() worker*p1=null,*p2=null; if(head=null) cout 系統(tǒng)暫無信息,無法計算,請錄入信息!endl; return; int i; /選擇變量 do cout*endl; cout* *endl; cout* 1、按照編號 2、按照姓名 *endl;cout* 0、返回上級菜單 *endl;cout* 請選擇相應(yīng)編號: *endl;cout*i;if(i2|i0) cout輸入錯誤請重新輸入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é)點 cout職工的實際工資為: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é)點 cout職工的實際工資為:money(); else cout信息查詢失敗!endl; break;case 0: return;while(i!=0); void control:readinformation() /讀入員工信息 int mark; /類標記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é)點 p1=p1-next; p1-next=p; /連接結(jié)點 cout信息讀入成功!endl;break; else /鏈表不存在 head=p; /連接結(jié)點 cout信息成功!endl; infile.close(); cout*信息讀入成功*endl;void control:keepinform
47、ation() /保存員工信息worker* p=head; if(p=null)cout 系統(tǒ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)暫無信息,請錄入信息!endl; return; int i; /選擇變量 do cout*endl;cout* *endl;cout* 請選擇統(tǒng)計參數(shù) *endl;cout* 1、按照性別
49、 2、按照職務(wù) *endl;cout* 3、總?cè)藬?shù) 4、返回上級菜單 *endl;cout* *endl;cout* 請選擇相應(yīng)編號: *endl; cout*i;if(i4|i=0) cout輸入錯誤請重新輸入endl;else break;switch (i) case 1: int k;do cout*endl; cout* *endl; cout* 請選擇: *endl; cout* 1、男員工 2、女員工 *endl; cout* 0、返回上級菜單 *endl; cout* *endl; cout* 請選擇相應(yīng)編號: *endl; cout*k; if(k2|k0) cout輸入錯誤
50、請重新輸入endl; else break; switch (k) case 1: cout男職工數(shù)為:worker:count1endl;break;case 2: cout女職工數(shù)為:worker:count2endl;break;case 0: break;default:cout輸入錯誤!endl;while(k!=0);break;case 2:int k;docout*endl;cout* *endl;cout* 請選擇: *endl;cout* 1、經(jīng)理 2、技術(shù)人員 *endl;cout* 3、銷售人員 4、銷售經(jīng)理 *endl;cout* 0、返回上級菜單 *endl;cout* *endl;cout* 請選擇相應(yīng)編號: *endl cout*k;if(k4|k0) cout輸入錯誤請重新輸入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. 本站所有資源如無特殊說明,都需要本地電腦安裝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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高考物理總復(fù)習(xí)專題三牛頓運動定律第3講牛頓運動定律的應(yīng)用練習(xí)含答案
- 高中語文 第六單元 一 兼 愛教案 新人教版選修《先秦諸子選讀》
- 2024年五年級數(shù)學(xué)下冊 七 包裝盒-長方體和正方體 我學(xué)會了嗎教案 青島版六三制
- 高中化學(xué)新教材同步教案選擇性必修第一冊第2章第2節(jié)第2課時化學(xué)平衡常數(shù)
- 2024-2025年高中化學(xué) 專題2 第2單元 第3課時 化學(xué)平衡常數(shù)教案 蘇教版選修4
- 2023九年級語文上冊 第一單元 1 沁園春 雪說課稿 新人教版
- 2024年秋七年級生物上冊 3.2 生物體教案2 北京課改版
- 怎樣成為一個行業(yè)的專家
- 柴油發(fā)電機房管理制
- 籽兒吐吐 課件
- DB34T 1835-2022 高速公路收費人員微笑服務(wù)規(guī)范
- 2024年山東省中考英語試卷十二套合卷附答案
- 全國民族團結(jié)進步表彰大會全文
- 部編版(2024)一年級道德與法治上冊第三單元第11課《對人有禮貌》教學(xué)課件
- 2024年事業(yè)單位體檢告知書
- 廣東省2024年中考數(shù)學(xué)試卷(含答案)
- 2024年新人教版七年級上冊生物全冊知識點復(fù)習(xí)資料(新教材)
- 2023年湖北省恩施州中考歷史真題(原卷版)
- 部編版《道德與法治》九年級下冊教案【全冊共2套】
- 土木工程施工設(shè)計報告
- 2024年職稱評審表
評論
0/150
提交評論