2301_81807597 2023-12-10 22:51 采纳率: 100%
浏览 19
已结题

设计一个成绩管理系统

img

要求基础简单一点的,不要太难,谢谢。
(凑字数不用管只看图片)
(●♡∀♡)(◕ᴗ◕✿)((づ ̄ ³ ̄)づ(´ω`)

  • 写回答

12条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-12-10 22:51
    关注

    引自强大而免费的微信小程序:皆我知道

    以下是一个简单的C++学生成绩系统的实现,并提供了一个符合题设要求的students.txt文件内容:

    #include <iostream>
    #include <fstream>
    #include <string>
    #include <vector>
    #include <algorithm>
    using namespace std;
    
    struct Student {
        string name;
        int score;
    };
    
    vector<Student> students;
    
    void addStudent() {
        Student newStudent;
        cout << "请输入学生姓名:";
        cin >> newStudent.name;
        cout << "请输入学生成绩:";
        cin >> newStudent.score;
        students.push_back(newStudent);
        cout << "学生信息添加成功!" << endl;
    }
    
    void displayStudents() {
        cout << "学生信息如下:" << endl;
        for (int i = 0; i < students.size(); i++) {
            cout << "姓名:" << students[i].name << "  成绩:" << students[i].score << endl;
        }
    }
    
    bool compare(const Student& s1, const Student& s2)
    {
        return s1.score > s2.score;
    }
    
    void sortStudents() {
        sort(students.begin(), students.end(), compare);
        cout << "学生成绩排序成功!" << endl;
    }
    
    
    void deleteStudent() {
        string name;
        cout << "请输入要删除学生的姓名:";
        cin >> name;
        for (int i = 0; i < students.size(); i++) {
            if (students[i].name == name) {
                students.erase(students.begin() + i);
                cout << "学生信息删除成功!" << endl;
                return;
            }
        }
        cout << "未找到该学生信息!" << endl;
    }
    
    void modifyStudent() {
        string name;
        cout << "请输入要修改学生的姓名:";
        cin >> name;
        for (int i = 0; i < students.size(); i++) {
            if (students[i].name == name) {
                cout << "请输入修改后的成绩:";
                cin >> students[i].score;
                cout << "学生信息修改成功!" << endl;
                return;
            }
        }
        cout << "未找到该学生信息!" << endl;
    }
    
    void searchStudent() {
        string name;
        cout << "请输入要查询学生的姓名:";
        cin >> name;
        for (int i = 0; i < students.size(); i++) {
            if (students[i].name == name) {
                cout << "姓名:" << students[i].name << "  成绩:" << students[i].score << endl;
                return;
            }
        }
        cout << "未找到该学生信息!" << endl;
    }
    
    void readFromFile() {
        ifstream inputFile("students.txt");
        if (!inputFile.good()) {
            cout << "文件打开失败!" << endl;
            return;
        }
        students.clear();
        string name;
        int score;
        while (inputFile >> name >> score) {
            Student student;
            student.name = name;
            student.score = score;
            students.push_back(student);
        }
        cout << "学生信息从文件中读取成功!" << endl;
        inputFile.close();
    }
    
    void deleteFile() {
        if (remove("students.txt") == 0) {
            cout << "学生信息文件删除成功!" << endl;
        }
        else {
            cout << "学生信息文件删除失败!" << endl;
        }
    }
    
    void saveToFile() {
        ofstream outputFile("students.txt");
        if (!outputFile.good()) {
            cout << "文件打开失败!" << endl;
            return;
        }
        for (int i = 0; i < students.size(); i++) {
            outputFile << students[i].name << " " << students[i].score << endl;
        }
        cout << "学生信息保存成功!" << endl;
        outputFile.close();
    }
    
    int main() {
        int option;
        while (true) {
            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 << "请输入操作选项(1-11):";
            cin >> option;
    
            switch (option) {
                case 1:
                    addStudent();
                    break;
                case 2:
                    displayStudents();
                    break;
                case 3:
                    sortStudents();
                    break;
                case 4:
                    addStudent();
                    break;
                case 5:
                    deleteStudent();
                    break;
                case 6:
                    modifyStudent();
                    break;
                case 7:
                    searchStudent();
                    break;
                case 8:
                    readFromFile();
                    break;
                case 9:
                    deleteFile();
                    break;
                case 10:
                    saveToFile();
                    break;
                case 11:
                    cout << "感谢使用成绩管理系统!" << endl;
                    return 0;
                default:
                    cout << "无效的选项!" << endl;
                    break;
            }
            cout << endl;
        }
    
        return 0;
    }
    

    students.txt文件内容:

    Lilei 90
    Tom 85
    Lucy 92
    

    注意:这只是一个简单的实现示例,并没有考虑输入数据的格式验证等方面。在实际使用中,需要根据具体需求进行完善。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(11条)

报告相同问题?

问题事件

  • 系统已结题 12月19日
  • 已采纳回答 12月11日
  • 创建了问题 12月10日

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