版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 銀行管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)報(bào)告(銀行管理系統(tǒng))
- 課程設(shè)計(jì)--銀行管理系統(tǒng)
- c++課程設(shè)計(jì)報(bào)告---銀行管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告銀行管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告--銀行管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告-銀行管理系統(tǒng)
- 軟件工程課程設(shè)計(jì)--個(gè)人網(wǎng)上銀行管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--銀行管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--銀行管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--銀行管理系統(tǒng)
- c++課程設(shè)計(jì)面向?qū)ο笳n程設(shè)計(jì)--銀行管理系統(tǒng)
- 課程設(shè)計(jì)---個(gè)人銀行賬戶管理系統(tǒng)
- 銀行賬戶管理系統(tǒng)-課程設(shè)計(jì)報(bào)告
- 個(gè)人約會(huì)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 個(gè)人日程管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)報(bào)告---銀行模擬系統(tǒng)
- 個(gè)人信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 個(gè)人記賬系統(tǒng)課程設(shè)計(jì)報(bào)告
- 個(gè)人信息管理系統(tǒng)-課程設(shè)計(jì)報(bào)告
評(píng)論
0/150
提交評(píng)論