您的位置:首页 > 编程语言 > C语言/C++

复利计算测试(C语言)

2016-03-30 22:40 253 查看
对我们和复利计算程序,写单元测试。

有哪些场景?

期待的返回值

写测试程序。

运行测试。

测试模块测试输入预期结果运行结果bug跟踪
计算终值(本金,年限,利率)终值
1(1000,10,0,.3)13785.8513785.85
2(0,10,0.3)提示输入错误,重新输入0.00已修改,弹出提示:输入错误!!重新输入
3(-1000,10,0.3)提示输入错误,重新输入-13785.85已修改,弹出提示:输入错误!!重新输入
4(1000,0,0.3)提示输入错误,重新输入1000.00已修改,弹出提示:输入错误!!重新输入
5(1000,10,0)提示输入错误,重新输入1000.00已修改,弹出提示:输入错误!!重新输入
计算本金(年限,利率,终值)本金
1(10,0.3,30000)7500.007500.00
2(0,0.3,30000)提示输入错误,重新输入30000.00已修改,弹出提示:输入错误!!重新输入
3(-10,0.3,30000)提示输入错误,重新输入-15000.00已修改,弹出提示:输入错误!!重新输入
4(10,0,30000)提示输入错误,重新输入30000.00已修改,弹出提示:输入错误!!重新输入
5(10,0.3,-3000)提示输入错误,重新输入-7500.00已修改,弹出提示:输入错误!!重新输入
计算时间(本金,利率,终值)时间
1(1000,0.3,3000)44
2(0,0.3,3000)提示输入错误,重新输入1已修改,弹出提示:输入错误!!重新输入
3(-1000,0.3,3000)提示输入错误,重新输入-1已修改,弹出提示:输入错误!!重新输入
4(1000,0,3000)提示输入错误,重新输入1已修改,弹出提示:输入错误!!重新输入
5(1000,-0.3,3000)提示输入错误,重新输入-3已修改,弹出提示:输入错误!!重新输入
计算利率(本金,年限,终值)利率
1(1000,10,30000)0.410.41
2(0,10,30000)提示输入错误,重新输入乱码已修改,弹出提示:输入错误!!重新输入
3(-1000,10,30000)提示输入错误,重新输入乱码已修改,弹出提示:输入错误!!重新输入
4(1000,0,30000)提示输入错误,重新输入乱码已修改,弹出提示:输入错误!!重新输入
5(1000,10,0)提示输入错误,重新输入-1.00已修改,弹出提示:输入错误!!重新输入
计算等额本息还款(贷款,年限,利率)本息还款
1(10000,10,0.3)15.0413.04
2(0,10,0.3)提示输入错误,重新输入0.00已修改,弹出提示:输入错误!!重新输入
3(10000,0,0.3)提示输入错误,重新输入乱码已修改,弹出提示:输入错误!!重新输入
4(10000,10,0)提示输入错误,重新输入乱码已修改,弹出提示:输入错误!!重新输入
5(-10000,10,0.3)提示输入错误,重新输入-15.04已修改,弹出提示:输入错误!!重新输入
以上是对功能的测试,几乎都是出现同样的问题,本金、利率、时间等输入负值,程序还是会继续运行,没有提示错误。

以下是修改前和修改后的结果:

以函数A()为例子:

原代码:

void A()//一次投入复利计算
{
int n;//时间n
double p,i,sum1;//总金额p,利率i,本利和sum1
printf("\n\t*请输入存款金额:");
scanf("%lf",&p);
printf("\t*请输入利率:");
scanf("%lf",&i);
printf("\t*请输入存储时间(年):");
scanf("%d",&n);
sum1=p*pow((1+i),n);//复利的计算公式
printf("\t**本利和为:%.2lf\n\n",sum1);//输出复利计算的结果
}

运行结果:



修改后的代码:

void A()//一次投入复利计算

{

int n;//时间n

double p,i,sum1;//总金额p,利率i,本利和sum1

printf("\n\t*请输入存款金额:");

while(scanf("%lf",&p)!=1||p<=0)

{

printf("\t输入错误!!!\n\n\t*请重新输入存款金额:");

getchar();

}

printf("\t*请输入利率:");

while(scanf("%lf",&i)!=1||i<=0)

{

printf("\t输入错误!!!\n\n\t*请重新输入利率:");

getchar();

}

printf("\t*请输入存储时间(年):");

while(scanf("%d",&n)!=1||n<=0||n>100)

{

printf("\t输入错误!!!\n\n\t*请重新输入存储时间(年):");

getchar();

} ;

sum1=p*pow((1+i),n);//复利的计算公式

printf("\t**本利和为:%.2lf\n\n",sum1);//输出复利计算的结果

}

运行结果:



除了复利计算的功能出现问题以外,选择功能这一模块也有问题

原代码:

while(scanf("%d",&sel)!=1||sel<0||sel>7)//防止输入的是字符以及输入的数字不是整数0-7

{

printf("\t输入错误!!!\n\n\t请重新选择:");

getchar();

}

运行结果:



修改后的代码:

while(scanf("%d",&sel)!=1||sel<0||sel>7)//防止输入的是字符以及输入的数字不是整数0-7

{

printf("\t输入错误!!!\n\n\t请重新选择:");

while(getchar() != '\n'); // 处理回车键

}

运行结果:



通过这次测试,我发现了以上的问题,也对代码做了修改,但我知道我目前的程序还是有问题的,我会继续测试,继续完善代码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: