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

从《构建之法》第一章的 “程序” 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 “软件”,满足以下需求:

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

需求分析:

1、能分别支持整数、真分数的四则运算;
2、判断用户的回答是否正确,并显示正确率;
3、能够使用参数控制生成题目的个数;
4、能够把分数运算结果转化为最简结果。

功能设计:

基本功能:整数、真分数的四则运算,显示正确率
扩展功能:能控制生成题目的数量,对结果进行约分
高级功能:能分数和整数混合运算,多运算符运算(暂未实现)

设计实现:

1.用c++面向过程方法编写
2.编写了三个函数:
f():求2个数的最大公约数,为结果做约分提供方便;
integer():整数四则运算
fraction():分数四则运算

代码演示:

void  fraction(){

    int a,b,c,d,up,down,temp;//a,b,c,d表示一个数,up表示结果分子,down表示结果的分母

    char strre[10],stran[10],dow[10];//strre表示最后结果转化的字符,stran表示输入的答案

    srand(unsigned(time(NULL)));

    a=rand()%100+1;

    b=rand()%100+1;

    temp=f(a,b);

    a=a/temp;

    b=b/temp;

    c=rand()%100+1;

    d=rand()%100+1;

    temp=f(c,d);

    c=c/temp;

    d=d/temp;

    char sign,s[4]={‘+‘,‘-‘,‘*‘,‘/‘};

    sign=s[rand()%4];

    switch(sign){

        case ‘+‘:cout<<a<<"/"<<b<<" +"<<c<<"/"<<d<<"="<<endl;

                up=(a*d)+(b*c);

                down=b*d;

                break;

        case ‘-‘:cout<<a<<"/"<<b<<" -"<<c<<"/"<<d<<"="<<endl;

                up=(a*d)-(b*c);

                down=b*d;

                break;

        case ‘*‘:cout<<a<<"/"<<b<<" × "<<c<<"/"<<d<<"="<<endl;

                up=a*c;

                down=b*d;

                break;

        case ‘/‘:cout<<a<<"/"<<b<<" ÷"<<c<<"/"<<d<<"="<<endl;

                up=a*d;

                down=b*c;

                break;

                }

    temp=f(up,down);

    up=up/temp;

    down=down/temp;

    itoa(up,strre,10);

    itoa(down,dow,10);

    strcat(strre,"/");

    strcat(strre,dow);

    cin>>stran;

    if(strcmp(stran,strre)==0){

      cout<<"true"<<endl;

      right1++;

    }

    else cout<<"false"<<endl;

   }

展示PSP:


PSP2.1


Personal Software Process Stages


Time (%) Senior Student(/hour)


Time (%)(/hour)


· Planning


计划


3


3.5


· Estimate


估计这个任务需要多少时间


40


45


· Analysis


需求分析 (包括学习新技术)


1


1


· Coding Standard


代码规范


0.5


0.5


· Design


具体设计


1.5


2


· Coding


具体编码


32


37


· Test


测试(自我测试,修改代码,提交修改)


1


1


Reporting


报告


1


1

小结:编写程序的过程中,遇到的一个问题,就是分数怎么化简,当时有去参考网上的代码,发现把别人的代码拿来用也不是件简单的事,最终还是看懂代码,然后自己去写的。整体而言,程序能满足题目的大部分要求,但在仍不具备处理类似分数整数混合运算、多运算符等问题。

时间: 2024-10-02 12:01:21

个人作业1-四则运算题目生成程序的相关文章

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

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

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

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

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

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

集美大学软件工程1413班工程项目管理个人作业1——四则运算题目生成程序(基于控制台)

作业要求 http://www.cnblogs.com/HQL0301/p/7502315.html 使用 -n 参数控制生成题目的个数 使用 -r 参数控制题目中数值 生成的题目中如果存在形如e1 ÷ e2的子表达式,那么其结果应是真分数 每道题目中出现的运算符个数不超过3个 程序一次运行生成的题目不能重复,即任何两道题目不能通过有限次交换+和×左右的算术表达式变换为同一道题目 生成的题目存入执行程序的当前目录下的Exercises.txt文件 在生成题目的同时,计算出所有题目的答案,并存入执

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

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

第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. 每道题目中出现的

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

四则运算题目生成程序

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

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

题目描述: 能自动生成小学四则运算题目的命令行 "软件",满足以下需求: 除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:1/6 + 1/8 = 7/24 运算符为 +, ?, ×, ÷ 并且要求能处理用户的输入,并判断对错,打分统计正确率 要求能处理用户输入的真分数, 如 1/2, 5/12 等 使用 -n 参数控制生成题目的个数,例如执行下面命令将生成10个题目 功能设计: 1.  通过随机数的生成,实现+, ?, ×, ÷的确定 2.  +, ?, ×, ÷分别赋予整