主要功能:实现小学生四则运算的功能。
设计思想:考虑到小学生的运算能力,可以让小学生自己选择四则运算的种类,以及运算的位数,答完题后,系统自动判断对错。
#include <stdio.h>
#include <stdlib.h> #include <time.h> int add(int num1,int num2)//加法 { return num1+num2; } int subtraction(int num1,int num2)//减法 { return num1-num2; } int mul(int num1,int num2)//乘法 { return num1*num2; } float divis(int num1,int num2)//除法 { return ((int)(((float)num1/num2)*100+0.5))/100.0; } int main() { int type = -1; int data = -1; int choice,num1,num2,results; float div_result; int right = 0; int wrong = 0; char ch; printf("欢迎进入四则运算题,现在开始爆发你的小宇宙吧! "); srand((unsigned int)time(NULL)); while(1) { printf("请选择运算类型:1.加法 2.减法 3.乘法 4.除法(保留两位小数) "); scanf("%d",&choice); printf("请选择位数:1.一位数 2.两位数 "); scanf("%d",&data); switch (choice) { case 1: if(data == 1) { num1 = rand()%10; num2 = rand()%10; printf("%d + %d=__?__ ",num1,num2); scanf("%d",&results); if(results == add(num1,num2)) { printf("回答正确! "); right++; } else { printf("回答错误! "); wrong++; } printf("是否继续?y/n "); getchar(); scanf("%c",&ch); if(ch == 'y') break; else if(ch == 'n') goto end; } else if (data == 2) { num1 = rand()%100; num2 = rand()%100; printf("%d + %d=__?__ ",num1,num2); scanf("%d",&results); if(results == add(num1,num2)) { printf("回答正确! "); right++; } else { printf("回答错误! "); wrong++; } printf("是否继续?y/n "); getchar(); scanf("%c",&ch); if(ch == 'y') break; else if(ch == 'n') goto end; } break; case 2: if(data == 1) { num1 = rand()%10; num2 = rand()%10; printf("%d - %d=__?__ ",num1,num2); scanf("%d",&results); if(results == subtraction(num1,num2)) { printf("回答正确! "); right++; } else { printf("回答错误! "); wrong++; } printf("是否继续?y/n "); getchar(); scanf("%c",&ch); if(ch == 'y') break; else if(ch == 'n') goto end; } else if (data == 2) { num1 = rand()%100; num2 = rand()%100; printf("%d - %d=__?__ ",num1,num2); scanf("%d",&results); if(results == subtraction(num1,num2)) { printf("回答正确! "); right++; } else { printf("回答错误! "); wrong++; } printf("是否继续?y/n "); getchar(); scanf("%c",&ch); if(ch == 'y') break; else if(ch == 'n') goto end; } break; case 3: if(data == 1) { num1 = rand()%10; num2 = rand()%10; printf("%d * %d=__?__ ",num1,num2); scanf("%d",&results); if(results == mul(num1,num2)) { printf("回答正确! "); right++; } else { printf("回答错误! "); wrong++; } printf("是否继续?y/n "); getchar(); scanf("%c",&ch); if(ch == 'y') break; else if(ch == 'n') goto end; } else if (data == 2) { num1 = rand()%100; num2 = rand()%100; printf("%d * %d=__?__ ",num1,num2); scanf("%d",&results); if(results == mul(num1,num2)) { printf("回答正确! "); right++; } else { printf("回答错误! "); wrong++; } printf("是否继续?y/n "); getchar(); scanf("%c",&ch); if(ch == 'y') break; else if(ch == 'n') goto end; } break; case 4: if(data == 1) { num1 = rand()%10; num2 = rand()%10+1; printf("%d / %d=__?__ ",num1,num2); scanf("%f",&div_result); if(div_result == divis(num1,num2)) { printf("回答正确! "); right++; } else { printf("回答错误! "); wrong++; } printf("是否继续?y/n "); getchar(); scanf("%c",&ch); if(ch == 'y') break; else if(ch == 'n') goto end; } else if (data == 2) { num1 = rand()%100; num2 = rand()%100+1; printf("%d / %d=__?__ ",num1,num2); scanf("%f",&div_result); if(div_result == divis(num1,num2)) { printf("回答正确! "); right++; } else { printf("回答错误! "); wrong++; } printf("是否继续?y/n "); getchar(); scanf("%c",&ch); if(ch == 'y') break; else if(ch == 'n') goto end; } break; default : printf("输入错误! "); break; } } end: printf("回答正确%d题,回答错误%d题 ",right,wrong); printf(" ====================谢谢光临====================! "); system("pause"); return 0; }
总结:通过这次完成实现自动生成小学四则运算题目的程序,我意识到我的C语言的基础知识还是不扎实,在老师和同学的帮助下才完成的这个项目,所以,在以后的学习中,我还要不断地继续努力,上课多提问,多去查阅相关资料的书籍,使自己不断的进步。