基于C++的校友录管理系统程序设计基本要求:校友的信息包括姓名、性别、年龄、届级、系、班级、通讯地址、电话、qq、email等。功能要求:能够实现数据的录入、查询按姓名、届级、系、班级、修改、删除、排序按姓名、届级以及校友信息读写文件。
以下是一个基于C++的校友录管理系统的程序设计示例:
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
struct Alumni {
string name;
string gender;
int age;
string batch;
string department;
string className;
string address;
string phoneNumber;
string qq;
string email;
};
void addAlumni(vector<Alumni>& alumniList) {
Alumni alumni;
cout << "请输入校友的姓名:";
cin >> alumni.name;
cout << "请输入校友的性别:";
cin >> alumni.gender;
cout << "请输入校友的年龄:";
cin >> alumni.age;
cout << "请输入校友的届级:";
cin >> alumni.batch;
cout << "请输入校友的系:";
cin >> alumni.department;
cout << "请输入校友的班级:";
cin >> alumni.className;
cout << "请输入校友的通讯地址:";
cin >> alumni.address;
cout << "请输入校友的电话:";
cin >> alumni.phoneNumber;
cout << "请输入校友的QQ:";
cin >> alumni.qq;
cout << "请输入校友的email:";
cin >> alumni.email;
alumniList.push_back(alumni);
cout << "校友信息添加成功!" << endl;
}
void displayAlumni(const Alumni& alumni) {
cout << "姓名:" << alumni.name << endl;
cout << "性别:" << alumni.gender << endl;
cout << "年龄:" << alumni.age << endl;
cout << "届级:" << alumni.batch << endl;
cout << "系:" << alumni.department << endl;
cout << "班级:" << alumni.className << endl;
cout << "通讯地址:" << alumni.address << endl;
cout << "电话:" << alumni.phoneNumber << endl;
cout << "QQ:" << alumni.qq << endl;
cout << "email:" << alumni.email << endl;
cout << endl;
}
void displayAlumniList(const vector<Alumni>& alumniList) {
for (const auto& alumni : alumniList) {
displayAlumni(alumni);
}
}
void searchAlumni(const vector<Alumni>& alumniList) {
string keyword;
cout << "请输入查询关键字:";
cin >> keyword;
vector<Alumni> searchResult;
for (const auto& alumni : alumniList) {
if (alumni.name == keyword || alumni.batch == keyword || alumni.department == keyword || alumni.className == keyword) {
searchResult.push_back(alumni);
}
}
if (searchResult.empty()) {
cout << "未找到匹配的校友信息!" << endl;
} else {
cout << "查询结果:" << endl;
displayAlumniList(searchResult);
}
}
void modifyAlumni(vector<Alumni>& alumniList) {
string keyword;
cout << "请输入要修改信息的校友姓名:";
cin >> keyword;
for (auto& alumni : alumniList) {
if (alumni.name == keyword) {
cout << "请输入新的校友信息:" << endl;
cout << "姓名:";
cin >> alumni.name;
cout << "性别:";
cin >> alumni.gender;
cout << "年龄:";
cin >> alumni.age;
cout << "届级:";
cin >> alumni.batch;
cout << "系:";
cin >> alumni.department;
cout << "班级:";
cin >> alumni.className;
cout << "通讯地址:";
cin >> alumni.address;
cout << "电话:";
cin >> alumni.phoneNumber;
cout << "QQ:";
cin >> alumni.qq;
cout << "email:";
cin >> alumni.email;
cout << "校友信息修改成功!" << endl;
return;
}
}
cout << "未找到匹配的校友信息!" << endl;
}
void deleteAlumni(vector<Alumni>& alumniList) {
string keyword;
cout << "请输入要删除信息的校友姓名:";
cin >> keyword;
auto it = remove_if(alumniList.begin(), alumniList.end(), [&](const Alumni& alumni) {
return alumni.name == keyword;
});
if (it != alumniList.end()) {
alumniList.erase(it, alumniList.end());
cout << "校友信息删除成功!" << endl;
} else {
cout << "未找到匹配的校友信息!" << endl;
}
}
bool sortByName(const Alumni& alumni1, const Alumni& alumni2) {
return alumni1.name < alumni2.name;
}
bool sortByBatch(const Alumni& alumni1, const Alumni& alumni2) {
return alumni1.batch < alumni2.batch;
}
void sortAlumni(vector<Alumni>& alumniList) {
int choice;
cout << "请选择排序方式:" << endl;
cout << "1. 按姓名排序" << endl;
cout << "2. 按届级排序" << endl;
cin >> choice;
switch (choice) {
case 1:
sort(alumniList.begin(), alumniList.end(), sortByName);
cout << "根据姓名排序完成!" << endl;
break;
case 2:
sort(alumniList.begin(), alumniList.end(), sortByBatch);
cout << "根据届级排序完成!" << endl;
break;
default:
cout << "无效的选择!" << endl;
break;
}
}
void saveAlumniList(const vector<Alumni>& alumniList, const string& filename) {
ofstream file(filename);
if (file.is_open()) {
for (const auto& alumni : alumniList) {
file << alumni.name << " ";
file << alumni.gender << " ";
file << alumni.age << " ";
file << alumni.batch << " ";
file << alumni.department << " ";
file << alumni.className << " ";
file << alumni.address << " ";
file << alumni.phoneNumber << " ";
file << alumni.qq << " ";
file << alumni.email << endl;
}
cout << "校友信息保存成功!" << endl;
} else {
cout << "无法打开文件!" << endl;
}
}
void loadAlumniList(vector<Alumni>& alumniList, const string& filename) {
ifstream file(filename);
if (file.is_open()) {
alumniList.clear();
string line;
while (getline(file, line)) {
Alumni alumni;
stringstream ss(line);
ss >> alumni.name;
ss >> alumni.gender;
ss >> alumni.age;
ss >> alumni.batch;
ss >> alumni.department;
ss >> alumni.className;
ss >> alumni.address;
ss >> alumni.phoneNumber;
ss >> alumni.qq;
ss >> alumni.email;
alumniList.push_back(alumni);
}
cout << "校友信息加载成功!" << endl;
} else {
cout << "无法打开文件!" << endl;
}
}
int main() {
vector<Alumni> alumniList;
string filename = "alumni_list.txt"; // 文件名可以根据需要自行修改
int choice;
while (true) {
cout << "======================" << endl;
cout << "校友录管理系统" << endl;
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 << "0. 退出系统" << endl;
cout << "======================" << endl;
cout << "请选择操作:";
cin >> choice;
switch (choice) {
case 1:
addAlumni(alumniList);
break;
case 2:
displayAlumniList(alumniList);
break;
case 3:
searchAlumni(alumniList);
break;
case 4:
modifyAlumni(alumniList);
break;
case 5:
deleteAlumni(alumniList);
break;
case 6:
sortAlumni(alumniList);
break;
case 7:
saveAlumniList(alumniList, filename);
break;
case 8:
loadAlumniList(alumniList, filename);
break;
case 0:
cout << "感谢使用校友录管理系统,再见!" << endl;
return 0;
default:
cout << "无效的选择!" << endl;
break;
}
}
}
这个程序使用了vector容器来存储校友信息,通过用户输入来实现各种功能,包括添加校友信息、显示校友信息、查询校友信息、修改校友信息、删除校友信息、排序校友信息以及保存和加载校友信息到文件。其中,保存和加载校友信息到文件的操作使用了ofstream和ifstream来实现。
请注意,此程序仅为示例,可能需要根据实际需求进行相应的修改和完善
原文地址: http://www.cveoy.top/t/topic/hDNx 著作权归作者所有。请勿转载和采集!