四则运算题目生成程序(基于控制台)

题目描述:

能自动生成小学四则运算题目的命令行 “软件”,满足以下需求:

    1. 除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:1/6 + 1/8 = 7/24
    2. 运算符为 +, ?, ×, ÷
    3. 并且要求能处理用户的输入,并判断对错,打分统计正确率
    4. 要求能处理用户输入的真分数, 如 1/2, 5/12 等
    5. 使用 -n 参数控制生成题目的个数,例如执行下面命令将生成10个题目    

功能设计:

1.  通过随机数的生成,实现+, ?, ×, ÷的确定

2.  +, ?, ×, ÷分别赋予整数与真分数两种计算,通过随机数的生成来决定是哪种数

      3.  分数通过拆分“分子”、“/”、“分母”,置于各数组中,再通过字符串的连接或复制实现以分数的形式输出,计算则根据具体生成的运算符进行“分子与分子”、“分母与分母”的相关计算

代码说明:

1.  整数除法与分数计算需要使用到的最小大公因数与最小公倍数的函数

int gys(int fz,int fm)
{
int tmp;

if(fz==fm)
return fz;
if(fz<fm)
{
tmp=fz;
fz=fm;
fm=tmp;
}
while(fz%fm!=0)
{
tmp=fz;
fz=fm;
fm=tmp%fm;
}
return fm;
}
int gbs(int n,int m)
{
int i;
for (i=n; ; i++)
if (i%n==0&&i%m==0)
break;
return i;
}

2.分数减法,可对输出的分数进行约分

    case 5:{
                m1=rand()%10+1;
                m2=rand()%10+1;
                m3=rand()%10+1;
                m4=rand()%10+1;
                count1++;
                if(m1>=m2){
                sum2=m1;
                m1=m2;
                m2=sum2;
                }
                g=gys(m1,m2);
                m1=m1/g;
                m2=m2/g;
                if(m1==m2)
                    itoa(1,string2,10);
                else{
                    itoa(m1,string2,10);
                    itoa(m2,string3,10);
                    strcat(string2,"/");
                    strcat(string2,string3);}

                if(m3>=m4){
                sum2=m3;
                m3=m4;
                m4=sum2;
                }
                g=gys(m3,m4);
                m3=m3/g;
                m4=m4/g;
                if(m3==m4)
                    itoa(1,string4,10);
                else{
                    itoa(m3,string4,10);
                    itoa(m4,string5,10);
                    strcat(string4,"/");
                    strcat(string4,string5);}
                cout<<string2<<"-"<<string4<<"=";
                cin>>string1;
                g=gbs(m2,m4);
                sum1=(g/m2*m1)-(g/m4*m3);
                sum2=g;

                if(sum1<0){
                    sum1=-sum1;
                    g=gys(sum1,sum2);
                sum1=sum1/g;
                sum2=sum2/g;
                    itoa(sum1,string4,10);
                    itoa(sum2,string5,10);
                    strcat(string0,string4);
                    strcat(string0,"/");
                    strcat(string0,string5);
                    strcpy(string4,string0);}
                else{
                    sum1=sum1/g;
                    sum2=sum2/g;
                    g=gys(sum1,sum2);
                    itoa(sum1,string4,10);
                    itoa(sum2,string5,10);
                    strcat(string4,"/");
                    strcat(string4,string5);
                }
                if(string4=="1/1")
                    itoa(1,string4,10);
                if(strcmp(string1,string4)==0){
                    cout<<"True"<<endl;
                    count2++;}
                else
                    cout<<"False,The Ture is:"<<string4<<endl;
                break;

           }

测试运行:

码市地址:https://coding.net/u/yxy526832016/p/szys/git

PSP2.1 Personal Software Process Stages Time (%) Senior Student(/hour) Time (%)(/hour)
· Planning 计划 1.5 1.5
· Estimate 估计这个任务需要多少时间 30 40
· Analysis 需求分析 (包括学习新技术) 3 4
· Coding Standard 代码规范 0.5 0.5
· Design 具体设计 1.5 2
· Coding 具体编码 24 30
· Test 测试(自我测试,修改代码,提交修改) 2.5 2
Reporting 报告 1 1

时间: 2024-10-14 04:46:22

四则运算题目生成程序(基于控制台)的相关文章

个人作业1——四则运算题目生成程序(基于控制台)

No.1 四则运算题目生成程序(基于控制台) 程序代码 需求分析: 能够根据用户自身对题目数量的需求自动生成一定数量的包含分数的四则运算题目的命令行程序. 功能设计: 除了整数以外,还要支持真分数的四则运算,真分数的运算 并且要求能处理用户的输入,并判断对错,打分统计正确率 要求能处理用户输入的真分数 使用 -n 参数控制生成题目的个数 设计实现: 程序是用c++实现的,主要有四个函数,主函数随机生成整数或者分数算法,divisor(int i, int j)计算最大公约数,zs为计算整数算法,

