我在弄清楚从何处以及如何启动该程序方面遇到了很多麻烦。这是学校的一项任务,但我不希望有人为我做。我只需要帮助启动它并建立基础,以便自己完成。

分配是这样的:

一位教授撰写了20个问题的对/错考试,并将其交给班上的所有学生。您
已被要求编写一个对该考试评分的程序。但是,为了节省空间,
每个提交均以20位二进制数(以十进制表示)存储。例如,如果
存储的数字为729494,二进制等效值为10110010000110010110。这意味着答案
是TFTTFFTFFFFTTFFTFTTF。每个正确答案值1分,每个错误答案值1分。
值得0分。假设每个学生都完成了考试(即没有遗漏的答案)。

您的程序将输入学生姓名和答案的列表(例如:“ Edwin Larson 568983”),程序将输出分数和
每个人的字母等级(例如:“ Edwin Larson 65%D”)。假定每个名称(名字和姓氏)都不能超过50个字符。
为了使这项工作,您的程序必须具有以下功能。

文件输入/输出

代替让用户直接输入输入,所有输入将来自文本文件。第一值
阅读将是考试的解决方案。所有其他行将包含学生的名字,姓氏和
代表他/她的考试答案的数字。应该要求用户输入文件的。
如果找不到文件,则用户应继续输入文件名,直到找到有效的输入文件为止。
输入。提供了一个样本输入文件。
输出也应该通过文件来完成。程序的结果应写入文件。为了
这个项目比较简单,您可以一次写一个乐谱,而不是阅读整个输入文件,然后
写入输出文件。应该要求用户输入文件名。请注意,该文件确实
不必存在。如果不存在,C将自动创建文件。输出应为学生的
名和姓,分数(以百分比表示)和字母等级。

结构和类型

由于考试答案存储在20位整数中,因此我们需要将答案存储在20位整数中。
为此,我们将使用位字段。为简单起见,我们将其结构化。最低限度,
该结构应包含学生的名字,姓氏和存储答案的数字(带有
20位)。将此结构定义为称为学生的新数据类型。

巨集

一旦计算出分数,就需要确定字母等级。为此,我们将定义
以下宏:
•IS_A-检查分数是否至少为90。
•IS_B-检查分数是否在80到89之间。
•IS_C-检查分数是否在70到79之间。
•IS_D-检查分数是否在60到69之间。
如果这些宏都不返回true,则该学生在考试中获得F。

头文件

struct和宏应放在单独的头文件中。主C程序需要
包括此头文件。

#ifndef Header_H
#define Header_H

#define IS_A(x) ((x) >= (90))
#define IS_B(x) ((x) >= (80) && (x) <= (89))
#define IS_C(x) ((x) >= (70) && (x) <= (79))
#define IS_D(x) ((x) >= (60) && (x) <= (69))
#define IS_F(x) ((x) <= (59))

typedef struct
{
    char first[25];
    char last[25];
    unsigned int grade;

}Student;

#endif


我现在收到一条错误消息,指出无法包含我的头文件,因为找不到该头文件。我确保它们都在同一个文件夹/目录中。

最佳答案

首先编写宏和读取文件的主循环。

然后找出如何找到多少对的人。

记住失败永远是一种选择。

关于c - C语言考试分级程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27288350/

10-09 13:37