Savingaccount.h
#include <iostream>
#include <stdlib.h>
#include <windows.h>
#include <string>
class date {
public:
int year1;
int month1;
int day1;
int year2;
int month2;
int day2;
bool isLeapYear(int year);
int getDays(int year, int month, int day);
int dayDis();
void fuzhi(int yearone, int monthone, int dayone, int yeartwo, int monthtwo, int daytwo);
};
class credit :public date
{
public:
int m_iID;//用户ID
double m_dbalance;//余额
double m_drate;//年利率
int m_idate;//存钱时间
const void deposit();//存款
const void withdraw();//取款
const double settle();//结算利息
const void cover();//覆盖函数
const void go_out();
const void show();
void jiekuan();
void jiekuandate();
int m_ijiekuandate;
void huankuan();
const void welcome();
double jiekuanlilv;
const void adm();
credit(int id);
};
class savingsaccount:public date
{
public:
int m_iID;//用户ID
double m_dbalance;//余额
double m_drate;//年利率
int m_idate;//存钱时间
savingsaccount(int id);//构造函数
~savingsaccount() {}//析构函数
const void show();//输出
const void deposit();//存款
const void withdraw();//取款
const double settle();//结算利息
const void cover();//覆盖函数
const void welcome();//主界面
const void go_out();//返回主菜单的函数
const void adm();//管理员函数
};
3.0.cpp
#include <iostream>
#include <stdlib.h>
#include <windows.h>
#include <string>
#include "savingacoount.h"
using namespace std;
savingsaccount::savingsaccount(int id) : m_iID(id), m_dbalance(0), m_drate(0), m_idate(0)
{
}
const void savingsaccount::adm() {
system("cls");
double a;
cout << "请输入当前市场要求的汇率:" << endl;
cout << " 在此输入:";
cin >> a;
m_drate = a;
go_out();
}
const void savingsaccount::show() {
system("cls");
cout << "账户ID为:" << m_iID << endl;
cout << "账户余额为:" << m_dbalance << endl;
cout << "利率为:" << m_drate << endl;
go_out();
}
const void savingsaccount::deposit() {
double m_dchange_deposit;
double m_dchanged_deposit;
int m_ichange_date;
cout << "请输入你要存款的数额:";
cin >> m_dchange_deposit;
cout << "请输入当前存款日期和你要取款的日期";
cout << "格式:年 月 日 年 月 日"<<endl;
int yearONE;
int monthONE;
int dayONE;
int yearTWO;
int monthTWO;
int dayTWO;
cin >> yearONE >> monthONE >> dayONE >> yearTWO >> monthTWO >>dayTWO;
if (yearONE > yearTWO)
{
system("cls");
cout << "输入错误,请重新输入";
deposit();
}
if (yearONE == yearTWO || monthONE == monthTWO)
{
if (dayONE > dayTWO)
{
system("cls");
cout << "输入错误,请重新输入";
deposit();
}
}
if (monthONE > 12 || monthTWO > 12||monthONE ==0 || monthTWO ==0)
{
system("cls");
cout << "输入错误,请重新输入";
deposit();
}
if (monthONE == 1 || monthONE == 3 || monthONE == 5 || monthONE == 7 || monthONE == 8 || monthONE == 10 || monthONE == 12||monthTWO == 1 || monthTWO == 3 || monthTWO == 5 || monthTWO == 7 || monthTWO == 8 || monthTWO == 10 || monthTWO == 12)
{
if (dayONE > 31||dayTWO>31|| dayONE == 0 || dayTWO == 0)
{
system("cls");
cout << "输入错误,请重新输入";
deposit();
}
}
if (monthONE == 4 || monthONE == 6 || monthONE == 9 || monthONE == 11 || monthTWO == 4 || monthTWO == 6 || monthTWO == 9 || monthTWO == 11)
{
if (dayONE > 30 || dayTWO > 30 || dayONE == 0|| dayTWO == 0)
{
system("cls");
cout << "输入错误,请重新输入";
deposit();
}
}
if (monthONE == 2||monthTWO==2)
{
if (isLeapYear(yearONE) == 1||isLeapYear(yearTWO)==1)
{
if (dayONE > 29||dayTWO > 29)
{
system("cls");
cout << "输入错误,请重新输入";
deposit();
}
}
if (isLeapYear(yearONE) == 0 || isLeapYear(yearTWO) == 0)
{
if (dayONE > 28 || dayTWO > 28)
{
system("cls");
cout << "输入错误,请重新输入";
deposit();
}
}
}
fuzhi(yearONE, monthONE, dayONE, yearTWO, monthTWO, dayTWO);
m_ichange_date = dayDis();
cout << endl;
m_dchanged_deposit = m_dbalance + m_dchange_deposit;
m_dbalance = m_dchanged_deposit;
m_idate = m_ichange_date;
cover();
go_out();
}
const double savingsaccount::settle() {
return m_dbalance + m_dbalance * m_drate * m_idate;
}
const void savingsaccount::cover() {
double m_dchange_cover;
m_dchange_cover = settle();
m_dbalance = m_dchange_cover;
}
const void savingsaccount::withdraw() {
double m_dchange_withdraw;
double m_dchanged_withdraw;
cout << "请输入你要取款的数额:";
cin >> m_dchange_withdraw;
cout << endl;
m_dchanged_withdraw = m_dbalance - m_dchange_withdraw;
m_dbalance = m_dchanged_withdraw;
go_out();
}
const void savingsaccount::go_out() {
int a;
cout << endl;
cout << "您是否要返回主菜单?" << endl;
cout << "在此输入1,返回主菜单:";
cin >> a;
if (a == 1)
{
welcome();
}
else
{
exit(0);
}
}
const void savingsaccount::welcome()
{
cout << " " << endl;
cout << "***********************" << endl;
cout << " 欢迎来到赵宸银行 " << endl;
cout << " 请选择您的操作:" << endl;
cout << " 1.存款" << endl;
cout << " 2.取款" << endl;
cout << " 3.查询我的账户" << endl;
cout << " 4.进入管理员模式" << endl;
cout << " 5.退出系统" << endl;
cout << " 请在此输入:";
int a;
cin >> a;
switch (a) {
case 1:
deposit();
case 2:
withdraw();
case 3:
show();
case 4:
adm();
case 5:
exit(0);
default:
cout << "error!" << endl;
system("cls");
welcome();
}
}
Credit.cpp
#include <iostream>
#include <string>
#include <stdlib.h>
#include <windows.h>
#include "savingacoount.h"
using namespace std;
static double change_money;
credit::credit(int id) {
m_iID = id;
m_dbalance = 0;
m_drate= 0;
m_idate= 0;
}
void credit::jiekuan() {
cout << "请输入您要借款的金额:" << endl;
cin >> change_money;
m_dbalance += change_money;
jiekuandate();
}
void credit::huankuan() {
cout << "你现在欠款:" << change_money + jiekuanlilv * change_money * m_ijiekuandate<<endl;
cout << "您是否要还钱?" << endl;
cout << "还钱请输入1,返回请输入其他键" << endl;
int a;
cin >> a;
if (a == 1) {
if (m_dbalance < (change_money + jiekuanlilv * change_money * m_ijiekuandate)) {
cout << "你账户没有足够的余额,现在为您返回主菜单" << endl;
credit::welcome();
}
else {
m_dbalance = m_dbalance +(change_money + jiekuanlilv * change_money * m_ijiekuandate);
}
}
else
credit::welcome();
}
void credit::jiekuandate() {
cout << "请输入当前借款日期和你要还款的日期";
cout << "格式:年 月 日 年 月 日" << endl;
int yearONE;
int monthONE;
int dayONE;
int yearTWO;
int monthTWO;
int dayTWO;
cin >> yearONE >> monthONE >> dayONE >> yearTWO >> monthTWO >> dayTWO;
if (yearONE > yearTWO)
{
system("cls");
cout << "输入错误,请重新输入";
jiekuandate();
}
if (yearONE == yearTWO || monthONE == monthTWO)
{
if (dayONE > dayTWO)
{
system("cls");
cout << "输入错误,请重新输入";
jiekuandate();
}
}
if (monthONE > 12 || monthTWO > 12 || monthONE == 0 || monthTWO == 0)
{
system("cls");
cout << "输入错误,请重新输入";
jiekuandate();
}
if (monthONE == 1 || monthONE == 3 || monthONE == 5 || monthONE == 7 || monthONE == 8 || monthONE == 10 || monthONE == 12 || monthTWO == 1 || monthTWO == 3 || monthTWO == 5 || monthTWO == 7 || monthTWO == 8 || monthTWO == 10 || monthTWO == 12)
{
if (dayONE > 31 || dayTWO > 31 || dayONE == 0 || dayTWO == 0)
{
system("cls");
cout << "输入错误,请重新输入";
jiekuandate();
}
}
if (monthONE == 4 || monthONE == 6 || monthONE == 9 || monthONE == 11 || monthTWO == 4 || monthTWO == 6 || monthTWO == 9 || monthTWO == 11)
{
if (dayONE > 30 || dayTWO > 30 || dayONE == 0 || dayTWO == 0)
{
system("cls");
cout << "输入错误,请重新输入";
jiekuandate();
}
}
if (monthONE == 2 || monthTWO == 2)
{
if (isLeapYear(yearONE) == 1 || isLeapYear(yearTWO) == 1)
{
if (dayONE > 29 || dayTWO > 29)
{
system("cls");
cout << "输入错误,请重新输入";
jiekuandate();
}
}
if (isLeapYear(yearONE) == 0 || isLeapYear(yearTWO) == 0)
{
if (dayONE > 28 || dayTWO > 28)
{
system("cls");
cout << "输入错误,请重新输入";
jiekuandate();
}
}
}
fuzhi(yearONE, monthONE, dayONE, yearTWO, monthTWO, dayTWO);
m_ijiekuandate = dayDis();
cout << endl;
}
const void credit::welcome() {
cout << " " << endl;
cout << "***********************" << endl;
cout << " 欢迎来到赵宸银行 " << endl;
cout << " 请选择您的操作:" << endl;
cout << " 1.存款" << endl;
cout << " 2.取款" << endl;
cout << " 3.借款" << endl;
cout << " 4.还款" << endl;
cout << " 5.查询我的账户" << endl;
cout << " 6.进入管理员模式" << endl;
cout << " 7.退出系统" << endl;
cout << " 请在此输入:";
int a;
cin >> a;
switch (a) {
case 1:
deposit();
case 2:
withdraw();
case 3:
jiekuan();
case 4:
huankuan();
case 5:
show();
case 6:
adm();
case 7:
exit(0);
default:
cout << "error!" << endl;
system("cls");
welcome();
}
}
const void credit::adm() {
cout << "**************************" << endl;
cout << "欢迎来到赵宸银行管理员系统" << endl;
cout << "1.修改存款利率" << endl;
cout << "2.修改借款利率" << endl;
cout << "**************************" << endl;
cout << "请在下列输入选项:" << endl;
int a;
cin >> a;
if (a == 1) {
system("cls");
double a;
cout << "请输入当前市场要求的存款汇率:" << endl;
cout << " 在此输入:";
cin >> a;
m_drate = a;
go_out();
}
else if (a == 2) {
system("cls");
double a;
cout << "请输入当前市场要求的还款汇率:" << endl;
cout << " 在此输入:";
cin >> a;
jiekuanlilv = a;
go_out();
}
}
const void credit::deposit() {
double m_dchange_deposit;
double m_dchanged_deposit;
int m_ichange_date;
cout << "请输入你要存款的数额:";
cin >> m_dchange_deposit;
cout << "请输入当前存款日期和你要取款的日期";
cout << "格式:年 月 日 年 月 日" << endl;
int yearONE;
int monthONE;
int dayONE;
int yearTWO;
int monthTWO;
int dayTWO;
cin >> yearONE >> monthONE >> dayONE >> yearTWO >> monthTWO >> dayTWO;
if (yearONE > yearTWO)
{
system("cls");
cout << "输入错误,请重新输入";
deposit();
}
if (yearONE == yearTWO || monthONE == monthTWO)
{
if (dayONE > dayTWO)
{
system("cls");
cout << "输入错误,请重新输入";
deposit();
}
}
if (monthONE > 12 || monthTWO > 12 || monthONE == 0 || monthTWO == 0)
{
system("cls");
cout << "输入错误,请重新输入";
deposit();
}
if (monthONE == 1 || monthONE == 3 || monthONE == 5 || monthONE == 7 || monthONE == 8 || monthONE == 10 || monthONE == 12 || monthTWO == 1 || monthTWO == 3 || monthTWO == 5 || monthTWO == 7 || monthTWO == 8 || monthTWO == 10 || monthTWO == 12)
{
if (dayONE > 31 || dayTWO > 31 || dayONE == 0 || dayTWO == 0)
{
system("cls");
cout << "输入错误,请重新输入";
deposit();
}
}
if (monthONE == 4 || monthONE == 6 || monthONE == 9 || monthONE == 11 || monthTWO == 4 || monthTWO == 6 || monthTWO == 9 || monthTWO == 11)
{
if (dayONE > 30 || dayTWO > 30 || dayONE == 0 || dayTWO == 0)
{
system("cls");
cout << "输入错误,请重新输入";
deposit();
}
}
if (monthONE == 2 || monthTWO == 2)
{
if (isLeapYear(yearONE) == 1 || isLeapYear(yearTWO) == 1)
{
if (dayONE > 29 || dayTWO > 29)
{
system("cls");
cout << "输入错误,请重新输入";
deposit();
}
}
if (isLeapYear(yearONE) == 0 || isLeapYear(yearTWO) == 0)
{
if (dayONE > 28 || dayTWO > 28)
{
system("cls");
cout << "输入错误,请重新输入";
deposit();
}
}
}
fuzhi(yearONE, monthONE, dayONE, yearTWO, monthTWO, dayTWO);
m_ichange_date = dayDis();
cout << endl;
m_dchanged_deposit = m_dbalance + m_dchange_deposit;
m_dbalance = m_dchanged_deposit;
m_idate = m_ichange_date;
cover();
go_out();
}
const double credit::settle() {
return m_dbalance + m_dbalance * m_drate * m_idate;
}
const void credit::cover() {
double m_dchange_cover;
m_dchange_cover = settle();
m_dbalance = m_dchange_cover;
}
const void credit::show() {
system("cls");
cout << "账户ID为:" << m_iID << endl;
cout << "账户余额为:" << m_dbalance << endl;
cout << "利率为:" << m_drate << endl;
go_out();
}
const void credit::withdraw() {
double m_dchange_withdraw;
double m_dchanged_withdraw;
cout << "请输入你要取款的数额:";
cin >> m_dchange_withdraw;
cout << endl;
m_dchanged_withdraw = m_dbalance - m_dchange_withdraw;
m_dbalance = m_dchanged_withdraw;
go_out();
}
const void credit::go_out() {
int a;
cout << endl;
cout << "您是否要返回主菜单?" << endl;
cout << "在此输入1,返回主菜单:";
cin >> a;
if (a == 1)
{
welcome();
}
else
{
exit(0);
}
}
Date.cpp
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include "savingacoount.h"
void date::fuzhi(int yearone, int monthone, int dayone, int yeartwo, int monthtwo, int daytwo) {
year1 = yearone;
month1 = monthone;
day1 = dayone;
year2 = yeartwo;
month2 = monthtwo;
day2 = daytwo;
}
bool date::isLeapYear(int year)
{
return ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0);
}
// 以公元 1 年 1 月 1 日为基准,计算经过的日期
int date::getDays(int year, int month, int day)
{
int m[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
if (isLeapYear(year))
m[2]++;
int result = 0;
for (int i = 1; i < year; i++)
{
result += 365;
if (isLeapYear(i))
result++;
}
for (int i = 1; i < month; i++)
{
result += m[i];
}
result += day;
return result;
}
int date::dayDis()
{
return abs(getDays(year2, month2, day2) - getDays(year1, month1, day1));
}
Main.cpp
#include <iostream>
#include <string>
#include <stdlib.h>
#include <Windows.h>
#include "savingacoount.h"
using namespace std;
int main() {
cout << "**************************" << endl;
cout << "欢迎来到赵宸银行" << endl;
cout << "请选择您的银行卡类型" << endl;
cout << "1.信用卡" << endl;
cout << "2.借记卡" << endl;
cout << "**************************" << endl;
cout << "请在下列输入选项:" << endl;
int a;
cin >> a;
if (a == 1) {
system("cls");
credit zhaochen1(1);
zhaochen1.welcome();
}
else if (a == 2) {
system("cls");
savingsaccount zhaochen(1);
zhaochen.welcome();
}
}
02-27
11-29