ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:144.09KB ,
资源ID:10102516      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10102516.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c++实验报告同名12568.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

c++实验报告同名12568.docx

1、c+实验报告同名12568c+实验报告(同名12568)C+课程设计报告 学号: 班级: 13级计科二班 姓名: 指导教师: 王定成 个人银行综合实例一 设计目的 将理论教学中涉及到的知识点贯穿起来,对不同的数据类型,程序控制结构,数据结构做一比较和总结,结合设计题目进行综合性应用,对所学知识打到融会贯通的程度。通过课程设计,学生在下述方面的能力应该得到提升:1) 进一步巩固加深学生所学专业课程,理论联系实际,进一步培养学生综合分析能力,解决问题的能力。2) 全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。3) 利用所学知识,开发小型应用系统,掌握运用C+语言

2、编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。4) 对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。5) 掌握面向对象程序设计的方法。6) 熟练掌握C+语言的基本语法,灵活运用各种数据类型。7) 进一步掌握在集成环境下如何调试程序和修改程序。 二设计说明:一个人可以有多个活期储蓄账户,一个活期储蓄账户包括账号(id),余额(balance),年利率(rate)等信息,还包括显示账户信息(show),存款(deposit),取款(withdraw),结算利息(settle)等操作。设计一个类SavingsAccount,将id,balance,rate均作

3、为其成员数据,将show,deposit,withdraw,settle均作为其成员函数。无论存款,取款还是结算利息,都需要修改当前的余额并且将余额的变动输出,这些公共操作由私有成员函数record来执行。 实现该类的难点在于利息的计算。由于账户的月是不断变化的,因此不能通过余额与年利率相乘的办法来计算年利,而是需要将一年当中每天的余额累积起来再除以一年的总天数,得到一个日均余额,再乘以年利率。为了计算余额的按日累积值,SavingsAccount引入了私有数据成员lastDate,accumulation和私有成员函数accumulate。lastDate用来存储上一次余额变动的日期,acc

4、umulation用来存储上次计算利息以后直到最近一次余额变动时余额按日累加的值,accumulate成员函数用来计算截至指定日期的账户余额按日累积值。三.源代码8-8.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.

5、0005,50); Account*accounts=&sa1,&sa2,&ca; /账户总数 const int n=sizeof(accounts)/sizeof(Account*); cout(d)deposit (w)withdraw (s)show (c)change day (n)next month (e)exitendl; char cmd; do /显示日期和总金额 date.show(); couttTotal:Account:getTotal(); int index,day; double amount; string desc; cincmd; switch(cmd)

