用面向对象C++写饭卡管理系统
时间: 2023-10-23 08:08:49 浏览: 117
C语言饭卡管理系统代码.doc
好的,我可以为您提供一个简单的饭卡管理系统的代码示例,如下所示:
```cpp
#include <iostream>
#include <string>
#include <vector>
using namespace std;
// 饭卡类
class Card {
public:
Card(string name, int cardNo, double balance) {
this->name = name;
this->cardNo = cardNo;
this->balance = balance;
}
string getName() {
return name;
}
int getCardNo() {
return cardNo;
}
double getBalance() {
return balance;
}
void deposit(double amount) {
balance += amount;
}
bool withdraw(double amount) {
if (balance < amount) {
return false;
}
balance -= amount;
return true;
}
private:
string name; // 持卡人姓名
int cardNo; // 卡号
double balance; // 余额
};
// 饭堂类
class Canteen {
public:
void addCard(Card card) {
cards.push_back(card);
}
bool removeCard(int cardNo) {
for (int i = 0; i < cards.size(); i++) {
if (cards[i].getCardNo() == cardNo) {
cards.erase(cards.begin() + i);
return true;
}
}
return false;
}
bool deposit(int cardNo, double amount) {
for (int i = 0; i < cards.size(); i++) {
if (cards[i].getCardNo() == cardNo) {
cards[i].deposit(amount);
return true;
}
}
return false;
}
bool withdraw(int cardNo, double amount) {
for (int i = 0; i < cards.size(); i++) {
if (cards[i].getCardNo() == cardNo) {
return cards[i].withdraw(amount);
}
}
return false;
}
private:
vector<Card> cards; // 饭卡列表
};
int main() {
Canteen canteen;
// 添加饭卡
Card card1("张三", 1001, 100);
Card card2("李四", 1002, 200);
canteen.addCard(card1);
canteen.addCard(card2);
// 充值
canteen.deposit(1001, 50);
cout << "张三的余额为:" << canteen.withdraw(1001, 80) << endl;
// 消费
cout << "李四的余额为:" << canteen.withdraw(1002, 50) << endl;
// 删除饭卡
canteen.removeCard(1001);
return 0;
}
```
在上面的代码中,我们定义了一个 `Card` 类和一个 `Canteen` 类。`Card` 类表示饭卡,包括持卡人姓名、卡号和余额等属性,以及充值和消费等方法。`Canteen` 类表示饭堂,包括饭卡列表和添加、删除、充值和消费等方法。
在 `main` 函数中,我们首先创建了一个 `Canteen` 对象,然后添加了两张饭卡,分别属于张三和李四。接着我们对张三的饭卡进行了充值和消费操作,并输出了余额。最后我们删除了张三的饭卡。
阅读全文