开发一个简单的网吧管理系统,实现以下基本功能: 无 【基本功能】 网吧会员信息包括:会员号、会员姓名、手机号、身份证号、积分等。 2. 上网信息包括:会员号、电脑编号、上网开始时间等。 了,能够添加、删除、修改会员信息,并将修改后的信息再次写入文件。 4. 能够按给定会员号、姓名等信息进行查找并显示相关信息。 15. 能够按照姓名或会员号对会员信息进行排序,并存入文件中。 6. 结算时,需将对应上网信息删除,并添加相应会员积分。c++
时间: 2024-01-13 08:05:32 浏览: 88
好的,您的要求已经被记录下来了,是一个简单的网吧管理系统的 C++ 代码,可以满足您的基本需求:
```cpp
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
struct Member {
string id;
string name;
string phone;
string idcard;
int score;
};
struct Online {
string member_id;
int pc_id;
string start_time;
};
vector<Member> members;
vector<Online> onlines;
void read_members() {
ifstream fin("members.txt");
if (!fin) {
return;
}
while (!fin.eof()) {
Member member;
fin >> member.id >> member.name >> member.phone >> member.idcard >> member.score;
if (member.id != "") {
members.push_back(member);
}
}
fin.close();
}
void write_members() {
ofstream fout("members.txt");
for (int i = 0; i < members.size(); i++) {
fout << members[i].id << " " << members[i].name << " " << members[i].phone << " " << members[i].idcard << " " << members[i].score << endl;
}
fout.close();
}
void read_onlines() {
ifstream fin("onlines.txt");
if (!fin) {
return;
}
while (!fin.eof()) {
Online online;
fin >> online.member_id >> online.pc_id >> online.start_time;
if (online.member_id != "") {
onlines.push_back(online);
}
}
fin.close();
}
void write_onlines() {
ofstream fout("onlines.txt");
for (int i = 0; i < onlines.size(); i++) {
fout << onlines[i].member_id << " " << onlines[i].pc_id << " " << onlines[i].start_time << endl;
}
fout.close();
}
bool compare_by_name(Member a, Member b) {
return a.name < b.name;
}
bool compare_by_id(Member a, Member b) {
return a.id < b.id;
}
void add_member() {
Member member;
cout << "请输入会员号:";
cin >> member.id;
cout << "请输入会员姓名:";
cin >> member.name;
cout << "请输入手机号码:";
cin >> member.phone;
cout << "请输入身份证号码:";
cin >> member.idcard;
member.score = 0;
members.push_back(member);
write_members();
cout << "添加成功!" << endl;
}
void delete_member() {
string id;
cout << "请输入要删除的会员号:";
cin >> id;
for (int i = 0; i < members.size(); i++) {
if (members[i].id == id) {
members.erase(members.begin() + i);
write_members();
cout << "删除成功!" << endl;
return;
}
}
cout << "不存在该会员号!" << endl;
}
void modify_member() {
string id;
cout << "请输入要修改的会员号:";
cin >> id;
for (int i = 0; i < members.size(); i++) {
if (members[i].id == id) {
cout << "请输入新的会员姓名:";
cin >> members[i].name;
cout << "请输入新的手机号码:";
cin >> members[i].phone;
cout << "请输入新的身份证号码:";
cin >> members[i].idcard;
write_members();
cout << "修改成功!" << endl;
return;
}
}
cout << "不存在该会员号!" << endl;
}
void search_member() {
string keyword;
cout << "请输入要查找的关键字:";
cin >> keyword;
for (int i = 0; i < members.size(); i++) {
if (members[i].id == keyword || members[i].name == keyword) {
cout << "会员号:" << members[i].id << endl;
cout << "会员姓名:" << members[i].name << endl;
cout << "手机号码:" << members[i].phone << endl;
cout << "身份证号码:" << members[i].idcard << endl;
cout << "积分:" << members[i].score << endl;
return;
}
}
cout << "不存在该关键字!" << endl;
}
void sort_member() {
int choice;
cout << "请选择排序方式(1.按姓名排序 2.按会员号排序):";
cin >> choice;
if (choice == 1) {
sort(members.begin(), members.end(), compare_by_name);
} else if (choice == 2) {
sort(members.begin(), members.end(), compare_by_id);
} else {
cout << "无效的选择!" << endl;
return;
}
write_members();
cout << "排序成功!" << endl;
}
void add_online() {
Online online;
cout << "请输入会员号:";
cin >> online.member_id;
cout << "请输入电脑编号:";
cin >> online.pc_id;
cout << "请输入上网开始时间(格式:年-月-日 时:分:秒):";
cin >> online.start_time;
onlines.push_back(online);
write_onlines();
cout << "添加成功!" << endl;
}
void settle_online() {
string member_id;
cout << "请输入要结算的会员号:";
cin >> member_id;
int count = 0;
for (int i = 0; i < onlines.size(); i++) {
if (onlines[i].member_id == member_id) {
count++;
onlines.erase(onlines.begin() + i);
i--;
}
}
if (count > 0) {
for (int i = 0; i < members.size(); i++) {
if (members[i].id == member_id) {
members[i].score += count;
write_members();
write_onlines();
cout << "结算成功!" << endl;
return;
}
}
}
cout << "不存在该会员号的上网信息!" << endl;
}
void print_menu() {
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 << "----------------------------------------------" << endl;
}
int main() {
read_members();
read_onlines();
while (true) {
print_menu();
int choice;
cout << "请选择操作:";
cin >> choice;
switch (choice) {
case 1:
add_member();
break;
case 2:
delete_member();
break;
case 3:
modify_member();
break;
case 4:
search_member();
break;
case 5:
sort_member();
break;
case 6:
add_online();
break;
case 7:
settle_online();
break;
case 8:
return 0;
default:
cout << "无效的选择!" << endl;
break;
}
}
return 0;
}
```
注意:该代码中使用了两个文件members.txt和onlines.txt来分别存储会员信息和上网信息,需要先创建这两个文件,并按照要求的格式写入数据。