写一个C++程序代码,能够在文件中对在代码运行界面输入的会员信息进行增删改查。
时间: 2023-11-22 14:52:44 浏览: 26
以下是一个简单的 C++ 代码示例,可以实现会员信息的增删改查功能。该程序将会员信息保存在一个文件中,每行代表一个会员的信息,包括会员编号、姓名、电话号码和地址。
```c++
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
struct Member {
string id;
string name;
string phone;
string address;
};
void addMember(ofstream& fout, Member& member) {
fout << member.id << ' ' << member.name << ' ' << member.phone << ' ' << member.address << endl;
cout << "Member added successfully." << endl;
}
void deleteMember(ifstream& fin, ofstream& fout, const string& id) {
Member member;
bool found = false;
while (fin >> member.id >> member.name >> member.phone >> member.address) {
if (member.id == id) {
found = true;
continue;
}
fout << member.id << ' ' << member.name << ' ' << member.phone << ' ' << member.address << endl;
}
if (found) {
cout << "Member deleted successfully." << endl;
} else {
cout << "Member not found." << endl;
}
}
void updateMember(ifstream& fin, ofstream& fout, const string& id, Member& member) {
Member oldMember;
bool found = false;
while (fin >> oldMember.id >> oldMember.name >> oldMember.phone >> oldMember.address) {
if (oldMember.id == id) {
found = true;
oldMember = member;
}
fout << oldMember.id << ' ' << oldMember.name << ' ' << oldMember.phone << ' ' << oldMember.address << endl;
}
if (found) {
cout << "Member updated successfully." << endl;
} else {
cout << "Member not found." << endl;
}
}
void searchMember(ifstream& fin, const string& id) {
Member member;
bool found = false;
while (fin >> member.id >> member.name >> member.phone >> member.address) {
if (member.id == id) {
found = true;
cout << "ID: " << member.id << endl;
cout << "Name: " << member.name << endl;
cout << "Phone: " << member.phone << endl;
cout << "Address: " << member.address << endl;
break;
}
}
if (!found) {
cout << "Member not found." << endl;
}
}
int main() {
ofstream fout("members.txt", ios::app);
ifstream fin("members.txt");
if (!fout || !fin) {
cout << "Error opening file." << endl;
return 1;
}
while (true) {
cout << "1. Add member" << endl;
cout << "2. Delete member" << endl;
cout << "3. Update member" << endl;
cout << "4. Search member" << endl;
cout << "5. Exit" << endl;
int choice;
cout << "Enter your choice: ";
cin >> choice;
switch (choice) {
case 1:
{
Member member;
cout << "Enter member ID: ";
cin >> member.id;
cout << "Enter member name: ";
cin >> member.name;
cout << "Enter member phone: ";
cin >> member.phone;
cout << "Enter member address: ";
cin >> member.address;
addMember(fout, member);
break;
}
case 2:
{
string id;
cout << "Enter member ID to delete: ";
cin >> id;
deleteMember(fin, fout, id);
break;
}
case 3:
{
string id;
cout << "Enter member ID to update: ";
cin >> id;
Member member;
cout << "Enter member name: ";
cin >> member.name;
cout << "Enter member phone: ";
cin >> member.phone;
cout << "Enter member address: ";
cin >> member.address;
updateMember(fin, fout, id, member);
break;
}
case 4:
{
string id;
cout << "Enter member ID to search: ";
cin >> id;
searchMember(fin, id);
break;
}
case 5:
return 0;
default:
cout << "Invalid choice." << endl;
}
}
fout.close();
fin.close();
return 0;
}
```
注意,该代码并没有对输入进行很好的错误处理,生产环境下需要更严格的输入验证和异常处理。