模板個(gè)人銀行管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第1頁(yè)
已閱讀1頁(yè),還剩24頁(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>  《面向?qū)ο蠹夹g(shù)》課程設(shè)計(jì)報(bào)告</p><p>  2012—2013學(xué)年第二學(xué)期</p><p>  課程名稱 面向?qū)ο蠹夹g(shù) </p><p>  設(shè)計(jì)題目 個(gè)人銀行賬戶管理系統(tǒng) </p><p>  專業(yè)班級(jí) 12軟件機(jī)電1班 </p><p>  姓 名

2、 </p><p>  學(xué) 號(hào) </p><p>  指導(dǎo)教師 </p><p>  2013年 7 月 5 日</p><p><b>  目 錄</b></p><p&

3、gt;  第一章 系統(tǒng)分析1</p><p><b>  1.1問題描述1</b></p><p>  1.2用戶界面要求1</p><p>  1.3 實(shí)驗(yàn)環(huán)境1</p><p>  第二章 系統(tǒng)設(shè)計(jì)2</p><p>  2.1程序各功能實(shí)現(xiàn)的說(shuō)明2</p><

4、;p>  2.2 面向?qū)ο笤O(shè)計(jì)2</p><p>  2.2.1 主要類的設(shè)計(jì)2</p><p>  2.2.2 主要類的說(shuō)明4</p><p>  2.3 系統(tǒng)總體框架6</p><p>  2.4 系統(tǒng)相關(guān)頁(yè)面介紹6</p><p>  2.4.1 登錄頁(yè)面6</p><p&g

5、t;  2.4.2 主界面頁(yè)面6</p><p>  2.4.3 儲(chǔ)蓄卡開戶頁(yè)面6</p><p>  2.4.4 存款頁(yè)面6</p><p>  2.4.5 取款頁(yè)面7</p><p>  第四章 系統(tǒng)實(shí)現(xiàn)8</p><p>  4.1 源代碼分析8</p><p>  4.2運(yùn)行

6、結(jié)果19</p><p>  4.2.1帳戶創(chuàng)建19</p><p>  4.2.2帳戶查詢20</p><p>  4.2.3存款20</p><p>  4.2.4取款21</p><p>  第四章 課程設(shè)計(jì)總結(jié)22</p><p><b>  參考文獻(xiàn)23<

7、/b></p><p><b>  第一章 系統(tǒng)分析</b></p><p><b>  1.1問題描述</b></p><p>  設(shè)計(jì)開發(fā)一個(gè)銀行賬戶管理系統(tǒng),賬戶的信息有賬號(hào)(唯一),姓名,余額,身份證號(hào)碼,聯(lián)系方式等,模擬銀行卡的一系列基本功能,包括注冊(cè)開戶、銷戶退出、存款、取款、轉(zhuǎn)賬、查詢余額、修改密碼、

8、個(gè)人信息、退出系統(tǒng)等,保存為文件。要求人機(jī)界面設(shè)計(jì)友好,用戶使用方便,在用戶輸入有誤時(shí)能給出相關(guān)的出錯(cuò)提示,并能承受一定的錯(cuò)誤信息。要求具有一定的安全機(jī)制,如用戶在一定的時(shí)間范圍內(nèi)對(duì)系統(tǒng)未予以響應(yīng),或者用戶多次輸入錯(cuò)誤的登錄信息時(shí),系統(tǒng)會(huì)自動(dòng)給用戶發(fā)出提示性信息,以便用戶處理解決問題。</p><p><b>  1.2用戶界面要求</b></p><p>  輸入:

9、程序正常運(yùn)行后,屏幕上顯示一個(gè)文字菜單(根據(jù)序號(hào)選定相應(yīng)的操作項(xiàng)目)當(dāng)用戶選定操作項(xiàng)目所對(duì)應(yīng)的序號(hào)時(shí),根據(jù)應(yīng)用程序的提示信息,從鍵盤上輸入相應(yīng)的數(shù)據(jù);</p><p>  輸出:應(yīng)用程序正常運(yùn)行后,要在屏幕上顯示一個(gè)文字菜單;要求用戶輸入數(shù)據(jù)時(shí),要給出清晰、明確的提示信息,包括輸入的數(shù)據(jù)內(nèi)容,格式及結(jié)束方式等。</p><p><b>  1.3 實(shí)驗(yàn)環(huán)境</b>&l

