综合实例个人银行账户管理程序(共15页).docx
《综合实例个人银行账户管理程序(共15页).docx》由会员分享,可在线阅读,更多相关《综合实例个人银行账户管理程序(共15页).docx(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上_综合实例_个人银行账户管理程序 /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
2、return day;int getMaxDay() const;/获得当月有多少天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 /_DATE_H_/date.cpp#include"date.h"
3、#include<iostream>#include<cstdlib>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&
4、lt;=0|day>getMaxDay()cout<<"Invalid date:"show();cout<<endl;exit(1);int years=year-1;totalDays=year*365+years/4-years/100+years/400+DAYS_BEFORE_MONTHmonth-1+day;if(isLeapYear()&&month>2)totalDays+;int Date:getMaxDay() constif (isLeapYear()&&month=2)return
5、29;elsereturn DAYS_BEFORE_MONTHmonth-DAYS_BEFORE_MONTHmonth-1;void Date:show() constcout<<getYear()<<"-"<<getMonth()<<"-"<<getDay();/accout.h#ifndef _ACCOUNT_H_#define _ACCOUNT_H_#include"date.h"#include"accumulator.h"#include<
6、string>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);/报告错误信息v
7、oid error(const std:string &msg)const;public:const std:string &getId() constreturn id;double getBalance() const return balance;static double getTotal()return total;/存入现金,date为日期,amount为金额,desc为款项说明virtual void deposit(const Date &date,double amount,const std:string &desc)=0;/取出现金,dat
8、e为日期,amount为金额,desc为款项说明virtual void withdraw(const Date &date,double amount,const std:string &desc)=0;/结算(计算利息、年费等),每月结算一次,date为结算日期virtual void settle(const Date &date)=0;/显示 账户信息virtual void show() const;class SavingsAccount:public Account /储蓄账户类private:Accumulator acc;/辅助计算利息的累加器doub
9、le 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); /取出现
10、金void settle(const Date &date); /结算利息,每年1月1日调用一次该函数 void show() const; /显示账户信息;class CreditAccount:public Account /信用账户类private:Accumulator acc;/辅助计算利息的累加器double credit;/信用额度double rate;/欠款的日利率double fee;/信用卡年费double getDebt() const/获得欠款额double balance=getBalance();return (balance<0?balance:0
11、);public:/构造函数CreditAccount(const Date &date,const std:string &id,double credit,double rate,double fee);double getCredit() constreturn credit;double getRate() constreturn rate;double getFee() constreturn fee;double getAvailableCredit() const/获得可用信用额度if(getBalance()<0)return credit+getBala
12、nce();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月1日调用一次该函数 void show() const; /显示账户信息;#endif/_ACOUNT_H_/account.cpp
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 综合 实例 个人 银行 账户 管理程序 15
限制150内