辅助判卷程序的一些小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 ...
随机推荐
- Ribbon是什么?
学而时习之,不亦说乎! --<论语> Ribbon使用版本2.2.2 Ribbon是什么? 开始接触Ribbon的时候,网上以及很 ...
- Mac下安装Fiddler抓包工具(别试了,会报错,没办法使用)
下载: https://www.telerik.com/download/fiddler 离线版本:(链接: https://pan.baidu.com/s/1hr7f8QK 密码: ukg2) 安装 ...
- (转)Windows上使用CMake
CMake简介 原文:http://blog.gclxry.com/use-cmake-on-windows/ 你或许听过好几种 Make 工具,例如 GNU Make ,QT 的 qmake ,微软 ...
- happy in java之io流简介
闲来没事,重温马士兵老师的java基础... 流 水流的流 流氓的流,,流 英文叫做stream,溪流 流的分类: 流是用来读写数据的. 流就像水流一样,File类封装的是文件的名字,它是内存里头 ...
- Git学习系列之Git基本操作推送项目(图文详解)
前面博客 Git学习系列之Git基本操作提交项目(图文详解) 如果完成到一定程度,那么可以推送到远端在线仓库. 推送之前,请确保你已经设置了全局的 user.name 和 user.email, 如果 ...
- Java线程池及其底层源码实现分析
1.相关类 Executors ExecutorService Callable ThreadPool Future 2.相关接口 Executor Executor接口的使用: p ...
- shell -- sample -- 关闭tomcat
#!/bin/bash process_name="org.apache.catalina.startup.Bootstrap" shutdown_call= function s ...
- 16G的U盘 4G的压缩
文件系统格式原因,或是你的U盘是扩容盘(就是实际容量和显示的不一样)常用文件系统支持的单个文件大小: FAT16 支持单个文件最大不超过2GB FAT32 支持单个文件最大不超过4GB(有人说实际超过 ...
- [PY3]——内置数据结构(1)——列表及其常用操作
列表及其常用操作_xmind图 about列表 列表是一个序列,用于顺序存储数据 列表分为两种:ArrayList(用数组实现).LinkedList(用链表实现) 定义与初始化 #l ...
- 初识DataGridView 表格数据控件
DataGridView控件提供了一种强大而灵活的以表格形式显示数据的方式,用户可以使用DataGridView控件来显示少量数据的只读视图,也可以对其进行缩放以显示特大数据集的可编辑视图. 扩展Da ...