10、t;/p><p>  硬件要求能運(yùn)行Windows 操作系統(tǒng)的微機(jī)系統(tǒng)。C++語(yǔ)言應(yīng)用程序開發(fā)軟件使用:VC++ 系統(tǒng),或其他C++語(yǔ)言應(yīng)用程序開發(fā)軟件。</p><p><b>  第二章 系統(tǒng)設(shè)計(jì)</b></p><p>  2.1程序各功能實(shí)現(xiàn)的說(shuō)明</p><p> ?。?)定義一個(gè)賬戶類對(duì)象,實(shí)現(xiàn)對(duì)一個(gè)賬戶信息的說(shuō)

11、明功能。</p><p>  (2)定義賬戶類成員函數(shù)注冊(cè)開戶函數(shù),實(shí)現(xiàn)注冊(cè)開戶功能。提供開戶界面,由用戶輸入新賬號(hào)的所有信息,并保存到文件中。</p><p>  (3)定義賬戶類成員函數(shù)用戶登錄函數(shù),實(shí)現(xiàn)用戶登錄功能。輸入卡號(hào)和密碼,根據(jù)用戶輸入的卡號(hào)和密碼,到后臺(tái)文件查詢,若正確則登錄成功,并保存卡好信息已備后用。若卡號(hào)存在和密碼不匹配或該卡號(hào)沒有注冊(cè),提示該卡號(hào)已存在且密碼輸入錯(cuò)誤

12、或該卡號(hào)沒有注冊(cè)。</p><p> ?。?)定義賬戶類成員函數(shù)存款函數(shù),實(shí)現(xiàn)存款功能。選擇存款功能操作進(jìn)入存款界面,并提供數(shù)據(jù)輸入界面,等待用戶的輸入存款金額。從后臺(tái)數(shù)據(jù)中找到該用戶余額記錄,修改余額,并將該存款事件的相應(yīng)信息寫人數(shù)據(jù),同時(shí)將存錢的金額顯示在頁(yè)面上。</p><p> ?。?)定義賬戶類成員函數(shù)取款函數(shù),實(shí)現(xiàn)取款功能。選擇取款功能操作進(jìn)入取款界面,并提供數(shù)據(jù)輸入界面,等待

13、用戶輸入取款金額,如果取款金額大于該用戶卡上的余額則不能取款,或者將新的余額寫入文件,并將本次取款事件寫入文件同時(shí)將取錢的金額顯示在頁(yè)面上。</p><p>  (6)定義賬戶類成員函數(shù)余額查詢函數(shù),實(shí)現(xiàn)余額查詢功能。選擇余額查詢功能操作進(jìn)入余額查詢界面,把該卡上的余額顯示到界面中。</p><p> ?。?)定義賬戶類成員函數(shù)修改密碼函數(shù),實(shí)現(xiàn)修改密碼功能。</p><

14、;p> ?。?)定義賬戶類成員函數(shù)注銷退出函數(shù),實(shí)現(xiàn)銷戶退出功能。注銷該登錄賬號(hào)返回系統(tǒng)主頁(yè)面。</p><p> ?。?)定義賬戶類成員函數(shù)首頁(yè)函數(shù),設(shè)計(jì)系統(tǒng)首頁(yè)界面。主要導(dǎo)航欄有:歡迎使用儲(chǔ)蓄卡管理(注冊(cè)開戶、用戶登錄、退出系統(tǒng))。</p><p> ?。?0)定義賬戶類成員函數(shù)菜單函數(shù),設(shè)計(jì)系統(tǒng)菜單界面。</p><p>  2.2 面向?qū)ο笤O(shè)計(jì)<

