void fanxiang() { float money; float base; double total = 1.0f; int day; int x; int k; char lab; double total1; printf("-------------------------------------------------------------| "); printf("请输入你需要得到的金额: "); scanf("%f",&money); while(money<=0) { printf("-------------------------------------------------------------| "); printf("输入值为负数,请重新输入: "); scanf("%f",&money); } printf("-------------------------------------------------------------| "); printf("请输入平均年回报率: "); scanf("%f",&base); while(base<=0) { printf("-------------------------------------------------------------| "); printf("输入值为负数,请重新输入: "); scanf("%f",&base); } printf("-------------------------------------------------------------| "); printf("请输入存入的年数 "); scanf("%d",&day); while(day<=0) { printf("-------------------------------------------------------------| "); printf("输入值为负数,请重新输入: "); scanf("%d",&day); } printf("-------------------------------------------------------------| "); lab:printf("若是复利选择1,单利选择2 "); scanf("%d",&x); printf("-------------------------------------------------------------| "); if(x==1) { printf("请输入复利次数: "); scanf("%d",&k);
while(k<=0)
{ printf("-------------------------------------------------------------| "); printf("输入值为负数,请重新输入: "); scanf("%d",&k); } printf("-------------------------------------------------------------| "); total=total*pow(1+base/k,k*day); total1=money/total; printf("需要的本金为:%f ",total1); printf("-------------------------------------------------------------| "); } else if(x==2) { total=base*day; total1=money/(1+total); printf("需要的本金为:%f ",total1); printf("-------------------------------------------------------------| "); } else { printf("请重新输入1或者2 "); goto lab; } }
目前这是我复利计算中其中一个函数方法,下面将对其进行单元测试
测试模块 | 测试输入 | 预期结果 | 实际结果 | 蟑螂追踪 |
计算本金模块 | 终金,年回报率,存入年数,选择存款方式,(复利情况有次数) | 本金值 | 本金值 | |
测试复利运算结果 | 100000,0.03,5,1,3 | 86134.947769 | 符合 | |
测试终金为负值 | -100000,0.03,5,1,3 | 提示终金重新输入 | 符合 | |
测试年回报率为负值 | -100000,0.03,5,1,3 | 提示年回报率重新输入 | 符合 | |
测试存入年数为负值 | 100000,0.03,-5,1,3 | 提示存入年数重新输入 | 符合 | |
测试存款方式输入除1和2的值 | 100000,0.03,-5,5 | 提示存款方式重新输入 | 符合 | |
测试单利运算结果 | 100000,0.03,5,2 | 86956.521993 | 符合 | |
测试输入字母 | a,0.03,5,2 | 提示输入错误请重新输入数字 | 不符合,其出现无限循环 | |
测试输入为0 | 0,0.03,5,2 | 提示重新输入 | 符合 | |
测试输入数字过大 | 9999999999999,0.03,5,2 | 提示数字过大请重新输入 | 不符合,本金出现8695652049671.691400 | |
测试输入年为小数 | 100000,0.03,1.5,2 | 程序可以继续运行 | 不符合,出现无限循环 | |
测试输入利率为0 | 100000,0,5,2 | 提示请重新输入 | 符合 | |
测试输入复利情况下复利次数为负数 | 100000,0.03,5,1,-3 | 提示重新输入 | 符合 | |
...... | ...... | ...... | ...... |
目前已经进行BUG的查出,以后将会对BUG来进行修改。