c++試驗(yàn)報(bào)告同名12568_第1頁
c++試驗(yàn)報(bào)告同名12568_第2頁
c++試驗(yàn)報(bào)告同名12568_第3頁
c++試驗(yàn)報(bào)告同名12568_第4頁
c++試驗(yàn)報(bào)告同名12568_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、c+實(shí)驗(yàn)報(bào)告 ( 同名 12568) C+ 課程設(shè)計(jì)報(bào)告 學(xué)號(hào): 班級(jí): 13 級(jí)計(jì)科二班 姓名: 指導(dǎo)教師: 王定成 個(gè)人銀行綜合實(shí)例 一 設(shè)計(jì)目的 將理論教學(xué)中涉及到的知識(shí)點(diǎn)貫穿起來,對(duì)不同的數(shù)據(jù)類型,程 序控制結(jié)構(gòu), 數(shù)據(jù)結(jié)構(gòu)做一比較和總結(jié), 結(jié)合設(shè)計(jì)題目進(jìn)行綜合性應(yīng) 用,對(duì)所學(xué)知識(shí)打到融會(huì)貫通的程度。通過課程設(shè)計(jì),學(xué)生在下述方 面的能力應(yīng)該得到提升: 1 ) 進(jìn)一步鞏固加深學(xué)生所學(xué)專業(yè)課程,理論聯(lián)系實(shí)際,進(jìn)一 步培養(yǎng)學(xué)生綜合分析能力,解決問題的能力。 2 ) 全面考核學(xué)生所掌握的基本理論知識(shí)及其實(shí)際業(yè)務(wù)能力, 從而達(dá)到提高學(xué)生素質(zhì)的最終目的。 3 ) 利用所學(xué)知識(shí), 開發(fā)小型應(yīng)用系統(tǒng),

2、 掌握運(yùn)用 C+ 語言編 寫調(diào)試應(yīng)用系統(tǒng)程序,訓(xùn)練獨(dú)立開發(fā)應(yīng)用系統(tǒng),進(jìn)行數(shù)據(jù) 處理的綜合能力。 4 ) 對(duì)于給定的設(shè)計(jì)題目,如何進(jìn)行分析,理清思路,并給出 相應(yīng)的數(shù)學(xué)模型。 5 ) 掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的方法。 6 ) 熟練掌握 C+ 語言的基本語法,靈活運(yùn)用各種數(shù)據(jù)類型。 7 ) 進(jìn)一步掌握在集成環(huán)境下如何調(diào)試程序和修改程序。 二設(shè)計(jì)說明: 一個(gè)人可以有多個(gè)活期儲(chǔ)蓄賬戶,一個(gè)活期儲(chǔ)蓄賬戶包括賬號(hào) (id ),余額( balance ),年利率( rate )等信息,還包括顯示賬戶 信息(show ),存款(deposit ),取款(withdraw ),結(jié)算利息( settle ) 等操作。

3、 設(shè)計(jì)一個(gè)類 SavingsAccount ,將 id,balance,rate 均作為其成員 數(shù)據(jù),將 show,deposit,withdraw,settle 均作為其成員函數(shù)。無 論存款,取款還是結(jié)算利息, 都需要修改當(dāng)前的余額并且將余額的變 動(dòng)輸出,這些公共操作由私有成員函數(shù) record 來執(zhí)行。 實(shí)現(xiàn)該類的難點(diǎn)在于利息的計(jì)算。 由于賬戶的月是不斷變化的, 因 此不能通過余額與年利率相乘的辦法來計(jì)算年利, 而是需要將一年當(dāng) 中每天的余額累積起來再除以一年的總天數(shù), 得到一個(gè)日均余額, 再 乘以年利率。為了計(jì)算余額的按日累積值, SavingsAccount 引入 了私有數(shù)據(jù)成 員 l

4、astDate,accumulation 和私有成員函 數(shù) accumulate 。 lastDate 用 來 存 儲(chǔ) 上 一 次 余 額 變 動(dòng) 的 日 期 , accumulation 用來存儲(chǔ)上次計(jì)算利息以后直到最近一次余額變動(dòng) 時(shí)余額按日累加的值, accumulate 成員函數(shù)用來計(jì)算截至指定日期 的賬戶余額按日累積值。 K-accouuxNum couni Bunki uccoujit 進(jìn)入T刀 改芟日朗 上顯一不個(gè)賬尸信 www.copa.Dom 戶序號(hào) 存次金敘 main() int (s)show month d: 三. 源代碼 8-8.cpp #includeaccount

5、.h #include using namespace std; int / D起建Saat始立ev i幾日dnag個(gè)期tseA帳(2cc0戶o0u8n,1t 1,1); SavingsAccount sa1(date,s3755217,0.015); SavingsAccount sa2(date,02342342,0.015); CreditAccount ca(date,c5392394,10000,0.0005,50); Account*accounts= const n=sizeof(accounts)/sizeof(Account*); cout(d)deposit (w)with

6、draw (c)change day (n)next (e)exit; int index,day; double amount; string desc; cincmd; switch(cmd) /c/a存se入 現(xiàn)金 cinindexamount; getline(cin,desc); accountsindex-deposit(date,amount, desc); break; casew: / 取出現(xiàn)金 cinindexamount; getline(cin,desc); accountsindex-withdraw(date,amount, desc); break; /c/a查s

