超级无敌小学四则运算题目程序

尝试自己写一个能自动生成小学四则运算题目的命令行“软件”,分别满足下面的各种需求:

a)自动生成小学四则运算题目,除整数以外,还要支持真分数的四则运算;运用计算机C语言中的rand函数,rand是真正的随机数生成器,而srand()会设置供rand()使用的随机数种子。

b)能接受用户输入答案,运用if语句来判断对错。最后给出总共对错的数量;

c)运用for循环来实现一次批量给出100道的题目,并且运用计算机C语言中的rand函数,rand是真正的随机数生成器,而srand()会设置供rand()使用的随机数种子,来保证题目不能重复。

程序运行结果截图:

程序代码:

#include<iostream>
#include<stdlib.h>
#include<iomanip>
#include<cmath>
#include<time.h>
using namespace std;

#define random() (rand()%100)

void main()
{
int s1,s2,s3,s4;
double s5,s6;
int a,b,c,d,e,f,g;
int right=0;
int wrong=0;

srand((int)time(NULL));
for(int i=0;i<100;i++)
{
s1=random();
s2=random();
int k=(int)rand()%5;
switch(k)
{
case 0:
{
cout<<s1<<"+"<<s2<<"=";
cin>>s5;
if(s1+s2==s5)
{
cout<<"right!"<<endl;right++;
}
else
{
cout<<"wrong!"<<endl;wrong++;
}
break;
}
case 1:
{
cout<<s1<<"-"<<s2<<"=";
cin>>s5;
if(s1-s2==s5)
{
cout<<"right!"<<endl;right++;
}
else
{
cout<<"wrong!"<<endl;wrong++;
}
break;
}
case 2:
{
cout<<s1<<"*"<<s2<<"=";
cin>>s5;
if(s1*s2==s5)
{
cout<<"right!"<<endl;right++;
}
else
{
cout<<"wrong!"<<endl;wrong++;
}
break;
}
case 3:
{
while(s2==0)
s2=random();
cout<<s1<<"/"<<s2<<"=";
if(s1%s2==0)
{cin>>s5;
if(s5==s1/s2)
{
cout<<"right!"<<endl;right++;
}
else
{
cout<<"wrong!"<<endl;wrong++;
}
}
else
{
cin>>s5;cout<<"/"<<endl;cin>>s6;
a=s1;
b=s2;
for(c=a;c>=1&&c<=a;c--)
{
d=a%c;
e=b%c;
if(d==0&&e==0)
{
f=a/c;
g=b/c;
}
}
if((f==s5)&&(g==s6))
{
cout<<"right!"<<endl;right++;
}
else
{
cout<<"wrong!"<<endl;wrong++;
}
break;
}
}
case 4:
{
while(s2==0||s1>=s2)
{
s1=random();
s2=random();
}
s3=random();
s4=random();
while(s4==0||s3>=s4)
{
s3=random();
s4=random();
}
int l=(int)rand()%4;
switch(l)
{
case 0:
{
cout<<"("<<s1<<"/"<<s2<<")"<<"+"<<"("<<s3<<"/"<<s4<<")"<<"=";
cin>>s5;cout<<"/"<<endl;cin>>s6;
a=s1*s4+s2*s3;
b=s2*s4;
if(a>b)
{
for(c=b;c>=1&&c<=b;c--)
{
d=a%c;
e=b%c;
if(d==0&&e==0)
{
f=a/c;
g=b/c;
}
}
}
else
{
for(c=a;c>=1&&c<=a;c--)
{
d=a%c;
e=b%c;
if(d==0&&e==0)
{
f=a/c;
g=b/c;
}
}
}
if((f==s5)&&(g==s6))
{
cout<<"right!"<<endl;right++;
}
else
{
cout<<"wrong!"<<endl;wrong++;
}
break;
}
case 1:
{
cout<<"("<<s1<<"/"<<s2<<")"<<"-"<<"("<<s3<<"/"<<s4<<")"<<"=";
cin>>s5;cout<<"/"<<endl;cin>>s6;
a=s1*s4-s2*s3;
b=s2*s4;
if(a>b)
{
for(c=b;c>=1&&c<=b;c--)
{
d=a%c;
e=b%c;
if(d==0&&e==0)
{
f=a/c;
g=b/c;
}
}
}
else
{
for(c=a;c>=1&&c<=a;c--)
{
d=a%c;
e=b%c;
if(d==0&&e==0)
{
f=a/c;
g=b/c;
}
}
}
if((f==s5)&&(g==s6))
{
cout<<"right!"<<endl;right++;
}
else
{
cout<<"wrong!"<<endl;wrong++;
}
break;
}
case 2:
{
cout<<"("<<s1<<"/"<<s2<<")"<<"*"<<"("<<s3<<"/"<<s4<<")"<<"=";
cin>>s5;cout<<"/"<<endl;cin>>s6;
a=s1*s3;
b=s2*s4;
if(a>b)
{
for(c=b;c>=1&&c<=b;c--)
{
d=a%c;
e=b%c;
if(d==0&&e==0)
{
f=a/c;
g=b/c;
}
}
}
else
{
for(c=a;c>=1&&c<=a;c--)
{
d=a%c;
e=b%c;
if(d==0&&e==0)
{
f=a/c;
g=b/c;
}
}
}
if((f==s5)&&(g==s6))
{
cout<<"right!"<<endl;right++;
}
else
{
cout<<"wrong!"<<endl;wrong++;
}
break;
}
case 3:
{
cout<<"("<<s1<<"/"<<s2<<")"<<"/"<<"("<<s3<<"/"<<s4<<")"<<"=";
cin>>s5;cout<<"/"<<endl;cin>>s6;
a=s1*s4;
b=s2*s3;
if(a>b)
{
for(c=b;c>=1&&c<=b;c--)
{
d=a%c;
e=b%c;
if(d==0&&e==0)
{
f=a/c;
g=b/c;
}
}
}
else
{
for(c=a;c>=1&&c<=a;c--)
{
d=a%c;
e=b%c;
if(d==0&&e==0)
{
f=a/c;
g=b/c;
}
}
}
if((f==s5)&&(g==s6))
{
cout<<"right!"<<endl;right++;
}
else
{
cout<<"wrong!"<<endl;wrong++;
}
break;
}
}
}
}
}
cout<<"the number of right answer:"<<right<<","<<"the number of wrong answer:"<<wrong<<endl;
system("pause");
}

