版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課程設(shè)計(jì)</b></p><p> 2010 ~ 2011學(xué)年第一學(xué)期</p><p> 設(shè)計(jì)題目 職工工資管理系統(tǒng)設(shè)計(jì) </p><p> 院(系) 計(jì)算機(jī)科學(xué)與信息工程系 </p><p> 專
2、 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) </p><p> 班 級(jí) 11111111 學(xué)號(hào) 1111111111 </p><p> 學(xué)生姓名 </p><p> 設(shè)計(jì)時(shí)間 2011年 12 月 26 日——2012 年 12 月 30 日 </p><
3、;p> 指導(dǎo)教師 </p><p> 提交日期 2011年12月26日 </p><p><b> 課程設(shè)計(jì)任務(wù)書</b></p><p><b> 目錄</b></p><p><b>
4、 1概述:5</b></p><p> 1.1基本功能5</p><p> 1.2拓展功能5</p><p><b> 2課題分析6</b></p><p> 2.1類的設(shè)計(jì)6</p><p> 2.2 類的實(shí)現(xiàn)6</p><p
5、> 3詳細(xì)設(shè)計(jì)說(shuō)明7</p><p> 3.1程序主界面7</p><p><b> 3.2 方案7</b></p><p> 3.3程序描述(輸入input)9</p><p> 4課程設(shè)計(jì)總結(jié)12</p><p> 5軟件使用說(shuō)明12</p>
6、;<p> 6附錄(參考文獻(xiàn),原代碼:)13</p><p> 6.1參考文獻(xiàn):13</p><p> 6.2原代碼13</p><p><b> 概述:</b></p><p><b> 基本功能</b></p><p> 實(shí)現(xiàn)一個(gè)簡(jiǎn)
7、單的工資管理系統(tǒng)。系統(tǒng)的主要用來(lái)計(jì)算職工當(dāng)月工資并存檔。</p><p> 由于公司內(nèi)有5種不同類型的職工:技術(shù)人員、銷售人員、文秘、技術(shù)經(jīng)理和銷售經(jīng)理,他們的工資計(jì)算方式各不相同。所以,此系統(tǒng)的基本功能是:</p><p> 首先,由員工輸入用戶信息(包括編號(hào)、姓名和職務(wù);然后,計(jì)算某職工的當(dāng)月工資(系統(tǒng)先從已輸入的職工信息文件中獲取職工的工作類型;</p><p
8、> 接著調(diào)用不同的處理程序進(jìn)行計(jì)算);</p><p> 最后,可以選擇將結(jié)果(所有員工的編號(hào)、姓名、職位、工資等信息)存檔。</p><p><b> 拓展功能</b></p><p> 1.設(shè)定好5種職位各不相同的工資計(jì)算方式:</p><p> 技術(shù)人員的工資根據(jù)他當(dāng)月工作的小時(shí)數(shù)來(lái)定,時(shí)薪35元;
9、</p><p> 銷售人員的工資則是根據(jù)本人當(dāng)月銷售額來(lái)確定,工資為銷售額的5%;</p><p> 文秘有4000元的基本工資,獎(jiǎng)金視為當(dāng)月工作情況而定;</p><p> 技術(shù)經(jīng)理和銷售經(jīng)理都有6000元的固定工資,技術(shù)經(jīng)理的工作業(yè)績(jī)可分為3個(gè)等級(jí),PS:每級(jí)可獲得1000元獎(jiǎng)金(¥1000、¥2000、¥3000);</p><p&
10、gt; 銷售經(jīng)理的獎(jiǎng)金由他所管理的銷售員的銷售業(yè)績(jī)而定,總銷售額的2%。</p><p> 2.添加某個(gè)職工信息的查詢功能:</p><p> 只要輸入一個(gè)已經(jīng)存在數(shù)據(jù)庫(kù)內(nèi)的雇員名字,即可查到該雇員的編號(hào)、姓名、職位和工資的信息。</p><p><b> 3.清屏功能:</b></p><p> 為了保護(hù)雇員
11、個(gè)人信息不外露。</p><p><b> 4.警報(bào)功能:</b></p><p> 在查詢職員工資信息的時(shí)候,會(huì)發(fā)出警報(bào)音“滴——”的一聲。</p><p><b> 5.退出確定功能</b></p><p> 退出程序時(shí),會(huì)讓用戶再次確定是否真的要退出的界面。</p>&l
12、t;p><b> 課題分析</b></p><p><b> 類的設(shè)計(jì)</b></p><p> 從用戶需求中,可以發(fā)現(xiàn)5種類型的職員都可以分別設(shè)計(jì)為一個(gè)類。首先,他們都屬于雇員,因此可以設(shè)計(jì)一個(gè)基類employee(雇員),然后從中派生出technician(技術(shù)人員)類,salesman(銷售人員)類、secretary(文秘)類
13、、techmanager(技術(shù)經(jīng)理)類和manager(銷售經(jīng)理)類。</p><p> 根據(jù)用戶需要employee類應(yīng)該擁有的屬性有:編號(hào)、姓名、職務(wù)、月份和工資。Employee類的服務(wù)可以包括input(),print(),find(),save()。其中,input()函數(shù)用于接收用戶輸入的職工信息;print()函數(shù)用于輸出用戶輸入的職工信息;find()函數(shù)用來(lái)根據(jù)職工名查找職工信息;save()
14、函數(shù)為將職工信息寫入文本。</p><p> 由于各類人員的工資計(jì)算方法不同,無(wú)法在基類中統(tǒng)一定義,必須在派生類中分別定義。2.2類的實(shí)現(xiàn)</p><p> class Technician:public Employee //技術(shù)員類(公有繼承雇員類) </p><p><b> {</b></p><p&
15、gt;<b> public:</b></p><p> void input()</p><p><b> {</b></p><p> cout<<"技術(shù)員的";</p><p> Employee::input();</p><p&
16、gt; cout<<"工作時(shí)間:"; </p><p> cin>>worktime;</p><p><b> }</b></p><p> void print()</p><p> { pay=worktime*hourpay;</p><p
17、> Employee::print(); </p><p><b> }</b></p><p> void find()</p><p><b> {</b></p><p> pay=worktime*hourpay;</p><p>
18、 Employee::find();</p><p><b> }</b></p><p> void save()</p><p> { pay=worktime*hourpay; 其他類,類似形成。</p><p> Employee::save(
19、); </p><p><b> }</b></p><p> protected:</p><p> double worktime; //工作時(shí)間(小時(shí))</p><p><b> };</b></p><p><b> 詳細(xì)
20、設(shè)計(jì)說(shuō)明</b></p><p><b> 程序主界面</b></p><p><b> 圖表 1主菜單目錄</b></p><p><b> 方案</b></p><p> 在明確了整個(gè)程序基本的功能目的后,接著,便是思考如何具體實(shí)現(xiàn):</p>
21、<p> 問(wèn)題1:存入的數(shù)據(jù)放在哪里?</p><p> const int n1=1,n2=1,n3=1,n4=1,n5=1; </p><p> /*定義公司各類職工人數(shù)(可修改)</p><p> (n1:技術(shù)員人數(shù);n2:經(jīng)理人數(shù);n3:銷售員人數(shù);n4:銷售經(jīng)理人數(shù) )*/</p><p> 事先設(shè)定好可修
22、改的全局變量。然后確定好全局對(duì)象數(shù)組。如此便可以按照所需存入員工信息</p><p> 問(wèn)題2:如何程序要求,落實(shí)?</p><p><b> 派生類</b></p><p><b> 派生類</b></p><p><b> 派生類</b></p>&l
23、t;p><b> 派生類</b></p><p><b> 基類</b></p><p><b> 派生類</b></p><p> 問(wèn)題3:怎樣處理2個(gè)菜單關(guān)系?(輸入職員信息菜單、目錄菜單)</p><p> 讓目錄菜單作為主菜單,輸入職員信息的菜單成為二級(jí)
24、菜單。并運(yùn)用清屏的功能,及時(shí)清除輸入的職員信息,作為一種安全保護(hù)。</p><p> 程序描述(輸入input)</p><p> * 由主菜單選擇進(jìn)入“1”的數(shù)據(jù)輸入菜單,進(jìn)行數(shù)據(jù)輸入(進(jìn)入二級(jí)菜單后會(huì)自動(dòng)清屏)。</p><p> 圖表 2子菜單(程序中的menu 3)</p><p> * 根據(jù)需要選擇輸入要輸入的職員信息。
25、(只需按照中文提示,依次輸入英語(yǔ)或數(shù)字信息)</p><p> 圖表 3子菜單中選擇輸入技術(shù)經(jīng)理信息的一個(gè)狀態(tài)</p><p> * 一個(gè)職員的信息全部輸入完成后,會(huì)自動(dòng)清屏,回到“財(cái)務(wù)部門輸入數(shù)據(jù)系統(tǒng)”主菜單</p><p><b> 圖表 4 子菜單</b></p><p> * 以此類推,隨意輸入你要輸
26、入的職員信息。若輸入全部完成,可以回到主菜單</p><p> * 然后,在主菜單中選擇數(shù)據(jù)查詢,可以根據(jù)你填入的職工姓名,查到他的所有信息</p><p> 圖表 5 由主菜單選擇查詢一操作時(shí),反饋信息的狀態(tài)</p><p> * 也可選擇數(shù)據(jù)備份,會(huì)自動(dòng)清屏。并讓所有已輸入過(guò)的職工信息,全打印在所在磁盤的一個(gè)txt文檔里。</p><
27、;p> 圖表 6 由主菜單選擇數(shù)據(jù)備份一操作后的狀態(tài)</p><p> * 如果想要退出系統(tǒng),可以選擇主菜單的退出系統(tǒng),選擇過(guò)后,會(huì)清屏,顯示以下界面,警告用戶,是否真的要推出。</p><p> 圖表 7 選擇主菜單退出系統(tǒng)一操作后的狀態(tài)</p><p><b> 課程設(shè)計(jì)總結(jié)</b></p><p>
28、 通過(guò)此次面向?qū)ο蟪绦蛟O(shè)計(jì)的實(shí)踐課程學(xué)習(xí),本人受益匪淺。</p><p> 經(jīng)過(guò)一系列的編程,本人更加體會(huì)到紙上得來(lái)終覺(jué)淺,絕知此事要躬行。實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)。這兩句話說(shuō)的真切。</p><p><b> 遇到的難關(guān)1.</b></p><p> 在編寫銷售經(jīng)理的類的時(shí)候,由于思維混亂,繼承亂用,以致真?zhèn)€程序一片混亂,運(yùn)行不出,且
29、外加幾十個(gè)錯(cuò)誤警告。經(jīng)過(guò)回顧自己先前寫的流程圖,本人得到了很大的頓悟。關(guān)系捋清楚了,思路也豁然開(kāi)朗了,下筆如有神。</p><p><b> 遇到的難關(guān)2.</b></p><p> 五種職員在計(jì)算工資的時(shí)候,先前一直查詢不到正確的工資數(shù)額。在反復(fù)檢查、測(cè)試的過(guò)程中,才發(fā)現(xiàn)那些計(jì)算公式,繼承沒(méi)有問(wèn)題,問(wèn)題出在查詢的那個(gè)函數(shù)忘記將重新計(jì)算工資的公式寫上。所以一直顯示
30、的是employee的工資數(shù),而不是各個(gè)職位員工的工資數(shù)。</p><p><b> 遇到的難關(guān)3.</b></p><p> 在增加清屏這一功能時(shí),本以為這很簡(jiǎn)單??稍诰唧w操作時(shí),才發(fā)現(xiàn),這也考驗(yàn)一個(gè)人思維邏輯的嚴(yán)謹(jǐn)。曾設(shè)想,為了不泄密,將清屏這一函數(shù)放在查詢函數(shù)后。結(jié)果沒(méi)想到,這導(dǎo)致測(cè)試時(shí):工資信息一顯示,立刻被擦掉,根本來(lái)不及看的窘境。</p>
31、<p><b> 存在的不足1.</b></p><p> 本程序設(shè)計(jì)上還有明顯的不妥,就是查詢工資信息的時(shí)候,要求輸入的僅僅為用戶姓名。由于還是英語(yǔ)輸入,難免有同名同姓的狀況出現(xiàn),容易混亂與出錯(cuò),還需改進(jìn)。</p><p><b> 存在的不足2.</b></p><p> 原本思路是將程序分為兩個(gè)入
32、口:管理員入口和職員入口。管理員入口:需要輸入通行賬戶和密碼。進(jìn)入后,有兩個(gè)功能——輸入所有職工信息(編號(hào)、姓名、崗位、月份、業(yè)績(jī)獎(jiǎng)勵(lì)等等基本信息)和數(shù)據(jù)備份。職員入口:則面向所有員工。進(jìn)入后,只有一個(gè)功能——根據(jù)自己的名字和編號(hào)查詢自己的工資等信息。</p><p> 可是由于實(shí)際精力有限,時(shí)間的不足。只能不分入口,直接將所有功能放在一個(gè)界面內(nèi)——主菜單內(nèi)。這樣不能很好的起到原先設(shè)想的保護(hù)功能。實(shí)乃缺失。&l
33、t;/p><p> 總之,這不到一周的實(shí)踐課,讓本人的對(duì)于知識(shí)的應(yīng)用能力有了顯著的提升。本人也明白了,想要真正會(huì)編程,就要課后下功夫,多“實(shí)戰(zhàn)”。這樣的進(jìn)步才更大。</p><p><b> 軟件使用說(shuō)明</b></p><p> 1.主菜單中,先輸入1,按回車。進(jìn)入輸入數(shù)據(jù)職員的菜單界面。</p><p> 2.按
34、文字提示信息,依次輸入5種職員的各個(gè)信息。</p><p> EG:編號(hào) 姓名 職位</p><p> 101 zhao techmanager</p><p> 202 qian technician</p><p> 303 sun salesman</p><p>
35、 404 li manager</p><p> 505 zhou secretary</p><p> 3.輸入完畢后,輸入0,按回車。再次回到主菜單。</p><p> 4.輸入2,按回車??梢暂斎肽阆氩榭吹穆毠ば彰?,按回車,查看其信息。</p><p> 5.輸入3,按回車。可以將所有職工的信息,做成文
36、本。</p><p> 6.輸入0,按回車。可以通過(guò)輸入y或n選擇,是否退出程序。</p><p> 友情提示:1.由于語(yǔ)言局限,輸入的信息僅限26個(gè)字母和阿拉伯?dāng)?shù)字。</p><p> 2.自動(dòng)清屏是出于對(duì)雇員信息的保護(hù)和界面整潔。并非出錯(cuò),請(qǐng)勿恐慌。</p><p> 3.備份資料時(shí),電腦發(fā)出的“滴”的警報(bào)聲,只是提示用戶,備份已
37、完成。</p><p> 附錄(參考文獻(xiàn),原代碼:)</p><p><b> 參考文獻(xiàn):</b></p><p> ?。?)《面向?qū)ο蟪绦蛟O(shè)計(jì)》 ,鄭莉,清華大學(xué)出版社, </p><p> ?。?)《面向?qū)ο蟪绦蛟O(shè)計(jì)C++語(yǔ)言》,朱戰(zhàn)立等編 西安電子科技大學(xué)出版社</p><p> ?。?/p>
38、3)《面向?qū)ο蟪绦蛟O(shè)計(jì)----Visual C++》,劉斌等編, 清華大學(xué)出版社 </p><p> ?。?)《面向?qū)ο蟪绦蛟O(shè)計(jì)----C++語(yǔ)言描述》, Richard Johnsonbaugh(美)等著,蔡宇輝等譯,機(jī)械工業(yè)出版社, 2003</p><p><b> 6.2原代碼</b></p><p> #include<
39、fstream></p><p> #include<iostream></p><p> #include<string></p><p> #include<iomanip></p><p> #include<stdlib.h></p><p> u
40、sing namespace std;</p><p> //常變量(供修改用):</p><p> const int n1=1,n2=1,n3=1,n4=1,n5=1; /*定義公司各類職工人數(shù)(可修改)</p><p> (n1:技術(shù)員人數(shù);n2:經(jīng)理人數(shù);n3:銷售員人數(shù);n4:銷售經(jīng)理人數(shù) )*/</p><p> con
41、st double m_salary=6000; //經(jīng)理固定月工資</p><p> const double hourpay=35; //技術(shù)員小時(shí)工資</p><p> const double basicpay=6000; //銷售經(jīng)理的底薪</p><p> const double secretarypay = 4000;/
42、/文秘的底薪</p><p> const double s_proportion=5.0/100; //銷售員的工資提成比例</p><p> const double sm_proportion=2.0/100; //銷售經(jīng)理的提成比例</p><p> double sold_amount;</p><p><b>
43、; //聲明部分:</b></p><p> void menu(); //主菜單(1/2/3/0)</p><p> void menu3(); //數(shù)據(jù)打印二級(jí)菜單(1/2/3/4/5/0)</p><p> void data_input(); //數(shù)據(jù)輸入函數(shù)</p><p
44、> double sm_salary(); //銷售經(jīng)理工資計(jì)算</p><p> void data_find(); //數(shù)據(jù)查詢</p><p> void data_save(); //數(shù)據(jù)備份(做到txt中) </p><p> void clear();</p><p> ofstream
45、outfile; //打開(kāi)磁盤文件流對(duì)象</p><p> string f_name; //全局變量(查詢用)</p><p><b> //定義類:</b></p><p> class Employee //雇員類(基類)</p><p><b> {&
46、lt;/b></p><p><b> public:</b></p><p> void input() //數(shù)據(jù)輸入函數(shù)</p><p><b> {</b></p><p> cout<<"編號(hào):"; </p><
47、p><b> cin>>num;</b></p><p> cout<<"其姓名:"; </p><p> cin>>name;</p><p> cout<<"職位:"; </p><p> cin>>s
48、tatus;</p><p> cout<<"月份:"; </p><p> cin>>month;</p><p><b> } </b></p><p> void print() //打印數(shù)據(jù)函數(shù)</p><p><b
49、> { </b></p><p> cout<<" 編號(hào)\t姓名\t職位\t\t月份\t工資 "<<endl;</p><p> cout<<num<<"\t"<<name<<"\t"<<status<<&q
50、uot;\t"<<month<<"\t"<<pay<<endl;</p><p><b> }</b></p><p> void find() //查詢函數(shù)</p><p><b> {</b></p><p
51、> if(f_name==name ) </p><p><b> { </b></p><p><b> print();</b></p><p> cout<<endl;</p><p><b> }</b></p><p
52、><b> }</b></p><p> void save() //備份數(shù)據(jù)函數(shù)</p><p><b> {</b></p><p> outfile<<num<<"\t"<<name<<"\t"<&l
53、t;status<<"\t"<<month<<"\t"<<pay<<endl;</p><p><b> }</b></p><p> protected: </p><p> int num; //職工號(hào)</p>&
54、lt;p> string name; //職工姓名</p><p> string status; //職工職位 </p><p> int month; //工資月份 </p><p> double pay; //職工工資</p><p><b> };</b></
55、p><p> class Technician:public Employee //技術(shù)員類(公有繼承) </p><p><b> {</b></p><p><b> public:</b></p><p> void input()</p><p><
56、b> {</b></p><p> cout<<"技術(shù)員的";</p><p> Employee::input();</p><p> cout<<"工作時(shí)間:"; </p><p> cin>>worktime;</p>
57、<p><b> }</b></p><p> void print()</p><p> { pay=worktime*hourpay;</p><p> Employee::print(); </p><p><b> }</b></p>&
58、lt;p> void find()</p><p><b> {</b></p><p> pay=worktime*hourpay;</p><p> Employee::find();</p><p><b> }</b></p><p> void s
59、ave()</p><p> { pay=worktime*hourpay;</p><p> Employee::save(); </p><p><b> }</b></p><p> protected:</p><p> double worktime;
60、 //工作時(shí)間(小時(shí))</p><p><b> };</b></p><p> class Manager:public Employee //技術(shù)經(jīng)理類</p><p><b> {</b></p><p><b> public:</b></p&g
61、t;<p> void input()</p><p><b> {</b></p><p> cout<<"技術(shù)經(jīng)理的";</p><p> Employee::input();</p><p> cout<<"業(yè)績(jī)獎(jiǎng)勵(lì)(輸入金額數(shù):1000
62、、2000或3000):"; </p><p> cin>>m_expay; </p><p><b> }</b></p><p> void print()</p><p> { pay=m_salary+m_expay;</p><p> Employe
63、e::print();</p><p><b> }</b></p><p> void find()</p><p> { pay=m_salary+m_expay;</p><p> Employee::find();</p><p><b> }</b><
64、;/p><p> void save()</p><p> { pay=m_salary+m_expay;</p><p> Employee::save();</p><p><b> }</b></p><p> protected: </p><p> in
65、t m_expay;</p><p><b> };</b></p><p> class Sell_Manager:public Employee //銷售經(jīng)理類</p><p><b> {</b></p><p><b> public:</b></p
66、><p> void input()</p><p> { cout<<"銷售經(jīng)理的";</p><p> Employee::input();</p><p><b> }</b></p><p> int sm_number() //調(diào)用銷售經(jīng)理職工
67、號(hào)</p><p><b> {</b></p><p> return num;</p><p><b> }</b></p><p> string sm_name() //調(diào)用銷售經(jīng)理姓名</p><p><b> {</b><
68、;/p><p> return name;</p><p><b> }</b></p><p> void print() </p><p> { pay=basicpay+sold_amount*sm_proportion;</p><p> cout<<"
69、 編號(hào)\t姓名\t職位\t\t月份\t工資"<<endl;</p><p> cout<<num<<"\t"<<name<<"\t"<<status<<"\t\t"<<month;</p><p><b> }&
70、lt;/b></p><p> void save()</p><p><b> {</b></p><p> pay=basicpay+sold_amount*sm_proportion;</p><p> outfile<<num<<"\t"<<n
71、ame<<"\t"<<status<<"\t\t"<<month;</p><p><b> }</b></p><p> void find()</p><p><b> { </b></p><p>
72、 if(f_name==name ) </p><p><b> { </b></p><p><b> print();</b></p><p> cout<<endl;</p><p><b> }</b></p><p>&
73、lt;b> }</b></p><p><b> };</b></p><p> class Seller:public Employee //銷售員類</p><p><b> {</b></p><p><b> public:</b>
74、</p><p> Seller(){ sold_amount=0; } //構(gòu)造函數(shù),銷售額初始化為0</p><p> void input()</p><p><b> {</b></p><p> cout<<"銷售員的";</p><p> E
75、mployee::input();</p><p> cout<<"銷售額:"; </p><p> cin>>sold_amount;</p><p> cout<<"所屬銷售經(jīng)理的編號(hào):";</p><p><b> cin>>n
76、u;</b></p><p><b> }</b></p><p> void print() </p><p> { pay=sold_amount*s_proportion;</p><p> cout<<num<<"\t"<<nam
77、e<<"\t"<<status<<"\t"<<month</p><p> <<"\t"<<pay<<"\t"<<nu<<endl;</p><p><b> } </b><
78、;/p><p> int s_number() //調(diào)用銷售員所屬銷售經(jīng)理職工號(hào)</p><p><b> {</b></p><p> return nu;</p><p><b> }</b></p><p> double amount() //調(diào)用
79、銷售員銷售額</p><p><b> {</b></p><p> return sold_amount;</p><p><b> }</b></p><p> void find()</p><p> { if(f_name==name)</p>
80、<p><b> {</b></p><p> cout<<" 編號(hào)\t姓名\t職位\t\t月份\t工資\t所屬部門經(jīng)理編號(hào) "<<endl;</p><p><b> print();</b></p><p><b> }</b><
81、;/p><p><b> }</b></p><p> void save() </p><p> { pay=sold_amount*s_proportion;</p><p> outfile<<num<<"\t"<<name<<&quo
82、t;\t"<<status<<"\t"<<month</p><p> <<"\t"<<pay<<"\t\t"<<nu<<endl;</p><p><b> } </b></p>&l
83、t;p> protected:</p><p> double sold_amount; //銷售額</p><p> int nu; //所屬銷售經(jīng)理職工號(hào)</p><p><b> };</b></p><p> class Secretary:public Employee
84、 //文秘類</p><p><b> {</b></p><p><b> public:</b></p><p> void input()</p><p><b> {</b></p><p> cout<<"文秘
85、的";</p><p> Employee::input();</p><p> cout<<"附加獎(jiǎng)勵(lì)(輸入本月獎(jiǎng)金數(shù)額):"; </p><p> cin>>sy_expay; </p><p><b> }</b></p><p&
86、gt; void print()</p><p> { pay=secretarypay+sy_expay;</p><p> Employee::print();</p><p><b> }</b></p><p> void find()</p><p><b> {
87、</b></p><p> pay=secretarypay+sy_expay;</p><p> Employee::find();</p><p><b> }</b></p><p> void save()</p><p> { pay=secretarypay+s
88、y_expay;</p><p> Employee::save();</p><p><b> }</b></p><p> protected:</p><p> int sy_expay; </p><p><b> };</b></p><
89、;p> //定義全局對(duì)象數(shù)組 </p><p> Technician t[n1]; //技術(shù)員</p><p> Manager m[n2]; //經(jīng)理</p><p> Seller s[n3]; //銷售員</p><p> Sell_Manager sm[n4]; //銷
90、售經(jīng)理(下屬若干銷售員)</p><p> Secretary sy[n5]; //文秘 </p><p><b> //主函數(shù)部分:</b></p><p> int main() </p><p><b> {</b></p><p><
91、;b> char n; </b></p><p><b> menu();</b></p><p> for(int i=0;i<1000;i++) //設(shè)定循環(huán)次數(shù)(便于各項(xiàng)操作的切換及方便查詢)</p><p><b> {cin>>n;</b></p>&
92、lt;p><b> switch(n)</b></p><p><b> {</b></p><p> case'1': //數(shù)據(jù)輸入</p><p><b> clear();</b></p><p> cout<<endl&
93、lt;<"您所選操作為數(shù)據(jù)輸入,請(qǐng)繼續(xù)--"<<endl<<endl; </p><p> data_input();</p><p> cout<<endl;</p><p><b> menu();</b></p><p><b>
94、 break;</b></p><p> case'2': //數(shù)據(jù)查詢</p><p><b> clear();</b></p><p> cout<<endl<<"您所選操作為數(shù)據(jù)查詢,請(qǐng)繼續(xù)--"<<endl<<endl; &
95、lt;/p><p> cout<<"請(qǐng)輸入您要查詢的職工姓名: ";</p><p> cin>>f_name; </p><p> cout<<endl<<"--正在查詢,請(qǐng)等待--"<<endl<<endl; </p>&
96、lt;p> cout<<"您查詢的信息如下:"<<endl<<endl; </p><p> data_find();</p><p> cout<<endl<<endl;</p><p><b> menu();</b></p><
97、;p><b> break;</b></p><p> case'3': //數(shù)據(jù)備份</p><p><b> clear();</b></p><p> outfile.open("C++程序設(shè)計(jì)實(shí)習(xí).txt",ios::out); //打開(kāi)磁盤文件流對(duì)象<
98、/p><p> cout<<endl<<"您所選操作為數(shù)據(jù)備份,請(qǐng)繼續(xù)--"<<endl<<endl;</p><p> outfile<<"職工基本情況一覽表如下:"<<'\n'<<endl; </p><p> da
99、ta_save();</p><p> outfile.close();</p><p> cout<<endl<<endl;</p><p> cout<<'\a'<<"--數(shù)據(jù)備份完成,請(qǐng)繼續(xù)--"<<endl<<endl; </p>
100、;<p><b> menu(); </b></p><p><b> break; </b></p><p> case'0': //退出系統(tǒng)</p><p><b> clear();</b></p><p> cout<
101、;<endl<<"是否真的要退出系統(tǒng)?"<<endl<<endl;</p><p> cout<<" 是( y )"<<" "<<"否( n ) ";</p><p><b> cin>>
102、n;</b></p><p> if(n=='y') </p><p> { cout<<'\n'<<"--請(qǐng)按任意鍵退出系統(tǒng)--"<<endl; exit(0); cout<<endl;}</p><p> else menu();<
103、;/p><p><b> break;</b></p><p><b> default: </b></p><p> cout<<endl<<"--出錯(cuò)!請(qǐng)重新選擇操作! "<<'\n'<<endl;</p><p&
104、gt;<b> menu();</b></p><p> break; </p><p><b> }</b></p><p><b> }</b></p><p><b> return 0;</b></p><p&g
105、t;<b> }</b></p><p> //自定義函數(shù)部分:</p><p> void menu() //菜單函數(shù)</p><p><b> { </b></p><p> cout<<" ★ 小型公司工資管理系統(tǒng) ★
106、"<<endl;</p><p> cout<<" ┌───────────────┐"<<endl;</p><p> cout<<" │ 數(shù)據(jù)輸入:1,并按回車鍵; │"<<endl;</p><p>
107、cout<<" └───────────────┘"<<endl;</p><p> cout<<" │ 數(shù)據(jù)查詢:2,并按回車鍵; │"<<endl;</p><p> cout<<" └─────────────
108、──┘"<<endl;</p><p> cout<<" │ 數(shù)據(jù)備份:3,并按回車鍵; │"<<endl;</p><p> cout<<" └───────────────┘"<<endl;</p><p>
109、; cout<<" │| 退出系統(tǒng):0,并按回車鍵;| │"<<endl;</p><p> cout<<" └───────────────┘"<<endl;</p><p> cout<<" 請(qǐng)輸入操作序號(hào):";<
110、/p><p><b> }</b></p><p> void menu2() //數(shù)據(jù)輸入二級(jí)菜單函數(shù)</p><p><b> { </b></p><p> cout<<" ★★財(cái)務(wù)部門輸入數(shù)據(jù)系統(tǒng)★★ "<<endl;&
111、lt;/p><p> cout<<"┌──────────────────┐"<<endl;</p><p> cout<<"│ 技術(shù)經(jīng)理數(shù)據(jù)輸入:1,并按回車鍵; │"<<endl;</p><p> cout<<"│ 技術(shù)員數(shù)據(jù)輸入 :2,并
112、按回車鍵; │"<<endl;</p><p> cout<<"│ 銷售員數(shù)據(jù)輸入 :3,并按回車鍵; │"<<endl;</p><p> cout<<"│ 銷售經(jīng)理數(shù)據(jù)輸入:4,并按回車鍵; │"<<endl;</p><p> cout
113、<<"│ 文秘?cái)?shù)據(jù)輸入 :5,并按回車鍵; │"<<endl; </p><p> cout<<"│ 返回上一級(jí) :0,并按回車鍵; │"<<endl;</p><p> cout<<"└──────────────────┘"<<
114、endl;</p><p> cout<<" 請(qǐng)輸入操作序號(hào):";</p><p><b> }</b></p><p> void data_input() //數(shù)據(jù)輸入函數(shù)</p><p><b> {</b></p><p&
115、gt;<b> char p;</b></p><p><b> int i;</b></p><p><b> menu2();</b></p><p> for(int j=0;j<100;j++)</p><p><b> {</b>
116、</p><p><b> cin >> p;</b></p><p> if(p=='0'){clear(); break;}</p><p><b> else</b></p><p><b> {</b></p><
117、p><b> switch(p)</b></p><p><b> {</b></p><p><b> case'1':</b></p><p><b> clear();</b></p><p> for(i=0;i&l
118、t;n2;i++)</p><p> m[i].input(); //經(jīng)理</p><p> cout<<endl<<"-------------------------------------------------------"<<endl;clear();menu2();break;</p><p>
119、;<b> case'2':</b></p><p><b> clear();</b></p><p> for(i=0;i<n1;i++)</p><p> t[i].input(); //技術(shù)人員 </p><p> cout<<endl<
120、<"-------------------------------------------------------"<<endl;clear();menu2();break;</p><p><b> case'3':</b></p><p><b> clear();</b></p
121、><p> for(i=0;i<n3;i++)</p><p> s[i].input(); //銷售員 </p><p> cout<<endl<<"--------------------------------------------------------"<<endl;clear();men
122、u2();break;</p><p><b> case'4':</b></p><p><b> clear();</b></p><p> for(i=0;i<n4;i++)</p><p> sm[i].input(); // 銷售經(jīng)理</p>
123、<p> cout<<endl<<"---------------------------------------------------------"<<endl;clear();menu2();break;</p><p><b> case'5':</b></p><p>&l
124、t;b> clear();</b></p><p> for(i=0;i<n5;i++)</p><p> sy[i].input(); // 文秘 </p><p> cout<<endl<<"----------------------------------------------------
125、-----"<<endl;clear();menu2();break;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b>&l
126、t;/p><p> double salary[n4];</p><p> double sm_salary() //銷售經(jīng)理工資計(jì)算</p><p><b> {</b></p><p> int i,j;double a ;Sell_Manager b;</p><p> for
127、(int k=0;k<n4;k++)</p><p> salary[k]=0;</p><p> for(i=0;i<n4;i++)</p><p> { double sum=0;</p><p> for(j=0;j<n3;j++)</p><p> if(s[j].s_number(
128、)==sm[i].sm_number())</p><p> { sum=sum+s[j].amount();</p><p> salary[i]=sum*sm_proportion+basicpay;</p><p><b> }</b></p><p><b> }</b></p
129、><p><b> return 0;</b></p><p><b> }</b></p><p> void data_find() //數(shù)據(jù)查詢函數(shù)</p><p><b> { </b></p><p> for(int i=0;
130、i<n1;i++)//查詢技術(shù)員數(shù)據(jù)</p><p> { t[i].find();}</p><p> for(int i=0;i<n2;i++)//查詢技術(shù)經(jīng)理數(shù)據(jù)</p><p> {m[i].find();}</p><p> for(int i=0;i<n3;i++) //查詢銷售員數(shù)據(jù)</p>
131、<p> s[i].find();</p><p> for(int i=0;i<n4;i++)//查詢銷售經(jīng)理的數(shù)據(jù) </p><p> if(f_name==sm[i].sm_name())</p><p><b> { </b></p><p> sm[i].print();<
132、/p><p> sm_salary() ; </p><p> cout<<setw(12)<<salary[i]<<endl;</p><p> cout<<endl;</p><p><b> break;</b></p><p><b
133、> } </b></p><p> for(int i=0;i<n5;i++)//查詢文秘?cái)?shù)據(jù)</p><p> sy[i].find();</p><p><b> }</b></p><p> void data_save() //數(shù)據(jù)備份函數(shù) </p>
134、<p><b> {</b></p><p> outfile<<endl<<"技術(shù)員"<<endl<<endl; //技術(shù)員信息</p><p> outfile<<" 編號(hào)\t姓名\t職位\t\t月份\t工資 "<<endl;
135、</p><p> for(int i=0;i<n1;i++)</p><p> t[i].save();</p><p> outfile<<endl<<endl<<"----------------------------------------------------------------------
136、-----"<<endl;</p><p> outfile<<endl<<"技術(shù)經(jīng)理"<<endl<<endl; //經(jīng)理信息</p><p> outfile<<" 編號(hào)\t姓名\t職位\t\t月份\t工資 "<<endl;</p
137、><p> for(int i=0;i<n2;i++)</p><p> m[i].save();</p><p> outfile<<endl<<endl<<"----------------------------------------------------------------------------
138、"<<endl; </p><p> outfile<<endl<<"銷售經(jīng)理"<<endl<<endl; //銷售經(jīng)理信息</p><p> outfile<<" 編號(hào)\t姓名\t職位\t\t月份\t工資 "<<endl;</p>
139、;<p> for(int i=0;i<n4;i++)</p><p> { sm[i].save();</p><p> outfile<<setw(12)<<salary[i]<<endl;}</p><p> outfile<<endl<<endl<<"
140、;----------------------------------------------------------------------------"<<endl<<endl;</p><p> outfile<<endl<<"銷售員"<<endl<<endl; //銷售員信息</p&g
141、t;<p> outfile<<" 編號(hào)\t姓名\t職位\t\t月份\t工資\t\t所屬部門經(jīng)理編號(hào) "<<endl;</p><p> for(int i=0;i<n3;i++)</p><p> s[i].save();</p><p> outfile<<endl<<
142、;endl<<"-----------------------------------------------------------------------------"<<'\n'<<endl;</p><p> outfile<<endl<<"文秘"<<endl<<e
143、ndl; //文秘信息</p><p> outfile<<" 編號(hào)\t姓名\t職位\t\t月份\t工資 "<<endl;</p><p> for(int i=0;i<n5;i++)</p><p> sy[i].save();</p><p> outfile<
144、<endl<<endl<<"----------------------------------------------------------------------------"<<endl; </p><p><b> }</b></p><p> void clear()</p>
145、<p> { system("cls"); }</p><p> 補(bǔ)充:小型公司職員檔案(秘!)</p><p> 編號(hào) 姓名 職位</p><p> 101 zhao techmanager</p><p> 202 qian technician</p>
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計(jì)---職工工資管理系統(tǒng)
- 課程設(shè)計(jì)---職工工資管理系統(tǒng)
- 職工工資管理系統(tǒng)設(shè)計(jì)課程設(shè)計(jì)
- 職工工資管理系統(tǒng)設(shè)計(jì)的課程設(shè)計(jì)
- 課程設(shè)計(jì)報(bào)告--職工工資管理系統(tǒng)設(shè)計(jì)
- c++課程設(shè)計(jì)---職工工資管理系統(tǒng)
- c語(yǔ)言職工工資管理系統(tǒng)課程設(shè)計(jì)
- c++課程設(shè)計(jì)---職工工資管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)——職工工資管理
- c語(yǔ)言課程設(shè)計(jì)——職工工資管理
- c++課程設(shè)計(jì)-職工工資管理系統(tǒng)設(shè)計(jì)
- 課程設(shè)計(jì)c++之職工工資管理系統(tǒng)
- c++課程設(shè)計(jì)--高校職工工資管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)---職工工資管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告---職工工資管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告--職工工資管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告---職工工資管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告職工工資管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--職工工資管理
- 課程設(shè)計(jì)---職工工資管理系統(tǒng)設(shè)計(jì)說(shuō)明書
評(píng)論
0/150
提交評(píng)論