- 小学数学练习
1.1【问题描述】
编写一个帮助小学生练习数学的程序,帮助小学生练习100 以内的四种数学运算:加、减、乘、除。
1.2【基本要求】
a) 程序应先询问用户的ID 号(ID 号包括两个大写字母和4 位数字),例如:
请输入用户ID 号:AB1234
程序应对输入的ID 号验证,符合ID 号要求的格式,然后程序提示三种选择:
(1)开始测试
(2)检查分数
(3)退出
b) 测试:该程序将给出10 道数学题,例如:
12 * 3 =36
48 + 32 =80
„
56 / 28 =2
注意:
i)学生将依次回答每一个问题(在等于号后面给出答案),然后给出下一道题。
ii)试题应包含四种数学运算:加、减、乘、除,它们是随机产生的。相邻的问题应该是不同的操作,
每个操作必须至少出现一次。
iii)为每道题随机生成数字,但必须确保参与运算的数字和结果都小于100 且大于零的整数。
iv)十道题做完后,记录学生完成这十道题所用的时间。
v)给每个学生一个分数。将该学生的ID、成绩和使用时间保存到一个名为record.txt 的文件中。
vi)在屏幕上输出以下信息:
问题 | 正确答案 | 你的答案
c) 成绩检查:从文件“record.txt”中列出该学生的所有历史成绩。例如:
你以前的记录是:
AB1234 80 150 秒
AB1234 50 182 秒
AB1234 90 98 秒
代码如下:
//
// Created by Tshaxz on 2020/10/31.
//
#include <stdio.h>
#include <ctype.h> // 为了使用判断大写字母以及数字函数
#include <string.h> //为了使用strlen函数
#include <time.h>
#include <stdlib.h>
#include <math.h>
#define numLength 20 //字符数组的大小
//函数声明
int getSignal();//获取随机运算符
int random(double start, double end);//获取随机数
int getResult(int num1, char signal, int num2);//获取结果函数
void test();//出题函数
void printResult();//打印成绩函数
int IDcheck(char idnum[]);//ID格式检查函数
void gradeCheck();//成绩查询函数
char idnum[numLength];//定义字符数组用来接收用户输入的ID
int num1 = 0;
int num2 = 0;
int signalIndex = 0;
int n1[10], n2[10], s[10], r1[10], r2[10];
char ch;
//生成随机运算符函数
int getSignal()
{
char signal[4] = {
'+','-','*','/' };
signalIndex++;
return signal[(signalIndex - 1) % 4];
}
//生成随机数函数
int random(double start, double end)
{