RIGHT-BICEP单元测试——“二柱子四则运算升级版”

RIGHT-BICEP单元测试

——“二柱子四则运算升级版”

”单元测试“这对于我们来说是一个全新的专业含义,在上了软件工程这门课,并当堂编写了简单的"求一组数中的最大值"函数的单元测试之后,我们对它有了全新的认识。

单元测试:即为,

老师让我们回去之后将“二柱子四则运算升级版”的程序进行单元测试(二柱子程序的源码我已经上传,这里不再重复,只列举单元测试的部分和分析),如下:

PS.这里附上老师上课讲的关于RIGHT-BICEP测试的方法:

6个值得测试的具体部位,他们能够提高我们的测试技巧:

Right-结果是否正确?

B-是否所有的边界条件都是正确的?

I-能查一下反向关联吗?

C-能用其他手段交叉检查一下结果吗?

E-你是否可以强制错误条件发生?

P-是否满足性能要求?

一、测试计划

-测试结果是否正确?

-测试是否能够产生指定范围的随机数?

-测试能否选择是否保存到文件里?

-测试能否选择有无真分数?

—测试能否选择只进行加减运算还是四则运算?

-测试能否选择加减有无负号?

—测试能否选择除法有无余数?

二、测试结果是否正确?

三、测试是否能够产生指定范围的随机数?

上一次编写二柱子的程序也用到了随机生成随机数的知识点,我已经声明是在CSDN上看到大神们的讨论。用的是下面的源码:

 1 #include<iostream>
 2 #include <time.h>
 3 using namespace std;
 4 #define random(x) (rand()%x)
 5
 6 void main()
 7 {
 8     srand((int)time(0));
 9     one = rand() % (r2-r1+ 1) + 1;
10     two = rand() % (r2 - r1 + 1) + 1;
11     cout<<one<<" "<<two<<endl;
12 }

用这种方法貌似只能产生正整数。但是,鉴于这次程序的要求中涉及到用户设置“是否有负数”,所以我有两个思路。一是还用上次的方法,设置swich语句来控制是否手动添加

负号。二是换一中能生成含有负数的随机数。于是我又去人家的博客上围观了一下(原谅我真的记不住生成随机数的方法了╥﹏╥...),经过我的测试,下面的方法可以产生任意区间内的整数(含负数),源码如下:

 1 //编程时的测试程序
 2
 3 #include<iostream>
 4 #include <time.h>
 5 using namespace std;
 6 #define random(x) (rand()%x)
 7
 8 void main()
 9 {
10
11     int one, two;
12     int r, r1, r2;
13     cout << "分别输入下限和上限:" << endl;
14     cin >> r1;
15     cin >> r2;
16     r = r2 - r1;
17     srand((int)time(0));
18     /*one = r1 + r2 * rand() / (RAND_MAX + 1);
19     two = r1 + r2 * rand() / (RAND_MAX + 1);
20     three = r1 + r2 * rand() / (RAND_MAX + 1);
21     four = r1 + r2 * rand() / (RAND_MAX + 1);*/
22
23     one = r1 + rand() % r;
24     two = r1 + rand() % r;
25
26     cout << one<<" ," << two << endl;
27 }

测试数据和截图如下:分别测试-30~50;0~30;-30~0之间的整数,测试结果正确!!

 

四、测试能否选择是否保存到文件里?

老师题目的要求是“可定制打印方式”,我看到有的同学理解是按照不同的输出风格输出,比如一行输出5个或者10个算式,这个可定制。但是我理解的是要用户选择是否要输出到文件里,因此我查阅了C++的输入输出流代码,如下:

 1 #include<fstream>
 2 #include<iostream>
 3 #include<cmath>
 4 using namespace std;
 5
 6 int main()
 7 {
 8     ofstream outfile("Prime.txt", ios::out);
 9     if (!outfile)
10     {
11         cout << "open error!" << endl;
12         exit(1);
13     }
14     outfile <<"1 2 3 4 5 6 " << endl;
15     outfile.close();
16     return 0;
17 }

我们会看到文件成功的建立,并将数据存入到文件里。

但是……(。?_?。)?我不得不说,我在制定思路的时候是想着,先让用户选择是否要打印到文件中,然后在后来的每次输出都用if语句来控制,如果只是屏幕输出就用cout<<输出;如果是保存到文件中就用outfile<<输出……但是……鉴于我的输出量实在是太大了,第一轮代码的编写我只是写了屏幕输出额cout,然后昨天由于作业赶着交就没有修改输出部分的代码,不过我使用了一个函数建立了文件,有时间我一定会再加上的……

五、测试能否选择有无真分数?

六、测试能否选择只进行加减运算还是四则运算?

七、测试能否选择加减有无负号?

八、测试能否选择除法有无余数?

