辅助判卷程序的一些小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 ...
随机推荐
- [转] Elasticsearch 6.1官方入门教程
一篇比较简要又全面的elasticsearch教程. https://blog.csdn.net/hololens/article/details/78932628
- Ubuntu 安装ftp
Ubuntu 用vsftpd 配置FTP服务器 网上的文章好难懂啊..只想要简单粗暴,弄好能用就行啊,复杂的以后研究不行吗...折腾好久,其实弄出来能用不就这么点内容吗... 本文在Ubuntu Se ...
- c#移位运算符("<<"及">>")详细说明
以前感觉移位运算符自己挺明白的,也许是学的时间长了,后来一看,忘得差不多了.现在参考一些网上的学习资料,将位移运算符整理一下,作为知识点总结,也算个积累.在讲移位运算符之前,先简单补充一下原码与补码的 ...
- lrzsz
新搞的云服务器用SecureCRT不支持上传和下载,没有找到rz命令.记录一下如何安装rz/sz命令的方法. 一.工具说明 在SecureCRT这样的ssh登录软件里, 通过在Linux界面里输入rz ...
- Spring Boot的Controller控制层和页面
一.项目实例 1.项目结构 2.项目代码 1).ActionController.Java: package com.example.controller; import java.util.Date ...
- windows 3389 远程
3389常用命令: 1.查询终端端口 REG query HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server\WinSt ...
- linux 将一个服务器上的文件或者文件夹复制到另一台服务器上
使用scp将一个Linux系统中的文件或文件夹复制到另一台Linux服务器上 复制文件或文件夹(目录)命令: 一.复制文件: (1)将本地文件拷贝到远程 scp 文件名 用户名@计算机IP或者计 ...
- HighCharts理解与总结
摘自:http://www.highcharts.com/docs/getting-started/installation Installation Highcharts requires two ...
- WP的万能小应用时钟表
哎,只能说现在是越来越不行了,已经近一年没写C#的代码了,我居然隐隐有看不懂自己代码的趋势了,真伤! 我突然想起当年寒假里面为了,准备微软创新杯大赛所做的一些小应用,哈哈,于是我就拿出来显摆一下喽! ...
- SQL:存储过程
1/什么是存储过程及概念 Transact-SQL中的存储过程,非常类似于.Net语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句.这样就可 ...