用c++代码写一个学生成绩管理系统,学生个数未知,课程数目未知(最多不超过6门),要体现课程信息,最后输出学生的学号,姓名,班级,平均分和课程名以及课程平均分)
时间: 2023-06-02 08:02:04 浏览: 92
用C++编写一个学生成绩管理系统
4星 · 用户满意度95%
以下是一个简单的学生成绩管理系统的C代码示例:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_COURSES 6
#define MAX_NAME_LENGTH 50
#define MAX_STUDENTS 100
typedef struct {
char name[MAX_NAME_LENGTH];
float grades[MAX_COURSES];
float avg;
} student;
int main() {
int num_students = 0, num_courses = 0;
char course_names[MAX_COURSES][MAX_NAME_LENGTH];
student students[MAX_STUDENTS];
// 获取课程数目和课程名称
printf("请输入课程数目(最多为%d):", MAX_COURSES);
scanf("%d", &num_courses);
for (int i = 0; i < num_courses; i++) {
printf("请输入第%d门课的名称:", i + 1);
scanf("%s", course_names[i]);
}
// 获取学生信息和成绩
char name[MAX_NAME_LENGTH];
float grade;
while (1) {
printf("请输入第%d个学生的姓名(输入0结束录入):", num_students + 1);
scanf("%s", name);
if (strcmp(name, "0") == 0) {
break;
}
strcpy(students[num_students].name, name);
printf("请输入%s的班级:", name);
scanf("%s", students[num_students].class);
for (int i = 0; i < num_courses; i++) {
printf("请输入%s的%s成绩:", name, course_names[i]);
scanf("%f", &grade);
students[num_students].grades[i] = grade;
}
num_students++;
}
// 计算每个学生的平均分和每门课程的平均分
float course_sums[MAX_COURSES] = {0};
for (int i = 0; i < num_students; i++) {
float sum = 0;
for (int j = 0; j < num_courses; j++) {
sum += students[i].grades[j];
course_sums[j] += students[i].grades[j];
}
students[i].avg = sum / num_courses;
}
for (int i = 0; i < num_courses; i++) {
course_sums[i] /= num_students;
}
// 输出学生和课程的平均分
printf("学号\t姓名\t班级\t平均分");
for (int i = 0; i < num_courses; i++) {
printf("\t%s", course_names[i]);
}
printf("\n");
for (int i = 0; i < num_students; i++) {
printf("%d\t%s\t%s\t%.2f", i + 1, students[i].name, students[i].class, students[i].avg);
for (int j = 0; j < num_courses; j++) {
printf("\t%.2f", students[i].grades[j]);
}
printf("\n");
}
printf("平均分\t\t\t");
for (int i = 0; i < num_courses; i++) {
printf("\t%.2f", course_sums[i]);
}
printf("\n");
return 0;
}
```
该代码使用结构体存储每个学生的信息,包括姓名、成绩和平均分。还使用一个字符数组存储每门课程的名称。在程序的主函数中,首先通过用户输入获取课程数目和课程名称,然后循环获取每个学生的信息和成绩,并计算每个学生的平均分和每门课程的平均分。最后,使用格式化输出将学生和课程的平均分输出到控制台。
需要注意的是,该代码没有进行输入合法性检查,例如输入的成绩是否在有效范围内等。在实际应用中,需要根据需求进行适当的修改和改进。
阅读全文