有5个学生,每个学生的数据包括学号、班级、姓名、三门课成绩。从键盘输入5个学生数据,并写入到文本文件stu.txt中,再从文件中读取出学生数据,计算每名学生的总成绩与平均成绩、并将结果显示在屏幕上用C
时间: 2024-01-06 17:06:41 浏览: 61
以下是用C语言实现的从键盘输入5个学生数据,并写入到文本文件stu.txt中,再从文件中读取出学生数据,计算每名学生的总成绩与平均成绩,并将结果显示在屏幕上的示例代码:
```c
#include <stdio.h>
struct Student {
char num[10];
char name[25];
char sex;
int age;
int score[3];
};
int main() {
struct Student students[5];
FILE *file;
// 从键盘输入学生数据
for (int i = 0; i < 5; i++) {
printf("请输入第%d个学生的学号:", i+1);
scanf("%s", students[i].num);
printf("请输入第%d个学生的姓名:", i+1);
scanf("%s", students[i].name);
printf("请输入第%d个学生的性别(M或F):", i+1);
scanf(" %c", &students[i].sex);
printf("请输入第%d个学生的年龄:", i+1);
scanf("%d", &students[i].age);
printf("请输入第%d个学生的三门课成绩:\n", i+1);
for (int j = 0; j < 3; j++) {
printf("请输入第%d门课的成绩:", j+1);
scanf("%d", &students[i].score[j]);
}
}
// 将学生数据写入文件
file = fopen("stu.txt", "w");
if (file == NULL) {
printf("无法打开文件!");
return 1;
}
for (int i = 0; i < 5; i++) {
fprintf(file, "学号:%s\n", students[i].num);
fprintf(file, "姓名:%s\n", students[i].name);
fprintf(file, "性别:%c\n", students[i].sex);
fprintf(file, "年龄:%d\n", students[i].age);
fprintf(file, "成绩:");
for (int j = 0; j < 3; j++) {
fprintf(file, "%d ", students[i].score[j]);
}
fprintf(file, "\n\n");
}
fclose(file);
// 从文件中读取学生数据并计算总成绩与平均成绩
file = fopen("stu.txt", "r");
if (file == NULL) {
printf("无法打开文件!");
return 1;
}
for (int i = 0; i < 5; i++) {
printf("第%d个学生的信息:\n", i+1);
fscanf(file, "学号:%s\n", students[i].num);
fscanf(file, "姓名:%s\n", students[i].name);
fscanf(file, "性别:%c\n", &students[i].sex);
fscanf(file, "年龄:%d\n", &students[i].age);
printf("学号:%s\n", students[i].num);
printf("姓名:%s\n", students[i].name);
printf("性别:%c\n", students[i].sex);
printf("年龄:%d\n", students[i].age);
printf("成绩:");
int totalScore = 0;
for (int j = 0; j < 3; j++) {
fscanf(file, "%d", &students[i].score[j]);
printf("%d ", students[i].score[j]);
totalScore += students[i].score[j];
}
float averageScore = totalScore / 3.0;
printf("\n总成绩:%d\n", totalScore);
printf("平均成绩:%.2f\n\n", averageScore);
}
fclose(file);
return 0;
}
```