编写一个简单的学生成绩管理系统,实现以下功能: 输入学生信息(包括学号、姓名和成绩) 显示所有学生信息 按学号查询学生信息 按成绩排序并显示学生信息
时间: 2024-06-10 10:06:07 浏览: 14
好的,我会根据您的要求为您编写一个简单的学生成绩管理系统。以下是程序的源代码:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
// 学生类,包括学号、姓名和成绩
class Student {
public:
Student(string sId, string sName, int iScore) : m_sId(sId), m_sName(sName), m_iScore(iScore) {}
string getId() const { return m_sId; }
string getName() const { return m_sName; }
int getScore() const { return m_iScore; }
private:
string m_sId, m_sName;
int m_iScore;
};
// 学生管理类,包括学生数据的存储和基本操作
class StudentManager {
public:
// 添加学生
void addStudent(string sId, string sName, int iScore) {
m_vecStudents.push_back(Student(sId, sName, iScore));
}
// 显示所有学生信息
void showAllStudents() const {
for (auto &student : m_vecStudents) {
cout << "学号:" << student.getId() << ",姓名:" << student.getName()
<< ",成绩:" << student.getScore() << endl;
}
}
// 按学号查询学生信息
void queryStudentById(string sId) const {
bool isFound = false;
for (auto &student : m_vecStudents) {
if (student.getId() == sId) {
cout << "学号:" << student.getId() << ",姓名:" << student.getName()
<< ",成绩:" << student.getScore() << endl;
isFound = true;
}
}
if (!isFound) {
cout << "未找到该学生信息" << endl;
}
}
// 按成绩排序并显示学生信息
void sortStudentsByScore() {
sort(m_vecStudents.begin(), m_vecStudents.end(), [](const Student &s1, const Student &s2) {
return s1.getScore() > s2.getScore();
});
showAllStudents();
}
private:
vector<Student> m_vecStudents;
};
// 用户界面类,包括接收用户输入和输出结果
class UserInterface {
public:
// 开始运行程序
void run() {
while (true) {
cout << "请选择功能(1-添加学生 2-显示所有学生信息 3-按学号查询学生信息 4-按成绩排序并显示所有学生信息 5-退出):";
int iChoice = getUserInput();
switch (iChoice) {
case 1:
addStudent();
break;
case 2:
showAllStudents();
break;
case 3:
queryStudentById();
break;
case 4:
sortStudentsByScore();
break;
case 5:
return;
default:
cout << "输入有误,请重新输入" << endl;
break;
}
}
}
private:
StudentManager m_studentManager;
// 获取用户输入的整数
int getUserInput() const {
int iChoice;
cin >> iChoice;
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
return iChoice;
}
// 获取用户输入的字符串
string getStringInput() const {
string sInput;
getline(cin, sInput);
return sInput;
}
// 添加学生
void addStudent() {
cout << "请输入学号:";
string sId = getStringInput();
cout << "请输入姓名:";
string sName = getStringInput();
cout << "请输入成绩:";
int iScore = getUserInput();
m_studentManager.addStudent(sId, sName, iScore);
cout << "添加成功" << endl;
}
// 显示所有学生信息
void showAllStudents() const {
m_studentManager.showAllStudents();
}
// 按学号查询学生信息
void queryStudentById() const {
cout << "请输入学号:";
string sId = getStringInput();
m_studentManager.queryStudentById(sId);
}
// 按成绩排序并显示所有学生信息
void sortStudentsByScore(){
m_studentManager.sortStudentsByScore();
}
};
int main() {
UserInterface ui;
ui.run();
return 0;
}
您可以直接将这段代码复制粘贴到您的代码编辑器中,保存为一个 .cpp 文件,然后编译运行即可。当您运行程序时,会出现一个菜单,您可以根据需要选择不同的操作。如果您有其他需求,可以继续询问我。