用c++写一下添加学生信息,包括编号,姓名,年龄,编号不能重复,最后按照编号从大到小排序输出
时间: 2024-02-07 07:04:20 浏览: 61
好的,以下是代码实现:
```c++
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
struct Student {
int id;
std::string name;
int age;
};
bool compareStudent(const Student& s1, const Student& s2) { // 按照编号从大到小排序
return s1.id > s2.id;
}
int main() {
std::vector<Student> students;
while (true) {
Student s;
std::cout << "请输入学生信息(编号 姓名 年龄),输入-1结束输入:" << std::endl;
std::cin >> s.id;
if (s.id == -1) {
break;
}
std::cin >> s.name >> s.age;
bool isExist = false;
for (const auto& student : students) { // 判断是否编号已存在
if (student.id == s.id) {
isExist = true;
break;
}
}
if (isExist) {
std::cout << "已存在该编号的学生,请重新输入" << std::endl;
continue;
}
students.push_back(s);
}
std::sort(students.begin(), students.end(), compareStudent); // 排序
std::cout << "按照编号从大到小排序输出:" << std::endl;
for (const auto& student : students) {
std::cout << student.id << " " << student.name << " " << student.age << std::endl;
}
return 0;
}
```
这段代码会不断读入学生信息,直到输入编号为-1时结束输入。在读入每个学生信息时,会判断该编号是否已存在,如果已存在则会提示重新输入。最后按照编号从大到小排序,并输出所有学生信息。
阅读全文