首先谈一下,double类型

之前查过一些资料,double类型做==(相等)判断时候,会出现一些错误,及61.95与61.95不相等

对main函数中的部分加以改正,下面的answer为string类型,cal就是计算器类的对象

if(b){                                //用户输入为小数形式
if(atof(answer.c_str())==cal.result)
b=true;
else
b=false;
}

这段代码就是获取用户输入的小数,与计算器类小数运算结果做比较,经过验证,发现基本都不对

if(b){                    //用户输入为小数形式
char buf[];
sprintf(buf,"%g",cal.result);
string stemp=buf;
if(answer==stemp)
b=true;
else
b=false;
}

这是经过改正的代码,就是将实数的比较转换为字符串的比较,这样就能实现正确的功能了

接下类是分数类的bug

当分数为负数时候,负号会出现在分子或者分母上,这导致了显示的不统一,也使得判断相等时出现了错误

对分数类的yuefen函数加以改正

void yuefen(){
int t;
int a=fz;
int b=fm;
if (a < b) {
t = a;
a = b;
b = t;
}
while (t = a % b) {
a = b;
b = t;
}
if(b!=){
fz/=b;
fm/=b;
}
}

这是原本的函数,负数不一定会出现在分子或者分母上,或者两者都会出现

void yuefen(){
int t;
int a=fz;
int b=fm;
if (a < b) {
t = a;
a = b;
b = t;
}
while (t = a % b) {
a = b;
b = t;
}
if(b!=){
fz/=b;
fm/=b;
}
if(fm<){
fz=-fz;
fm=-fm;
}
}

在结束的地方加入一个判断,即可解决问题

还有一个bug是用户输入分数结果时候,没有读取负号,导致读取结果失败

对main函数中的部分加以改正

else{                                //用户输入为分数形式
stringstream sst(answer);
int n1,n2;
char c;
sst>>n1>>c>>n2;
if(c!='/'){
cout<<"输入非法"<<endl;
}
else{
fenshu f(n1,n2);
if(f==cal.fresult)
b=true;
else
b=false;
}
}

这是原本获取用户输入的分数结果部分

else{                //用户输入为分数形式
stringstream sst(answer);
int n1,n2;
char c;
if(answer[]=='-')
sst>>c;
sst>>n1>>c>>n2;
if(c!='/'){
cout<<"输入非法"<<endl;
}
else{
if(answer[]=='-')
n1=-n1;
fenshu f(n1,n2);
if(f==cal.fresult)
b=true;
else
b=false;
}
}

加入对负号的判断,以及读取,这样就能得到正确的结果了

最后,对程序显示部分的完善

    if(b){
cout<<"答案正确"<<endl;
zq++;
}
else{
cout<<"答案错误"<<endl;
cal.printfanswer();
cw++;
}
cout<<endl;
}
cout<<"总共"<<zq+cw<<"道题,答对"<<zq<<"道,答错“<<cw<<"道";

将main函数结尾部分(in.close()之前)改成上述样子,并且,在开头定义变量int zq=0,cw=0;

这样就可以在完成全部题目后,显示具体信息