15、/p><p>  2.2.1 主要類的設(shè)計(jì)</p><p>  圖2.1 個(gè)人銀行賬戶管理</p><p><b>  程序的類圖</b></p><p>  2.2.2 主要類的說(shuō)明</p><p>  表2.1 Account類的說(shuō)明</p><p>  表2.2 Sav

16、ingsAccount類的說(shuō)明</p><p>  表2.3 CreditAccount類的說(shuō)明</p><p>  表2.4 Accumulator類的說(shuō)明</p><p>  表2.5 Date類的說(shuō)明</p><p>  2.3 系統(tǒng)總體框架</p><p>  圖2.2 個(gè)人銀行賬戶管理系統(tǒng)總體設(shè)計(jì)圖&

17、lt;/p><p>  2.4 系統(tǒng)相關(guān)頁(yè)面介紹</p><p>  2.4.1 登錄頁(yè)面</p><p>  輸入卡號(hào)和密碼,根據(jù)用戶輸入的卡號(hào)和密碼,到后臺(tái)文件查詢,若正確則登錄成功,并保存卡好信息已備后用。</p><p>  若卡號(hào)存在和密碼不匹配或無(wú)該卡號(hào)已經(jīng)注銷,提示該卡號(hào)已存在或已注銷,保持界面三次不變等待用戶的重新輸入。</

18、p><p>  2.4.2 主界面頁(yè)面</p><p>  主要導(dǎo)航欄有:歡迎使用儲(chǔ)蓄卡管理(存款、取款、修改密碼、轉(zhuǎn)賬功能、注銷退出)</p><p>  2.4.3 儲(chǔ)蓄卡開戶頁(yè)面</p><p>  提供開戶界面,由用戶輸入新儲(chǔ)蓄卡的所有信息,將該信息保存到文件中,并將開戶金額作為該卡的第一次存款記錄存人文件。</p><

19、;p>  2.4.4 存款頁(yè)面</p><p>  從登錄界面得到卡號(hào),并提供數(shù)據(jù)輸入界面,等待用戶的輸入存款金額。從后臺(tái)數(shù)據(jù)庫(kù)中找到該用戶余額記錄,修改余額,并將該存款事件的相應(yīng)信息寫人數(shù)據(jù)庫(kù),同時(shí)將存錢的金額顯示在頁(yè)面上。</p><p>  2.4.5 取款頁(yè)面</p><p>  從登錄界面得到卡號(hào),并提供數(shù)據(jù)輸入界面,等待用戶輸入取款金額,如果取款金

20、額大于該用戶卡上的余額則不能取款,或者將新的余額寫人文件,并將本次取款事件寫入文件同時(shí)將取錢的金額顯示在頁(yè)面上。</p><p><b>  第三章 系統(tǒng)實(shí)現(xiàn)</b></p><p><b>  3.1 源代碼分析</b></p><p>  //main.cpp</p><p>  #includ

21、e "account.h"</p><p>  #include <iostream></p><p>  using namespace std;</p><p>  int main(){</p><p>  cout<<" --------個(gè)人銀行賬戶管理系統(tǒng)!------- &

22、quot;<<endl;</p><p>  Date date(2011,6,1); //起始日期</p><p><b>  //初始賬戶</b></p><p>  SavingsAccount sa1(date,"S20130601",0.015,"123"

23、);</p><p>  SavingsAccount sa2(date,"S20130602",0.015,"456");</p><p>  CreditAccount ca(date,"C20130601",10000,0.0005,50,"789");</p><p>  A

24、ccount *accounts[]={&sa1,&sa2,&ca};</p><p>  const int n=sizeof(accounts)/sizeof(Account*);</p><p>  cout<<"(d)存款 "<<endl;</p><p>  cout<<

25、"(w) 取款"<<endl;</p><p>  cout<<"(s) 顯示各賬戶信息 "<<endl;</p><p>  cout<<"(c)改變?nèi)掌?"<<endl;</p><p>  cout<<"(n)

26、進(jìn)入下個(gè)月 "<<endl;</p><p>  cout<<"(e)退出 "<<endl;</p><p>  char cmd;</p><p>  do{ //顯示日期和總金額</p><p>  cout<&l

27、t;endl;</p><p>  date.show();</p><p>  cout<<"\t賬戶總金額"<<Account::getTotal()<<endl;</p><p>  cout<<endl;</p><p>  cout<<"

28、;請(qǐng)選擇服務(wù):";</p><p>  int index,day,i;</p><p>  double amount;</p><p>  string desc,pwd,pass;</p><p>  cin>>cmd;</p><p>  switch(cmd){</p&

29、gt;<p>  case'd': //存入現(xiàn)金</p><p>  cout<<"請(qǐng)選擇您的賬戶序號(hào)(0/1/2):";</p><p>  cin>>index;</p><p>  if(index==0||index==1||index==2){<

30、;/p><p>  cout<<"請(qǐng)輸入您的存款金額:";</p><p>  cin>>amount;</p><p>  accounts[index]->deposit(date,amount,desc);</p><p><b>  }</b></p&g

31、t;<p><b>  else</b></p><p>  cout<<"賬戶號(hào)錯(cuò)誤!";</p><p><b>  break;</b></p><p>  case'w': //取出現(xiàn)金</p><p&g

32、t;  cout<<"請(qǐng)選擇您的賬戶序號(hào)(0/1/2):";</p><p>  cin>>index;</p><p>  cout<<"請(qǐng)輸入您的密碼:";</p><p>  cin>>pwd;</p><p>  pass=accounts

33、[index]->getPassword();</p><p>  if(pass.compare(pwd)==0){</p><p>  cout<<"密碼正確!"<<endl; cout<<"請(qǐng)輸入您的取款金額:";</p><p>  cin>>amou

34、nt; accounts[index]->withdraw(date,amount,desc);</p><p>  } else</p><p>  cout<<"您輸入的密碼錯(cuò)誤!"<<endl;</p><p><b>  break;</b></p>

35、<p>  case's': //查詢各賬戶信息</p><p>  for( i=0;i<n;i++){</p><p>  cout<<"["<<i<<"]";</p><p>  accounts[i]->show();

36、</p><p>  cout<<endl;</p><p><b>  }</b></p><p><b>  break;</b></p><p>  case'c': //改變?nèi)掌?lt;/p><p>  cout&

37、lt;<"輸入要改的日期:";</p><p>  cin>>day;</p><p>  cout<<endl;</p><p>  if(day<date.getDay())</p><p>  cout<<"You connot specify a p

38、revious day";</p><p>  else if(day>date.getMaxDay())</p><p>  cout<<"Invalid day";</p><p><b>  else</b></p><p>  date=Date(date.

39、getYear(),date.getMonth(),day);</p><p><b>  break;</b></p><p>  case'n': //進(jìn)入下個(gè)月</p><p>  if(date.getMonth()==12)</p><p>  date=Date(da

40、te.getYear()+1,1,1);</p><p><b>  else</b></p><p>  date=Date(date.getYear(),date.getMonth()+1,1);</p><p>  for(int k=0;k<n;k++)</p><p>  accounts[k]-

41、>settle(date);</p><p><b>  break;</b></p><p><b>  }</b></p><p>  }while(cmd!='e');</p><p><b>  return 0;</b></p>

42、<p><b>  }</b></p><p>  //account.cpp</p><p>  #include "account.h"</p><p>  #include <cmath></p><p>  #include <iostream></

43、p><p>  using namespace std;</p><p>  double Account::total=0;</p><p>  //Account類的實(shí)現(xiàn)</p><p>  Account::Account(const Date &date,const string &id,const string &

44、;pwd):id(id),balance(0),password(pwd){</p><p>  date.show();</p><p>  cout<<"\t#"<<id<<" created"<<endl;</p><p><b>  }</b>&

