職工工資管理系統(tǒng)設(shè)計(jì)的課程設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩23頁(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、<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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論