从键盘输入以下10个学生的学号,姓名以及数学,语文和英语成绩,写到文本文件f3. txt中,再从文件中取出数据,计算每个学生的总成绩和平均分,并将结果显示在屏幕上,试编写相应程序
时间: 2024-01-01 18:06:05 浏览: 136
计算学生总成绩与平均分
5星 · 资源好评率100%
以下是一个简单的C语言程序,可以实现从键盘输入10个学生的学号、姓名以及数学、语文和英语成绩,并将它们写入到一个文本文件中。然后,程序从文件中读取数据,计算每个学生的总成绩和平均分,并将结果显示在屏幕上:
```c
#include <stdio.h>
typedef struct {
int id;
char name[20];
float math;
float chinese;
float english;
float total;
float avg;
} Student;
int main() {
FILE* fp;
Student students[10];
// 从键盘输入学生信息
for (int i = 0; i < 10; i++) {
printf("Enter information for student %d:\n", i+1);
printf("ID: ");
scanf("%d", &students[i].id);
printf("Name: ");
scanf("%s", students[i].name);
printf("Math: ");
scanf("%f", &students[i].math);
printf("Chinese: ");
scanf("%f", &students[i].chinese);
printf("English: ");
scanf("%f", &students[i].english);
students[i].total = students[i].math + students[i].chinese + students[i].english;
students[i].avg = students[i].total / 3;
}
// 将学生信息写入文件
fp = fopen("f3.txt", "w");
if (fp == NULL) {
printf("Failed to open file.\n");
return 1;
}
for (int i = 0; i < 10; i++) {
fprintf(fp, "%d %s %f %f %f\n", students[i].id, students[i].name, students[i].math, students[i].chinese, students[i].english);
}
fclose(fp);
// 从文件中读取学生信息并计算总分和平均分
fp = fopen("f3.txt", "r");
if (fp == NULL) {
printf("Failed to open file.\n");
return 1;
}
for (int i = 0; i < 10; i++) {
fscanf(fp, "%d %s %f %f %f\n", &students[i].id, students[i].name, &students[i].math, &students[i].chinese, &students[i].english);
students[i].total = students[i].math + students[i].chinese + students[i].english;
students[i].avg = students[i].total / 3;
}
fclose(fp);
// 显示每个学生的总分和平均分
for (int i = 0; i < 10; i++) {
printf("Student %d:\n", i+1);
printf("ID: %d\n", students[i].id);
printf("Name: %s\n", students[i].name);
printf("Math: %.1f\n", students[i].math);
printf("Chinese: %.1f\n", students[i].chinese);
printf("English: %.1f\n", students[i].english);
printf("Total: %.1f\n", students[i].total);
printf("Avg: %.1f\n", students[i].avg);
printf("\n");
}
return 0;
}
```
其中,`Student`结构体用于存储学生的信息,包括学号、姓名、数学、语文和英语成绩、总成绩和平均分。程序首先从键盘输入学生信息,然后将它们写入到文件中。接着,程序从文件中读取学生信息,并计算每个学生的总成绩和平均分。最后,程序显示每个学生的总成绩和平均分。
阅读全文