时间: 2024-10-03 19:25:48

超级无敌小学四则运算题目程序的相关文章

能自动生成小学四则运算题目的程序

题目要求 能自动生成小学四则运算题目 除了整数外,还要支持真分数的四则运算 支持多个运算符,也就是混合运算 程序支持判断对错,累计分数并倒计时 分析 分为几个函数功能模块:int getChoice() :    功能:用户选择功能 void showMenu():  功能:显示功能的菜单 void doExercise(int n):  功能:计分器 int test(int n);    功能:进行一道题的测试过程 int main();  主函数 源代码转载于李思雨,博客链接:http:/

Individual Project &quot;写一个能自动生成小学四则运算题目的程序&quot;

一.题目简介 写一个能自动生成小学四则运算题目的程序. 初步拟定要实现的功能后,估计一下自己需要花多长时间.编程过程中记录自己实际用了多长时间. 然后和同学们比较一下各自程序的功能.实现方法的异同等等. 二.源码的github链接 https://github.com/gaino1/IndividualProject 三.所设计的模块测试用例.测试结果截图 四.问题及解决方案.心得体会 要想学好C语言,要重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我也发现我的好多不足之处,首先是自

实现一个自动生成小学四则运算题目的命令行程序

Github项目地址:https://github.com/sumilekaedei/Myapp.git 题目:实现一个自动生成小学四则运算题目的命令行程序. 自然数:0, 1, 2, -. 真分数:1/2, 1/3, 2/3, 1/4, 1'1/2, -. 运算符:+, ?, ×, ÷. 括号:(, ). 等号:=. 分隔符:空格(用于四则运算符和等号前后). 算术表达式: e = n | e1 + e2 | e1 ? e2 | e1 × e2 | e1 ÷ e2 | (e), 其中e, e1

