#include<stdio.h>
#include<math.h>#include<windows.h>int right=0;int wrong=0;void add(){ int a,b,c;a=rand()%100;b=rand()%100;printf("请回答:\n\t\t %d + %d = ",a,b);scanf("%d",c);if(a+b==c){ printf("回答正确!\n");right++;}else{ printf("回答错误!\n");wrong++;}}void minu(){ int a,b,c;a=rand()%100;b=rand()%100;printf("请回答:\n\t\t %d - %d = ",a,b);scanf("%d",c);if(a-b==c){ printf("回答正确!\n");right++;}else{ printf("回答错误!\n");wrong++;}}void mul(){ int a,b,c;a=rand()%100;b=rand()%100;printf("请回答:\n\t\t %d * %d = ",a,b);scanf("%d",c);if(a*b==c){ printf("回答正确!\n");right++;}else{ printf("回答错误!\n");wrong++;}}void di(){ int a,b,c;a=rand()%100;b=rand()%100;printf("请回答:\n\t\t %d / %d = ",a,b);scanf("%d",c);if(a/b==c){ printf("回答正确!\n");right++;}else{ printf("回答错误!\n");wrong++;}}void main(){ int choise;int con=0;printf("\n\t\t\t欢迎进入小学简易四则运算\n\n");while(1){ printf("请选择:\n");printf("\t\t\t 加法运算(请输入1)\n");printf("\t\t\t 减法运算(请输入2)\n");printf("\t\t\t 乘法运算(请输入3)\n");printf("\t\t\t 除法运算(请输入4)\n");printf("\t\t\t 退出运算(请输入5)\n");if(con==0)scanf("%d",choise);switch(choise){ case 1:add();break;case 2:minu();break;case 3:mul();break;case 4:di();break;case 5:return;}printf("\n\t\t\t继续运算?(请输入1)\n");printf("\n\t\t\t重新选择?(请输入2)\n");printf("\n\t\t\t退出运算?(请输入3)\n");scanf("%d",con);if(con==1)con=1;else if(con==2)con=0;else if(con==3)break;elseprintf("抱歉!,你输入的指令有误!请重新输入!\n");}printf("您总共完成了 %d 道题\n正确 %d 道\n错误 %d 道\n",right+wrong,right,wrong);
}这个程序,可以自动生成小学简易的四则运算,提供菜单让用户选择,然后判断加减乘除,判断答对答错的题目个数,用户同时也可以重新选择继续答题或重新选择或退出程序。
该系统是让计算机充当一位给小学生布置作业的算术老师,为学生出题、阅卷
该系统应具备以下功能: 1. 为小学生出题(分别进行+、-、*、÷等不同运算) 2. 学生做题后,进行评阅; 学生每做一题后,评阅时给出“答题正确,很好”或“答题错误,重做”等字样; 3. 加、减、乘、除运算功能可以自由选择实现;在我们设计程序时候,将一个大的问题分成几个模块,运用不同的函数将这些模块分别设计出来,然后运用函数调用,我们就可以将这些功能不同的模块联系在一起。
在设计程序过程中,我原先定义的变量 flag 为字符型,当输入y时继续做下题,输入n时退出系统,我发现无论按哪个字母,在看结果时候发现有两条继续测试请按1,退出测试请按0 :语句输出,后来经过老师的讲解我明白了,在连续的2个scanf函数中,以字符形式输入第一个scanf函数时候,回车键会以字符形式存储在第二个scanf函数中。
深知自己技术水平还不高,编这样的程序遇到了很多困难,但我相信经过今后的不断学习,我的编程能力会有很大的提高。
github地址https://github.com/zhuifeng123/test123/blame/master/sizeyuansuan.md