按以下菜单界面编写学生信息管理系统; 1)录入学生信息首先输入学生人数,然后根据学生人数开辟动态数组; 2)学生信息包括学号、姓名、性别、三门课成绩、总分;其中学号、姓名、 性别、三门课成绩是需要从键盘录入的,而总分是由程序计算的,而不 是用户自己算了再输入。 3)显示结果(学生信息)要以列表的形式显示,注意美观性; 4)要有必要的容错措施,比如输入各科分数要在0-100之间,输入错误给 用户提示,让其重新输入; c++结构体方式
时间: 2024-02-19 19:58:51 浏览: 21
好的,这是一个比较完整的学生信息管理系统的代码实现,使用了C++中的结构体方式:
```c++
#include <iostream>
#include <string>
using namespace std;
struct Student {
string id;
string name;
string gender;
int score1;
int score2;
int score3;
int total;
};
int main() {
int num;
cout << "请输入学生人数:";
cin >> num;
Student *stu = new Student[num]; // 动态数组
// 录入学生信息
for (int i = 0; i < num; i++) {
cout << "请输入第" << i+1 << "个学生的信息:" << endl;
cout << "学号:";
cin >> stu[i].id;
cout << "姓名:";
cin >> stu[i].name;
cout << "性别:";
cin >> stu[i].gender;
cout << "三门课成绩(用空格隔开):";
cin >> stu[i].score1 >> stu[i].score2 >> stu[i].score3;
while (stu[i].score1 < 0 || stu[i].score1 > 100 || stu[i].score2 < 0 || stu[i].score2 > 100 || stu[i].score3 < 0 || stu[i].score3 > 100) {
cout << "输入错误,请重新输入三门课成绩(用空格隔开):";
cin >> stu[i].score1 >> stu[i].score2 >> stu[i].score3;
}
stu[i].total = stu[i].score1 + stu[i].score2 + stu[i].score3;
}
// 显示结果
cout << "学生信息如下:" << endl;
cout << "学号\t姓名\t性别\t语文\t数学\t英语\t总分" << endl;
for (int i = 0; i < num; i++) {
cout << stu[i].id << "\t" << stu[i].name << "\t" << stu[i].gender << "\t" << stu[i].score1 << "\t" << stu[i].score2 << "\t" << stu[i].score3 << "\t" << stu[i].total << endl;
}
delete[] stu; // 释放内存
return 0;
}
```
以上代码实现了按照菜单要求录入学生信息、计算每个学生的总分、显示学生信息等操作,并且加入了输入容错的处理,确保用户输入的三门课成绩在0-100之间。