课程设计个人银行账户管理.docx

上传人:b****3 文档编号:13286988 上传时间:2023-06-12 格式:DOCX 页数:12 大小:23.20KB
下载 相关 举报
课程设计个人银行账户管理.docx_第1页
第1页 / 共12页
课程设计个人银行账户管理.docx_第2页
第2页 / 共12页
课程设计个人银行账户管理.docx_第3页
第3页 / 共12页
课程设计个人银行账户管理.docx_第4页
第4页 / 共12页
课程设计个人银行账户管理.docx_第5页
第5页 / 共12页
课程设计个人银行账户管理.docx_第6页
第6页 / 共12页
课程设计个人银行账户管理.docx_第7页
第7页 / 共12页
课程设计个人银行账户管理.docx_第8页
第8页 / 共12页
课程设计个人银行账户管理.docx_第9页
第9页 / 共12页
课程设计个人银行账户管理.docx_第10页
第10页 / 共12页
课程设计个人银行账户管理.docx_第11页
第11页 / 共12页
课程设计个人银行账户管理.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

课程设计个人银行账户管理.docx

《课程设计个人银行账户管理.docx》由会员分享,可在线阅读,更多相关《课程设计个人银行账户管理.docx(12页珍藏版)》请在冰点文库上搜索。

课程设计个人银行账户管理.docx

课程设计个人银行账户管理

《C++语言程序设计》课程设计报告

 

姓名:

韦锌栩

指导华博

学号:

2010305215

班级:

10计本2班

日期:

2011年05月26日

 

工商大学派斯学院计算机科学系

 

计算机科学与技术系课程设计评分表

 

课程名称:

面向对象程序设计个人银行账户管理

项目

评价

设计方案的合理性与创造性

设计与调试结果

设计说明书的质量

功能完善度

综合成绩

学号

班级

姓名

综合成绩

2010305215

10计本2班

韦锌栩

 

教师签名:

日期:

 

C++语言课程设计——个人银行账户管理

说明书

 

 

二、调试和测试

<1>、调试方法:

首先打开MicrosoftVisualC++6.0,运行程序,出现错误修改再运行,直至运行结果0error,0warning结束。

接着进入程序界面,看程序能否实现所要求的各项功能,再作下一步的修改。

<2>、测试:

运行程序,直接显示出应有的文字直观优势。

三、分析及结论

程序中增加了日期类Date,该类得数据包括year,month,day和tatalDays,其中totalDays表示这一天的相对日期。

该类的成员函数除了构造函数和用来获得年,月,日的函数外,还包括用来得到当前月的天数的getMaxDay函数、用来判断当前年是否为润年的isLeapYear函数、用来将当前日期输出的show函数、用来判断当前日期与指定日期相差天数的distance函数,这些函数都会被Date类的其他成员函数或SavingsAccount类的函数调用。

不足之处:

1、代码重用;

2、不能熟练的运用类;

3、没有用到指针和数组,对数组和指针还不能很好的运用。

心得体会:

通过这次课程设计我对这学期所学的C++语言的理论知识得到巩固,达到该设计的基本目的,也发现自己的不足之出,在以后的上机中应更加注意。

同时体会到C++语言具有的语句简洁,使用灵活,执行效率高等特点。

发现上机实训的重要作用,特别是对数组和循环有了深刻的理解。

发现自己对指针还不能正确使用。

通过实际操作,学会C++语言程序编程的基本步骤、基本方法,开发了自己的逻辑思维能力,培养了分析问题、解决问题的能力。

深刻体会到“没有做不到的,只有想不到的”,“团结就是力量”,“实践是检验真理的标准”,“不耻下问”……的寓意。

 

四、附录

附录源代码:

#ifndef__ACCUMULATOR_H__

#define__ACCUMULATOR_H__

#include"date.h"

classAccumulator{

private:

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将数值变更为value

voidchange(constDate&date,doublevalue)

{

sum=getSum(date);

laastDate=date;this->value=value;

}

//初始化,将日期变为date,数值变为value,累加器清零

voidreset(constDate&date,doublevalue)

{

lastDate=date;this->value;sum=0;

}

};

#endif

 

//account.h

#ifndef__ACCOUNT_H__

#definbe__ACCOUNT_H__

#include"accumulator.h"

#include

classAccount{

private:

std:

stringid;

doubluebalance;

staticdoubletotal;

protected:

//供派生类调用的构造函数,id为账户

Account(constDate&date,conststd:

:

string&id);

//记录一笔账,date为日期,amount为金额,desc为说明

voidrecord(constDate&date,doubleamount,conststd:

:

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);

//取出现金

voidwithdraw(constDate&date,doubleamount,conststd:

:

string&desc);

voidsettle(constDate&date);//结算利息,每年1月1日调用一次该函数

};

classCreditAccount:

publicAccount{//信用账户类

private:

Accumulatoracc;//辅助计算利息的累加器

doublecredit;//信用额度

doublerate;//欠款的日利率

doublefee;//信用卡年费

doublegetDebt()const{

doublebalance=getBalance();

return(balance<0?

balance:

0);

}

public:

//构造函数

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();

else

returncredit;

}

//存入现金

voiddeposit(constDate&date,doubleamount,conststd:

:

string&desc);

//取出现金

voidwithdraw(constDate&date,doubleamount,conststd:

:

string&desc);

voidsettle(constDate&date);//结算利息和年费,每月1日调用一次该函数

voidshow()const;

};

#endif//__ACCOUNT_H__

 

//account.cpp

#include"account.h"

#include

#include

usingnamespacestd;

doubleAccount:

:

total=0;

//Account类的实现

Account:

:

Account(constDate&date,conststring&id)

:

id(id),balance(0){

date.show();

cout<<"\t#"<

}

voidAccount:

:

record(constDate&date,doubleamount,conststring&desc){

amount=floor(amount*100+0.5)/100;//保留小数点后两位

balance+=amount;total+=amount;

date.show();

cout<<"\t#"<

}

voidAccount:

:

show()const{cout<

"<

voidAccount:

:

error(conststring&msg)const{

cout<<"Error(#"<

"<

}

//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(amount>getBalance()){

error("notenoughmoney");

}else{

record(date,-amount,desc);

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)record(date,interest,"interest");

if(date.getMonth()==1)

record(date,-fee,"annualfee");

acc.reset(date,getDebt());

}

voidCreditAccount:

:

show()const{

Account:

:

show();

cout<<"\tAvailablecredit:

"<

}

//7_10.cpp

#include"account.h"

#include

usingnamespacestd;

intmain(){

Datedate(2008,11,1);

//建立几个账户

SavingsAccountsa1(date,"S3755217",0.015);

SavingsAccountsa2(date,"02342342",0.015);

CreditAccountca(date,"C5392394",10000,0.0005,50);

//11月份的几笔账目

sa1.deposit(Date(2008,11,5),5000,"salary");

ca.withdraw(Date(2008,11,15),2000,"buyacell");

sa2.deposit(Date(2008,11,25),10000,"sellstock0302");

//结算信用卡

ca.settle(Date(2008,12,1));

//12月份的几笔账目

ca.deposit(Date(2008,12,1),2016,"repaythecredit");

sa1.deposit(Date(2008,12,6),5500,"salary");

//结算所有账户

sa1.settle(Date(2009,1,1));

sa2.settle(Date(2009,1,1));

ca.settle(Date(2009,1,1));

//输出各个账户信息

cout<

sa1.show();

cout<

sa2.show();

cout<

ca.show();

cout<

cout<<"Total:

"<

:

getTotal()<

return0;

}

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2