c语言写一个程序包括学生各科成绩录入系统包括成绩输入,数据计算,数据查找,输出成绩的功能,其中数据计算包括计算学生平均和课程平均
时间: 2024-02-28 16:56:14 浏览: 69
好的,下面是一个简单的C语言学生成绩录入系统的示例代码,包括成绩输入、数据计算、数据查找和输出成绩的功能,其中数据计算包括计算学生平均和课程平均。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENTS 50
#define MAX_NAME_LENGTH 20
#define MAX_SUBJECTS 5
typedef struct {
char name[MAX_NAME_LENGTH];
int scores[MAX_SUBJECTS];
float avg_score;
} student;
student students[MAX_STUDENTS];
int num_students = 0;
int num_subjects = 0;
void input_scores();
void calculate_averages();
void search_student();
void output_scores();
int main() {
printf("请输入学生人数(最多50人):");
scanf("%d", &num_students);
printf("请输入科目数量(最多5门):");
scanf("%d", &num_subjects);
input_scores();
calculate_averages();
search_student();
output_scores();
return 0;
}
void input_scores() {
int i, j;
for (i = 0; i < num_students; i++) {
printf("请输入第%d个学生的姓名:", i + 1);
scanf("%s", students[i].name);
for (j = 0; j < num_subjects; j++) {
printf("请输入第%d个学生的第%d门课成绩:", i + 1, j + 1);
scanf("%d", &students[i].scores[j]);
}
}
}
void calculate_averages() {
int i, j;
float sum;
for (i = 0; i < num_students; i++) {
sum = 0;
for (j = 0; j < num_subjects; j++) {
sum += students[i].scores[j];
}
students[i].avg_score = sum / num_subjects;
}
for (j = 0; j < num_subjects; j++) {
sum = 0;
for (i = 0; i < num_students; i++) {
sum += students[i].scores[j];
}
printf("第%d门课的平均成绩为:%.2f\n", j + 1, sum / num_students);
}
}
void search_student() {
char name[MAX_NAME_LENGTH];
int i, j, found = 0;
printf("请输入要查找的学生姓名:");
scanf("%s", name);
for (i = 0; i < num_students; i++) {
if (strcmp(students[i].name, name) == 0) {
printf("学生%s的成绩如下:\n", name);
printf("科目\t成绩\n");
for (j = 0; j < num_subjects; j++) {
printf("第%d门\t%d\n", j + 1, students[i].scores[j]);
}
printf("平均分\t%.2f\n", students[i].avg_score);
found = 1;
break;
}
}
if (!found) {
printf("没有找到姓名为%s的学生\n", name);
}
}
void output_scores() {
int i, j;
printf("姓名\t");
for (j = 0; j < num_subjects; j++) {
printf("第%d门\t", j + 1);
}
printf("平均分\n");
for (i = 0; i < num_students; i++) {
printf("%s\t", students[i].name);
for (j = 0; j < num_subjects; j++) {
printf("%d\t", students[i].scores[j]);
}
printf("%.2f\n", students[i].avg_score);
}
}
```
该程序首先要求用户输入学生人数和科目数量,然后调用`input_scores()`函数输入各个学生的姓名和各科成绩,并将数据存储到一个结构体数组中。接下来,调用`calculate_averages()`函数计算每个学生的平均分数和每门课程的平均分数。`search_student()`函数实现按学生姓名查找成绩的功能,`output_scores()`函数将所有学生的成绩信息按照一定的格式输出到屏幕上。
以上代码只是一个简单的示例,您可以根据实际需求进行修改和拓展。
阅读全文