时间: 2024-08-02 15:12:55

RIGHT-BICEP单元测试——“二柱子四则运算升级版”的相关文章

二柱子四则运算定制版+升级版

题目:在上次程序的基础上,实现对连除的判断,并且实现多个数的混合运算,要求可以输入结果,并进行判断. 思路:基于上次程序,首先思考混合运算,这里运用两个数组,分别记录随机产生的运算数和运算符号.然后对连除进行判断,,检查运算符号数组里是否有连续的除号,有的话加上括号,避免歧义.最后对运算结果进行计算,并对用户输入的结果进行比较,给出相应提示,回答,计算方面,要优先对括号,乘除进行运算,然后再进行加减运算,每次运算完后都要记录下运算的结果. 代码: //吕广浩 3/19 #include<iost

二柱子四则运算3

二柱子四则运算3 可怜的二柱子……又一次被坑了…… 老师又在上次的“二柱子四则运算2”的基础上增添了要求,如下: 1.学生写的程序必须能判定用户的输入答案是否正确.直到题目结束,告诉用户做对了几道题. 2.程序必须能处理四种运算的混合模式. 注意:连续的减法和除法,应该遵守左结合的规定. 连续除法要打括号,否则会引起歧义. 一.实验思路 二.实验源代码 三.实验总结和反思 最后,附上我和我的小伙伴的工作照……没有正脸.老师们不要介意啦啦啦~~~~ 小伙伴博客内容页:http://www.cnbl

二柱子四则运算在线答题系统

一:要求: 1.实现在线答题. 2.答题结束后,可以判断对错. 3.并将错题的结果保存起来. 二:设计思路: 1.利用第一次实习的随机出题代码进行出题,然后我们设计让用户进行答题,把用户的答案与题目的正确答案进行比较,然后与正确的答案不一样,我们则显示回答错误,假如和正确答案一致我们则显示回答正确,然后利用i对回答正确的题目进行统计,在最后进行显示,这样我们就编写出一个完整的在线答题判卷系统. 三:程序代码: #include <stdio.h> #include <time.h>

二柱子-四则运算2

一.设计思想 1.避免重复:输出时,确定了运算符号,两个运算数都相同时,重新随机产生操作数,再循环重新产生式子. 2.可定制:设计菜单,可选择数目,也可进行下列各项的选择. 3.是否有乘除法:菜单中选择了有乘除法,则无需修改:无乘除法,则随机产生的运算符号中就去除产生乘除的数字的可能. 4.是否有括号:如果选择了有括号的,可像运算符号那样,产生1-2随机数,根据随机数产生左右括号. 5.数值范围:在菜单中可选择是50以内.100以内等的选项,可在产生随机数中确定两个运算数的范围. 6.加减有无负

二柱子—四则运算1

设计思路: 1.用rand函数随机生成这两个运算数: 2.随机生成这两个数并通过取余数的方式把它们控制在100以内.其中,考虑到除数不能为零,第二个运算数随机产生时+1: 3.随机产生运算符号,运算符号一共有4种,也可以随机产生1-4的数,分情况进行四则运算. 二.程序代码 #include "stdafx.h"#include "stdlib.h" void randout()     //产生随机数并产生随机运算函数{    int x1,x2;   //两个运

二柱子四则运算2.0版本

支持真分数的四则运算 可以自定义题目数量 源代码: 1 #include<stdio.h> 2 #include<iostream> 3 #include<time.h> 4 #include<string> 5 using namespace std; 6 int main() 7 {srand( (unsigned)time( NULL ) ); 8 int i,k,p,v,a,b; 9 int *s1,*s2,*s3; 10 char n; 11 st

二柱子升级版

一.实验思路二柱子的老师又提出了新的要求,要求能在线答题,保存错题.为了避免主函数代码过于重复,将"生成某一个范围内的随机数"."生成随机的分数"."生成一个运算符"."判断整数的正负并取相反数"."把int类型装换为string类型".以及"含有括号的运算"."含有真分数的运算"和"不含真分数的运算"等封装成函数.为了避免定义整型变量,计算时强制

苦逼的二柱子的四则运算问题

问题:二柱子将做好的项目交给了老师,几天后又得到新的需求:   1.实现在线答题:   2.答题结束后,可以判断对错:   3.并将错题的结果保存起来 #include<iostream>#include<stdarg.h>#include<stdlib.h>#include<time.h>#include<math.h>using namespace std;int main(){cout<<endl;cout<<&qu

悲催的二柱子们做小学二年级四则运算题(Javaweb)

1 <%@ page language="java" contentType="text/html; charset=utf-8" 2 pageEncoding="utf-8"%> 3 <!DOCTYPE html> 4 <html> 5 <head> 6 <body background="C:\Users\26624\Desktop/beijing.jpg"> 7