case 2: { // 选课 cout << "请输入要选的课程编号:" << endl; string code; cin >> code; for (size_t i = 0; i < courses.size(); i++) { if (courses[i].code == code) { // 找到课程,添加到已选课程列表 student.courses.push_back(courses[i]); cout << "选课成功!" << endl; break; } if (i == courses.size() - 1) { // 未找到课程 cout << "没有找到对应的课程,请重新输入!" << endl; } } break; } case 3: { // 查看已选课程 if (student.courses.empty()) { cout << "您还没有选课!" << endl; } else { cout << "已选课程:" << endl; for (size_t i = 0; i < student.courses.size(); i++) { cout << i + 1 << ". " << student.courses[i].name << "(编号:" << student.courses[i].code << ",地点:" << student.courses[i].location << ",学分:" << student.courses[i].credit << ")" << endl; } }
时间: 2023-10-30 15:42:46 浏览: 52
这段代码实现了学生选课和查看已选课程的功能。下面是对这段代码的分析和说明:
1. 在选课功能中,首先要求用户输入要选的课程编号,然后通过循环遍历课程列表,查找与输入编号相同的课程。如果找到了对应的课程,就将其添加到已选课程列表中,并输出选课成功的提示信息。如果遍历完课程列表仍然没有找到对应的课程,就输出未找到课程的提示信息。
2. 在查看已选课程功能中,首先判断已选课程列表是否为空。如果为空,就输出您还没有选课的提示信息;如果不为空,就遍历已选课程列表,输出每个已选课程的信息,包括课程名称、课程编号、上课地点和学分。
总的来说,这段代码实现了简单的学生选课系统功能,但还有一些需要完善的地方。例如,可以添加课程退选和成绩查询等功能,还可以考虑使用面向对象的设计思想,将学生和课程分别封装成对象,提高代码的可复用性和可维护性。
相关问题
do { studentMenu(); cin >> choice; switch (choice) { case 1: {// 查看可选课程 showCourseList(); break; } case 2: { // 选课 cout << "请输入要选的课程编号:" << endl; string code; cin >> code; for (size_t i = 0; i < courses.size(); i++) { if (courses[i].code == code) { // 找到课程,添加到已选课程列表 student.courses.push_back(courses[i]); cout << "选课成功!" << endl; break; } if (i == courses.size() - 1) { // 未找到课程 cout << "没有找到对应的课程,请重新输入!" << endl; } } break; } case 3: { // 查看已选课程 if (student.courses.empty()) { cout << "您还没有选课!" << endl; } else { cout << "已选课程:" << endl; for (size_t i = 0; i < student.courses.size(); i++) { cout << i + 1 << ". " << student.courses[i].name << "(编号:" << student.courses[i].code << ",地点:" << student.courses[i].location << ",学分:" << student.courses[i].credit << ")" << endl; } } break; } case 0: // 退出 break;代码内容
这段代码是一个简单的学生选课系统。它包含了一个循环,每次循环中会显示一个菜单,让学生进行选择。选择包括查看可选课程、选课、查看已选课程和退出。选择后,程序会执行相应的功能。其中,选课功能会让学生输入课程编号,程序会在可选课程列表中查找相应的课程,如果找到则将其添加到已选课程列表中,否则提示重新输入。查看已选课程功能会列出学生已选的课程信息。
bool studentLogin(vector<Student>& userInfos, string username, string password) { for (Student userInfo : userInfos) { if (userInfo.id == username && userInfo.password == password) { cout << "登录成功!" << endl; // 登录成功,进入学生菜单 Student student = { username, password,{} }; int choice; do { studentMenu(); cin >> choice; switch (choice) { case 1: {// 查看可选课程 showCourseList(); break; } case 2: { // 选课 cout << "请输入要选的课程编号:" << endl; string code; cin >> code; for (size_t i = 0; i < courses.size(); i++) { if (courses[i].code == code) { // 找到课程,添加到已选课程列表 student.courses.push_back(courses[i]); cout << "选课成功!" << endl; break; } if (i == courses.size() - 1) { // 未找到课程 cout << "没有找到对应的课程,请重新输入!" << endl; } } break; } case 3: { // 查看已选课程 if (student.courses.empty()) { cout << "您还没有选课!" << endl; } else { cout << "已选课程:" << endl; for (size_t i = 0; i < student.courses.size(); i++) { cout << i + 1 << ". " << student.courses[i].name << "(编号:" << student.courses[i].code << ",地点:" << student.courses[i].location << ",学分:" << student.courses[i].credit << ")" << endl; } } break; } case 0: // 退出 break; default: cout << "无效的选择,请重新输入!" << endl; break; } } else {cout<<"登录失败!!" 怎么修改
这段代码缺少大括号,应该在 `} else {` 后面添加大括号,形成完整的 if-else 结构。修改后的代码如下所示:
```
bool studentLogin(vector<Student>& userInfos, string username, string password) {
for (Student userInfo : userInfos) {
if (userInfo.id == username && userInfo.password == password) {
cout << "登录成功!" << endl;
// 登录成功,进入学生菜单
Student student = { username, password,{} };
int choice;
do {
studentMenu();
cin >> choice;
switch (choice) {
case 1: { // 查看可选课程
showCourseList();
break;
}
case 2: { // 选课
cout << "请输入要选的课程编号:" << endl;
string code;
cin >> code;
for (size_t i = 0; i < courses.size(); i++) {
if (courses[i].code == code) {
// 找到课程,添加到已选课程列表
student.courses.push_back(courses[i]);
cout << "选课成功!" << endl;
break;
}
if (i == courses.size() - 1) {
// 未找到课程
cout << "没有找到对应的课程,请重新输入!" << endl;
}
}
break;
}
case 3: { // 查看已选课程
if (student.courses.empty()) {
cout << "您还没有选课!" << endl;
}
else {
cout << "已选课程:" << endl;
for (size_t i = 0; i < student.courses.size(); i++) {
cout << i + 1 << ". " << student.courses[i].name << "(编号:" << student.courses[i].code <<
",地点:" << student.courses[i].location << ",学分:" << student.courses[i].credit << ")" << endl;
}
}
break;
}
case 0: // 退出
break;
default:
cout << "无效的选择,请重新输入!" << endl;
break;
}
} while (choice != 0);
return true;
}
}
cout << "登录失败!" << endl;
return false;
}
```
阅读全文