《面向對象程序設計》課程設計---科研經(jīng)費管理系統(tǒng)的設計_第1頁
已閱讀1頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  課程設計</b></p><p>  2009 ~ 2010學年第一學期</p><p>  設計題目 《面向對象程序設計》課程設計</p><p>  院(系) 計算機科學與信息工程學院 </p><p>  專 業(yè) 計算機科學與技術 </p&g

2、t;<p>  班 級 學號 </p><p>  學生姓名 </p><p>  設計時間 2010年 1 月 25 日-- 1 月 29 日 </p><p>  指導教師

3、</p><p>  提交日期 2010年1月29日 </p><p><b>  課程設計任務書</b></p><p>  指導教師(簽名): 教研室主任(簽名): 目錄</p><p><b>  1概述

4、:4</b></p><p>  1.1xxxxxx4</p><p>  1.2xxxxxx:4</p><p><b>  2課題分析5</b></p><p>  2.1xxxx52.2xxxx5</p><p>  3詳細設計說明6</p>

5、;<p>  3.1xxxx6</p><p><b>  3.2xxx7</b></p><p><b>  3.3xxx7</b></p><p>  4課程設計總結11</p><p>  5軟件使用說明12</p><p>  6附

6、錄(參考文獻,原代碼:)12</p><p><b>  參考文獻:12</b></p><p><b>  原代碼12</b></p><p><b>  概述</b></p><p><b>  1.1基本功能</b></p>&l

7、t;p>  實現(xiàn)一個簡單的科研經(jīng)費管理系統(tǒng)。系統(tǒng)的主要功能是計算科研經(jīng)費的使用情況并存檔。</p><p> ?。?)可以輸入各個支出項的費用、人數(shù)和天數(shù)等。</p><p>  (2)可以計算支出項費用。</p><p>  (3)可以查找支出項信息。</p><p> ?。?)可以將支出項信息保存進文件。</p>&l

8、t;p><b>  1.2拓展功能</b></p><p><b>  無</b></p><p><b>  2.課題分析</b></p><p><b>  2.1類的設計</b></p><p>  在這個課程設計中,需要有6個類。根據(jù)設計任務

9、,設計一個虛基類expenditure ,然后派生出book(圖書)類,hardware(硬件)類,training(培訓)類和travel(出差)類,從travel類和training類中派生出一個research(調研)類。</p><p>  在基類中,除了定義構造函數(shù)和析構函數(shù)外,還應定義對各類支出項信息應有的操作,這樣可以規(guī)范類族中各派生類的基本行為。由于各類支出項經(jīng)費的計算方法不同,在基類中將coun

10、tpay()定義為純虛函數(shù),然后在派生類中進行重新定義其具體實現(xiàn),以便實現(xiàn)運行時的多態(tài)性。</p><p>  class expenditure</p><p><b>  {</b></p><p>  protected:</p><p>  long number;</p><p>  c

11、har name[20];</p><p><b>  int pay;</b></p><p><b>  public:</b></p><p>  expenditure();</p><p>  ~expenditure();</p><p>  void info(

12、);</p><p>  virtual void countpay()=0;</p><p>  int getpay();</p><p>  char *getname();</p><p>  void recordinfo();</p><p>  void recordpay();</p>&

13、lt;p>  long getnumber();</p><p><b>  };</b></p><p>  class book:public expenditure</p><p><b>  {</b></p><p><b>  private:</b><

14、/p><p><b>  int bpay;</b></p><p><b>  public:</b></p><p>  void infor();</p><p>  void countpay();</p><p><b>  };</b></

15、p><p>  class hardware:public expenditure</p><p><b>  {</b></p><p><b>  private:</b></p><p><b>  int hpay;</b></p><p><

16、b>  public:</b></p><p>  void infor();</p><p>  void countpay();</p><p><b>  };</b></p><p>  class training:virtual public expenditure</p>&

17、lt;p><b>  {</b></p><p><b>  public:</b></p><p>  int trainpay;</p><p>  int people;</p><p>  void infor();</p><p>  void countpa

18、y();</p><p><b>  };</b></p><p>  class travel:virtual public expenditure</p><p><b>  {</b></p><p><b>  public:</b></p><p&

19、gt;<b>  int day;</b></p><p>  int travelpay;</p><p><b>  travel();</b></p><p>  void infor();</p><p>  void countpay();</p><p><

20、b>  };</b></p><p>  class research:public training,public travel</p><p><b>  {</b></p><p><b>  public:</b></p><p>  void countpay();<

21、;/p><p>  void infor();</p><p><b>  };</b></p><p><b>  2.2類的實現(xiàn)</b></p><p>  通過構建變量和函數(shù)來體現(xiàn)該類的屬性。</p><p>  根據(jù)用戶需要expenditure類應該擁有的屬性有:編號,

