void fanxiang()
{
float money;
float base;
double total = 1.0f;
int day;
int x;
int k;
char lab;
double total1;
printf("-------------------------------------------------------------|\n");
printf("请输入你需要得到的金额:\n");
scanf("%f",&money);
while(money<=0)
{
printf("-------------------------------------------------------------|\n");
printf("输入值为负数,请重新输入:\n");
scanf("%f",&money);
}
printf("-------------------------------------------------------------|\n");
printf("请输入平均年回报率:\n");
scanf("%f",&base);
while(base<=0)
{
printf("-------------------------------------------------------------|\n");
printf("输入值为负数,请重新输入:\n");
scanf("%f",&base);
}
printf("-------------------------------------------------------------|\n");
printf("请输入存入的年数\n");
scanf("%d",&day);
while(day<=0)
{
printf("-------------------------------------------------------------|\n");
printf("输入值为负数,请重新输入:\n");
scanf("%d",&day);
}
printf("-------------------------------------------------------------|\n");
lab:printf("若是复利选择1,单利选择2\n");
scanf("%d",&x);
printf("-------------------------------------------------------------|\n");
if(x==1)
{
printf("请输入复利次数:\n");
scanf("%d",&k);
while(k<=0)
{
printf("-------------------------------------------------------------|\n");
printf("输入值为负数,请重新输入:\n");
scanf("%d",&k);
}
printf("-------------------------------------------------------------|\n");
total=total*pow(1+base/k,k*day);
total1=money/total;
printf("需要的本金为:%f\n",total1);
printf("-------------------------------------------------------------|\n");
}
else if(x==2)
{
total=base*day;
total1=money/(1+total);
printf("需要的本金为:%f\n",total1);
printf("-------------------------------------------------------------|\n");
}
else
{
printf("请重新输入1或者2\n");
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来进行修改。