小学数学练习
实验内容
编写一个帮助小学生练习数学的程序,帮助小学生练习 100 以内的四种数学运算:加、减、乘、除。
实验要求
a) 程序应先询问用户的 ID 号(ID 号包括两个大写字母和 4 位数字),例如:
请输入 用户 ID
号 :AB1234
程序应对输入的 ID 号验证,符合 ID 号要求的格式,然后程序提示三种选择:
(1)开始测试
(2)检查分数
(3)退出
b) 测试:该程序将给出 10 道数学题,例如: 12 * 3 =36 48 + 32 =80 „56 / 28 =2
主要仪器设备-台式或笔记本电脑
实验记录(写出实验内容中程序代码和运行结果)(可分栏或加页)
程序代码:
/*1. 小学数学练习
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 秒*/
#include<string.h>
#include <stdio.h>
#include <ctype.h>
#include <time.h>
#include <stdlib.h>
#include <stdbool.h>
#include <windows.h>
#define IDNO_LENGTH 6
#define CALC_KIND 4
#define CALC_NUM 10
bool checkNo(char idCS[]);//验证ID
char getSignal();//获取运算符
int getResult(int,int,char);//结果
void takeTest();//列出题目
char str[100];
//main函数
int main(){
while(1){
printf("请输入用户ID号:");
char idCS[IDNO_LENGTH];
do{
scanf("%s",&idCS);
fflush(stdin);
} while(checkNo(idCS)==false);
printf("(1)开始测试\t\n(2)检查分数\n(3)退出\n");
int choose;
do{
printf("请选择:");
scanf("%d",&choose);
fflush(stdin);
} while(choose!=1 && choose!=2 && choose!=3);
if(choose==1){
FILE *fp=fopen("record.txt","a");
fprintf(fp,"%s",idCS);
fclose(fp);
fflush(stdin);
takeTest();
}else if(choose==2){
//选择2
FILE *fp;