写一个C++程序代码。用类和对象,不用结构体。用文件流来写。能在代码运行界面实现对数据的增删改查的功能。加上中文注释。题目:超市会员管理系统 系统功能的基本要求:会员的基本信息,包括姓名、性别、年龄、工作单位、联系方式。会员购物信息:购买物品编号、物品名称、所属种类,数量,价格。会员返利信息:包括会员积分的情况,享受优惠的等级。
时间: 2023-06-14 14:07:11 浏览: 292
很高兴为您提供 C++ 代码。下面是一个简单的超市会员管理系统,包含增删改查功能。
```
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
// 商品类,包括商品编号、名称、种类、数量、价格等信息
class Item {
public:
string id; // 商品编号
string name; // 商品名称
string type; // 商品种类
int count; // 商品数量
double price; // 商品价格
// 构造函数
Item(string id, string name, string type, int count, double price) {
this->id = id;
this->name = name;
this->type = type;
this->count = count;
this->price = price;
}
// 重载输出运算符,用于打印商品信息
friend ostream& operator<<(ostream& os, const Item& item) {
os << item.id << "\t" << item.name << "\t" << item.type << "\t" << item.count << "\t" << item.price;
return os;
}
};
// 会员类,包括姓名、性别、年龄、工作单位、联系方式等信息
class Member {
public:
string name; // 姓名
string gender; // 性别
int age; // 年龄
string company; // 工作单位
string phone; // 联系方式
int points; // 积分
int level; // 会员等级
// 构造函数
Member(string name, string gender, int age, string company, string phone, int points, int level) {
this->name = name;
this->gender = gender;
this->age = age;
this->company = company;
this->phone = phone;
this->points = points;
this->level = level;
}
// 重载输出运算符,用于打印会员信息
friend ostream& operator<<(ostream& os, const Member& member) {
os << member.name << "\t" << member.gender << "\t" << member.age << "\t" << member.company << "\t" << member.phone << "\t" << member.points << "\t" << member.level;
return os;
}
};
// 超市会员管理系统
class Supermarket {
private:
vector<Member> members; // 存储会员信息
vector<Item> items; // 存储商品信息
string memberFile; // 存储会员信息的文件名
string itemFile; // 存储商品信息的文件名
public:
// 构造函数,初始化文件名和数据
Supermarket(string memberFile, string itemFile) {
this->memberFile = memberFile;
this->itemFile = itemFile;
loadMembers();
loadItems();
}
// 加载会员信息
void loadMembers() {
ifstream fin(memberFile);
if (fin) {
string name, gender, company, phone;
int age, points, level;
while (fin >> name >> gender >> age >> company >> phone >> points >> level) {
members.push_back(Member(name, gender, age, company, phone, points, level));
}
fin.close();
}
}
// 加载商品信息
void loadItems() {
ifstream fin(itemFile);
if (fin) {
string id, name, type;
int count;
double price;
while (fin >> id >> name >> type >> count >> price) {
items.push_back(Item(id, name, type, count, price));
}
fin.close();
}
}
// 保存会员信息
void saveMembers() {
ofstream fout(memberFile);
for (auto& member : members) {
fout << member << endl;
}
fout.close();
}
// 保存商品信息
void saveItems() {
ofstream fout(itemFile);
for (auto& item : items) {
fout << item << endl;
}
fout.close();
}
// 添加会员
void addMember() {
string name, gender, company, phone;
int age, points = 0, level = 1;
cout << "请输入会员姓名:";
cin >> name;
cout << "请输入会员性别:";
cin >> gender;
cout << "请输入会员年龄:";
cin >> age;
cout << "请输入会员工作单位:";
cin >> company;
cout << "请输入会员联系方式:";
cin >> phone;
members.push_back(Member(name, gender, age, company, phone, points, level));
cout << "添加会员成功!" << endl;
}
// 添加商品
void addItem() {
string id, name, type;
int count;
double price;
cout << "请输入商品编号:";
cin >> id;
cout << "请输入商品名称:";
cin >> name;
cout << "请输入商品种类:";
cin >> type;
cout << "请输入商品数量:";
cin >> count;
cout << "请输入商品价格:";
cin >> price;
items.push_back(Item(id, name, type, count, price));
cout << "添加商品成功!" << endl;
}
// 删除会员
void deleteMember() {
string name;
cout << "请输入要删除的会员姓名:";
cin >> name;
for (auto it = members.begin(); it != members.end(); ++it) {
if (it->name == name) {
members.erase(it);
cout << "删除会员成功!" << endl;
return;
}
}
cout << "未找到要删除的会员!" << endl;
}
// 删除商品
void deleteItem() {
string id;
cout << "请输入要删除的商品编号:";
cin >> id;
for (auto it = items.begin(); it != items.end(); ++it) {
if (it->id == id) {
items.erase(it);
cout << "删除商品成功!" << endl;
return;
}
}
cout << "未找到要删除的商品!" << endl;
}
// 修改会员信息
void updateMember() {
string name;
cout << "请输入要修改的会员姓名:";
cin >> name;
for (auto& member : members) {
if (member.name == name) {
cout << "请输入新的会员性别:";
cin >> member.gender;
cout << "请输入新的会员年龄:";
cin >> member.age;
cout << "请输入新的会员工作单位:";
cin >> member.company;
cout << "请输入新的会员联系方式:";
cin >> member.phone;
cout << "修改会员信息成功!" << endl;
return;
}
}
cout << "未找到要修改的会员!" << endl;
}
// 修改商品信息
void updateItem() {
string id;
cout << "请输入要修改的商品编号:";
cin >> id;
for (auto& item : items) {
if (item.id == id) {
cout << "请输入新的商品名称:";
cin >> item.name;
cout << "请输入新的商品种类:";
cin >> item.type;
cout << "请输入新的商品数量:";
cin >> item.count;
cout << "请输入新的商品价格:";
cin >> item.price;
cout << "修改商品信息成功!" << endl;
return;
}
}
cout << "未找到要修改的商品!" << endl;
}
// 查询会员信息
void queryMember() {
string name;
cout << "请输入要查询的会员姓名:";
cin >> name;
for (auto& member : members) {
if (member.name == name) {
cout << member << endl;
return;
}
}
cout << "未找到要查询的会员!" << endl;
}
// 查询商品信息
void queryItem() {
string id;
cout << "请输入要查询的商品编号:";
cin >> id;
for (auto& item : items) {
if (item.id == id) {
cout << item << endl;
return;
}
}
cout << "未找到要查询的商品!" << endl;
}
// 打印所有会员信息
void printMembers() {
for (auto& member : members) {
cout << member << endl;
}
}
// 打印所有商品信息
void printItems() {
for (auto& item : items) {
cout << item << endl;
}
}
// 显示菜单
void showMenu() {
cout << "超市会员管理系统" << endl;
cout << "1. 添加会员" << endl;
cout << "2. 添加商品" << endl;
cout << "3. 删除会员" << endl;
cout << "4. 删除商品" << endl;
cout << "5. 修改会员信息" << endl;
cout << "6. 修改商品信息" << endl;
cout << "7. 查询会员信息" << endl;
cout << "8. 查询商品信息" << endl;
cout << "9. 打印所有会员信息" << endl;
cout << "10. 打印所有商品信息" << endl;
cout << "11. 保存数据" << endl;
cout << "0. 退出" << endl;
}
// 运行程序
void run() {
int choice;
while (true) {
showMenu();
cout << "请选择操作:";
cin >> choice;
switch (choice) {
case 1:
addMember();
break;
case 2:
addItem();
break;
case 3:
deleteMember();
break;
case 4:
deleteItem();
break;
case 5:
updateMember();
break;
case 6:
updateItem();
break;
case 7:
queryMember();
break;
case 8:
queryItem();
break;
case 9:
printMembers();
break;
case 10:
printItems();
break;
case 11:
saveMembers();
saveItems();
cout << "保存数据成功!" << endl;
break;
case 0:
cout << "感谢使用超市会员管理系统!" << endl;
return;
default:
cout << "无效的操作!" << endl;
break;
}
}
}
};
int main() {
Supermarket market("members.txt", "items.txt");
market.run();
return 0;
}
```
在上面的代码中,我们定义了两个类 `Item` 和 `Member` 分别表示商品和会员的信息。我们还定义了一个 `Supermarket` 类来实现超市会员管理系统。在 `Supermarket` 类中,我们使用了 STL 中的 `vector` 来存储会员和商品的信息,并使用文件流来读写数据。在 `Supermarket` 类中,我们实现了增删改查的功能,以及打印所有会员和商品信息的功能。我们还在 `Supermarket` 类中实现了一个菜单,让用户可以选择相应的操作。
在 `main` 函数中,我们创建了一个 `Supermarket` 对象,并调用其 `run` 方法来运行程序。
请注意,上述代码只是一个简单的示例,实际的超市会员管理系统可能需要更多的功能和更复杂的数据结构。
阅读全文