版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> C++程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告</p><p> 課 題: 小型公司工資管理系統(tǒng)</p><p> 專業(yè)班級: xxxxx </p><p> 學(xué) 號: xxxxxxxx </p><p> 姓 名: xxxxx </p>&
2、lt;p> 指導(dǎo)教師: xxxxx </p><p><b> 目錄</b></p><p><b> 目錄</b></p><p> 一、課程設(shè)計(jì)內(nèi)容……………………………………………………3</p><p> 1.1課程設(shè)計(jì)的目的…………………………
3、…………………3</p><p> 2設(shè)計(jì)題目及要求……………………………………………3</p><p> 二、設(shè)計(jì)思路…………………………………………………………4</p><p> 三、程序清單…………………………………………………………7</p><p> 1程序源代碼…………………………………………………7</p>
4、<p> 四、運(yùn)行結(jié)果…………………………………………………………30</p><p> 4.1程序運(yùn)行………………………………………………………31</p><p> 2備份文本信息…………………………………………………34</p><p> 五、程序使用說明……………………………………………………36</p><p>
5、; 六、總結(jié)及心得體會…………………………………………………36</p><p> (要求:給出一級目錄,宋體加粗,四號字, 1.5倍行距)</p><p><b> 一:課程設(shè)計(jì)內(nèi)容</b></p><p> 1.1、課程設(shè)計(jì)的目的</p><p> 此次課程設(shè)計(jì)的目的是以《程序設(shè)計(jì)語言(C/C++)》為基
6、礎(chǔ),針對具有一定難度的綜合性題目,進(jìn)行分析、編程、調(diào)試和運(yùn)行,進(jìn)一步掌握面向?qū)ο蠛兔嫦蜻^程程序設(shè)計(jì)的基本方法和編程技巧,鞏固所學(xué)理論知識,使理論與實(shí)踐相結(jié)合,提高分析問題、解決問題的能力。</p><p> 通過設(shè)計(jì)一個(gè)簡單的小型公司工資管理系統(tǒng),進(jìn)一步熟悉C++中類的概念、類的封裝、繼承和多態(tài)的實(shí)現(xiàn)方式。了解系統(tǒng)開發(fā)的需要分析,類層次設(shè)計(jì),模塊分析,編碼測試,模塊組裝與整體調(diào)試的全過程,逐步熟悉程序設(shè)計(jì)的方法
7、,并養(yǎng)成良好的編程習(xí)慣。</p><p> 1.2、設(shè)計(jì)題目及要求</p><p> (1) 題目:小型公司工資管理系統(tǒng) 設(shè)計(jì)</p><p> (2) 設(shè)計(jì)題目及要求:</p><p> 1.公司主要有4類人員:經(jīng)理、技術(shù)員、銷售員、銷售經(jīng)理。要求存儲這些人的職工號、姓名、月工資、崗位、年齡、性別等信息。其中</p>
8、<p> (1)職工編號在輸入人員信息時(shí)生成,每輸入一個(gè)人員信息編號順序加1。</p><p> ?。?)程序?qū)λ腥藛T有提升級別的功能。 </p><p> (3)能夠按照不同身份進(jìn)行月薪的計(jì)算。 </p><p> ?。?)能按姓名或者編號查找各類人員的信息。</p><p>
9、 ?。?)能夠修改/刪除各類人員的信息。</p><p> (6)能夠顯示所有人員的信息。</p><p> 2.工資的計(jì)算辦法:</p><p> 經(jīng)理:固定月薪為8000;</p><p> 技術(shù)員:工作時(shí)間*小時(shí)工資(100元每小時(shí));</p><p> 銷售員:銷售額*4%提成;</p>
10、<p> 銷售經(jīng)理:底薪(5000)+所轄部門銷售額總額*0.5%;</p><p> 3)類的層次結(jié)構(gòu)大體如下:</p><p> 1.3 課程設(shè)計(jì)步驟與方法 </p><p> 1.需求分析:對用戶提出的問題提出解決的辦法和思路。 </p><p> 2.根據(jù)需求,設(shè)計(jì)系統(tǒng)功能模塊,并設(shè)計(jì)相應(yīng)的類和界面。 </
11、p><p> 3.根據(jù)基本思路,確定輸入和輸出,設(shè)計(jì)程序的算法。 </p><p> 4.確定用到的所有類的描述和定義,并設(shè)計(jì)測試程序來對類進(jìn)行測試。 </p><p> 6.在計(jì)算機(jī)上編譯程序,檢驗(yàn)程序的可運(yùn)行性。</p><p> 1.4 課程設(shè)計(jì)報(bào)告內(nèi)容 </p><p> 寫設(shè)計(jì)報(bào)告(要求正規(guī)打印,A4幅
12、面),內(nèi)容包括:</p><p><b> 題目</b></p><p><b> 系統(tǒng)功能模塊結(jié)構(gòu)圖</b></p><p> 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)及用法說明</p><p> 程序結(jié)構(gòu)(畫流程圖)</p><p><b> 各模塊的功能</b>&l
13、t;/p><p> 試驗(yàn)結(jié)果(包括輸入數(shù)據(jù)和輸出結(jié)果)</p><p><b> 體會</b></p><p><b> 參考文獻(xiàn)</b></p><p><b> 附錄:源程序清單</b></p><p><b> 二、設(shè)計(jì)思路<
14、/b></p><p> 1、整體考慮程序應(yīng)該實(shí)現(xiàn)的功能,有員工信息管理、職務(wù)管理、月薪計(jì)算、查找信息、顯示所有人員的信息和退出系統(tǒng)6個(gè)。</p><p> 2、首先定義一個(gè)Employee的雇員基類,然后由此派生出Manager、Seller、Tech三個(gè)分別為經(jīng)理類、銷售員類、技術(shù)員類;再由Seller派生出銷售經(jīng)理類Xmanager。每個(gè)類中的成員都是public型的,所有
15、的繼承都是公有繼承,基類中定義有數(shù)據(jù)輸入和輸出函數(shù)。</p><p> 3、整個(gè)程序由主函數(shù)的一個(gè)for循環(huán)控制,根據(jù)輸入的操作選項(xiàng)通過一個(gè)switch語句判斷該進(jìn)行什么操作,每一個(gè)case后面對應(yīng)一個(gè)函數(shù),每個(gè)函數(shù)對應(yīng)一個(gè)操作,1對應(yīng)信息管理,2對應(yīng)職務(wù)管理,3對應(yīng)月薪計(jì)算,4對應(yīng)查找信息,5對應(yīng)顯示所有人員的信息,0對應(yīng)退出系統(tǒng)。</p><p> 4、case中調(diào)用了五個(gè)無參的函
16、數(shù)</p><p> allSave()Exit();dataManagement() ;postManaMenu() ;calculateSal() ;findMenu() ;allDisplay() ;五個(gè)函數(shù)均用了模板函數(shù)的實(shí)例化分別進(jìn)行輸入、職務(wù)管理、計(jì)算月薪、顯示全部信息。如輸入中的一個(gè):</p><p> template <class T , class Ti &g
17、t; void showMember(T & t , Ti * ti )</p><p><b> {</b></p><p> if(t.n <= 0 ) return ; </p><p> for(t.p = t.head ; t.p != NULL ; t.p = t.p -> next ) t.p ->
18、 show() ;</p><p><b> }</b></p><p> showMember()函數(shù)在各個(gè)類中都定義,并且同名,這樣能簡化程序。</p><p> 5、在進(jìn)行信息輸入時(shí),在基類中定義了一個(gè)虛函數(shù),避免了值的副本,首先給出提示語句,首先選擇要輸入的職工類型,然后依次調(diào)用saveFile(),首先創(chuàng)建類的對象指針,如Sel
19、ler * t ;ofstream cout ("S.txt"),建立文件流,創(chuàng)建鏈表,將所輸入的數(shù)據(jù)都保存至文件,并且對備份文件進(jìn)行命名,同時(shí)確定存儲位置。以便之后的查找和刪除功能的實(shí)現(xiàn)。</p><p> 6、在進(jìn)行工資計(jì)算時(shí),每個(gè)類都定義了各自的calcuSalary()函數(shù),依次計(jì)算出每一種職工的工資,由提示語句選擇是否輸出。</p><p> 7、職務(wù)管理
20、功能的實(shí)現(xiàn),是通過編號來查找要提升職位的人員,選擇要升為哪一種職位,然后將多余的數(shù)據(jù)成員刪除,在提升后的成員中將工資重新進(jìn)行計(jì)算,予以賦值。</p><p> 8、查找時(shí),建立函數(shù)模板,參數(shù)為class T , class Ti,需要在哪一個(gè)類中查找就將模板實(shí)例化為哪一個(gè)類,每一次查找時(shí),指針都是先指向文件的起始位置,然后用for循環(huán)來控制,先要輸入編號,如t.p != NULL && t.p
21、-> num != no;若當(dāng)前對象的編號與輸入的編號不相等,則指針移向下一個(gè)對象繼續(xù)查找,若相等則停止查找,并將所找到的信息全部輸出。</p><p> 9、考慮各種數(shù)據(jù)類型還有所需的C++內(nèi)的函數(shù),要引用<iostream><cstring></p><p> <fstream><iomanip></p><
22、p> 這四個(gè)頭文件。<fstream>用于數(shù)據(jù)保存至文件。 </p><p> 10、修改和刪除的功能都是按照編號、利用模板函數(shù)實(shí)例化來實(shí)現(xiàn)的,找到后由switch控制,1.姓名 2.性別 3.年齡 4.編號 5.工資,先選擇要修改的屬性,然后輸入新信息,將原有信息替換;刪除時(shí),首先在每一個(gè)類中由指針找到要?jiǎng)h除的職工,然后將這個(gè)對象的每一個(gè)數(shù)據(jù)成員用NULL覆蓋,即清零處理,該職工的信
23、息就被刪除了。</p><p> 11、整體構(gòu)思比較簡單,基本能夠?qū)崿F(xiàn)各項(xiàng)功能</p><p><b> 源程序清單:</b></p><p> #include<iostream></p><p> #include<cstring></p><p> #inc
24、lude<fstream></p><p> #include<iomanip></p><p> using namespace std ;</p><p> class Employee</p><p><b> {</b></p><p><b>
25、 public:</b></p><p> Employee * next ;</p><p> char name[50];</p><p><b> int num;</b></p><p><b> int age;</b></p><p>
26、 char sex[8];</p><p> double salary;</p><p> char post[30];</p><p> char * getName()</p><p><b> {</b></p><p> return name ;</p>&l
27、t;p><b> }</b></p><p> int getNum()</p><p><b> {</b></p><p> return num ;</p><p><b> }</b></p><p> int getAge()
28、</p><p><b> {</b></p><p> return age ;</p><p><b> }</b></p><p> char * getSex()</p><p><b> {</b></p><p&
29、gt; return sex ;</p><p><b> }</b></p><p> double getSalary()</p><p><b> {</b></p><p> return salary ;</p><p><b> }</
30、b></p><p> char * getPost()</p><p><b> {</b></p><p> return post ;</p><p><b> }</b></p><p> virtual void get()</p>&
31、lt;p><b> {</b></p><p> cout<<"\t姓名:";</p><p> cin>>name;</p><p> cout<<"\t性別:";</p><p><b> cin>>se
32、x;</b></p><p> cout<<"\t年齡:";</p><p><b> cin>>age;</b></p><p> cout<<"\t編號:";</p><p><b> cin>>nu
33、m;</b></p><p><b> }</b></p><p> Employee()</p><p><b> {</b></p><p> salary = 0.0 ;</p><p><b> }</b></p>
34、;<p> virtual void show()</p><p><b> {</b></p><p> cout<<"\t"<<name<<"\t"<<sex<<"\t"<<age<<"\t&
35、quot;<<num<<"\t"<<salary<<"\t"<<post<<endl ;</p><p><b> }</b></p><p><b> };</b></p><p> class Tech
36、:virtual public Employee</p><p><b> {</b></p><p><b> public:</b></p><p> int hour ;</p><p> Tech * next ;</p><p> void get()&l
37、t;/p><p><b> {</b></p><p> Employee::get(); </p><p> cout<<"\t工作時(shí)間(小時(shí)):" ;</p><p> cin>>hour ;</p><p><b> }</b
38、></p><p> double gethour()</p><p><b> {</b></p><p> return hour ;</p><p><b> }</b></p><p> double calcuSalary() </p>
39、<p><b> {</b></p><p> salary = 100 * hour ;</p><p> return salary;</p><p><b> } </b></p><p><b> };</b></p><p&g
40、t; class Seller:virtual public Employee</p><p><b> {</b></p><p><b> public:</b></p><p> Seller *next ;</p><p> double income ;</p>&
41、lt;p> void get()</p><p><b> {</b></p><p> Employee::get();</p><p> cout<<"\t請輸入營業(yè)額:";</p><p> cin>>income ;</p><p&g
42、t;<b> }</b></p><p> double calcuSalary()</p><p><b> {</b></p><p> salary = income * 0.04 ;</p><p> return salary ;</p><p><
43、b> }</b></p><p> double getIncome() { return income ; }</p><p><b> };</b></p><p> class Manager:virtual public Employee</p><p><b> {
44、</b></p><p><b> public:</b></p><p> Manager * next ;</p><p> void calcuSalary()</p><p><b> {</b></p><p> salary = 8000.0
45、0 ;</p><p><b> }</b></p><p><b> };</b></p><p> class SellerList{</p><p><b> public :</b></p><p><b> int n ;&
46、lt;/b></p><p> Seller * head , *p ;</p><p> SellerList()</p><p><b> {</b></p><p><b> n = 0 ;</b></p><p> p = head = NULL ;&
47、lt;/p><p><b> }</b></p><p> void inputFile() ;</p><p> void saveFile() ;</p><p><b> } S ;</b></p><p> template <class TT , cl
48、ass Ti > void addMember(TT & t , Ti * ti )</p><p><b> {</b></p><p> Ti * p = t.head ;</p><p> t.head = ti ;</p><p> if(p == NULL) t.head -> ne
49、xt = NULL ;</p><p> t.head -> next = p ;</p><p><b> t.n ++ ;</b></p><p><b> }</b></p><p> void SellerList::inputFile()</p><p&
50、gt;<b> {</b></p><p> Seller * t;</p><p> char na[50] ;</p><p> ifstream cins ("S.txt") ;</p><p> while(cins >> na )</p><p>
51、;<b> {</b></p><p> t = new Seller() ;</p><p> t -> next = NULL ;</p><p> strcpy(t -> name , na ) ;</p><p> cins >> (t -> post ) >>
52、 (t -> sex) >> (t -> num) >> (t -> age) >> (t -> salary) >> (t -> income) ;</p><p> addMember(S , t ) ;</p><p><b> }</b></p><p>
53、<b> }</b></p><p> void SellerList::saveFile() </p><p><b> {</b></p><p> Seller * t ;</p><p> ofstream cout ("S.txt") ;</p>
54、<p> for(t = S.head ; t != NULL ; t = t ->next )</p><p> cout<< (t -> name)<<' ' << (t -> post ) <<' '<< (t -> sex) <<' '<&l
55、t; (t -> num)</p><p> <<' '<< (t -> age) <<' '<< (t -> salary) <<' '<< (t -> income)<<endl ;</p><p><b> }<
56、;/b></p><p> class XManager:virtual public Manager,public Seller</p><p><b> {</b></p><p><b> public :</b></p><p> XManager * next , *p ;&
57、lt;/p><p> double calcuSalary() ;</p><p><b> } ; </b></p><p> double XManager::calcuSalary()</p><p><b> {</b></p><p> Seller * t;
58、</p><p> salary = income * 0.005 ;</p><p> for(t = S.head ; t != NULL ; t = t -> next ) salary += t -> income * 0.005 ;</p><p> return salary ;</p><p><b>
59、; }</b></p><p> class TechList{</p><p><b> public :</b></p><p><b> int n ;</b></p><p> Tech * head , * p ;</p><p> Tech
60、List()</p><p><b> {</b></p><p><b> n = 0 ;</b></p><p> p = head = NULL ;</p><p><b> }</b></p><p> void inputFile()
61、 ;</p><p> void saveFile() ;</p><p><b> } T ;</b></p><p> template <class T , class Ti > void showMember(T & t , Ti * ti )</p><p><b> {&
62、lt;/b></p><p> if(t.n <= 0 ) return ; </p><p> for(t.p = t.head ; t.p != NULL ; t.p = t.p -> next ) t.p -> show() ;</p><p><b> }</b></p><p>
63、 void TechList::inputFile()</p><p><b> {</b></p><p> char na[50] ;</p><p> Tech * t ;</p><p> ifstream cint ("T.txt") ;</p><p>
64、while(cint>> na )</p><p><b> {</b></p><p> t = new Tech() ;</p><p> t -> next = NULL ;</p><p> strcpy(t -> name , na ) ;</p><p>
65、; cint >> (t -> post ) >> (t -> sex) >> (t -> num) >> (t -> age) >> (t -> salary) >> (t -> hour) ;</p><p> addMember(T , t ) ;</p><p><
66、b> }</b></p><p><b> }</b></p><p> void TechList::saveFile() </p><p><b> {</b></p><p> Tech * t ;</p><p> ofstream co
67、ut ("T.txt") ;</p><p> for(t = T.head ; t != NULL ; t = t ->next )</p><p> cout<< (t -> name)<<' ' << (t -> post ) <<' '<< (t -
68、> sex) <<' '<< (t -> num)</p><p> <<' '<< (t -> age) <<' '<< (t -> salary) <<' '<< (t -> hour)<<endl ;<
69、;/p><p><b> }</b></p><p> class XManagerList{</p><p><b> public :</b></p><p><b> int n ;</b></p><p> XManager * head
70、, * p ;</p><p> XManagerList()</p><p><b> {</b></p><p><b> n = 0 ;</b></p><p> p = head = NULL ;</p><p><b> }</b>&
71、lt;/p><p> void inputFile() ;</p><p> void saveFile() ;</p><p><b> } X ;</b></p><p> void XManagerList::inputFile()</p><p><b> {</b&
72、gt;</p><p> XManager * t ;</p><p> char na[50] ;</p><p> ifstream cinx ("X.txt") ;</p><p> while(cinx >> na )</p><p><b> {</b
73、></p><p> t = new XManager() ;</p><p> t -> next ;</p><p> strcpy(t -> name , na ) ;</p><p> cinx >> (t -> post ) >> (t -> sex) >>
74、(t -> num) >> (t -> age) >> (t -> salary) ;</p><p> addMember(X , t ) ;</p><p><b> }</b></p><p><b> }</b></p><p> void
75、XManagerList::saveFile() </p><p><b> {</b></p><p> XManager * t ;</p><p> ofstream cout ("X.txt") ;</p><p> for(t = X.head ; t != NULL ; t = t
76、 ->next )</p><p> cout<< (t -> name)<<' ' << (t -> post ) <<' '<< (t -> sex) <<' '<< (t -> num)</p><p> <<
77、;' '<< (t -> age) <<' '<< (t -> salary)<<endl ;</p><p><b> }</b></p><p> class ManagerList{</p><p><b> public :<
78、;/b></p><p><b> int n ;</b></p><p> Manager * head , *p ;</p><p> ManagerList()</p><p><b> {</b></p><p><b> n = 0 ;&l
79、t;/b></p><p> p = head = NULL ;</p><p><b> }</b></p><p> void inputFile() ;</p><p> void saveFile() ;</p><p><b> } M;</b>&l
80、t;/p><p> void ManagerList::inputFile()</p><p><b> {</b></p><p> Manager * t;</p><p> char na[50] ;</p><p> ifstream cinm ("M.txt")
81、 ;</p><p> while(cinm >> na )</p><p><b> {</b></p><p> t = new Manager() ;</p><p> t -> next = NULL ;</p><p> strcpy(t -> name
82、 , na ) ;</p><p> cinm >> (t -> post ) >> (t -> sex) >> (t -> num) >> (t -> age) >> (t -> salary ) ;</p><p> addMember(M , t ) ;</p><p&g
83、t;<b> }</b></p><p><b> }</b></p><p> void ManagerList::saveFile() </p><p><b> {</b></p><p> Manager * t ;</p><p>
84、 ofstream cout ("M.txt") ;</p><p> for(t = M.head ; t != NULL ; t = t ->next )</p><p> cout<< (t -> name)<<' ' << (t -> post ) <<' '&
85、lt;< (t -> sex) <<' '<< (t -> num)</p><p> <<' '<< (t -> age) <<' '<< (t -> salary)<<endl ;</p><p><b> }&
86、lt;/b></p><p> void Exit()</p><p><b> {</b></p><p> cout<<"\t您已成功退出系統(tǒng)!!!"<<endl;</p><p><b> exit(0) ;</b></p>
87、<p><b> }</b></p><p> int mainMenu()</p><p><b> {</b></p><p> cout<<"\t__________________________"<<endl ;</p><p&
88、gt; cout<<"\t 主菜單"<<endl ;</p><p> cout<<"\t__________________________\n\n"<<endl ;</p><p> cout<<"\t 1. 員工信息管理"<<e
89、ndl;</p><p> cout<<"\t 2. 職務(wù)管理"<<endl;</p><p> cout<<"\t 3. 月薪計(jì)算"<<endl;</p><p> cout<<"\t 4. 員工信息查找"<&
90、lt;endl;</p><p> cout<<"\t 5. 顯示所有人員信息"<<endl;</p><p> cout<<"\t 0. 退出程序 "<<endl;</p><p> cout<<"\t_________
91、_________________\n\n"<<endl ;</p><p> cout<<"\t請選擇 >> " ;</p><p><b> return 0;</b></p><p><b> }</b></p><p>
92、 void addDataMenu() </p><p><b> {</b></p><p><b> int sel ;</b></p><p> Tech * ti ;</p><p> Seller *si ;</p><p> Manager * mi
93、;</p><p> XManager * xi ;</p><p> cout<<"\n\n\n\n\t**************************"<<endl ;</p><p> cout<<"\t 添加員工信息"<<endl ;</p>
94、<p> cout<<"\t**************************\n"<<endl ;</p><p> cout<<"\t 1. 技術(shù)員"<<endl;</p><p> cout<<"\t 2. 銷售員"<&l
95、t;endl;</p><p> cout<<"\t 3. 銷售經(jīng)理"<<endl;</p><p> cout<<"\t 4. 總經(jīng)理"<<endl;</p><p> cout<<"\t 0. 返回"<<
96、;endl;</p><p> cout<<"\t__________________________\n\n"<<endl ;</p><p> cout<<"\t請選擇 : >> " ;</p><p> while(cin>>sel &&
97、(sel > 4 || sel < 0 ) ) cout<<"\n\t您的輸入有誤,請重新輸入: " ;</p><p> switch(sel )</p><p><b> {</b></p><p> case 0 : return ;</p><p><b&g
98、t; case 1 :</b></p><p> ti = new Tech() ;</p><p> strcpy(ti -> post, "技術(shù)員") ; </p><p> ti -> get() ;</p><p> //ti -> show() ;</p>&
99、lt;p> addMember(T , ti) ;</p><p><b> break ;</b></p><p><b> case 2 :</b></p><p> si = new Seller() ;</p><p> strcpy(si -> post , &quo
100、t;銷售員") ;</p><p> si -> get() ;</p><p> addMember(S , si ) ;</p><p><b> break ;</b></p><p><b> case 3 :</b></p><p> xi
101、 = new XManager() ;</p><p> strcpy(xi -> post , "銷售經(jīng)理") ;</p><p> xi -> get() ;</p><p> addMember(X , xi) ;</p><p><b> break ;</b></p
102、><p><b> case 4 :</b></p><p> mi = new Manager() ;</p><p> strcpy(mi -> post , "總經(jīng)理") ;</p><p> mi -> get() ;</p><p> addMemb
103、er(M , mi ) ;</p><p><b> break ;</b></p><p> default : break ;</p><p><b> }</b></p><p><b> }</b></p><p> template
104、<class T , class Ti > void renewMember(T & t , Ti * ti )</p><p><b> {</b></p><p> int no , sel ;</p><p> cout<<"\n\t請輸入員工編號: " ;</p>
105、<p><b> cin>>no ;</b></p><p> if(findMember(t , ti , no ) == false )</p><p><b> {</b></p><p> cout<<"\n\t該員工不存在,操作失敗! "<<
106、;endl ;</p><p><b> return ;</b></p><p><b> }</b></p><p> cout<<"\n\n\n\t━━━━━━━━━━━━━━━━━━━━━━━━━━\n";</p><p> cout<<&
107、quot;\t"<<"1.姓名"<<"\t"<<"2.性別"<<"\t"<<"3.年齡"<<"\t"<<"4.編號"<<"\t"<<"5.工資"
108、;<<endl ;</p><p> cout<<"\t━━━━━━━━━━━━━━━━━━━━━━━━━━\n";</p><p> t.p -> show() ;</p><p> cout<<"\n\t━━━━━━━━━━━━━━━━━━━━━━━━━━\n";</p
109、><p> cout<<"\n\t請輸入要修改的屬性編號:" ;</p><p> cin>>sel ;</p><p> if(sel < 1 || sel > 5 )</p><p><b> {</b></p><p> cout
110、<<"\n\t對不起,您的輸入有誤,操作失敗 !"<<endl ;</p><p><b> return ;</b></p><p><b> }</b></p><p> char na[50] , s[8] ;</p><p> int a
111、, nu ;</p><p> double sal ;</p><p> switch(sel )</p><p><b> {</b></p><p><b> case 1: </b></p><p> cout<<"\n\t請輸入姓名:
112、 " ;</p><p><b> cin>>na ;</b></p><p> strcpy(t.p -> name , na ) ;</p><p> cout<<"\n\t修改成功 ! "<<endl ;</p><p><b>
113、; break ;</b></p><p><b> case 2: </b></p><p> cout<<"\n\t請輸入性別: " ;</p><p><b> cin>>s ;</b></p><p> strcpy(t.p
114、-> sex , s ) ;</p><p> cout<<"\n\t修改成功 ! "<<endl ;</p><p><b> break ;</b></p><p><b> case 3: </b></p><p> cout<&
115、lt;"\n\t請輸入年齡: " ;</p><p><b> cin>>a ;</b></p><p> t.p -> age = a ;</p><p> cout<<"\n\t修改成功 ! "<<endl ;</p><p>
116、<b> break ;</b></p><p><b> case 4: </b></p><p> cout<<"\n\t請輸入編號: " ;</p><p><b> cin>>nu ;</b></p><p> t.
117、p -> num = nu ;</p><p> cout<<"\n\t修改成功 ! "<<endl ;</p><p><b> break ;</b></p><p><b> case 5: </b></p><p> cout<
118、<"\n\t請輸入工資: ";</p><p> cin>>sal ;</p><p> t.p -> salary = sal ;</p><p> cout<<"\n\t修改成功 ! "<<endl ;</p><p><b> br
119、eak ;</b></p><p><b> default :</b></p><p><b> break ;</b></p><p><b> }</b></p><p><b> }</b></p><p&g
120、t; void renewData()</p><p><b> {</b></p><p><b> int sel ;</b></p><p> Tech * t ;</p><p> Seller * s ;</p><p> XManager * x ;&
121、lt;/p><p> Manager * m ;</p><p> cout<<"\n\n\n\t━━━━━━━━━━━━━━\n";</p><p> cout<<"\t 修改員工信息"<<endl ;</p><p> cout<<&quo
122、t;\t━━━━━━━━━━━━━━\n";</p><p> cout<<"\t 1. 技術(shù)員"<<endl;</p><p> cout<<"\t 2. 銷售員"<<endl;</p><p> cout<<"\t
123、3. 銷售經(jīng)理"<<endl;</p><p> cout<<"\t 4. 總經(jīng)理"<<endl;</p><p> cout<<"\t 0. 返回"<<endl;</p><p> cout<<"\t━━━━━
124、━━━━━━━━━\n";</p><p> cout<<"\t請選擇 : >> " ;</p><p> while(cin>>sel && (sel > 4 || sel < 0 ) ) cout<<"\n\t您的輸入有誤,請重新輸入: " ;</p&
125、gt;<p> switch(sel )</p><p><b> {</b></p><p> case 0 : return ;</p><p><b> case 1 :</b></p><p> renewMember(T , t ) ;</p><
126、;p><b> break ;</b></p><p><b> case 2 : </b></p><p> renewMember(S , s ) ;</p><p><b> break ;</b></p><p><b> case 3 : &
127、lt;/b></p><p> renewMember(X , x ) ;</p><p><b> break ;</b></p><p><b> case 4 :</b></p><p> renewMember(M , m ) ;</p><p><
128、;b> break ;</b></p><p> default : break ;</p><p><b> }</b></p><p><b> }</b></p><p> template <class T , class Ti > bool dele
129、teMember(T & t , Ti * ti , int no)</p><p><b> {</b></p><p> if(findMember(t , ti , no ) == false )</p><p><b> {</b></p><p> cout<<
130、"\n\t該員工不存在,操作失敗! "<<endl ;</p><p> return false;</p><p><b> }</b></p><p><b> t.n -- ;</b></p><p> if(t.head -> num == no
131、 )</p><p><b> {</b></p><p> delete(t.head ) ;</p><p> t.head = NULL ;</p><p> return true;</p><p><b> }</b></p><p&g
132、t;<b> Ti * pi ;</b></p><p> for(ti = t.head ; ti -> next != NULL && ( (ti -> next -> num) != no) ; ti = ti -> next ) ;</p><p> pi = ti -> next -> next ;&
133、lt;/p><p> delete(ti -> next ) ;</p><p> ti -> next = pi ;</p><p> return true ;</p><p><b> }</b></p><p> void deleteData()</p>
134、<p><b> {</b></p><p><b> int sel ;</b></p><p> Tech * t ;</p><p> Seller * s ;</p><p> XManager * x ;</p><p> Manager *
135、m ;</p><p> cout<<"\n\n\n\t**************************"<<endl ;</p><p> cout<<"\t__________________________\n"<<endl ;</p><p> cout<
136、<"\t 刪除員工信息"<<endl ;</p><p> cout<<"\t**************************\n"<<endl ;</p><p> cout<<"\t 1. 技術(shù)員"<<endl;</p>&
137、lt;p> cout<<"\t 2. 銷售員"<<endl;</p><p> cout<<"\t 3. 銷售經(jīng)理"<<endl;</p><p> cout<<"\t 4. 總經(jīng)理"<<endl;</p>&
138、lt;p> cout<<"\t 0. 返回"<<endl;</p><p> cout<<"\t__________________________\n\n"<<endl ;</p><p> cout<<"\t請選擇 : >> " ;&l
139、t;/p><p> while(cin>>sel && (sel > 4 || sel < 0 ) ) cout<<"\n\t您的輸入有誤,請重新輸入: " ;</p><p> cout<<endl ;</p><p><b> int no ;</b>&l
140、t;/p><p> switch(sel )</p><p><b> {</b></p><p> case 0 : return ;</p><p><b> case 1 :</b></p><p> cout<<"\t請輸入編號 : >
141、;> " ;</p><p><b> cin>>no ;</b></p><p> if(deleteMember(T ,t , no)) cout<<"\n\t刪除成功 !"<<endl ;</p><p><b> break ;</b>
142、;</p><p><b> case 2 : </b></p><p> cout<<"\t請輸入編號 : >> " ;</p><p><b> cin>>no ;</b></p><p> if(deleteMember(S ,
143、s , no))cout<<"\n\t刪除成功 !"<<endl ;</p><p><b> break ;</b></p><p><b> case 3 : </b></p><p> cout<<"\t請輸入編號 : >> &qu
144、ot; ;</p><p><b> cin>>no ;</b></p><p> if(deleteMember(X , x, no) ) cout<<"\n\t刪除成功 !"<<endl ;</p><p><b> break ;</b></p>
145、;<p><b> case 4 :</b></p><p> cout<<"\t請輸入編號 : >> " ;</p><p><b> cin>>no ;</b></p><p> if(deleteMember(M , m , no) ) c
146、out<<"\n\t刪除成功 !"<<endl ;</p><p><b> break ;</b></p><p> default : break ;</p><p><b> }</b></p><p><b> }</b&g
147、t;</p><p> void dataManagement() </p><p><b> {</b></p><p><b> int sel ;</b></p><p><b> while(1)</b></p><p><b>
148、; {</b></p><p> cout<<"\n\n\n\n\t**************************"<<endl ;</p><p> cout<<"\t 員工信息管理"<<endl ;</p><p> cout<<&
149、quot;\t**************************\n"<<endl ;</p><p> cout<<"\t 1. 添加信息"<<endl;</p><p> cout<<"\t 2. 修改信息"<<endl;</p><p
150、> cout<<"\t 3. 刪除信息"<<endl;</p><p> cout<<"\t 0. 返回"<<endl;</p><p> cout<<"\t__________________________\n\n"<<endl
151、 ;</p><p> cout<<"\t請選擇 : -> " ;</p><p> while(cin>>sel && (sel > 3 || sel < 0 ) ) cout<<"\n\t您的輸入有誤,請重新輸入: " ;</p><p> swi
152、tch(sel )</p><p><b> {</b></p><p> case 0 : return ;</p><p> case 1 : addDataMenu() ; break ;</p><p> case 2 : renewData() ; break ;</p><p>
153、; case 3 : deleteData() ; break ;</p><p> default : break ;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p
154、> template <class T , class Ti > bool findMember(T & t , Ti * ti , int no)</p><p><b> {</b></p><p> for(t.p = t.head ; t.p != NULL && t.p -> num != no ; t.
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- ”小型公司工資管理系統(tǒng)設(shè)計(jì)“c++課程設(shè)計(jì)
- 小型公司工資管理系統(tǒng)設(shè)計(jì) c++課程設(shè)計(jì)
- 課程設(shè)計(jì)--c++企業(yè)工資管理系統(tǒng)
- c++企業(yè)工資管理系統(tǒng)課程設(shè)計(jì)
- c++企業(yè)工資管理系統(tǒng)課程設(shè)計(jì)
- c++程序設(shè)計(jì)課程設(shè)計(jì)-----小型企業(yè)工資管理系統(tǒng)
- c++課程設(shè)計(jì)---公司工資管理系統(tǒng)說明書
- c++課程設(shè)計(jì)--高校工資管理系統(tǒng)
- c++課程設(shè)計(jì)-----高校工資管理系統(tǒng)
- c++課程設(shè)計(jì)---職工工資管理系統(tǒng)
- c++課程設(shè)計(jì)報(bào)告---高校工資管理系統(tǒng)
- c++課程設(shè)計(jì)報(bào)告--高校工資管理系統(tǒng)
- c++實(shí)習(xí)報(bào)告---小型公司工資管理系統(tǒng)的設(shè)計(jì)
- c++課程設(shè)計(jì)---職工工資管理系統(tǒng)
- c++課程設(shè)計(jì)-職工工資管理系統(tǒng)設(shè)計(jì)
- 課程設(shè)計(jì)--小型公司工資管理系統(tǒng)的設(shè)計(jì)
- c++課程設(shè)計(jì)---企業(yè)員工工資管理系統(tǒng)
- 課程設(shè)計(jì)c++之職工工資管理系統(tǒng)
- c++課程設(shè)計(jì)--高校職工工資管理系統(tǒng)
- c++課程設(shè)計(jì)_企業(yè)員工工資管理系統(tǒng)
評論
0/150
提交評論