首先谈一下,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. (五)Audio子系统之AudioRecord.stop

    在上一篇文章<(四)Audio子系统之AudioRecord.read>中已经介绍了AudioRecord如何获取音频数据,接下来,继续分析AudioRecord方法中的stop的实现 函 ...

  2. 成倍提高服务器的负载能力:浅谈Jexus的ASP.NET前置缓存技术

    一.什么是“ASP.NET前置缓存”     ASP.NET前置缓存,是Jexus特色功能之一,是指Jexus把开发者指定的ASP.NET网页某一时刻的内容,缓存到专用的高速缓冲区中,在指定的时间内, ...

  3. 【Sonarqube】windows下更改Temp文件夹的位置

    下载的最新Sonarqube版本(4.5.1),通过StartSonar.bat文件可以启动,但是无法通过StartNTService.bat文件启动,原因为默认的Temp文件不可写入, java.l ...

  4. 如何查看yum安装路径

    #yum install hdf5 #rpm -qa|grep hdf5 hdf5-1.8.7-1.el6.rf.x86_64 #rpm -ql hdf5-1.8.7-1.el6.rf.x86_64

  5. Chapter 7. Packages

    Chapter 7. Packages The hierarchical naming structure for packages is intended to be convenient for ...

  6. 2-9 js基础 cookie封装

    // JavaScript Document 'use strict'; function setCookie(sName,sValue,iDay){ if(iDay){ var oDate = ne ...

  7. JavaScript自增、自减

    JavaScript自增.自减运算符与表达式语法 var i++; var-- 声明变量 i-- 变量名 ++ -- 自增运算符 JavaScript自增.自减运算符与表达式 JavaScript自增 ...

  8. bzoj 4561: [JLoi2016]圆的异或并

    Description 在平面直角坐标系中给定N个圆.已知这些圆两两没有交点,即两圆的关系只存在相离和包含.求这些圆的异或面 积并.异或面积并为:当一片区域在奇数个圆内则计算其面积,当一片区域在偶数个 ...

  9. [转]bootstrap-datetimepicker 火狐浏览器报错

    本文转自:https://segmentfault.com/a/1190000008457568 使用bootstrap-datetimepicker日期选择插件时发现在火狐浏览器下报错: 未压缩版报 ...

  10. JavaScript的原型链继承__propt__、prototype、constructor的理解、以及他们之间相互的关系。

    回想自己已经工作了有一段时间了,但是自己对JavaScript的原型链.和继承的理解能力没有到位,最近他们彻底的整理并且复习了一遍. 本案例中部分文案来自网络和书籍,如有侵权请联系我,我只是把我的理解 ...