45、lt;/p><p>  void Account::record(const Date &date,double amount,const string &desc){</p><p>  amount=floor(amount*100+0.5)/100; //保留小數(shù)點(diǎn)后兩位</p><p>  balance+=amount;</p

46、><p>  total+=amount;</p><p>  date.show();</p><p>  cout<<"\t#"<<id<<"\t"<<amount<<"\t"<<balance<<"\t&qu

47、ot;<<desc<<endl;</p><p><b>  }</b></p><p>  void Account::show() const {cout<<id<<"\tBalance:"<<balance;}</p><p>  void Account::

48、error(const string &msg)const{</p><p>  cout<<"Error(#"<<id<<"):"<<msg<<endl;</p><p><b>  }</b></p><p>  //Savings

49、Account類相關(guān)成員函數(shù)的實(shí)現(xiàn)</p><p>  SavingsAccount::SavingsAccount(const Date &date,const std::string &id,double rate,const std::string &password)</p><p>  :Account(date,id,password),rate(rat

50、e),acc(date,0){}</p><p>  void SavingsAccount::deposit(const Date &date,double amount,const string &desc){</p><p>  record(date,amount,desc);</p><p>  acc.change(date,getBal

51、ance());</p><p><b>  } </b></p><p>  void SavingsAccount::withdraw(const Date &date,double amount,const string &desc){</p><p>  if(amount>getBalance()){</

52、p><p>  error("not enough money");</p><p><b>  }</b></p><p><b>  else{</b></p><p>  record(date,-amount,desc);</p><p>  a

53、cc.change(date,getBalance());</p><p><b>  }</b></p><p><b>  } </b></p><p>  void SavingsAccount::settle(const Date &date){</p><p>  if(dat

54、e.getMonth()==1){</p><p>  double interest=acc.getSum(date)*rate/(date-Date(date.getYear()-1,1,1)); </p><p><b>  //計(jì)算年息</b></p><p>  if(interest!=0)</p&

55、gt;<p>  record(date,interest,"interest");</p><p>  acc.reset(date,getBalance());</p><p><b>  }</b></p><p><b>  }</b></p><p>

56、  //CreditAccount類相關(guān)成員函數(shù)的實(shí)現(xiàn)</p><p>  CreditAccount::CreditAccount(const Date &date,const string &id,double credit,double rate,double fee,const std::string &password)</p><p>  :Accoun

57、t(date,id,password),credit(credit),rate(rate),fee(fee),acc(date,0){}</p><p>  void CreditAccount::deposit(const Date &date,double amount,const string &desc){</p><p>  record(date,amount,

58、desc); acc.change(date,getBalance());</p><p><b>  } </b></p><p>  void CreditAccount::withdraw(const Date &date,double amount,const string &desc){</p><p>  if

59、(amount-getBalance()>credit){</p><p>  error("not enough money");</p><p><b>  }</b></p><p><b>  else{</b></p><p>  record(date,-

60、amount,desc);</p><p>  acc.change(date,getDebt());</p><p><b>  }</b></p><p><b>  } </b></p><p>  void CreditAccount::settle(const Date &da

61、te){</p><p>  double interest=acc.getSum(date)*rate;</p><p>  if(interest!=0)</p><p>  record(date,interest,"interest");</p><p>  if(date.getMonth()==1)&

62、lt;/p><p>  record(date,-fee,"annual fee");</p><p>  acc.reset(date,getDebt());</p><p><b>  }</b></p><p>  void CreditAccount::show() const{</p&

63、gt;<p>  Account::show();</p><p>  cout<<"\tAvailable credit:"<<getAvailableCredit();</p><p><b>  }</b></p><p>  //date.cpp</p><

64、p>  #include "date.h"</p><p>  #include <iostream></p><p>  #include <cstdlib></p><p>  using namespace std;</p><p>  //namespace使下面的定義只在當(dāng)前文件中有