22、支出項名稱,支出項編號。expenditure類的服務可以包括info()、 search()、countPay()、recordInfo()和recordPay()。其中,info()函數(shù)用于接收用戶輸入的支出信息;search()函數(shù)用來根據(jù)支出名稱查找支出信息;countPay()函數(shù)為支出計算函數(shù),但在基類中為空,原因是各類支出項目的計算方法不同,無法在基類中統(tǒng)一定義,必須在派生類中分別定義。recordInfo()函數(shù)和rec

23、ordPay()函數(shù)分別是支出信息和支出經(jīng)額,分別將信息存入文件info.txt和pay.txt。</p><p>  #include<iostream></p><p>  #include<fstream></p><p>  #include<cstring></p><p>  #include&

24、lt;stdlib.h></p><p>  using namespace std;</p><p>  expenditure::expenditure()</p><p><b>  {}</b></p><p>  expenditure::~expenditure()</p><p&g

25、t;<b>  {}</b></p><p>  void expenditure::info()</p><p><b>  {</b></p><p>  cout<<"請輸入編號:";</p><p>  cin>>number;</p>

26、<p>  cout<<"請輸入名稱:";</p><p>  cin>>name;</p><p><b>  }</b></p><p>  long expenditure::getnumber()</p><p><b>  {</b>

27、;</p><p>  return number;</p><p><b>  }</b></p><p>  int expenditure::getpay()</p><p><b>  {</b></p><p>  return pay;</p>&l

28、t;p><b>  }</b></p><p>  char *expenditure::getname()</p><p><b>  {</b></p><p>  return name;</p><p><b>  }</b></p><p&g

29、t;  void expenditure::recordinfo()</p><p><b>  {</b></p><p>  ofstream file("info.txt",ios::app);</p><p>  file<<"編號:"<<number<<end

30、l;</p><p>  file<<"名稱:"<<name<<endl<<endl;</p><p>  file.close();</p><p><b>  }</b></p><p>  void expenditure::recordpay(

31、)</p><p><b>  {</b></p><p>  ofstream file("pay.txt",ios::app);</p><p>  file<<"編號:"<<number<<endl;</p><p>  file<&

32、lt;"名稱:"<<name<<endl;</p><p>  file<<"費用:"<<pay<<endl<<endl;</p><p>  file.close();</p><p><b>  }</b></p>

33、<p>  void book::infor()</p><p><b>  {</b></p><p>  cout<<"請輸入圖書的發(fā)票金額:";</p><p>  cin>>bpay;</p><p><b>  }</b></p&

34、gt;<p>  void book::countpay()</p><p><b>  {</b></p><p><b>  pay=bpay;</b></p><p><b>  }</b></p><p>  void hardware::infor()&

35、lt;/p><p><b>  {</b></p><p>  cout<<"請輸入設備的發(fā)票金額:";</p><p>  cin>>hpay;</p><p><b>  }</b></p><p>  void hardware:

36、:countpay()</p><p><b>  {</b></p><p><b>  pay=hpay;</b></p><p><b>  }</b></p><p>  void training::infor()</p><p><b&

37、gt;  {</b></p><p>  cout<<"請輸入培訓費用:";</p><p>  cin>>trainpay;</p><p>  cout<<"請輸入培訓人數(shù):";</p><p>  cin>>people;</p&g

38、t;<p><b>  }</b></p><p>  void training::countpay()</p><p><b>  {</b></p><p>  pay=trainpay*people;</p><p><b>  }</b></p&g

39、t;<p>  travel::travel()</p><p><b>  {</b></p><p>  travelpay=100;</p><p><b>  }</b></p><p>  void travel::infor()</p><p>&l

40、t;b>  {</b></p><p>  cout<<"請輸入出差的天數(shù):";</p><p><b>  cin>>day;</b></p><p><b>  }</b></p><p>  void travel::countpa

41、y()</p><p><b>  {</b></p><p>  pay=travelpay*day;</p><p><b>  }</b></p><p>  void research::infor()</p><p><b>  {</b>&l

42、t;/p><p>  cout<<"請輸入調研費用:";</p><p>  cin>>trainpay;</p><p>  cout<<"請輸入調研人數(shù):";</p><p>  cin>>people;</p><p>  cou

43、t<<"請輸入調研的天數(shù):";</p><p><b>  cin>>day;</b></p><p><b>  }</b></p><p>  void research::countpay()</p><p><b>  {</b&g

44、t;</p><p>  pay=trainpay*people+100*day;</p><p><b>  }</b></p><p><b>  函數(shù)設計說明:</b></p><p>  Info()—輸入函數(shù),輸入編號,名稱</p><p>  Infor()--輸

