c++编写一个学生成绩管理程序,完成学生信息输入、修改、统计和输出等功能。程序运行后先输入学生人数,动态创建学生信息(结构体)数组,然后循环显示功能操作菜单,提示用户根据菜单选择相应操作。屏幕菜单显示如下: ================================================== 欢迎使用学生成绩管理系统 1 信息录入 (根据序号输入学生信息) 2 信息修改 (根据学号修改学生信息) 3 学生名单 (列出班级所有学生信息) 4 成绩修改 (根据学号修改各科成绩) 0 退出系统 ================================================== 请输入菜单编号:
时间: 2023-08-06 19:23:18 浏览: 106
好的,这是一个比较复杂的问题。我可以给你一个大致的框架,你可以根据这个框架来实现这个程序。
首先,你需要定义一个学生信息的结构体,包含学号、姓名、各科成绩等信息。然后,根据用户输入的学生人数,动态创建一个学生信息的结构体数组。
接下来,你需要在一个循环中,显示功能操作菜单,并根据用户的选择执行相应的操作。具体来说:
1. 信息录入:根据序号输入学生信息。用户输入学生的学号、姓名、各科成绩等信息,将这些信息保存到学生信息的结构体数组中。
2. 信息修改:根据学号修改学生信息。用户输入要修改的学生的学号,然后显示该学生的信息,并提示用户输入要修改的信息,修改后保存到学生信息的结构体数组中。
3. 学生名单:列出班级所有学生信息。遍历学生信息的结构体数组,将每个学生的信息逐个输出。
4. 成绩修改:根据学号修改各科成绩。用户输入要修改成绩的学生的学号,然后显示该学生的信息,并提示用户输入要修改的科目和成绩,修改后保存到学生信息的结构体数组中。
0. 退出系统:退出程序。
根据以上的框架,你可以编写一个基本的学生成绩管理程序。当然,具体的实现还需要考虑很多细节问题,比如输入的合法性检查、成绩的计算和统计等。
相关问题
c++编写一个学生成绩管理程序,完成学生信息输入、修改、统计和输出等功能。程序运行后先输入学生人数,动态创建学生信息(结构体)数组,然后循环显示功能操作菜单,提示用户根据菜单选择相应操作。
好的,我可以帮你实现这个程序。首先,我们需要定义一个学生信息的结构体,包括姓名、学号、成绩等字段。代码如下:
```c++
#include <iostream>
using namespace std;
struct Student {
string name;
string id;
float score;
};
```
接下来,我们需要实现学生信息的输入、修改、统计和输出等功能。可以定义一个函数来实现每个功能,然后在主函数中根据用户选择来调用相应的函数。代码如下:
```c++
// 添加学生信息
void addStudent(Student* students, int& count) {
cout << "请输入学生姓名:";
cin >> students[count].name;
cout << "请输入学生学号:";
cin >> students[count].id;
cout << "请输入学生成绩:";
cin >> students[count].score;
count++; // 更新学生人数
}
// 修改学生信息
void modifyStudent(Student* students, int count) {
string id;
cout << "请输入要修改的学生学号:";
cin >> id;
for (int i = 0; i < count; i++) {
if (students[i].id == id) {
cout << "请输入新的学生姓名:";
cin >> students[i].name;
cout << "请输入新的学生成绩:";
cin >> students[i].score;
cout << "修改成功!" << endl;
return;
}
}
cout << "未找到该学生信息!" << endl;
}
// 统计学生成绩
void calculateScore(Student* students, int count) {
float sum = 0;
float average = 0;
for (int i = 0; i < count; i++) {
sum += students[i].score;
}
average = sum / count;
cout << "学生总人数为:" << count << endl;
cout << "学生总成绩为:" << sum << endl;
cout << "学生平均成绩为:" << average << endl;
}
// 输出学生信息
void printStudent(Student* students, int count) {
for (int i = 0; i < count; i++) {
cout << "姓名:" << students[i].name << ",学号:" << students[i].id << ",成绩:" << students[i].score << endl;
}
}
// 主函数
int main() {
int count = 0;
cout << "请输入学生人数:";
cin >> count;
Student* students = new Student[count]; // 动态创建学生信息数组
int choice;
while (true) {
cout << endl;
cout << "请选择操作:" << endl;
cout << "1. 添加学生信息" << endl;
cout << "2. 修改学生信息" << endl;
cout << "3. 统计学生成绩" << endl;
cout << "4. 输出学生信息" << endl;
cout << "5. 退出程序" << endl;
cout << "请选择:";
cin >> choice;
switch (choice) {
case 1:
addStudent(students, count);
break;
case 2:
modifyStudent(students, count);
break;
case 3:
calculateScore(students, count);
break;
case 4:
printStudent(students, count);
break;
case 5:
cout << "程序已退出!" << endl;
delete[] students; // 释放动态创建的数组
return 0;
default:
cout << "输入有误,请重新输入!" << endl;
break;
}
}
return 0;
}
```
这个程序可以实现学生信息的输入、修改、统计和输出等功能。希望可以帮助到你!
c++编写一个学生成绩管理程序,利用指针数组完成学生信息输入、修改、统计和输出等功能。程序运行后先输入学生人数,动态创建学生信息(结构体)数组,然后循环显示功能操作菜单,提示用户根据菜单选择相应操作要求用指针的方式对数组进行操作。。
好的,我可以帮你实现这个程序。首先,我们需要定义一个学生信息的结构体,包括姓名、学号、成绩等字段。代码如下:
```c++
#include <iostream>
using namespace std;
struct Student {
string name;
string id;
float score;
};
```
接下来,我们需要利用指针数组完成学生信息的输入、修改、统计和输出等功能。可以定义一个函数来实现每个功能,然后在主函数中根据用户选择来调用相应的函数。代码如下:
```c++
// 添加学生信息
void addStudent(Student** students, int& count) {
cout << "请输入学生姓名:";
cin >> students[count]->name;
cout << "请输入学生学号:";
cin >> students[count]->id;
cout << "请输入学生成绩:";
cin >> students[count]->score;
count++; // 更新学生人数
}
// 修改学生信息
void modifyStudent(Student** students, int count) {
string id;
cout << "请输入要修改的学生学号:";
cin >> id;
for (int i = 0; i < count; i++) {
if (students[i]->id == id) {
cout << "请输入新的学生姓名:";
cin >> students[i]->name;
cout << "请输入新的学生成绩:";
cin >> students[i]->score;
cout << "修改成功!" << endl;
return;
}
}
cout << "未找到该学生信息!" << endl;
}
// 统计学生成绩
void calculateScore(Student** students, int count) {
float sum = 0;
float average = 0;
for (int i = 0; i < count; i++) {
sum += students[i]->score;
}
average = sum / count;
cout << "学生总人数为:" << count << endl;
cout << "学生总成绩为:" << sum << endl;
cout << "学生平均成绩为:" << average << endl;
}
// 输出学生信息
void printStudent(Student** students, int count) {
for (int i = 0; i < count; i++) {
cout << "姓名:" << students[i]->name << ",学号:" << students[i]->id << ",成绩:" << students[i]->score << endl;
}
}
// 主函数
int main() {
int count = 0;
cout << "请输入学生人数:";
cin >> count;
Student** students = new Student*[count]; // 动态创建指针数组
for (int i = 0; i < count; i++) {
students[i] = new Student; // 动态创建学生信息结构体
}
int choice;
while (true) {
cout << endl;
cout << "请选择操作:" << endl;
cout << "1. 添加学生信息" << endl;
cout << "2. 修改学生信息" << endl;
cout << "3. 统计学生成绩" << endl;
cout << "4. 输出学生信息" << endl;
cout << "5. 退出程序" << endl;
cout << "请选择:";
cin >> choice;
switch (choice) {
case 1:
addStudent(students, count);
break;
case 2:
modifyStudent(students, count);
break;
case 3:
calculateScore(students, count);
break;
case 4:
printStudent(students, count);
break;
case 5:
cout << "程序已退出!" << endl;
for (int i = 0; i < count; i++) {
delete students[i]; // 释放动态创建的学生信息结构体
}
delete[] students; // 释放动态创建的指针数组
return 0;
default:
cout << "输入有误,请重新输入!" << endl;
break;
}
}
return 0;
}
```
这个程序利用指针数组完成了学生信息的输入、修改、统计和输出等功能。希望可以帮助到你!
阅读全文