1)录入学生信息首先输入学生人数,然后根据学生人数开辟动态数组; 2)学生信息包括学号、姓名、性别、三门课成绩、总分;其中学号、姓名、 性别、三门课成绩是需要从键盘录入的,而总分是由程序计算的,而不 是用户自己算了再输入。 3)显示结果(学生信息)要以列表的形式显示,注意美观性; 4)要有必要的容错措施,比如输入各科分数要在0-100之间,输入错误给 用户提示,让其重新输入; c++ c++
时间: 2024-02-06 21:12:54 浏览: 58
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 n; // 学生人数
cout << "请输入学生人数:";
cin >> n;
student *stu = new student[n]; // 动态数组
for (int i = 0; i < n; i++) {
cout << "请输入第" << i+1 << "个学生的信息:" << endl;
// 录入学号
cout << "学号:";
cin >> stu[i].id;
// 录入姓名
cout << "姓名:";
cin >> stu[i].name;
// 录入性别
cout << "性别:";
cin >> stu[i].gender;
// 录入第一门课成绩
do {
cout << "第一门课成绩:";
cin >> stu[i].score1;
if (stu[i].score1 < 0 || stu[i].score1 > 100) {
cout << "输入成绩不合法,请重新输入!" << endl;
}
} while (stu[i].score1 < 0 || stu[i].score1 > 100);
// 录入第二门课成绩
do {
cout << "第二门课成绩:";
cin >> stu[i].score2;
if (stu[i].score2 < 0 || stu[i].score2 > 100) {
cout << "输入成绩不合法,请重新输入!" << endl;
}
} while (stu[i].score2 < 0 || stu[i].score2 > 100);
// 录入第三门课成绩
do {
cout << "第三门课成绩:";
cin >> stu[i].score3;
if (stu[i].score3 < 0 || stu[i].score3 > 100) {
cout << "输入成绩不合法,请重新输入!" << endl;
}
} while (stu[i].score3 < 0 || stu[i].score3 > 100);
// 计算总分
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 < n; i++) {
cout << stu[i].id << "\t" << stu[i].name << "\t" << stu[i].gender << "\t" << stu[i].score1 << "\t\t" << stu[i].score2 << "\t\t" << stu[i].score3 << "\t\t" << stu[i].total << endl;
}
delete[] stu; // 释放内存
return 0;
}
```
阅读全文