用c语言完成:文件“stu_info1.txt”包含学生的基本信息(姓名、学号、籍贯三项),现在需 要从该文件中读出信息,并依次为每位学生输入三门课程成绩,计算平均成绩,再将学生 完整信息(姓名、学号、籍贯、课程 1、课程 2、课程 3、平均分)写入文件 “stu_info2.txt”并保存于磁盘上
时间: 2023-12-10 09:37:45 浏览: 99
学生籍贯信息记录薄,用c语言写的。花钱了后可直接拿走
以下是用C语言实现的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct Student {
char name[20];
char id[10];
char hometown[20];
float score[3];
float avg_score;
};
int main() {
FILE *fp1, *fp2;
struct Student stu;
int i;
// 打开文件stu_info1.txt
if ((fp1 = fopen("stu_info1.txt", "r")) == NULL) {
printf("Cannot open file stu_info1.txt.\n");
exit(1);
}
// 打开文件stu_info2.txt
if ((fp2 = fopen("stu_info2.txt", "w")) == NULL) {
printf("Cannot open file stu_info2.txt.\n");
exit(1);
}
// 读取每个学生的信息
while (fscanf(fp1, "%s %s %s", stu.name, stu.id, stu.hometown) == 3) {
// 输入每个学生的三门课程成绩
printf("Please input the scores of %s (id: %s, hometown: %s):\n",
stu.name, stu.id, stu.hometown);
for (i = 0; i < 3; i++) {
scanf("%f", &stu.score[i]);
}
// 计算平均成绩
stu.avg_score = (stu.score[0] + stu.score[1] + stu.score[2]) / 3;
// 将学生信息写入文件stu_info2.txt
fprintf(fp2, "%s %s %s %.1f %.1f %.1f %.1f\n", stu.name, stu.id, stu.hometown,
stu.score[0], stu.score[1], stu.score[2], stu.avg_score);
}
// 关闭文件
fclose(fp1);
fclose(fp2);
return 0;
}
```
程序首先打开文件`stu_info1.txt`,然后读取每个学生的信息,并提示用户输入每个学生的三门课程成绩。接着,程序计算每个学生的平均成绩,并将学生信息(包括姓名、学号、籍贯、三门课程成绩和平均成绩)写入文件`stu_info2.txt`。最后,程序关闭文件并结束运行。
阅读全文