辅助判卷程序的一些小bug
首先谈一下,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的更多相关文章
- 微信小程序的两个BUG?
微信小程序的两个BUG,也许可能是我搞错了 1.wx.uploadFile 用循环上传图片的时候,电脑.苹果手机上都会正常,安卓机上面则会出现the same task is working的问题 2 ...
- taro 小程序 & touch event 转换 bug
taro 小程序 & touch event 转换 bug before after 事件处理 https://nervjs.github.io/taro/docs/event.html#do ...
- 微信跳一跳,Python辅助自动跳程序
一.说明 此代码借鉴一位大神提供在gitHub上的源码,已经做了简化合并处理,成功连上手机并运行后,可实现自动玩微信跳一跳游戏,刷个1000+的分数轻轻松松 github源码地址 https://gi ...
- 程序员不修复BUG怎么办
在测试过程中,难免遇到开发人员因为一些原因不想修改个别bug的情况.遇到这种问题时,该如何去推进开发修改bug呢? 一.现状分析 1.开发人员为啥不愿意修复BUG? (1)开发与测试对bug的定义理解 ...
- 小程序01 微信小程序介绍和开发准备
前言 火爆的微信小程序:跳一跳.摩拜单车.美柚.大众点评.滴滴出行 背景 为什么会有小程序? 微信最早推出公众号和服务号,公众号和服务号所传播的网页经常出现加载缓慢甚至页面空白的情况. 微信小程序的诞 ...
- 小程序-demo:小程序示例-page/api
ylbtech-小程序-demo:小程序示例-page/api 以下将演示小程序接口能力,具体属性参数详见小程序开发文档. 1. page/component返回顶部 1. a) .js Page({ ...
- 观CSDN站点小Bug有感
今天早上在浏览博客的时候偶然发现CSDN博客的数据出现了异常,我也是头一次看到这么明显的Bug.详细什么表现呢?先来看个截图.例如以下: 常常看CSDN博客的人 ...
- Fundebug前端JavaScript插件更新至1.8.2,修复2个小BUG
摘要: 修复2个BUG,请大家及时更新. Fundebug前端异常监控服务 Fundebug是专业的程序异常监控平台,我们JavaScript插件可以提供全方位的异常监控,可以帮助开发者第一时间定位各 ...
- js动画--一个小bug处理下
对于上面的课程我们很好的处理了一个小bug,那么我们现在讲程序进行优化一下,前一节的程序中,我们处理处理的属性都是写死了的.为了我们能够很好的对某个属性进行操作的话.我们这样来设置. js文件 win ...
随机推荐
- 踩方格 OpenJ_Bailian - 4103
有一个方格矩阵,矩阵边界在无穷远处.我们做如下假设:a. 每走一步时,只能从当前方格移动一格,走到某个相邻的方格上:b. 走过的格子立即塌陷无法再走第二次:c. 只能向北.东.西三个 ...
- Q221 最大正方形
在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积. 示例: 输入: 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 输出: 4 cla ...
- 本地docker镜像上传Docker Hub,并且在腾讯云上pull该镜像,最后运行成功。
1:在docker hub 上注册一个账号(本人直接能注册,有的说不能),然后创建自己的仓库. 2:登录docker hub ( longdbdocker --hub账号,longdb --仓库名称) ...
- 认识CSS中标题引入icon图标
前端之HTML,CSS(十一) icon图标 icon图标的使用 获取网站的中标题icon图标,以京东为例:在域名后添加/favicon.ico Enter打开 鼠标右键,图标另存为下载icon图标, ...
- jenkins backup and migration
service jenkins stop 压缩包:tar -czvf /tmp/xx.tar.gz --exclude=“workspace” --exclude=“.m2" --exclu ...
- 使用NHibernate(4)--拦截器和事件
如果想在一个事务的开始.执行中.完成后等过程中执行一些自己的逻辑(比如记录日志.查看sql),拦截器(Interceptors)和事件(Event)就可以发挥作用了.两者所能完成的功能差不多. 1,拦 ...
- Windows里安装wireshark或者ethereal工具(包括汉化破解)(图文详解)
不多说,直接上干货! https://www.wireshark.org/download.html 我这里,读取的是,来自于https://www.ll.mit.edu/ideval/data/19 ...
- interface类型
接口可使用的修饰符如下: InterfaceModifier: one of Annotation public protected private abstract static strictfp ...
- 阿里云CentOS7.4上搭建FTP服务器
1 安装过程 第一步:首先判断是否安装了vsftpd # rpm -qa | grep vsftpd 第二步:如果没有安装则安装vsftpd # yum -y install vsftpd 从第三步开 ...
- UTF8最好不要带BOM,附许多经典评论
UTF-8 不需要 BOM,尽管 Unicode 标准允许在 UTF-8 中使用 BOM.所以不含 BOM 的 UTF-8 才是标准形式,在 UTF-8 文件中放置 BOM 主要是微软的习惯(顺便提一 ...