以下是一个基于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容器来存储校友信息,通过用户输入来实现各种功能,包括添加校友信息、显示校友信息、查询校友信息、修改校友信息、删除校友信息、排序校友信息以及保存和加载校友信息到文件。其中,保存和加载校友信息到文件的操作使用了ofstreamifstream来实现。

请注意,此程序仅为示例,可能需要根据实际需求进行相应的修改和完善

基于C++的校友录管理系统程序设计基本要求:校友的信息包括姓名、性别、年龄、届级、系、班级、通讯地址、电话、qq、email等。功能要求:能够实现数据的录入、查询按姓名、届级、系、班级、修改、删除、排序按姓名、届级以及校友信息读写文件。

原文地址: http://www.cveoy.top/t/topic/hDNx 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录