c语言(2)统计上题CJ.dat 文件中每个学生的总成绩,并将原有数据和计算出的总分数存放在磁盘文件“stud.dat”中。程序运行后,查看是否生成stud.dat,并用文本编辑工具(如记事本)查看stud.dat中的数据是否正确。
时间: 2023-07-15 08:12:32 浏览: 200
C语言 学生成绩统计.doc
以下是实现上述功能的C语言代码:
```c
#include <stdio.h>
struct Student {
int id;
char name[20];
int score1;
int score2;
int score3;
int total_score;
};
int main() {
FILE *fp1, *fp2;
struct Student stu;
fp1 = fopen("CJ.dat", "r");
fp2 = fopen("stud.dat", "w");
if (fp1 == NULL) {
printf("CJ.dat 文件打开失败!\n");
return 1;
}
if (fp2 == NULL) {
printf("stud.dat 文件打开失败!\n");
return 1;
}
// 读取每个学生的信息,并计算总成绩
while (fscanf(fp1, "%d %s %d %d %d", &stu.id, stu.name, &stu.score1, &stu.score2, &stu.score3) != EOF) {
stu.total_score = stu.score1 + stu.score2 + stu.score3;
// 将学生信息和总成绩写入 stud.dat 文件
fprintf(fp2, "%d %s %d %d %d %d\n", stu.id, stu.name, stu.score1, stu.score2, stu.score3, stu.total_score);
}
fclose(fp1);
fclose(fp2);
printf("生成 stud.dat 文件成功!\n");
return 0;
}
```
该程序首先打开 CJ.dat 文件和 stud.dat 文件(如果打开失败,则输出错误信息并退出程序),然后读取 CJ.dat 文件中的每个学生信息,并计算总成绩。最后,将学生信息和总成绩写入 stud.dat 文件中。程序运行完成后,输出成功信息并返回 0。
你可以将上述代码保存为 stud.c 文件,并使用 C 编译器编译该文件(如使用 GCC 编译器,可在命令行中输入 `gcc stud.c -o stud`),然后运行生成的可执行文件(如在 Windows 系统中,可在命令行中输入 `stud.exe`)。生成的 stud.dat 文件会保存在当前工作目录中。你可以使用文本编辑器打开该文件,查看其中的数据是否正确。
阅读全文