C++实现银行开户、存款、取款、销户等功能简单程序【分享】

本文介绍了如何使用C++编写一个Account类,模拟银行账户功能,包括存款、取款、查询余额,以及添加信用卡和管理信用卡免息期、取现额度等功能。同时展示了主函数中的菜单操作和账户注销流程。
摘要由CSDN通过智能技术生成

 简单的程序,需要自取:

#include<iostream> 
#include<cstring>
using namespace std;
class Account  
{  
public:  
	Account(char name[], long num, float amount);   
	Account();   
	void deposit(float amount);  
	int withdraw(float amount);  
	float getBalance();  
	void addCreditCard(); // 添加信用卡功能  
	void setCreditFreePeriod(int days); // 设置信用卡免息期  
	float getCreditFreePeriod(); // 获取信用卡免息期  
	float getCashLimit(); // 获取取现金额度  
	void setCashLimit(float limit); // 设置取现金额度  
	void changePassword(char oldPass[], char newPass[]); // 修改密码功能  
	void closeAccount(); // 销户
  
private:  
	char mName[20];   
	long mSN;   
	float mBalance;   
	struct CreditCard { // 信用卡结构体  
		char cardNumber[20]; // 卡号  
		int freePeriod; // 免息期  
		float cashLimit; // 取现金额度  
		char password[10]; // 密码  
	};  
	CreditCard mCreditCard; // 信用卡对象  
};  
void Account::addCreditCard()  
{  
	cout << "请输入信用卡卡号:";  
	cin >> mCreditCard.cardNumber;  
	cout << "请输入信用卡免息期(天数):";  
	cin >> mCreditCard.freePeriod;  
	cout << "请输入信用卡取现金额度:";  
	cin >> mCreditCard.cashLimit;  
	cout << "请输入信用卡密码:";  
	cin >> mCreditCard.password;  
}  
  
void Account::setCreditFreePeriod(int days)  
{  
	mCreditCard.freePeriod = days;  
}  
  
float Account::getCreditFreePeriod()  
{  
	return mCreditCard.freePeriod;  
}  
  
float Account::getCashLimit()  
{  
	return mCreditCard.cashLimit;  
}  
  
void Account::setCashLimit(float limit)  
{  
	mCreditCard.cashLimit = limit;  
}  
  
void Account::changePassword(char oldPass[], char newPass[])  
{  
	if (strcmp(oldPass, mCreditCard.password) == 0) // 检查旧密码是否正确  
	{  
		strcpy(mCreditCard.password, newPass); // 更新密码  
		cout << "密码修改成功!" << endl;  
	}  
	else  
	{  
		cout << "旧密码错误,修改失败!" << endl;  
	}  
}  
//类的有参构造函数
Account::Account(char name[], long num, float amount)
{
	strcpy(mName, name);      //字符串复制函数
	mSN = num;
	mBalance = amount;
}
//类的无参构造函数 
Account::Account()
{
	cout << "无参函数被调用!" << endl;
}
//往当前账户中存款 
void Account::deposit(float amount)
{
	mBalance = mBalance + amount;
}
//从当前账户中取款 
int Account::withdraw(float amount)
{
	if (amount > mBalance)
	{
		return 0;
	}
	else if (amount <= mBalance)
	{
		mBalance = mBalance - amount; 
		return 1;              //return 1 结束 
	}
}
//查询当前账户的余额
float Account::getBalance()
{
	return mBalance;
}
//主函数
int displayMenuAndGetChoice() {  
    int choice;  
    cout << "------------------------------------------------" << endl;  
    cout << "                   菜单栏                       " << endl;  
    cout << "1、存款请输入“1”" << endl;  
    cout << "2、取款请输入“2”" << endl;  
    cout << "3、查询账户余额请输入“3”" << endl;  
    cout << "4、添加信用卡并设置相关信息请输入“4”" << endl;  
    cout << "5、退出请输入“5”" << endl; 
	cout << "6、销户请输入“6”" << endl; 
    cout << "------------------------------------------------" << endl;  
    cout << "请输入选择: " << endl;  
    cin >> choice;  
    return choice;  
}  
  

void handleCreditCardOperations(Account& account) {  
    char cardNumber[20];  
    int freePeriod;  
    float cashLimit;  
    char oldPass[10], newPass[10];  
  
    cout << "请输入信用卡卡号:";  
    cin >> cardNumber;  
    // 验证卡号 
  
    cout << "请输入信用卡免息期(天数):";  
    cin >> freePeriod;  
    // 验证免息期
  
    cout << "请输入信用卡取现金额度:";  
    cin >> cashLimit;  
    //  验证取现金是否合理  
  
    cout << "请输入当前信用卡密码:";  
    cin >> oldPass;  // 验证旧密码的正确性  
  
    cout << "请输入新信用卡密码:";  
    cin >> newPass;  
    // 验证新密码
}
void Account::closeAccount() { // 将账户余额设置为0  
    mBalance = 0.0f;  
    mCreditCard.cardNumber[0] = '\0'; // 清空卡号  
    mCreditCard.freePeriod = 0; // 设置免息期为0  
    mCreditCard.cashLimit = 0.0f; // 设置取现金额度为0  
    mCreditCard.password[0] = '\0'; // 清空密码  
    cout << "账户已销户。" << endl;  
  
    
}
    
  
int main() {  
    int NO, m;  
    char name[20];  
    long num;  
    float amount;  
  
    cout << "请输入所开账户户名:";  
    cin >> name;  
    cout << "请输入所开账户帐号:";  
    cin >> num;   
    cout << "请输入所开账户初始存款金额:";  
    cin >> amount;  
  
    Account A(name, num, amount);  
  
    while (true) {  
        int choice = displayMenuAndGetChoice();  
  
        switch (choice) {  
            case 1:   
                cout << "请输入存款金额:";  
                cin >> amount;  
                A.deposit(amount);  
                break;  
            case 2:   
                cout << "请输入取款金额:";  
                cin >> amount;  
                m = A.withdraw(amount);  
                if (m == 0) {  
                    cout << "当前账户余额不足!" << endl;  
                } else {  
                    cout << "取款成功!" << endl;  
                }  
                break;  
            case 3:     
                cout << "当前账户余额为:" << A.getBalance() << endl;    
                break;  
            case 4:     
                handleCreditCardOperations(A);  
                break;  
            case 5:     
                cout << "已退出程序" << endl;    
                return 0; 
			case 6:  
                cout << "您确定销户吗?(Y/N): ";  
                char response;  
                cin >> response;  
                if (tolower(response) == 'y') { // 使用tolower确保不区分大小写  
                    A.closeAccount(); // 确保Account类中有这个公有方法的声明  
                    cout << "账户已销户,退出程序。" << endl;  
                    return 0; // 销户后直接退出程序  
                } else {  
                    cout << "未执行销户操作。" << endl;  
                }  
                break;  
            default:    
                cout << "输入有误,请重新输入!" << endl;    
                break;    
        }  
    }  
  
    return 0;  
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值