45、入各個類不同的信息</p><p>  Countpay()—計算支出費用</p><p>  Recordinfo()--保存編號,名稱</p><p>  Recordpay()--保存編號,名稱,支出費用</p><p>  Search()--查詢信息的函數(shù)</p><p><b>  3.詳細設計說

46、明</b></p><p>  對于整個系統(tǒng)的設計思路是,首先,輸入編號,支出項;然后,在計算該支出項經(jīng)費的時候,系統(tǒng)先從已輸入的支出項,調用不同的處理程序進行計算;最后將結果存檔。隨后可在查詢功能里面找尋已保存的資料信息。</p><p><b>  3.1 界面</b></p><p>  程序實現(xiàn)及解析如下:</p>

47、;<p>  點擊運行,出現(xiàn)主界面</p><p><b>  選擇要輸入的支出項</b></p><p>  查詢正確的支出項名稱時所顯示出的運行結果</p><p>  查詢錯誤的支出項名稱時所顯示出的運行結果</p><p><b>  退出程序</b></p>&

48、lt;p><b>  3.2方案</b></p><p><b>  算法:</b></p><p>  本程序主要是對不同支出項經(jīng)費的計算。</p><p>  圖書:費用=實際發(fā)票金額</p><p>  設備:費用=實際發(fā)票金額</p><p>  培訓:費用=培

49、訓費用實際支出*人數(shù)</p><p>  出差:費用=出差的天數(shù)*出差補貼100/天</p><p>  調研:費用=培訓費+出差補貼</p><p><b>  3.3程序描述</b></p><p>  運行程序---主菜單----輸入選擇數(shù)字---利用if語句調用相應的函數(shù)---輸入1---調用info()函數(shù)--

50、-輸入選擇數(shù)字---調用相應的輸入函數(shù)和save()函數(shù)---是否繼續(xù)輸入</p><p> ?。▂/n)---輸入n---輸入選擇數(shù)字---輸入0---主菜單---輸入2---調用search()函數(shù)</p><p>  費用的編號和支出項的編號都是長整型的,費用的支出項名稱是字符型的。</p><p>  具體的基類和派生類的定義:</p><

51、;p><b>  主程序流程圖:</b></p><p><b>  3.4限制條件 </b></p><p>  本程序用戶添加的各個職位的人員最多只能是18個。</p><p><b>  4.課程設計總結</b></p><p>  這次的課程設計使我更清楚地認識到

52、每個類的作用。起初,對文件和指針的使用運用不太好,但是最后都得到初步解決。</p><p>  本程序綜合性非常強,由于我們對使用C++設計程序的能力還不是很熟練,所以在設計時非常吃力。在整個程序中,我通過使用while循環(huán),for和if的嵌套循環(huán),實現(xiàn)各功能之間的聯(lián)系,用主函數(shù)實現(xiàn)對功能的選擇以及類的定義及使用來完成程序設計,使我提高了對C++中語句的使用能力和組合能力,進一步加強了我對使用C++編程的能力。&

53、lt;/p><p>  通過此次程序設計實習,我發(fā)現(xiàn)自己在學習C++方面還有很多不足,在此程序中可能還有一些不足和錯誤,我們將在以后的學習過程中不斷努力并強化對C++的練習。</p><p><b>  5.軟件使用說明</b></p><p>  Expenditure類:</p><p><b>  n:支出項

54、編號</b></p><p><b>  name:項目名</b></p><p><b>  pay:支出金額</b></p><p>  countPay():計算支出函數(shù)</p><p>  recordInfo():保存信息</p><p>  recor

55、dPay():保存支出</p><p>  Training類:</p><p>  money:培訓單人支出</p><p><b>  num:培訓人數(shù)</b></p><p><b>  Travel類</b></p><p><b>  Day:出差天數(shù)&l

56、t;/b></p><p><b>  Research類</b></p><p>  money:調研單人支出</p><p><b>  num:調研人數(shù)</b></p><p><b>  Day:調研時長</b></p><p>  6.附

57、錄(參考文獻,原代碼)</p><p> ?。?)《面向對象程序設計》 ,鄭莉,清華大學出版社, </p><p>  (2)《面向對象程序設計C++語言》,朱戰(zhàn)立等編 西安電子科技大學出版社</p><p> ?。?)《面向對象程序設計----Visual C++》,劉斌等編, 清華大學出版社 </p><p> ?。?)《面向對象程

溫馨提示

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

評論

0/150

提交評論