C 练习实例100: 学生成绩计算与保存

题目:有五个学生,每个学生有3门课的成绩。从键盘输入以上数据(包括学生号、姓名、三门课成绩),计算出平均成绩,并将原始数据和计算出的平均分数保存在磁盘文件 "stud" 中。

程序分析:这个程序涉及结构体和文件操作。首先,我们定义了一个名为 Stu 的结构体,用于存储学生的相关信息,包括学生号、姓名、数学成绩、英语成绩、C语言成绩和平均成绩。

然后,我们通过循环从键盘输入五个学生的信息,包括学生号、姓名和三门课成绩。在输入过程中,我们计算出每个学生的平均成绩,并将其保存在结构体的 avargrade 字段中。

接下来,我们尝试打开文件 "stud",如果打开失败,则输出错误信息并退出程序。如果打开成功,则使用 fprintf() 函数将学生信息写入文件中。每行信息包括学生号、姓名、数学成绩、英语成绩、C语言成绩和平均成绩。

最后,我们关闭文件,并注释掉了 system("pause") 语句,因为在某些环境中可能无法使用。

实例

#include <stdio.h>
#include <stdlib.h>

typedef struct {
    int ID;
    int math;
    int English;
    int C;
    int avargrade;
    char name[20];
} Stu;

int main()
{
    FILE *fp;
    Stu stu[5];
    int i;

    printf("请输入5个同学的信息:学生号,姓名,3门成绩:\n");
    for (i = 0; i < 5; i++) {
        scanf("%d %s %d %d %d", &(stu[i].ID), stu[i].name, &(stu[i].math), &(stu[i].English), &(stu[i].C));
        stu[i].avargrade = (stu[i].math + stu[i].English + stu[i].C) / 3;
    }

    if ((fp = fopen("stud", "w")) == NULL) {
        printf("error: cannot open file!\n");
        exit(0);
    }

    for (i = 0; i < 5; i++) {
        fprintf(fp, "%d %s %d %d %d %d\n", stu[i].ID, stu[i].name, stu[i].math, stu[i].English, stu[i].C, stu[i].avargrade);
    }

    fclose(fp);

    // system("pause");

    return 0;
}

在这个程序中,我们首先定义了一个名为 Stu 的结构体,用于存储学生的信息。结构体中包括学生号(ID)、姓名(name)、数学成绩(math)、英语成绩(English)、C语言成绩(C)和平均成绩(avargrade)。

然后,我们使用循环从键盘输入五个学生的信息,并计算出每个学生的平均成绩。在输入过程中,我们使用 scanf() 函数从键盘读取学生号、姓名和三门课成绩,并将其存储在对应的结构体字段中。然后,我们计算平均成绩,并将其存储在 avargrade 字段中。

接下来,我们尝试打开文件 "stud" 以进行写入。如果文件打开失败,则输出错误信息并退出程序。如果文件打开成功,则使用 fprintf() 函数将学生信息写入文件中。每一行的信息包括学生号、姓名、数学成绩、英语成绩、C语言成绩和平均成绩。

最后,我们关闭文件,并注释掉了 system("pause") 语句,因为在某些环境中可能无法使用。

运行程序后,你将被提示输入五个学生的信息,包括学生号、姓名和三门课成绩。输入完成后,程序将计算出每个学生的平均成绩,并将原始数据和计算出的平均分数保存在名为 "stud" 的文件中。

例如,输入以下学生信息:

1 a 60 70 80
2 b 60 80 90
3 c 59 39 89
4 e 56 88 98
5 d 43 88 78

然后,打开 "stud" 文件,你将看到以下内容:

1 a 60 70 80 70
2 b 60 80 90 76
3 c 59 39 89 62
4 e 56 88 98 80
5 d 43 88 78 69

这表示原始数据和计算出的平均分数已经成功保存在文件中。

标签: c语言, c语言教程, c语言技术, c语言学习, c语言学习教程, c语言下载, c语言开发, c语言入门教程, c语言进阶教程, c语言高级教程, c语言面试题, c语言笔试题, c语言编程思想, c语言练习, c语言练习题