65、效</p><p>  namespace{ //存儲(chǔ)平年中的某個(gè)月1日之前有多少天,為便于getMaxDay函數(shù)的實(shí)現(xiàn),該數(shù)組多出一項(xiàng)</p><p>  const int DAYS_BEFORE_MONTH[]={0,31,59,90,120,151,181,212,243,273,304,334,365}; </p><p><b>  }&l

66、t;/b></p><p>  Date::Date(int year,int month,int day):year(year),month(month),day(day){</p><p>  if(day<=0||day>getMaxDay()){</p><p>  cout<<"Invalid date:&quo

67、t;;</p><p><b>  show();</b></p><p>  cout<<endl;</p><p><b>  exit(1);</b></p><p><b>  }</b></p><p>  int yea

68、rs=year-1;</p><p>  totalDays=years*365+years/4-years/100+years/400+DAYS_BEFORE_MONTH[month-1]+day;</p><p>  if(isLeapYear() && month>2) </p><p>  totalDays++;</p&g

69、t;<p>  } //DATE::DATE</p><p>  int Date::getMaxDay() const{</p><p>  if(isLeapYear() && month==2)</p><p>  return 29;</p><p><b>  else</b

70、></p><p>  return DAYS_BEFORE_MONTH[month]-DAYS_BEFORE_MONTH[month-1];</p><p><b>  }</b></p><p>  void Date::show() const{</p><p>  cout<<getYear(

71、)<<"-"<<getMonth()<<"-"<<getDay();</p><p><b>  }</b></p><p>  //account.h</p><p>  #ifndef _ACCOUNT_H_</p><p>  

72、#define _ACCOUNT_H_</p><p>  #include "date.h"</p><p>  #include "accumulator.h"</p><p>  #include <string></p><p>  using namespace std;</

73、p><p>  class Account //賬戶類</p><p><b>  {</b></p><p><b>  private:</b></p><p>  std::string id; //賬號(hào) std::string password;&l

74、t;/p><p>  double balance; //余額</p><p>  static double total; //所有賬戶的總金額</p><p>  protected:</p><p>  //供派生類調(diào)用的構(gòu)造函數(shù),id為賬戶</p><p>  Account(const Da

75、te &date,const std::string &id,const std::string &pwd);</p><p>  //記錄一筆賬,data為日期,amount為金額,desc為說(shuō)明</p><p>  void record(const Date &date,double amount,const std::string &de

76、sc);</p><p><b>  //報(bào)告錯(cuò)誤信息</b></p><p>  void error(const std::string &msg) const;</p><p><b>  public:</b></p><p>  const std::string &

77、getId() const {return id;}</p><p>  const std::string getPassword() {return password;}</p><p>  double getBalance() const {return balance;}</p><p>  static double getTotal(){ret

78、urn total;}</p><p>  //存入現(xiàn)金,date為日期,amount為金額,desc為款項(xiàng)說(shuō)明</p><p>  virtual void deposit(const Date &date,double amount,const std::string &desc)=0;</p><p>  //取出現(xiàn)金,date為日期,a

79、mount為金額,desc為款項(xiàng)說(shuō)明</p><p>  virtual void withdraw(const Date &date,double amount,const std::string &desc)=0;</p><p>  //結(jié)算(計(jì)算利息、年費(fèi)等),每月結(jié)算一次,date為結(jié)算日期</p><p>  virtual voi

80、d settle(const Date &date)=0;</p><p><b>  //顯示賬戶信息</b></p><p>  virtual void show() const;</p><p><b>  };</b></p><p>  class SavingsAccount

