请使用c++语言模拟完成一个学生选课系统
时间: 2024-03-25 21:37:32 浏览: 13
好的,我可以为您提供一个简单的学生选课系统的C++代码示例:
```c++
#include <iostream>
#include <string>
#include <vector>
using namespace std;
// 定义课程类
class Course {
public:
string name; // 课程名称
int credit; // 学分
Course(string n, int c) : name(n), credit(c) {}
};
// 定义学生类
class Student {
public:
string name; // 姓名
int id; // 学号
int credit; // 已选学分
vector<Course*> courses; // 已选课程列表
Student(string n, int i) : name(n), id(i), credit(0) {}
// 选课函数
void selectCourse(Course* c) {
courses.push_back(c);
credit += c->credit;
}
// 显示已选课程和学分
void showSelectedCourses() {
cout << "已选课程:" << endl;
for (auto c : courses) {
cout << c->name << "(" << c->credit << "学分)" << endl;
}
cout << "总学分:" << credit << endl;
}
};
int main() {
// 定义课程列表
vector<Course*> courses;
courses.push_back(new Course("数学", 3));
courses.push_back(new Course("英语", 2));
courses.push_back(new Course("计算机", 4));
// 定义学生列表
vector<Student*> students;
students.push_back(new Student("张三", 1001));
students.push_back(new Student("李四", 1002));
// 学生选课
students[0]->selectCourse(courses[0]);
students[0]->selectCourse(courses[1]);
students[1]->selectCourse(courses[1]);
students[1]->selectCourse(courses[2]);
// 显示学生已选课程和学分
students[0]->showSelectedCourses();
students[1]->showSelectedCourses();
// 释放内存
for (auto c : courses) {
delete c;
}
for (auto s : students) {
delete s;
}
return 0;
}
```
此代码演示了一个简单的学生选课系统,包括定义课程和学生类,选课、显示已选课程和学分等功能。当然,实际情况可能更加复杂,需要根据具体需求进行设计和实现。