资源描述:
《综合实例个人银行账户管理程序.docx》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、_综合实例_个人银行账户管理程序//date.h#ifndef__DATE_H__#define__DATE_H__classDate{//日期类private:intyear;//年intmonth;//月intday;//日inttotalDays;//该日期是从公元年1月1日开始的第几天public:Date(intyear,intminth,intday);//用年、月、日构造日期intgetYear()const{returnyear;}intgetMonth()const{retur
2、nmonth;}intgetDay()const{returnday;}intgetMaxDay()const;//获得当月有多少天boolisLeapYear()const//判断当年是否为闰年{returnyear%4==0&&year%100!=0
3、
4、year%400==0;}voidshow()const;//输入当前日期//计算两个日期之间差多少天intoperator-(constDate&date)const//计算两个日期之间差多少天{returntota
5、lDays-date.totalDays;}};#endif//__DATE_H__//date.cpp#include"date.h"#include<iostream>#include<cstdlib>usingnamespacestd;namespace//namespace使下面的定义只在当前的文件中有效{//存储平年中的某个月1月之前有多少天,为便于getMaxDay函数的实现,该数组多出一项constintDAYS_BEFORE_MONTH
6、[]={0,31,59,90,120,151,181,212,243,273,304,334,365};}Date::Date(intyear,intmonth,intday):year(year),month(month),day(day){if(day<=0
7、
8、day>getMaxDay()){cout<<"Invaliddate:";show();cout<<endl;exit(1);}intyears=year-1;totalDay
9、s=year*365+years/4-years/100+years/400+DAYS_BEFORE_MONTH[month-1]+day;if(isLeapYear()&&month>2)totalDays++;}intDate::getMaxDay()const{if(isLeapYear()&&month==2)return29;elsereturnDAYS_BEFORE_MONTH[month]-DAYS_BEFORE_MONTH[month-1];
10、}voidDate::show()const{cout<<getYear()<<"-"<<getMonth()<<"-"<<getDay();}//accout.h#ifndef__ACCOUNT_H__#define__ACCOUNT_H__#include"date.h"#include"accumulator.h"#include<string&
11、gt;classAccount//账户类{private:std::stringid;//帐号doublebalance;//余额staticdoubletotal;//所有账户的总金额protected://供派生类调用的构造函数,id为账户Account(constDate&date,conststd::string&id);//记录一笔帐,date为日期,amount为金额,desc为说明voidrecord(constDate&date,doubleamount,
12、conststd::string&desc);//报告错误信息voiderror(conststd::string&msg)const;public:conststd::string&getId()const{returnid;}doublegetBalance()const{returnbalance;}staticdoublegetTotal(){returntotal;}//存入现金,date为日期,amount为金额,desc为款项说明virtualvoiddep