81、:public Account{</p><p><b>  private:</b></p><p>  Accumulator acc;</p><p>  double rate;</p><p><b>  public:</b></p><p><b&g

82、t;  //構(gòu)造函數(shù)</b></p><p>  SavingsAccount(const Date &date,const std::string &id,double rate,const std::string &passwod);</p><p>  double getRate() const {return rate;}</p&g

83、t;<p><b>  //存入現(xiàn)金</b></p><p>  void deposit(const Date &date,double amount,const std::string &desc);</p><p><b>  //取出現(xiàn)金</b></p><p>  void w

84、ithdraw(const Date &date,double amount,const std::string &desc);</p><p>  //結(jié)算利息,每年1月1日調(diào)用一次該函數(shù)</p><p>  void settle(const Date &date);</p><p><b>  };</b>&l

85、t;/p><p>  class CreditAccount:public Account{ //信用賬戶類</p><p><b>  private:</b></p><p>  Accumulator acc; //輔助計(jì)算利息的累加器</p><p>  doub

86、le credit; //信用額度</p><p>  double rate; //欠款的日利率</p><p>  double fee; //信用卡年費(fèi)</p><p>  double getDebt()cons

87、t{ //獲得欠款額</p><p>  double balance=getBalance();</p><p>  return(balance<0?balance:0);</p><p><b>  }</b></p><p><b>  public:</

88、b></p><p><b>  //構(gòu)造函數(shù)</b></p><p>  CreditAccount(const Date &date,const std::string &id,double credit,double rate,double fee,const std::string &passwod);</p>

89、<p>  double getCredit() const {return credit;}</p><p>  double getRate() const {return rate;}</p><p>  double getFee() const {return fee;}</p><p>  double getAvailableCredi

90、t() const { //獲得可用信用額度</p><p>  if(getBalance()<0)</p><p>  return credit+getBalance();</p><p><b>  else</b></p><p>  return credit;</p>&

91、lt;p><b>  }</b></p><p><b>  //存入現(xiàn)金</b></p><p>  void deposit(const Date &date,double amount,const std::string &desc);</p><p>  void withdraw(con

92、st Date &date,double amount,const std::string &desc);</p><p>  //結(jié)算利息和年費(fèi),每月1日調(diào)用一次該函數(shù)</p><p>  void settle(const Date &date);</p><p>  void show() const;</p>&l

93、t;p><b>  };</b></p><p>  #endif//_ACCOUNT_H_</p><p>  //accumulator.h</p><p>  #ifndef _ACCUMULATOR_H_</p><p>  #define _ACCUMULATOR_H_</p><p&

94、gt;  #include "date.h"</p><p>  class Accumulator{ //將某個(gè)數(shù)值按日累加</p><p><b>  private:</b></p><p>  Date lastDate;

95、 //上次變更數(shù)值的日期</p><p>  double value; //數(shù)值的當(dāng)前值</p><p>  double sum; //數(shù)值按日累加之和</p><p>&l

96、t;b>  public:</b></p><p>  //構(gòu)造函數(shù),date為開始累加的日期,value為初始值</p><p>  Accumulator(const Date &date,double value):lastDate(date),value(value),sum(0){}</p><p>  //獲得日期date

97、的累加結(jié)果</p><p>  double getSum(const Date &date)const{</p><p>  return sum+value*(date-lastDate);</p><p><b>  }</b></p><p>  //在date將數(shù)值變更為value</p

98、><p>  void change(const Date &date,double value){</p><p>  sum=getSum(date);</p><p>  lastDate=date;this->value=value;</p><p><b>  }</b></p>

99、<p>  //初始化,將日期變?yōu)閐ate,數(shù)值變?yōu)関alue,累加器清零</p><p>  void reset(const Date &date,double value){</p><p>  lastDate=date;this->value=value;sum=0;</p><p><b>  }</b&g

100、t;</p><p><b>  };</b></p><p><b>  #endif</b></p><p><b>  //date.h</b></p><p>  #ifndef _DATE_H_</p><p>  #define _DATE_

101、H_</p><p>  class Date //日期類</p><p><b>  {</b></p><p><b>  private:</b></p><p>  int year; //年</p><p>  int

102、month; //月</p><p>  int day; //日</p><p>  int totalDays; //該日期是從公元元年1月1日開始的第幾天</p><p><b>  public:</b></p><p>  Date(int year,int m

103、onth,int day); //用年、月、日構(gòu)造日期</p><p>  int getYear() const {return year;} </p><p>  int getMonth() const {return month;}</p><p>  int getDay() const {return day;}</p&g

104、t;<p>  int getMaxDay() const; //獲得當(dāng)月有多少天</p><p>  bool isLeapYear() const { //判斷當(dāng)年是否為閏年</p><p>  return year%4==0&&year%100!=0||year%400==0;<

