個(gè)人銀行賬戶管理報(bào)告.doc_第1頁(yè)
個(gè)人銀行賬戶管理報(bào)告.doc_第2頁(yè)
個(gè)人銀行賬戶管理報(bào)告.doc_第3頁(yè)
個(gè)人銀行賬戶管理報(bào)告.doc_第4頁(yè)
個(gè)人銀行賬戶管理報(bào)告.doc_第5頁(yè)
已閱讀5頁(yè),還剩7頁(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)介

實(shí)訓(xùn)項(xiàng)目:個(gè)人銀行賬戶管理(C+課程設(shè)計(jì))實(shí)訓(xùn)目的:1、 熟悉C+工程開(kāi)發(fā)的過(guò)程、頭文件和源文件之間的關(guān)系;2、 掌握類、繼承及派生、虛函數(shù)、多態(tài)性在C+面向?qū)ο蟪绦蛟O(shè)計(jì)中的體現(xiàn);3、 掌握一個(gè)類的對(duì)象作為另外一個(gè)類的成員的實(shí)現(xiàn)方法。4、 掌握子類對(duì)象與父類對(duì)象的關(guān)系。5、 熟悉C+中流的使用;6、 養(yǎng)成良好的編程習(xí)慣。實(shí)訓(xùn)任務(wù)及要求: 在掌握C+面向?qū)ο蟪绦蛟O(shè)計(jì)方法的基礎(chǔ)上,使用VC+6.0結(jié)合課本內(nèi)容完成以下內(nèi)容的實(shí)現(xiàn):1、 完成個(gè)人銀行賬戶管理程序的編寫、編譯、調(diào)試、運(yùn)行;2、 完成基類Account、子類SavingsAccount及CreditAccount的聲明及定義。3、 實(shí)現(xiàn)Accumulator類及Date類。4、 利用C+中流的概念實(shí)現(xiàn)賬戶信息的存儲(chǔ)。5、 在Account類中添加數(shù)據(jù)成員:Password,并對(duì)應(yīng)編寫該數(shù)據(jù)成員的get函數(shù)。6、 在主函數(shù)中實(shí)現(xiàn)賬戶對(duì)象創(chuàng)建時(shí)從鍵盤輸入構(gòu)造函數(shù)需要的信息。7、 在輸出及需要用戶輸入的時(shí)候要給出相應(yīng)的提示信息。8、 實(shí)現(xiàn)取款時(shí)先驗(yàn)證密碼。實(shí)訓(xùn)內(nèi)容、方法與步驟(流程):一、 實(shí)訓(xùn)內(nèi)容 個(gè)人賬戶管理程序。二、 實(shí)訓(xùn)方法 個(gè)人獨(dú)立完成。三、 實(shí)訓(xùn)步驟1、 初步完成SavingsAccount類的實(shí)現(xiàn);2、 實(shí)現(xiàn)對(duì)象數(shù)組的創(chuàng)建。3、 創(chuàng)建Account基類和兩個(gè)子類。4、 實(shí)現(xiàn)虛函數(shù)和運(yùn)行時(shí)的多態(tài)性。5、 添加數(shù)據(jù)成員:Password。6、 實(shí)現(xiàn)流的使用。7、 調(diào)試、運(yùn)行、總結(jié)。8、 書寫實(shí)訓(xùn)報(bào)告。程序代碼及運(yùn)行結(jié)果:1.程序代碼#include account.h#include using namespace std;int main()cout -個(gè)人銀行賬戶管理系統(tǒng)!- endl;Date date(2011,6,1); /起始日期 /初始賬戶 SavingsAccount sa1(date,S3755271,0.015,123);SavingsAccount sa2(date,02342342,0.015,456);CreditAccount ca(date,C5392394,10000,0.0005,50,789);Account *accounts=&sa1,&sa2,&ca;const int n=sizeof(accounts)/sizeof(Account*);cout(d)存款 endl;cout(w) 取款endl;cout(s) 顯示各賬戶信息 endl;cout(c)改變?nèi)掌?endl;cout(n) 進(jìn)入下個(gè)月 endl;cout(e)退出 endl;char cmd;do /顯示日期和總金額coutendl;date.show();coutt賬戶總金額Account:getTotal()endl;coutendl;coutcmd;switch(cmd)cased: /存入現(xiàn)金coutindex;if(index=0|index=1|index=2)coutamount;accountsindex-deposit(date,amount,desc);elsecout賬戶號(hào)錯(cuò)誤!;break;casew: /取出現(xiàn)金 coutindex;coutpwd;pass=accountsindex-getPassword();if(pare(pwd)=0)cout密碼正確!endl; coutamount; accountsindex-withdraw(date,amount,desc); elsecout您輸入的密碼錯(cuò)誤!endl;break;cases: /查詢各賬戶信息for( i=0;in;i+)coutishow();coutendl;break;casec: /改變?nèi)掌赾outday;coutendl;if(daydate.getDay()coutdate.getMaxDay()coutInvalid day;elsedate=Date(date.getYear(),date.getMonth(),day);break;casen: /進(jìn)入下個(gè)月if(date.getMonth()=12)date=Date(date.getYear()+1,1,1);elsedate=Date(date.getYear(),date.getMonth()+1,1);for(int k=0;ksettle(date);break;while(cmd!=e); return 0;#include account.h#include #include using namespace std;double Account:total=0;/Account類的實(shí)現(xiàn)Account:Account(const Date &date,const string &id,const string &pwd):id(id),balance(0),password(pwd)date.show();coutt#id createdendl;void Account:record(const Date &date,double amount,const string &desc)amount=floor(amount*100+0.5)/100; /保留小數(shù)點(diǎn)后兩位balance+=amount;total+=amount;date.show();coutt#idtamounttbalancetdescendl;void Account:show() const coutidtBalance:balance;void Account:error(const string &msg)constcoutError(#id):msggetBalance()error(not enough money);else record(date,-amount,desc);acc.change(date,getBalance(); void SavingsAccount:settle(const Date &date)if(date.getMonth()=1)double interest=acc.getSum(date)*rate/(date-Date(date.getYear()-1,1,1); /計(jì)算年息if(interest!=0)record(date,interest,interest);acc.reset(date,getBalance();/CreditAccount類相關(guān)成員函數(shù)的實(shí)現(xiàn)CreditAccount:CreditAccount(const Date &date,const string &id,double credit,double rate,double fee,const std:string &password):Account(date,id,password),credit(credit),rate(rate),fee(fee),acc(date,0)void CreditAccount:deposit(const Date &date,double amount,const string &desc) record(date,amount,desc); acc.change(date,getBalance(); void CreditAccount:withdraw(const Date &date,double amount,const string &desc)if(amount-getBalance()credit)error(not enough money);else record(date,-amount,desc);acc.change(date,getDebt(); void CreditAccount:settle(const Date &date)double interest=acc.getSum(date)*rate;if(interest!=0)record(date,interest,interest);if(date.getMonth()=1)record(date,-fee,annual fee);acc.reset(date,getDebt();void CreditAccount:show() constAccount:show();couttAvailable credit:getAvailableCredit();#include date.h#include #include using namespace std;/namespace使下面的定義只在當(dāng)前文件中有效namespace /存儲(chǔ)平年中的某個(gè)月1日之前有多少天,為便于getMaxDay函數(shù)的實(shí)現(xiàn),該數(shù)組多出一項(xiàng)const int DAYS_BEFORE_MONTH=0,31,59,90,120,151,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+; /DATE:DATEint Date:getMaxDay() constif(isLeapYear() & month=2)return 29;elsereturn DAYS_BEFORE_MONTHmonth-DAYS_BEFORE_MONTHmonth-1;void Date:show() constcoutgetYear()-getMonth()-getDay();#ifndef _ACCOUNT_H_#define _ACCOUNT_H_#include date.h#include accumulator.h#include using namespace std;class Account /賬戶類private:std:string id; /賬號(hào) std:string password;double balance; /余額static double total; /所有賬戶的總金額protected:/供派生類調(diào)用的構(gòu)造函數(shù),id為賬戶Account(const Date &date,const std:string &id,const std:string &pwd);/記錄一筆賬,data為日期,amount為金額,desc為說(shuō)明void record(const Date &date,double amount,const std:string &desc);/報(bào)告錯(cuò)誤信息void error(const std:string &msg) const;public:const std:string &getId() const return id;const std:string getPassword() return password;double getBalance() const return balance;static double getTotal()return total;/存入現(xiàn)金,date為日期,amount為金額,desc為款項(xiàng)說(shuō)明virtual void deposit(const Date &date,double amount,const std:string &desc)=0;/取出現(xiàn)金,date為日期,amount為金額,desc為款項(xiàng)說(shuō)明virtual void withdraw(const Date &date,double amount,const std:string &desc)=0;/結(jié)算(計(jì)算利息、年費(fèi)等),每月結(jié)算一次,date為結(jié)算日期virtual void settle(const Date &date)=0;/顯示賬戶信息virtual void show() const;class SavingsAccount:public Accountprivate:Accumulator acc;double rate;public:/構(gòu)造函數(shù)SavingsAccount(const Date &date,const std:string &id,double rate,const std:string &passwod);double getRate() const return rate;/存入現(xiàn)金void deposit(const Date &date,double amount,const std:string &desc);/取出現(xiàn)金void withdraw(const Date &date,double amount,const std:string &desc);/結(jié)算利息,每年1月1日調(diào)用一次該函數(shù)void settle(const Date &date);class CreditAccount:public Account /信用賬戶類private:Accumulator acc; /輔助計(jì)算利息的累加器double credit; /信用額度double rate; /欠款的日利率double fee; /信用卡年費(fèi)double getDebt()const /獲得欠款額double balance=getBalance();return(balance0?balance:0);public:/構(gòu)造函數(shù)CreditAccount(const Date &date,const std:string &id,double credit,double rate,double fee,const std:string &passwod);double getCredit() const return credit;double getRate() const return rate;double getFee() const return fee;double getAvailableCredit() const /獲得可用信用額度if(getBalance()value=value;/初始化,將日期變?yōu)閐ate,數(shù)值變?yōu)関alue,累加器清零void reset(const Date &date,double value)lastDate=date;this-value=value;sum=0;#endif#ifndef _DATE_H_#define _DATE_H_class Date /日期類private:int year; /年int month; /月int day; /日int totalDays; /該日期是從公元元年1月1日開(kāi)始的第幾天public:Date(int year,int month,int day); /用年、月、日構(gòu)造日期int getYear() const return year; int getMonth() const return month;int getDay() const return day; int getMaxDay() const; /獲得當(dāng)月有多少天bool isLeapYear() const /判斷當(dāng)年是否為閏年return year%4=0&year%100!=0|year%400=0;void show() cons

溫馨提示

  • 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ù)網(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)論