7、e詢s各: 帳戶信息 int i; for(i=0;in;i+) coutishow(); coutday; if(daydate.getDay() coutdate.getMaxDay() coutInvalid day; else date=Date(date.getYear(),date.getMonth (),day); break; /c/a進(jìn)se入n下: 個(gè)月 if(date.getMonth()=12) date=Date(date.getYear()+1,1,1); else date=Date(date.getYear(),date.getMo nth()+1,1); for

8、(i=0;isettle(date); break; while(cmd!=e); return 0; Account:Account(const coutt#idcreatedendl; void Account:record(const balance+=amount; total+=amount; /Account 類 Date Date string account.cpp #includeaccount.h #include #include using namespace std; d的o實(shí)ub現(xiàn)le Account:total=0; / balance+=amount; tota

9、l+=amount; date.show(); coutt#idtamounttb alancetdescendl; string v oidAccount:error(const /void SavingsAccount:deposit(const Date void Account:show()const coutidtBlancegetBalance() error(not enough money); else ance(); record(date,-amount,desc); acc.change(date,getBa Date v oid SavingsAccount:settl

10、e(const acc.reset(date,getBalance(); Year()-1,1,1) ; / CreditAccount 類相關(guān)成員函數(shù)的實(shí)現(xiàn) CreditAccount:CreditAccount(const Date acc.change(date,getDebt(); void CreditAccount:withdraw(const else record(date,-amount,desc); acc.change(date,getDebt(); void if(interest!=0) record(date,interest,interest); if(date.

11、getMonth()=1) record(date,-fee,annual fee); acc.reset(date,getDebt(); void CreditAccount:show()const Account:show(); couttAvailable credit:getAvailableCredit(); a ccount.h #ifndef _ACCOUNT_H_ #define _ACCOUNT_H_ #includedate.h #includeaccumulator.h #include class Account private: std:string id; doub

12、le balance; static double total; p的ro總te金ct額ed: /p/ro供te派ct生ed類: 調(diào)用的構(gòu)造函數(shù), id 為賬戶 Account(const Date date 為日期,account 為金額, void record(const Date void error(const std:string public: const std:string balance; double getBalance()constreturn static double getTotal()return Date amount,const Date std:stri

13、ng Date t/ot顯al;示 賬戶信息 virtual void deposit(const virtual void withdraw(const virtual void settle(const virtual void show()const; priv acc; / 存 class SavingsAccount:public Account / 儲(chǔ)蓄賬戶類 /p/ri輔va助te計(jì): 算利息的累A加cc器umulator 儲(chǔ)的年d利ou率ble rate; public: / 構(gòu)造函數(shù) Date getRate()constreturn S/a/ vingsAccount(co

14、nst double void deposit(const amount,const Date std:string /r/at存e;入 現(xiàn)金 金 次該da函te數(shù));/ void settle( 算利息,每年 1 月 1 ; acc; credit; rate; class CreditAccount:public Account / 信用賬戶類 private: / 輔助計(jì)算A利cc息um的u累lat加or 器 / 信用額do度uble / 欠款的do日u利ble率 nce0) +getBalance(); urn credit; deposit(const Date withdraw(c

15、onst Date amount,conststd:string / / 信用卡do年u費(fèi)blefee; / 獲得欠款額 double/ 獲得欠款額getDebt()const double balance=getBalance(); return (balance信n0s用)t if (getBalance()0) return credit+ else / 存入現(xiàn)re金turn credit; void amount,con / 取出現(xiàn)金 voi 結(jié)算利vo息id ,s每et年tle(c1o月nst1 日D調(diào)at用e 一 數(shù) void show()const; #;e ndif accum

16、ulator.h #ifndef _ACCUMULATOR_H_ #define _ACCUMULATOR_H_ #includedate.h c值la按ss日 A累cc加umulator private: 值的Da日te期 lastDate; / 將某個(gè)數(shù) / 上次變更數(shù) / 數(shù)/ 值數(shù)的值當(dāng)按前日值累 加之do和u double value; double sum; 函值數(shù), date 為開始累加的日期, value Accumulator(const Date Date return Date 數(shù)值變?yōu)?Date a lue void change(const lastDate=date

17、; this-value=value; value ,/ t累h初is-value=value; /namespace 使下面的定義 年文中件的中某有個(gè)效數(shù)月的實(shí)1日現(xiàn)之,該前有數(shù)組多多少出天一,項(xiàng)為便 value ,累 value) lastDate=date;this-value=value;sum=0; #;e ndif date.cpp #includedate.h #include #include using namespace std; /nu只于/sa存在imngge儲(chǔ)e當(dāng) tsnM平p前aaam文xceeDsapyace函 st數(shù)d;的實(shí)現(xiàn), 于 getMaxDay 函數(shù)的實(shí)

18、現(xiàn), const int DAYS_BEFORE_MONTH=0,31,59,90,120,15 1,181,212, 243,273,304,334,365; Date:Date(int year,int month,int day):year(year),month(month),day(day) if(daygetMaxDay() coutInvalid date:; show(); cout2) totalDays+; int Date:getMaxDay() const if(isLeapYear() else return DAYS_BEFORE_MONTHmonth-DAYS_BEFO RE_MONTHmonth-1; v oid Date:show() const coutgetYear()-getMonth()- d ate.h #ifndef _DATE_H_ / 類 private: / / / #define _DATE_H_ class 年intyear; 月intmonth; intday; 期int是 t從ot公alD元a元ys年; 1 月 1 日開始的第幾天 / 該 public: Date

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(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)論