博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
四则运算题目生成程序(基于控制台)
阅读量:6229 次
发布时间:2019-06-21

本文共 2837 字,大约阅读时间需要 9 分钟。

 源代码地址:https://git.coding.net/c_xx/02.git

题目描述:

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

需求分析:

  1. 支持整数及真分数的四则运算;
  2. 能够处理用户的输入并判断对错从而得出正确率;
  3. 使用-num参数控制生成题目的个数。

功能设计:

  1. 随机产生四则运算符;
  2. 随机产生整数或真分数四则运算;
  3. 对分数结果实现约分运算;
  4. 根据用户需求确定出题数目;
  5. 处理用户输入并判断正误,计算正确率。

代码说明:

为了实现需求,共设计了4个功能函数,分别是:

char Operator()            //随机选取运算符
int maxNumber(int k, int l)            //辗转相除法求最大公约数函数
void integer()        //整数运算
void fraction()            //真分数运算
char Operator()            //随机选取运算符{     char op;    srand(time(0));    int i=rand()%4+1;     switch(i)     {         case 1: return '+';         case 2: return '-';         case 3: return '*';         case 4: return '/';     } }
int maxNumber(int k, int l)            //辗转相除法求最大公约数函数{    while(k%l!=0){        int t=k%l;        k=l;        l=t;    }    return l;}
void integer()        //整数运算{     int g;    int x,y;     char op;     srand(time(0));    x=rand()%100+1;     y=rand()%100+1;     op=Operator();     cout<
<
<
<<"="<
>g; if(g==x+y) { cout<<"恭喜你答对了!"<
<
>g; if(g==x-y) { cout<<"恭喜你答对了!"<
<
>g; if(g==x*y) { cout<<"恭喜你答对了!"<
<
>result; element=x; denominator=y; maxNum=maxNumber(element,denominator); element=element/maxNum; denominator=denominator/maxNum; if(denominator!=1) { sprintf_s(answer, "%d/%d",element ,denominator); if (strcmp(answer, result) == 0) { cout<<"恭喜你答对了!"<
<
void fraction()            //真分数运算{     srand(time(NULL));    memset(result,0, sizeof(result));    memset(answer,0, sizeof(answer));    int a,b,c,d;     a=rand()%100+1;     b=rand()%100+1;     c=rand()%100+1;     d=rand()%100+1;     char op;     while(a<=b||c<=d)     {         a=rand()%100+1;         b=rand()%100+1;         c=rand()%100+1;         d=rand()%100+1;     }     op=Operator();     cout<<"("<<<"/"<<<")"<
<<"("<
<<"/"<
<<")"<<"="<
>result; if(op=='+') //分数“+”运算 { element=(b*c)+(a*d); denominator=a*c; maxNum=maxNumber(element,denominator); element=element/maxNum; denominator=denominator/maxNum; if(denominator!=1) { sprintf_s(answer, "%d/%d",element ,denominator); if (strcmp(answer, result) == 0) { cout<<"恭喜你答对了!"<
<

测试运行:

 

PSP展示:

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

 

转载于:https://www.cnblogs.com/cxx111/p/6509436.html

你可能感兴趣的文章
ASA防火墙基本配置
查看>>
软文真的可以帮助我们的网站吗?
查看>>
现代程序设计 作业6 - 简单而有意义的题目
查看>>
70、MSTP简介
查看>>
【VMware虚拟化解决方案】构建VMware私有云 实现ITaaS
查看>>
每天一个linux命令-mkdir
查看>>
四天精通shell编程(二)
查看>>
Linux 学习笔记_8_进程管理_2_进程管理命令
查看>>
python3中实现客户端与服务端交互发送文件
查看>>
Centos yum异常问题
查看>>
标签制作软件中如何导出标签模板为PDF文件?
查看>>
时间戳
查看>>
Jenkins的安装过程(Windows)
查看>>
程序员面试-程序设计基本概念(1)
查看>>
性能测试、负载测试、压力测试的区别
查看>>
html iframe高度自适应
查看>>
Flash Stage3D 在2D UI 界面上显示3D模型问题完美解决
查看>>
nginx日志相关的查询
查看>>
浅谈回归Regression(一)
查看>>
使用Openfiler搭建ISCSI网络存储
查看>>