建立一个至少4个学生的信息登记表,每个学生的信息包括:学号,姓名,和至少3门课程的成绩。程序运行时显示一个简单的菜单,例如:(1):信息输入(INPUT)(2):总分统计(COUNT)(3):总分排序(SORT)(4):查询(QUERY)其中:(1):对所有学生的信息进行输入;(2):对每个学生的各门课程统计总分;(3):对学生的总分按降序排序并显示出来;(4):查询输入一个学号后,显示出该学生的有关信息;用C++语言实现
时间: 2024-01-09 11:04:16 浏览: 72
以下是实现该需求的C++代码:
```c++
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
// 学生信息结构体
struct Student {
string id; // 学号
string name; // 姓名
vector<int> scores; // 成绩列表
int totalScore; // 总分
// 构造函数
Student(string id, string name, vector<int> scores) {
this->id = id;
this->name = name;
this->scores = scores;
this->totalScore = 0;
for (int score : scores) {
this->totalScore += score;
}
}
// 重载小于号运算符,用于排序
bool operator<(const Student& other) const {
return this->totalScore > other.totalScore;
}
// 输出学生信息
void print() {
cout << "学号:" << this->id << ",姓名:" << this->name << ",成绩:";
for (int score : this->scores) {
cout << score << " ";
}
cout << ",总分:" << this->totalScore << endl;
}
};
// 全局变量,保存所有学生信息
vector<Student> students;
// 菜单函数
void showMenu() {
cout << "请输入您的选择:" << endl;
cout << "(1):信息输入(INPUT)" << endl;
cout << "(2):总分统计(COUNT)" << endl;
cout << "(3):总分排序(SORT)" << endl;
cout << "(4):查询(QUERY)" << endl;
}
// 信息输入函数
void inputInfo() {
students.clear(); // 先清空之前的信息
int n;
cout << "请输入学生人数:";
cin >> n;
for (int i = 1; i <= n; i++) {
cout << "请输入第" << i << "个学生的学号、姓名和三门课程的成绩:";
string id, name;
int score1, score2, score3;
cin >> id >> name >> score1 >> score2 >> score3;
vector<int> scores = {score1, score2, score3};
Student student(id, name, scores);
students.push_back(student);
}
cout << "信息输入成功!" << endl;
}
// 总分统计函数
void countTotalScore() {
for (Student& student : students) {
student.totalScore = 0;
for (int score : student.scores) {
student.totalScore += score;
}
}
cout << "总分统计成功!" << endl;
}
// 总分排序函数
void sortStudents() {
sort(students.begin(), students.end());
cout << "总分排序成功!" << endl;
}
// 查询函数
void queryInfo() {
string id;
cout << "请输入要查询的学生的学号:";
cin >> id;
for (Student& student : students) {
if (student.id == id) {
cout << "查询成功!" << endl;
student.print();
return;
}
}
cout << "未找到该学生的信息!" << endl;
}
int main() {
while (true) {
showMenu();
int choice;
cin >> choice;
switch (choice) {
case 1:
inputInfo();
break;
case 2:
countTotalScore();
break;
case 3:
sortStudents();
break;
case 4:
queryInfo();
break;
default:
cout << "输入有误,请重新输入!" << endl;
break;
}
}
return 0;
}
```
在程序运行时,输入数字 1 可以输入学生信息,输入数字 2 可以统计每个学生的总分,输入数字 3 可以按总分排序并输出,输入数字 4 可以查询某个学生的信息。
阅读全文