您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 金融资料 > 课程设计 个人银行账户管理
《C++语言程序设计》课程设计报告姓名:韦锌栩指导刘华李博学号:2010305215班级:10计本2班日期:2011年05月26日C++语言课程设计——个人银行账户管理重庆工商大学派斯学院计算机科学系计算机科学与技术系课程设计评分表课程名称:面向对象程序设计个人银行账户管理项目评价设计方案的合理性与创造性设计与调试结果设计说明书的质量功能完善度综合成绩教师签名:日期:学号班级姓名综合成绩201030521510计本2班韦锌栩C++语言课程设计——个人银行账户管理C++语言课程设计——个人银行账户管理说明书目录一、设计目标.............................错误!未定义书签。二、调试和测试...........................................4三、分析及结论...........................................4四、附录.................................................5C++语言课程设计——个人银行账户管理二、调试和测试1、调试方法:首先打开MicrosoftVisualC++6.0,运行程序,出现错误修改再运行,直至运行结果0error,0warning结束。接着进入程序界面,看程序能否实现所要求的各项功能,再作下一步的修改。2、测试:运行程序,直接显示出应有的文字直观优势。三、分析及结论程序中增加了日期类Date,该类得数据包括year,month,day和tatalDays,其中totalDays表示这一天的相对日期。该类的成员函数除了构造函数和用来获得年,月,日的函数外,还包括用来得到当前月的天数的getMaxDay函数、用来判断当前年是否为润年的isLeapYear函数、用来将当前日期输出的show函数、用来判断当前日期与指定日期相差天数的distance函数,这些函数都会被Date类的其他成员函数或SavingsAccount类的函数调用。不足之处:1、代码重用;2、不能熟练的运用类;C++语言课程设计——个人银行账户管理3、没有用到指针和数组,对数组和指针还不能很好的运用。心得体会:通过这次课程设计我对这学期所学的C++语言的理论知识得到巩固,达到该设计的基本目的,也发现自己的不足之出,在以后的上机中应更加注意。同时体会到C++语言具有的语句简洁,使用灵活,执行效率高等特点。发现上机实训的重要作用,特别是对数组和循环有了深刻的理解。发现自己对指针还不能正确使用。通过实际操作,学会C++语言程序编程的基本步骤、基本方法,开发了自己的逻辑思维能力,培养了分析问题、解决问题的能力。深刻体会到“没有做不到的,只有想不到的”,“团结就是力量”,“实践是检验真理的标准”,“不耻下问”……的寓意。四、附录附录源代码:#ifndef__ACCUMULATOR_H__#define__ACCUMULATOR_H__#includedate.hclassAccumulator{private:C++语言课程设计——个人银行账户管理DatelastDate;doublevalue;doublesum;public://构造函数,date为开始累加的日期,value为初始值Accumulator(constDate&date,doublevalue):lastDate(date),value(value),sum(0){}//获得日期date的累加结果doublegetSum(constDate&date)const{returnsum+value*date.distance(lastDate);}//在date将数值变更为valuevoidchange(constDate&date,doublevalue){sum=getSum(date);laastDate=date;this-value=value;}//初始化,将日期变为date,数值变为value,累加器清零voidreset(constDate&date,doublevalue){C++语言课程设计——个人银行账户管理lastDate=date;this-value;sum=0;}};#endif//account.h#ifndef__ACCOUNT_H__#definbe__ACCOUNT_H__#includeaccumulator.h#includestringclassAccount{private:std:stringid;doubluebalance;staticdoubletotal;protected://供派生类调用的构造函数,id为账户Account(constDate&date,conststd::string&id);//记录一笔账,date为日期,amount为金额,desc为说明voidrecord(constDate&date,doubleamount,constC++语言课程设计——个人银行账户管理std::string&desc);//报告错误信息voiderror(conststd::string&msg)const;public:conststd::string&getId()const{returnid;}doublegetBalance()const{returnbalance;}staticdoublegetTotal(){returntotal;}//显示账户信息voidshow()const;};classSavingsAccount:publicAccount{private:Accumulatoracc;doublerate;public://构造函数SavingsAccount(constDate&date,conststd::string&id,doublerate);doublegetRate()const{returnrate;}//存入现金voiddeposit(constDate&date,doubleamount,conststd::string&desc);C++语言课程设计——个人银行账户管理//取出现金voidwithdraw(constDate&date,doubleamount,conststd::string&desc);voidsettle(constDate&date);//结算利息,每年1月1日调用一次该函数};classCreditAccount:publicAccount{//信用账户类private:Accumulatoracc;//辅助计算利息的累加器doublecredit;//信用额度doublerate;//欠款的日利率doublefee;//信用卡年费doublegetDebt()const{doublebalance=getBalance();return(balance0?balance:0);}public:C++语言课程设计——个人银行账户管理//构造函数CreditAccount(constDate&date,conststd::string&id,doublecredit,doublerate,doublefee);doublegetCredit()const{returncredit;}doublegetRate()const{returnrate;}doublegetFee()const{returnfee;}doublegetAvailableCredit()const{if(getBalance()0)returncredit+getBalance();elsereturncredit;}//存入现金voiddeposit(constDate&date,doubleamount,conststd::string&desc);//取出现金voidwithdraw(constDate&date,doubleamount,conststd::string&desc);voidsettle(constDate&date);//结算利息和年费,每月1日调用一次该函数voidshow()const;};C++语言课程设计——个人银行账户管理#endif//__ACCOUNT_H__//account.cpp#includeaccount.h#includecmath#includeiostreamusingnamespacestd;doubleAccount::total=0;//Account类的实现Account::Account(constDate&date,conststring&id):id(id),balance(0){date.show();cout\t#idcreatedendl;}voidAccount::record(constDate&date,doubleamount,conststring&desc){amount=floor(amount*100+0.5)/100;//保留小数点后两位balance+=amount;total+=amount;date.show();cout\t#id\tamount\tbalance\tC++语言课程设计——个人银行账户管理descendl;}voidAccount::show()const{coutid\tBalance:balance;}voidAccount::error(conststring&msg)const{coutError(#id):msgendl;}//SavingsAccount类相关成员函数的实现SavingsAccount::SavingsAccount(constDate&date,conststring&id,doublerate):Account(date,id),rate(rate),acc(date,0){}voidSavingsAccount::deposit(constDate&date,doubleamount,conststring&desc){record(date,amount,desc);acc.chang(date,getBalance());}voidSavingsAccount::withdraw(constDate&date,doubleamount,conststring&desc){if(amountgetBalance()){error(notenoughmoney);}else{record(date,-amount,desc);C++语言课程设计——个人银行账户管理acc.change(date,getBalance());}}voidSavingsAccount::settle(constDate&date){doubleinterest=acc.getSum(date)*rate/date.distance(Date(date.getYear()-1,1,1));if(interest!=0)record(date,interest,interest);acc.reset(date,getBalance());}voidCreditAccount::withdraw(constDate&date,doubleamount,conststring&desc){if(amount-getBalance()credit){error(notneoughcredit);}else{record(date,-amount,desc);acc.change(date,getDebt());}}voidCreditAccount::settle(constDate&date){doubleinterest=acc.getSum(date)*rate;if(interest!=0)rec
本文标题:课程设计 个人银行账户管理
链接地址:https://www.777doc.com/doc-248856 .html