前言
1,**小学生算术练习系统(***)**基本功能:设计一个供小学生进行算术练习的系统,基本功能包括:
一级菜单显示"1加、 2.减、3.乘、4.除、5退出”,供用户选择。用户输入自己的选择后,进入相应的模块进行多次题目练习。比如,选择"1",则进入"加法练习"模块,进行加法练习(系统随机生成加数、显示加法表达式如35+12等用户输入结果后,系统自动判对错)。当用户选择"5"时退出系统。
二级菜单显示“范围选择”,分别有"10以内、20以内、50以内、100以内"“10以内”表示要进行10以内的运算。
计算本次练习的准确率(百分比):当选择某一种运算后,系统开始随机出题、用户输入计算结果、系统判对错,然后提示用户是否继续,输入’y’则继续,否则结束本次练习,退出时计算本次练习的正确率并显示在屏幕上。比如,退出加法练习时,显示本次加法题做对的百分比。
成绩记录:当用户退出程序时,首先读取文件中的历史最高纪录,然后将用户的本次记录与最高纪录比较,给出比较结果(比如您的加法、乘法运算打破记录,除法运算还要加把劲!),最后把本次练习的加、减、乘、除的准确率写入文件(默认初始的准确率为0,且没做过的练习的准确率也为0)。
拓展功能:
登录:用户首次使用要注册用户名和密码,登录后进行练习。
记录用户的练习成绩:退出时将该用户本次练习的准确率(取最高的一次加.减、乘、除的准确率)写入文件,更新原来的记录(老用户)
排行榜:在主菜单添加“排行榜"功能,降序显示:“用户名、加减乘除四个准率”。
计时功能:模拟小学生做算术练习题卡时需要计时的功能,用户可以选择一次练习10题或20题,开始做题时计时开始,做完本页(10题或20题)题目时显示所用时间(以00:00:00,时:分:秒的格式)。
其他创新功能自定,比如界面设计、功能更完善等。
提示:以下是本篇文章正文内容,下面案例可供参考
二、代码如下:
代码如下(示例):
#include<stdio.h>
#include<windows.h>
#include <stdlib.h>
#include <time.h>
#include<math.h>
#include <string.h>
double jiafa(void);
double jiangfa(void);
double chengfa(void);
double chufa(void);
char mygetchar(void);
int main(void)
{
int i;
double pa;
char Test[1000]={
0};
printf("选择练习项目:\n");
printf("1.练习加法 2.练习减法\n");
printf("3.练习乘法 4.练习除法\n");
printf("5.退出系统\n");
while(i=mygetchar())
{
if(i>'0'&&i<'6')
break;
printf("输入错误!请重新输入:");
}
switch(i)
{
case '1' : system("cls");pa=jiafa();break;
case '2' : system("cls");pa=jiangfa();break;
case '3' : system("cls");pa=chengfa();break;
case '4' : system("cls");pa=chufa();break;
case '5' : break;
}
printf("您的正确率为:%.2lf%%\n",pa*100);
FILE *fa,*fb;
switch(i)
{
case '1': fa=fopen("1.txt","a");
fprintf(fa,"%.2lf%%\n",pa*100);
fclose(fa);
fb=fopen("1.txt","r");
for(int i=0;i<10;i++)
{
fscanf(fb,"%d",&Test[i]);
if(Test[i]/100>=pa)
{
printf("没有打破以前的记录,请继续努力!");
break;
}
else
{
printf("恭喜你打破了原来的记录,请继续努力!");
break;
}
}
break;
case '2': fa=fopen("2.txt","a");
fprintf(fa,"%.2lf%%\n",pa*100);
fclose(fa);
fb=fopen("1.txt","r");
for(int i=0;i<10;i++)
{
fscanf(fb,"%d",&Test[i]);
if(Test[i]/100>=pa)
{
printf("没有打破以前的记录,请继续努力!");
break;
}
else
{
printf("恭喜你打破了原来的记录,请继续努力!");
break;
}
}
break;
case '3': fa=fopen("3.txt","a");
fprintf(fa,"%.2lf%%\n",pa*100);
fclose(fa);
fb=fopen("1.txt","r");
for(int i=0;i<10;i++)
{
fscanf(fb,"%d",&Test[i]);
if(Test