个人项目终极博客——四则运算题目生成程序分析

四则运算题目生成程序分析 13061184 马腾跃 一.时间分析 PSP2.1 Personal Software Process Stages Time Planning 计划   · Estimate ·估计这个任务需要多少时间 15h Development 开发 · Analysis ·需求分析(包括学习新技术) 2h · Design Spec ·生成设计文档 1h · Design Review ·设计复审(和同事审核设计文档) 0.5h · Coding Standard ·代码规

01:JAVA_四则运算题目生成程序(基于控制台)

一.题目要求 1. 使用 -n 参数控制生成题目的个数,例如 Myapp.exe -n 10 -o Exercise.txt 将生成10个题目. 2. 使用 -r 参数控制题目中数值(自然数.真分数和真分数分母)的范围,例如 Myapp.exe -r 10 将生成10以内(不包括10)的四则运算题目.该参数可以设置为1或其他自然数.该参数必须给定,否则程序报错并给出帮助信息. 3. 生成的题目中如果存在形如e1 ÷ e2的子表达式,那么其结果应是真分数. 4. 每道题目中出现的运算符个数不超过3

第1次作业------四则运算题目生成程序(基于控制台)

https://git.coding.net/YelCong/Soft.git 需求分析 1. 使用 -n 参数控制生成题目的个数,例如 Myapp.exe -n 10 -o Exercise.txt 将生成10个题目. 2. 使用 -r 参数控制题目中数值(自然数.真分数和真分数分母)的范围,例如 Myapp.exe -r 10 将生成10以内(不包括10)的四则运算题目.该参数可以设置为1或其他自然数.该参数必须给定,否则程序报错并给出帮助信息. 3. 生成的题目中如果存在形如e1 ÷ e2

个人作业-四则运算题目生成程序(基于控制台)

代码:四则运算 一.题目描述: 1. 使用 -n 参数控制生成题目的个数,例如 Myapp.exe -n 10 -o Exercise.txt 将生成10个题目. 2. 使用 -r 参数控制题目中数值(自然数.真分数和真分数分母)的范围,例如 Myapp.exe -r 10 将生成10以内(不包括10)的四则运算题目.该参数可以设置为1或其他自然数.该参数必须给定,否则程序报错并给出帮助信息. 3. 生成的题目中如果存在形如e1 ÷ e2的子表达式,那么其结果应是真分数. 4. 每道题目中出现的

个人作业1——四则运算题目生成程序(基于安卓)

一.题目描述: 实践能力的提高当然就是得多动手了,那么就从第一个个人项目开始吧,用一周的时间完成一个基于控制台的四则运算程序,实现一个自动生成小学四则运算题目的命令行程序. 从<构建之法>第一章的 "程序" 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 "软件",满足以下需求: 1. 使用intent传参数控制生成题目的个数 2. 使用 intent传递 参数控制题目中数值(自然数.真分数和真分数分母)的范围 3. 生成的题目

个人作业1——四则运算题目生成程序

一.题目描述: 实践能力的提高当然就是得多动手了,那么就从第一个个人项目开始吧,用一周的时间完成一个基于控制台的四则运算程序,实现一个自动生成小学四则运算题目的命令行程序. 从<构建之法>第一章的 "程序" 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 "软件",满足以下需求: (以下参考博客链接:http://www.cnblogs.com/jiel/p/4810756.html 1. 使用 -n 参数控制生成题目的个数,例

四则运算题目生成程序

a.需求分析 看了大家对于本课程的目标和规划,很多同学都希望能提高自己的实践能力,没有捷径可走,就是练习.练习再练习!那么就从第一个个人项目开始吧,用一周的时间完成一个基于控制台的四则运算程序,实现一个自动生成小学四则运算题目的命令行程序 从<构建之法>第一章的 "程序" 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 "软件",满足以下需求: 除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:1/6 + 1/8 =

四则运算练习器(基于控制台)

题目链接:http://www.cnblogs.com/HQL0301/p/7502315.htm 源码连接:https://gitee.com/a1234321/four_operations/tree/master 一.需求分析 ?可以根据输入的题数和数值范围自动生成四则运算表达式. ?表达式包括"+ - * /"这四种运算符. ?可以进行分数的运算,如果题目中出现假分数,则转换成真分数. ?对题目答案进行批改对错,给出正确率. 二.功能设计 (1)基本功能 1.输入参数n,程序生