课程要求:选课管理系统

选课管理系统内容要求:管理员和学生登陆系统的帐号和密码,初始都分别为管理员和学生的学号,登陆后密码可以修改。其中管理员的职位可以是管理员。管理员和非管理员的大人及学生对系统的操作具有不同的权限。管理员登陆系统,对学生选课情况进行管理,包括发布选课信息,对学生的选课情况进行查看。管理员还可以对授课的人的信息进行增加、删除、修改、查询。教师登陆系统,能查看自己的个人信息,及所授课的班级的所有学生的本门课程的成绩信息,并能进行增加和修改。学生登陆系统,能进行选课,查看管理员发布的选课信息,自己的选课情况,本人的基本信息,以及课程的成绩。


游戏教程_哔哩哔哩_bilibili -, 视频播放量 1796、弹幕量 0、点赞数 27、投硬币枚数 15、收藏人数 16、转发人数 10, 视频作者 冬星暖, 作者简介 ,相关视频:学考复习就是不停的刷卷子…,【B站最全】唱歌如何变好听?暑假逼自己狂练这些就够了!用最简单的方法教你改掉喉咙唱歌,进阶麦霸!,2023年7月更新了国内最新ChatGPT4.0免费使用教程来了,猴哥痛失150G学习资料,你敢接受6的挑战吗?,速算数学口算题,你学会了吗?,[暑期学习必备]零基础挑战两个月拿下数学建模国奖,【blender】blender骼绑定教程,完整教程,全中文教程,中文软件(更新完结),外国人:日语好难啊 ~ 柳岩说:这不就方言?,电流间的相互作用 https://www.bilibili.com/video/BV163411G7si/

可以看看我的博客找找灵感

以下内容引用GPT的回答:

#include <iostream>
#include <string>
#include <vector>

using namespace std;

// 定义学生类
class Student {
private:
    string studentID;
    string password;
    string name;
public:
    Student(string id, string pwd, string n) {
        studentID = id;
        password = pwd;
        name = n;
    }
    string getID() {
        return studentID;
    }
    string getPassword() {
        return password;
    }
    string getName() {
        return name;
    }
};

// 定义管理员类
class Administrator {
private:
    string adminID;
    string password;
public:
    Administrator(string id, string pwd) {
        adminID = id;
        password = pwd;
    }
    string getID() {
        return adminID;
    }
    string getPassword() {
        return password;
    }
};

// 定义课程类
class Course {
private:
    string courseName;
    int credit;
public:
    Course(string name, int c) {
        courseName = name;
        credit = c;
    }
    string getName() {
        return courseName;
    }
    int getCredit() {
        return credit;
    }
};

// 定义教师类
class Teacher {
private:
    string teacherID;
    string password;
    string name;
public:
    Teacher(string id, string pwd, string n) {
        teacherID = id;
        password = pwd;
        name = n;
    }
    string getID() {
        return teacherID;
    }
    string getPassword() {
        return password;
    }
    string getName() {
        return name;
    }
};

// 定义选课系统类
class CourseSelectionSystem {
private:
    Administrator admin;
    vector<Student> students;
    vector<Teacher> teachers;
    vector<Course> courses;
public:
    CourseSelectionSystem(string adminID, string adminPwd) : admin(adminID, adminPwd) {}

    // 管理员登录
    bool adminLogin(string id, string pwd) {
        if (id == admin.getID() && pwd == admin.getPassword()) {
            return true;
        }
        return false;
    }

    // 学生登录
    Student* studentLogin(string id, string pwd) {
        for (int i = 0; i < students.size(); i++) {
            if (id == students[i].getID() && pwd == students[i].getPassword()) {
                return &students[i];
            }
        }
        return nullptr;
    }

    // 教师登录
    Teacher* teacherLogin(string id, string pwd) {
        for (int i = 0; i < teachers.size(); i++) {
            if (id == teachers[i].getID() && pwd == teachers[i].getPassword()) {
                return &teachers[i];
            }
        }
        return nullptr;
    }

    // 添加学生
    void addStudent(string id, string pwd, string name) {
        Student newStudent(id, pwd, name);
        students.push_back(newStudent);
    }

    // 添加教师
    void addTeacher(string id, string pwd, string name) {
        Teacher newTeacher(id, pwd, name);
        teachers.push_back(new

Teacher);
    }

    // 添加课程
    void addCourse(string name, int credit) {
        Course newCourse(name, credit);
        courses.push_back(newCourse);
    }

    // 管理员发布选课信息
    void publishCourseInfo() {
        cout << "----- 选课信息 -----" << endl;
        for (int i = 0; i < courses.size(); i++) {
            cout << "课程名称:" << courses[i].getName() << ",学分:" << courses[i].getCredit() << endl;
        }
        cout << "-------------------" << endl;
    }

    // 学生选课
    void selectCourse(Student* student, string courseName) {
        cout << "学生 " << student->getName() << " 选课:" << courseName << endl;
    }

    // 学生查看选课情况
    void viewCourseSelection(Student* student) {
        cout << "学生 " << student->getName() << " 的选课情况:" << endl;
        // TODO: 根据学生的选课情况进行输出
    }

    // 学生查看成绩
    void viewCourseGrade(Student* student) {
        cout << "学生 " << student->getName() << " 的成绩:" << endl;
        // TODO: 根据学生的成绩情况进行输出
    }

    // 教师查看学生的成绩
    void viewStudentGrades(Teacher* teacher) {
        cout << "教师 " << teacher->getName() << " 查看学生成绩:" << endl;
        // TODO: 根据教师所授课程的学生成绩情况进行输出
    }
};

int main() {
    CourseSelectionSystem system("管理员", "admin123");
    system.addStudent("20210001", "password1", "张三");
    system.addStudent("20210002", "password2", "李四");
    system.addTeacher("T001", "teacher123", "王老师");
    system.addTeacher("T002", "teacher456", "赵老师");
    system.addCourse("C001", 3);
    system.addCourse("C002", 4);

    // 管理员登录
    if (system.adminLogin("管理员", "admin123")) {
        cout << "管理员登录成功!" << endl;
        // 发布选课信息
        system.publishCourseInfo();
    }

    // 学生登录
    Student* student = system.studentLogin("20210001", "password1");
    if (student != nullptr) {
        cout << "学生 " << student->getName() << " 登录成功!" << endl;
        // 学生选课
        system.selectCourse(student, "C001");
        system.selectCourse(student, "C002");
        // 学生查看选课情况
        system.viewCourseSelection(student);
        // 学生查看成绩
        system.viewCourseGrade(student);
    }

    // 教师登录
    Teacher* teacher = system.teacherLogin("T001", "teacher123");
    if (teacher != nullptr) {
        cout << "教师 " << teacher->getName() << " 登录成功!" << endl;
        // 教师查看学生的成绩
        system.viewStudentGrades

(teacher);
    }

    return 0;
}

这段代码实现了选课管理系统的基本功能要求,包括管理员登录、学生登录、教师登录、发布选课信息、学生选课、学生查看选课情况、学生查看成绩、教师查看学生的成绩等操作。你可以根据自己的需求进一步完善和扩展该代码。