运用C++、C语言的知识编写程序。 要求: 一、自拟题目,要求程序编写完整,调试、运行结果正确。 二、程序内容要求: 1.创建类,根据题目要求,设计类所需的成员函数、数据成员。(要求类包含构造函数、析构函数、复制构造函数、友元或静态成员、静态函数) 2.运用C++中继承,编写派生类,派生类中包含构造函数、析构函数。( 采用何种继承方式根据题目要求自定) 3.运用C++中多态,实现程序多态输出。(可以通过编写虚函数、函数重载、运算符重载实现程序目标。) 4.通过编写主函数,创建相关类的对象,通过对象调用类中的成员函数。 5.程序中包括动态对象或数组。 6.通过编写程序实现操作菜单编写。
时间: 2023-02-15 09:14:34 浏览: 50
基于上述要求,下面是一个示例程序,它展示了如何创建基类和派生类,如何使用多态性和动态内存分配,以及如何在程序中实现操作菜单。
题目: 设计一个银行系统,支持个人账户和商业账户两种类型。个人账户支持存款、取款和查询余额三种操作,商业账户支持存款、取款、查询余额和获取信用额度四种操作。
```
#include <iostream>
#include <string>
using namespace std;
// 定义基类Account
class Account {
public:
// 构造函数
Account(const string& name, double balance)
: name_(name), balance_(balance) {}
// 析构函数
virtual ~Account() {}
// 复制构造函数
Account(const Account& other)
: name_(other.name_), balance_(other.balance_) {}
// 取款操作
virtual bool withdraw(double amount) {
if (amount > balance_) {
return false;
}
balance_ -= amount;
return true;
}
// 存款操作
virtual void deposit(double amount) {
balance_ += amount;
}
// 查询余额操作
virtual void getBalance() const {
cout << "账户余额: " << balance_ << endl;
}
// 虚函数,用于多态输出
virtual void print() const {
cout << "账户名: " << name_ << endl;
}
protected:
string name_; // 账户名
double balance_; // 账户余额
};
// 定义派生类PersonalAccount
class PersonalAccount : public Account {
public:
// 构造函数
PersonalAccount(const string& name, double balance)
: Account(name,