简单小程序——产生三十道小学四则运算题目

题目要求程序可以生成三十道小学四则运算题目. 因为要随机生成题目,则需要产生随机数,因此我上网搜索了生成随机数的方法,选择了使用Random类得到规定范围内的随机数.因为一个运算需要三个元素,两个参与运算的数字,一个运算符(加减乘除),因此需要获得三个随机数,其中一个随机数的范围为1~4,对应加减乘除四个运算符.在程序中需要特别注意的是除法的运算题目生成,由于是小学题目,因此要生成可以整除的运算式.因此在除法的运算阶段,我进行了判断,若当前产生的两个随机数不能实现整除或者除数为零,便重新获得两个

结对项目----实现一个自动生成小学四则运算题目的命令行程序

一.Github项目地址:https://github.com/lyh27/exercise 团队成员:卢耀恒3118005065    莫政3118005067 二.需求 自然数:0, 1, 2, …. 真分数:1/2, 1/3, 2/3, 1/4, 1’1/2, …. 运算符:+, −, ×, ÷. 括号:(, ). 等号:=. 分隔符:空格(用于四则运算符和等号前后). 算术表达式: e = n | e1 + e2 | e1 − e2 | e1 × e2 | e1 ÷ e2 | (e),

软件工程关于自动生成四则运算题目程序的见解

1.需求分析 一个程序员在编写程序前第一件事就是要知道我要编写的程序是要干什么的,它要那些功能. 题目中要求一个能自动生成小学四则运算题目的程序,分析起来很简单,做起来也很简单. 2.实施 由于是小学四则运算题目 我们设定数字的大小不超过100,运算符号为+ - * /,而这一切要随机生成,不难想到要用到随机函数.首先使用SRAND函数设定随机数种子srand((unsigned)time(NULL)) ,再使用RAND函数控制随机生成我们想要的0-100的数字,至于如何生成加减乘除符号,我们可

自动生成小学四则运算题目

目前这个小学四则运算题目的生成器还不完善,仅支持整数的四则运算,在接下来的时间里会利用空余时间继续修改程序. import randomdef Subject_Creater(n): # n 为题目个数 x = 0 y = 0 z = "" i = 0 sum = 0.0 while True: x = random.randint(0,10) # 为变量 x 随机赋值 y = random.randint(1,10) # 为变量 y 随机赋值 z = random.choice(&q

自动生成小学四则运算题目(Python实现)

Github项目地址: https://github.com/pirigg/- 题目描述: 通过python语言编写一个能够自动生成小学四则运算的程序(注意是给小学生用的,要是结果出现负数的话他们会很迷茫的!),同时,除了整数外,还要支持真分数的四则运算. Psp表格: PSP2.1 任务内容 计划完成需要的时间(min) 实际完成需要的时间(min) Planning 计划 50 60 Estimate 估计这个任务需要多少时间,并规划大致工作步骤 20 30 Analysis 需求分析 (包

自动生成小学四则运算题目并进行效能分析-改进版

github地址:https://github.com/lzhida/First-assignment/tree/newbranch 改进: 可以删除一些无意义的括号 题目要求: 1.能自动生成小学四则运算题目,并且不能出现负数: 2.支持真分数四则运算 PSP表格     预计耗时(分钟) 是实际耗时(分钟) Planning 计划 30 30 ·Estimate 估计这个任务需要多少时间 180 240 Development 开发 150 180 ·Analysis 需求分析 5 10 ·