- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
8_7综合实例_个人银行账户管理程序
8_7综合实例_个人银行账户管理程序
//date.h
#ifndef __DATE_H__
#define __DATE_H__
class Date
{ //日期类
private:
int year; // 年
int month; //月
int day; //日
int totalDays; //该日期是从公元年1月1日开始的第几天
public:
Date(int year,int minth,int day); //用年、月、日构造日期
int getYear() const {return year;}
int getMonth() const {return month;}
int getDay() const {return day;}
int getMaxDay() const; //获得当月有多少天
bool isLeapYear() const //判断当年是否为闰年
{
return year%4==0year%100!=0||year%400==0;
}
void show() const; //输入当前日期
//计算两个日期之间差多少天
int operator- (const Datedate) const //计算两个日期之间差多少天
{
return totalDays-date.totalDays;
}
};
#endif //__DATE_H__
//date.cpp
#includedate.h
#includeiostream
#includecstdlib
using 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 month,int day):year(year),month(month),day(day)
{
if (day=0||daygetMaxDay())
{
coutInvalid date:;
show();
coutendl;
exit(1);
}
int years=year-1;
totalDays=year*365+years/4-years/100+years/400+DAYS_BEFORE_MONTH[month-1]+day;
if(isLeapYear()month2)
totalDays++;
}
int Date::getMaxDay() const
{
if (isLeapYear()month==2)
return 29;
else
return DAYS_BEFORE_MONTH[month]-DAYS_BEFORE_MONTH[month-1];
}
void Date::show() const
{
coutgetYear()-getMonth()-getDay();
}
//accout.h
#ifndef __ACCOUNT_H__
#define __ACCOUNT_H__
#includedate.h
#includeaccumulator.h
#includestring
class Account //账户类
{
private:
std::string id; //帐号
double 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() const {r
文档评论(0)