6、 case d: /存入现金 cinindexamount; getline(cin,desc); accountsindex-deposit(date,amount,desc); break;casew: /取出现金 cinindexamount; getline(cin,desc); accountsindex-withdraw(date,amount,desc); break;cases: /查询各帐户信息 int i; for(i=0;in;i+) coutishow(); coutday; if(daydate.getDay() coutdate.getMaxDay() coutIn

7、valid day; else date=Date(date.getYear(),date.getMonth(),day); break;casen: /进入下个月 if(date.getMonth()=12) date=Date(date.getYear()+1,1,1); else date=Date(date.getYear(),date.getMonth()+1,1); for(i=0;isettle(date); break; while(cmd!=e); return 0;account.cpp#includeaccount.h#include#includeusing names

8、pace 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.

9、show(); coutt#idtamounttbalancetdescendl;void Account:error(const string &msg)const coutError(#id):msgendl;/void SavingsAccount:deposit(const Date &date,double amount,const string &desc)/ record(date,amount,desc); void Account:show()const coutidtBlancegetBalance() error(not enough money); else recor

10、d(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) ;/计算年息 if (interest!=0) record(date,interest,interest); acc.reset(date,getBalance();/ CreditAccount类相关成员函数的实现

11、CreditAccount:CreditAccount(const Date &date,const string &id,double credit,double rate,double fee):Account(date,id),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,getDebt();void Cr

12、editAccount:withdraw(const Date &date,double amount,const string &desc) if(amount-getBalance()credit) error(not enough 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,in

13、terest,interest); if(date.getMonth()=1) record(date,-fee,annual fee); acc.reset(date,getDebt();void CreditAccount:show()const Account:show(); couttAvailable credit:getAvailableCredit(); account.h#ifndef _ACCOUNT_H_#define _ACCOUNT_H_#includedate.h#includeaccumulator.h#includeclass Account /账户类privat

14、e: std:string id; /账号 double balance; /余额 static double total; /所有账户的总金额protected:/供派生类调用的构造函数,id为账户 Account(const Date &date,const std:string &id);/记录一笔账,date为日期,account为金额,desc为说明 void record(const Date &date, double amount,const std:string &desc);/报告错误信息 void error(const std:string &msg)const;pub

15、lic: const std:string &getId()constreturn id; double getBalance()constreturn balance; static double getTotal()return total;/显示账户信息 virtual void deposit(const Date &date,double amount,const std:string&desc)=0; virtual void withdraw(const Date &date,double amount,const std:string &desc)=0; virtual voi

16、d settle(const Date &date)=0; virtual void show()const;class SavingsAccount:public Account /储蓄账户类private: Accumulator acc; /辅助计算利息的累加器 double rate; /存储的年利率public: /构造函数 SavingsAccount(const Date &date,const std:string &id,double rate); double getRate()constreturn rate;/存入现金 void deposit(const Date &

17、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 f

18、ee; /信用卡年费 double getDebt()const /获得欠款额double balance=getBalance(); return (balance0) return credit+getBalance(); else return 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

19、 Date &date); /结算利息,每年1月1日调用一次该函数 void show()const;#endifaccumulator.h#ifndef _ACCUMULATOR_H_#define _ACCUMULATOR_H_#includedate.hclass Accumulator /将某个数值按日累加private: Date lastDate; /上次变更数值的日期 double value; /数值的当前值 double sum; /数值按日累加之和public:/构造函数,date为开始累加的日期,value为初始值 Accumulator(const Date &date

20、,double value):lastDate(date),value(value),sum(0) /获得日期date的累加结果 double getSum(const Date &date)const return sum+value*(date-lastDate);/在date将数值变更为value void change(const Date &date,double value) sum=getSum(date); lastDate=date; this-value=value;/初始化,将日期变为date,数值变为value,累加器清零 void reset(const Date &

21、date,double value) lastDate=date;this-value=value;sum=0;#endifdate.cpp#includedate.h#include#includeusing namespace std;namespace /namespace使下面的定义只在当前文件中有效/存储平年中的某个月1日之前有多少天,为便于getMaxDay函数的实现,该数组多出一项const int DAYS_BEFORE_MONTH=0,31,59,90,120,151,181,212,243,273,304,334,365;Date:Date(int year,int mon

22、th,int day):year(year),month(month),day(day) if(daygetMaxDay() coutInvalid date:; show(); cout2) totalDays+;int Date:getMaxDay()const if(isLeapYear()&month=2) return 29; else return DAYS_BEFORE_MONTHmonth-DAYS_BEFORE_MONTHmonth-1; void Date:show()const coutgetYear()-getMonth()-getDay();date.h#ifndef

23、 _DATE_H_#define _DATE_H_class Date /日期类private: int year; /年 int month; /月 int day; /日 int totalDays; /该日期是从公元元年1月1日开始的第几天public: Date(int year,int month,int day); /用年,月,日构造日期 int getYear() constreturn year; int getMonth() constreturn month; int getDay() constreturn day; int getMaxDay()const; /获得当月

24、有多少天 bool isLeapYear()const /判断当年是否为闰年 return year%4=0&year%100!=0|year%400=0; void show() const; /输出当前日期 int operator-(const Date &date)const /计算两个日期之间差多少天 return totalDays-date.totalDays;#endif四实验结果、五实验总结 通过这次对C+课程设计的学习,我了解到了软件编程的基本操作,并感受到了学习编程的乐趣。在此次学习中,我在老师的帮助下完成了对银行管理系统的编写,并成功运行。尽管我的程序还很简单,也有很多漏洞,但是却是我尽心尽力编写完成的。我的水平可能还不足以完成更加复杂和困难的程序,但是我会再接再厉,一直认真学习下去的。六参考资料1.C+程序设计课程设计,机械工业出版社,刘振安,刘燕君,孙忱,20042VisualC+课程设计案例精编(第二版),中国水利水电出版社,严华峰,2002.3VisualC+课程设计语系统开发案例,清华大学出版社,伍俊良,2002.4面向对象程序设计与VC+实践,西安电子科技大学出版社,揣锦华,2005.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1