课程设计个人银行账户管理.doc_第1页
课程设计个人银行账户管理.doc_第2页
课程设计个人银行账户管理.doc_第3页
课程设计个人银行账户管理.doc_第4页
课程设计个人银行账户管理.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C+语言程序设计课程设计报告 姓 名:韦锌栩 指 导 刘华 李博 学 号:2010305215 班 级:10计本2班 日 期:2011年05月26日 重庆工商大学派斯学院 计算机科学系计算机科学与技术系课程设计评分表课程名称: 面向对象程序设计 个人银行账户管理 项 目评 价设计方案的合理性与创造性设计与调试结果设计说明书的质量功能完善度综合成绩学 号班 级姓 名综合成绩201030521510计本2班韦锌栩 教师签名: 日 期: C+语言课程设计个人银行账户管理说明书目 录一、设计目标2二、调试和测试9三、分析及结论10四、附录12二、调试和测试、调试方法:首先打开Microsoft Visual C+ 6.0 ,运行程序,出现错误修改再运行,直至运行结果0 error ,0 warning结束。接着进入程序界面,看程序能否实现所要求的各项功能,再作下一步的修改。、测试:运行程序,直接显示出应有的文字直观优势。三、分析及结论程序中增加了日期类Date,该类得数据包括year,month,day和tatalDays,其中totalDays表示这一天的相对日期。该类的成员函数除了构造函数和用来获得年,月,日的函数外,还包括用来得到当前月的天数的getMaxDay函数、用来判断当前年是否为润年的isLeapYear函数、用来将当前日期输出的show函数、用来判断当前日期与指定日期相差天数的distance函数,这些函数都会被Date类的其他成员函数或SavingsAccount类的函数调用。不足之处:1、 代码重用;2、 不能熟练的运用类;3、 没有用到指针和数组,对数组和指针还不能很好的运用。心得体会:通过这次课程设计我对这学期所学的C+语言的理论知识得到巩固,达到该设计的基本目的,也发现自己的不足之出,在以后的上机中应更加注意。同时体会到C+语言具有的语句简洁,使用灵活,执行效率高等特点。发现上机实训的重要作用,特别是对数组和循环有了深刻的理解。发现自己对指针还不能正确使用。通过实际操作,学会 C+语言程序编程的基本步骤、基本方法,开发了自己的逻辑思维能力,培养了分析问题、解决问题的能力。深刻体会到“没有做不到的,只有想不到的”,“团结就是力量”,“实践是检验真理的标准”,“不耻下问”的寓意。四、附录 附录源代码:#ifndef_ACCUMULATOR_H_#define_ACCUMULATOR_H_#includedate.hclass Accumulatorprivate:Date lastDate;double value;double sum;public:/构造函数,date为开始累加的日期,value为初始值Accumulator(const Date &date,double value): lastDate(date),value(value),sum(0)/获得日期 date 的累加结果double getSum(const Date &date) const return sum+value*date.distance(lastDate);/在 date 将数值变更为 valuevoid change(const Date &date,double value)sum=getSum(date);laastDate=date;this-value=value;/初始化,将日期变为 date ,数值变为 value ,累加器清零void reset(const Date &date,double value)lastDate=date;this-value;sum=0;#endif/account.h#ifndef_ACCOUNT_H_#definbe_ACCOUNT_H_#includeaccumulator.h#includeclass Accountprivate:std:string id;doublue balance;static double total;protected:/供派生类调用的构造函数,id为账户Account(const Date &date,const std:string &id);/记录一笔账,date 为日期,amount 为金额,desc 为说明void record(const Date &date,double amount,const std:string &desc);/报告错误信息void error(const std:string &msg) const;public:const std:string &getId() const return id;double getBalance() constreturn balance;static double getTotal() return total;/显示账户信息void show() const;class SavingsAccount : public Accountprivate:Accumulator acc;double rate;public:/构造函数SavingsAccount(const Date &date,const std:string &id,double rate);double getRate() const return rate;/存入现金void deposit(const Date &date,double amount,const std:string &desc);/取出现金void withdraw(const Date &date,double amount,const std:string &desc);void settle(const Date &date);/结算利息,每年1月1日调用一次该函数;class CreditAccount : public Account /信用账户类private:Accumulator acc;/辅助计算利息的累加器double credit;/信用额度double rate;/欠款的日利率double fee;/信用卡年费double getDebt() const double balance=getBalance();return (balance0 ? balance : 0 );public:/构造函数CreditAccount(const Date &date,const std:string &id,double credit,double rate,double fee);double getCredit() const return credit;double getRate() const return rate;double getFee() const return fee;double getAvailableCredit() const if (getBalance()0)return credit+getBalance();elsereturn credit;/存入现金void deposit(const Date &date,double amount,const std:string &desc);/取出现金void withdraw(const Date &date,double amount,const std:string &desc);void settle(const Date &date);/结算利息和年费,每月1日调用一次该函数void show() const;#endif/_ACCOUNT_H_/account.cpp#includeaccount.h#include#includeusing namespace std;double Account:total=0;/Account 类的实现Account:Account (const Date &date,const string &id): id(id),balance(0)date.show(); coutt#idcreatedendl;void Account:record(const Date &date,double amount,const string &desc)amount=floor(amount*100+0.5)/100;/保留小数点后两位balance+=amount;total+=amount;date.show();coutt#idtamounttbalancetdescendl;void Account:show() const coutidtBalance:balance;void Account:error(const string &msg) const coutError(#id):msggetBalance()error(not enough money); else record(date,-amount,desc);acc.change(date,getBalance();void SavingsAccount:settle(const Date &date)double interest=acc.getSum(date)*rate/ date.distance(Date(date.getYear()-1,1,1);if (interest!=0) record(date,interest,interest);acc.reset(date,getBalance();void CreditAccount:withdraw(const Date &date,double amount,const string &desc)if(amount-getBalance()credit)error(not neough credit); 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() const Account:show();couttAvailable credit:getAvailableCredit();/7_10.cpp#includeaccount.h#includeusing namespace std;int main()Date date(2008,11,1);/建立几个账户SavingsAccount sa1(date,S3755217,0.015);SavingsAccount sa2(date,02342342,0.015);CreditAccount ca(date,C5392394,10000,0.0005,50);/11月份的几笔账目sa1.deposit(Date(2008,11,5),5000,salary);ca.withdraw(Date(2008,11,15),2000,buy a cell);sa2.deposit(Date(2008,11,25),10000,sell stock 0302);/结算信用卡ca.settle(Date(2008,12,1);/12月份的几笔账目ca.deposit(Date(2008,12,1),2016,repay the

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论