辅助判卷程序的一些小bug的更多相关文章

  1. 微信小程序的两个BUG?

    微信小程序的两个BUG,也许可能是我搞错了 1.wx.uploadFile 用循环上传图片的时候,电脑.苹果手机上都会正常,安卓机上面则会出现the same task is working的问题 2 ...

  2. taro 小程序 & touch event 转换 bug

    taro 小程序 & touch event 转换 bug before after 事件处理 https://nervjs.github.io/taro/docs/event.html#do ...

  3. 微信跳一跳,Python辅助自动跳程序

    一.说明 此代码借鉴一位大神提供在gitHub上的源码,已经做了简化合并处理,成功连上手机并运行后,可实现自动玩微信跳一跳游戏,刷个1000+的分数轻轻松松 github源码地址 https://gi ...

  4. 程序员不修复BUG怎么办

    在测试过程中,难免遇到开发人员因为一些原因不想修改个别bug的情况.遇到这种问题时,该如何去推进开发修改bug呢? 一.现状分析 1.开发人员为啥不愿意修复BUG? (1)开发与测试对bug的定义理解 ...

  5. 小程序01 微信小程序介绍和开发准备

    前言 火爆的微信小程序:跳一跳.摩拜单车.美柚.大众点评.滴滴出行 背景 为什么会有小程序? 微信最早推出公众号和服务号,公众号和服务号所传播的网页经常出现加载缓慢甚至页面空白的情况. 微信小程序的诞 ...

  6. 小程序-demo:小程序示例-page/api

    ylbtech-小程序-demo:小程序示例-page/api 以下将演示小程序接口能力,具体属性参数详见小程序开发文档. 1. page/component返回顶部 1. a) .js Page({ ...

  7. 观CSDN站点小Bug有感

            今天早上在浏览博客的时候偶然发现CSDN博客的数据出现了异常,我也是头一次看到这么明显的Bug.详细什么表现呢?先来看个截图.例如以下:             常常看CSDN博客的人 ...

  8. Fundebug前端JavaScript插件更新至1.8.2,修复2个小BUG

    摘要: 修复2个BUG,请大家及时更新. Fundebug前端异常监控服务 Fundebug是专业的程序异常监控平台,我们JavaScript插件可以提供全方位的异常监控,可以帮助开发者第一时间定位各 ...

  9. js动画--一个小bug处理下

    对于上面的课程我们很好的处理了一个小bug,那么我们现在讲程序进行优化一下,前一节的程序中,我们处理处理的属性都是写死了的.为了我们能够很好的对某个属性进行操作的话.我们这样来设置. js文件 win ...

随机推荐

  1. 最近用.NET实现DHT爬虫,全.NET实现

    最近用.NET实现DHT爬虫,全.NET实现,大家可以加我QQ交流下  309159808

  2. jsp页面struts2标签展示clob类型的数据

    直接从数据库中查出来的数据,是clob类型的在前端页面展示的时候是这样: 后来找到了一个方法,在action中添加一个方法,解析转换clob数据的方法 public String getClob(Cl ...

  3. 【性能测试】:JVM内存监控策略的方法,以及监控结果说明

    JVM内存监控主要在稳定性压测期间,监控应用服务器内存泄露等问题: [JVM远程监控设置] 1.打开WAS控制台:https://ip:port/ibm/console/login.do 2.进入路径 ...

  4. 通过js获取内网ip和外网ip的简单方法 ...

    今天遇到了一个需求,需要获取用户当前的内网ip, 找了半天终于找到了方法,遂将找到的方法记录下来,留给需要的人. 1,获取内网ip function getIP(callback) { let rec ...

  5. Q64 最小路径和

    给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小. 说明:每次只能向下或者向右移动一步. 示例: 输入: [ [1,3,1], [1,5,1], ...

  6. (转)Mysql数据库主从心得整理

    Mysql数据库主从心得整理 原文:http://blog.sae.sina.com.cn/archives/4666 管理mysql主从有2年多了,管理过200多组mysql主从,几乎涉及到各个版本 ...

  7. 003javascript语句

    javascript语句和java差不多,注意==和===区别 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" " ...

  8. ubuntu设置root权限默认密码

    1.默认root密码是随机的,即每次开机都有一个新的root密码.我们可以在终端输入命令 sudo passwd,然后输入当前用户的密码2.终端会提示我们输入新的密码并确认,此时的密码就是root新密 ...

  9. CentO7 安装 redis, 主从配置,Sentinel集群故障转移切换

        一.Redis的安装(前提是已经安装了EPEL)   安装redis: yum -y install redis 启动/停止/重启 Redis 启动服务: systemctl start re ...

  10. 【Qt开发】QTime类

    QTime类为用户提供一系列时间的函数,封装的很全面,几乎满足了各种时间的需求. 常用方法介绍 1.QTime addMSecs(int ms) const 当前时间增加毫秒,ms可为负 2.QTim ...