C++编程设计学生结构体student(包括三个成员:学号,姓名,成绩),完成以下四个功能:能向学生数组中添加学生信息,能在学生数组中按照姓名查找学生信息,能向学生数组中按照学生号删除学生信息,能在学生数组中按照成绩从小到大排序
时间: 2024-01-02 08:02:40 浏览: 77
好的,这是一个比较基础的 C++ 编程设计题目,以下是我的代码实现:
```c++
#include <iostream>
#include <algorithm>
using namespace std;
// 定义学生结构体
struct student {
int sno; // 学号
string name; // 姓名
int score; // 成绩
};
// 学生数组
student stuArr[100];
int stuCount = 0;
// 添加学生信息
void addStudent() {
student stu;
cout << "请输入学生学号:";
cin >> stu.sno;
cout << "请输入学生姓名:";
cin >> stu.name;
cout << "请输入学生成绩:";
cin >> stu.score;
stuArr[stuCount++] = stu;
cout << "添加成功!" << endl;
}
// 按照姓名查找学生信息
void findStudentByName() {
string name;
cout << "请输入要查找的学生姓名:";
cin >> name;
bool found = false;
for (int i = 0; i < stuCount; i++) {
if (stuArr[i].name == name) {
cout << "学号:" << stuArr[i].sno << endl;
cout << "姓名:" << stuArr[i].name << endl;
cout << "成绩:" << stuArr[i].score << endl;
found = true;
break;
}
}
if (!found) {
cout << "未找到该学生!" << endl;
}
}
// 按照学生号删除学生信息
void deleteStudentBySno() {
int sno;
cout << "请输入要删除的学生学号:";
cin >> sno;
bool found = false;
for (int i = 0; i < stuCount; i++) {
if (stuArr[i].sno == sno) {
for (int j = i; j < stuCount - 1; j++) {
stuArr[j] = stuArr[j + 1];
}
stuCount--;
found = true;
cout << "删除成功!" << endl;
break;
}
}
if (!found) {
cout << "未找到该学生!" << endl;
}
}
// 按照成绩从小到大排序
bool cmp(student a, student b) {
return a.score < b.score;
}
void sortStudentByScore() {
sort(stuArr, stuArr + stuCount, cmp);
cout << "排序成功!" << endl;
}
// 主函数
int main() {
int choice;
while (true) {
cout << "请选择功能:1.添加学生信息,2.按姓名查找学生信息,3.按学号删除学生信息,4.按成绩排序,0.退出" << endl;
cin >> choice;
switch (choice) {
case 1:
addStudent();
break;
case 2:
findStudentByName();
break;
case 3:
deleteStudentBySno();
break;
case 4:
sortStudentByScore();
break;
case 0:
return 0;
}
}
}
```
使用时,可以在终端或命令行中编译运行该程序,然后根据提示选择相应的功能即可。
阅读全文