105、/p><p><b>  }</b></p><p>  void show() const; //輸入當(dāng)前日期</p><p>  int operator-(const Date &date) const{ //計(jì)算兩個(gè)日期之間差多少天</p><p>  retu

106、rn totalDays-date.totalDays;</p><p><b>  }</b></p><p><b>  };</b></p><p>  #endif //_Date_H_</p><p><b>  3.2運(yùn)行結(jié)果</b></p>

107、<p><b>  3.2.1帳戶創(chuàng)建</b></p><p><b>  3.2.2帳戶查詢</b></p><p><b>  3.2.3存款</b></p><p><b>  3.2.4取款</b></p><p>  第四章 課程設(shè)

108、計(jì)總結(jié)</p><p>  此次C++課程設(shè)計(jì),在指導(dǎo)教師的精心教導(dǎo)下,我學(xué)會(huì)了如何用C++編寫一個(gè)簡(jiǎn)單的程序:首先要對(duì)程序的設(shè)計(jì)要求有一個(gè)明確的認(rèn)識(shí),然后系統(tǒng)設(shè)計(jì)與功能分析,最后是代碼設(shè)計(jì)與調(diào)試。</p><p>  通過(guò)一周的C++實(shí)訓(xùn)課程,我深切的體會(huì)到了編程的樂趣,在此次實(shí)訓(xùn)中,我也看到了許多自己的不足,不僅是知識(shí)上的,還有思考能力等方面都需要進(jìn)一步提高。在編程過(guò)程中,思維是占主要

109、的,所以不斷的練習(xí)編程,是提高自己能力的有效途徑。</p><p>  在編寫程序中,細(xì)節(jié)決定成敗,我經(jīng)常粗心的寫錯(cuò)語(yǔ)句或是打錯(cuò)符號(hào),然后就不能得到想要的結(jié)果,這是以后學(xué)習(xí)工作中應(yīng)該注意的問題。當(dāng)然,在此次實(shí)訓(xùn)中,我也遇到了一些麻煩,例如剛開始建立的三個(gè)賬戶不能放在一個(gè)數(shù)組中進(jìn)行操作,但是通過(guò)查資料了解到可以用虛函數(shù)來(lái)處理。還有一些目前還存在的問題,如實(shí)現(xiàn)的功能不夠完善,界面不夠美觀等,都有待以后進(jìn)一步學(xué)習(xí)改善。

110、</p><p>  盡管大家很認(rèn)真了,但仍有些不足之處,這也正暴露了我們學(xué)習(xí)中的諸多漏洞,在今后仍得繼續(xù)努力,踏踏實(shí)實(shí)的學(xué)好基礎(chǔ)知識(shí)。</p><p><b>  參考文獻(xiàn)</b></p><p>  1.黃品梅 主編 《C++程序設(shè)計(jì)教程—化難為易地學(xué)習(xí)C++》 北京:機(jī)械工業(yè)出版社</p><p>  2.王珊珊、

111、張志航 編著 《C++程序設(shè)計(jì)教程》 北京:機(jī)械工業(yè)出版社</p><p>  3.鄭莉、董淵 編著 《C++語(yǔ)言程序設(shè)計(jì)》 北京:清華大學(xué)出版社</p><p>  4.黃迪明 主編 《C++語(yǔ)言程序設(shè)計(jì)基礎(chǔ)》 北京:電子工業(yè)出版社</p><p>  5.錢能 主編 《C++程序設(shè)計(jì)教程》 北京:清華大學(xué)出版社</p><p>  6.徐

112、孝凱 編著 《C++語(yǔ)言程序設(shè)計(jì)》 北京:清華大學(xué)出版社</p><p>  7.吳訪升 編著 《C++程序設(shè)計(jì)》 北京: 機(jī)械工業(yè)出版社</p><p>  8.Decoder 主編 《C/C++程序設(shè)計(jì)》 北京:中國(guó)鐵道出版社</p><p>  9.陳國(guó)建 編著 《C++語(yǔ)言從入門到精通》 北京:機(jī)械工業(yè)出版社</p><p>  10

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論