复利计算单元测试


计算年利率


(本金,本利,年限)


终值


1


(10000,20000,10)


0.07



2


(10000,-20000,20)


弹出,输入负数,请重新输入


没有提示


未改进


3


(a,20000,20)


弹出。输入不合法,请重新输入


没有提示


已改进,弹出,输入不合法!,请重新输入


计算月年收益


(投资额,年利率,年限)


终值


1


(10000,0.03,30)


490026.78



2


(10000,1,30)


弹出,请输入年利率在0到1之间的书的数,请重新输入!


没有提示


为改进请输入年利率在0到1之间的书的数,请重新输入!

       

计算等额本息还款


(贷款金额,年利率,归还年限)


终值


1


(20000,0.05,10)


212.13



2


(20000,0.05,500)


弹出,您输入的年限太大,请重新输入!


没有提示


未改进

     

#include<stdio.h>
#include<math.h>
void List();
void fuli1();
void fuli2();
void danli();
void benjin();
void shijian();
void lilv();
void benxi();

void List()//目录表
{

printf("\t \n");
printf("\t 1.复利(一次) \n");
printf("\t 2.复利(多次) \n");
printf("\t 3.单利 \n");
printf("\t 4.资金 \n");
printf("\t 5.时间 \n");
printf("\t 6.利率 \n");
printf("\t 7.本息 \n");
printf("\t \n");

}
void fuli1()//一次复利计算
{

double p,i,sum1,n;//总金额p,利率i,本利和sum1
a:printf("输入存款金额:\n");
scanf("%lf",&p);
if(p<=0)
{
printf("请输入>0的数");
goto a;
}

b:printf("输入利率:\n");
scanf("%lf",&i);
if(i>1)
{
printf("请输入0~1之间的数字");
goto b;
}
c:printf("输入存储时间(年):\n");
scanf("%lf",&n);
if(n<=1){
printf("请输入>1的贮存时间");
goto c;
}
sum1=p*pow((1+i),n);//复利的计算公式
printf("本利和为:%.2lf\n",sum1);//输出复利计算的结果
}
void fuli2()//多次复利计算
{

double p,i,n,sum2=0;
char c;
printf("多次等额投入方式:\na.等额多次月投\nb.等额多次年投\n请选择:");
scanf("%s",&c);
if(c==‘a‘)
{
d:printf("输入月投金额:");
scanf("%lf",&p);
if(p<=0)
{
printf("请输入>0的数");
goto d;
}
e:printf("输入年利率:");
scanf("%lf",&i);
if(i<=0&&i>1){
printf("请输入0~1之间的数字");
goto e;
}
f:printf("输入存储时间(年):");
scanf("%lf",&n);
if(n<=1){
printf("请输入>1的贮存时间");
goto f;
}
sum2=p*12*(pow(1+i,n)-1)/i;
printf("本利和为:%.2lf\n",sum2);
}
else
{
g:printf("输入年投金额:");
scanf("%lf",&p);
if(p<=0)
{
printf("请输入>0的数");
goto g;
}
h:printf("\t*输入年利率:");
scanf("%lf",&i);
if(i<=0&&i>1){
printf("请输入0~1之间的数字");
goto h;
}
i:printf("\t*输入存储时间(年):");
scanf("%lf",&n);
if(n<1){
printf("请输入>1的贮存时间");
goto i;
}
sum2=(p*pow((1+i),n)-1)/i;
printf("本利和为:%.2lf\n",sum2);
}
}

void danli()//单利计算
{

double p,i,sum3,n;
j:printf("输入存款金额:\n");
scanf("%lf",&p);
if(p<=0)
{
printf("请输入>0的数");
goto j;
}
k:printf("输入年利率:\n");
scanf("%lf",&i);
if(i<=0&&i>1){
printf("请输入0~1之间的数字");
goto k;
}
l:printf("输入存储时间(年):\n");
scanf("%lf",&n);
if(n<=0){
printf("请输入>1的贮存时间");
goto l;
}
sum3=p*(1+i*n);
printf("本利和为:%.2lf\n",sum3);
}
void benjin() //投入资金
{

double sum4,i,p,n;//p为投入本金
printf("\n\t*输入本利和:");
scanf("%lf",&sum4);

n:printf("\t*输入年利率:");
scanf("%lf",&i);
if(i<=0&&i>1){
printf("请输入0~1之间的数字");
goto n;
}
o:printf("\t*请输入存款时间(年):");
scanf("%lf",&n);
if(n<=0){
printf("请输入>1的贮存时间");
goto o;
}
p=sum4/(1+i*n);
printf("\t投入的本金为:%.2lf\n\n",p);
}
void shijian() //投入时间
{
double n;
double sum5,i,p;
p:printf("\n\t*输入存储金额:");
scanf("%lf",&p);
if(p<=0)
{
printf("请输入>0的数");
goto p;
}
q:printf("\t*输入年利率:");
scanf("%lf",&i);
if(i<=0&&i>1){
printf("请输入0~1之间的数字");
goto q;
}
printf("\t*输入本利和:");
scanf("%lf",&sum5);
n=(log(sum5/p))/(log(1+i));
printf("\t投入的时间为:%.0lf\n\n",n);
}
void lilv() //利率
{
double sum6,i,p,n;
r:printf("\n\t*输入存储金额:");
scanf("%lf",&p);
if(p<=0)
{
printf("请输入>0的数");
goto r;
}
s:printf("\t*输入存储时间(年):");
scanf("%lf",&n);
if(n<=0){
printf("请输入>0的贮存时间");
goto s;
}
printf("\t*输入本利和:");
scanf("%lf",&sum6);
i=pow((sum6/p),(1/n))-1;
printf("\t利率为:%.2lf\n\n",i);
}
void benxi()
{
double sum7,i,p,n;
t:printf("\n\t*输入贷款金额:");
scanf("%lf",&sum7);
if(sum7<=0)
{
printf("请输入>0的数");
goto t;
}
u:printf("\t*输入贷款时间(年):");
scanf("%lf",&n);
if(n<=0){
printf("请输入>0的贮存时间");
goto u;
}
printf("\t*输入年利率:");
scanf("%lf",&i);
p=sum7*i/(12*(1+i)*(pow(1+i,n)-1));
printf("\t每月等额本息还款为:%.2lf\n\n",p);

}
main()
{
int a;
while(1)
{
List();
printf("\t请选择:");
while(scanf("%d",&a)!=1||a<0||a>7)
{
printf("\t输入错误!\n\t重新选择:");
getchar();
}

switch(a){
case 1:
fuli1();
break;
case 2:
fuli2();
break;
case 3:
danli();
break;
case 4:
benjin();
break;
case 5:
shijian();
break;
case 6:
benxi();
break;
case 7:
benxi();
break;
}
}
}

总结:这次单元测试改进了一些bug,但是还有一部分的bug没有想到怎么去修复。

时间: 2024-08-08 01:22:24

复利计算单元测试的相关文章

软件工程实验一 复利计算——单元测试

对复利计算器进行单元测试 一.实验历次题目要求 1.客户说:帮我开发一个复利计算软件. 2.如果按照单利计算,本息又是多少呢? 3.假如30年之后要筹措到300万元的养老金,平均的年回报率是3%,那么,现在必须投入的本金是多少呢? 4.利率这么低,复利计算收益都这么厉害了,如果拿100万元去买年报酬率10%的股票,若一切顺利,过多长时间,100万元就变成200万元呢? 5.如果我希望在十年内将100万元变成200万元,应该找到报酬率在多少的投资工具来帮助我达成目标?如果想在5年后本金翻倍,报酬率

复利计算 单元测试

[visualunit是国产的C/C++单元测试工具,我用过觉得很不错,该公司的技术支持也很到位,在使用过程中遇到问题都能及时帮用户解决.Visual unit最新的版本是2.1.部分功能清单如下:具有完善的桩功能,从开始编码到升级维护的各个阶段,均可对任意层次.范围的代码实施分割测试:自动生成测试代码和用例框架:可视化编辑测试用例,用简单语法判断各种输出,还可自动判断中间变量:可在用例中随意模拟.控制子函数的行为,包括设定返回值.输出参数.成员变量.全局变量的值,多次调用同一子函数可以设置不同

143 复利计算 单元测试

#include<stdio.h>#include<math.h>int year,n;double p,q,F=0.0;void innit(){ printf("注释:p为现金\n"); printf(" year为年限\n"); printf(" n为年复利次数\n"); printf(" q为年利率\n"); printf(" F为年复利终值\n");}void menu()

03-29复利计算单元测试

说明:之前用C语言写代码,现用java写代码. 场景分析,期待的返回值以及运行结果如下表: 注释:预期结果0.0,表示输入数据有误.即得不到正确的结果 测试模块 测试输入 预期结果 运行结果 bug跟踪 单利计算 获得利息 “100”,”2”,”1” 102.0 正确 “0”,”2”,”1” 0.0 正确 “0”,”dsaf”,”1” 0.0 正确 “0”,”-100”,”1” 0.0 正确 单利计算 获得利息 “100”,”2”,”1” 102.01 正确 “0”,”dsaf”,”1” 0.0

复利计算—单元测试

1.手动测试: 2.代码测试: 1 package invest; 2 3 import static org.junit.Assert.*; 4 import static org.hamcrest.CoreMatchers.*; 5 import org.junit.Test; 6 7 public class CompundingTest { 8 9 10 11 @Test 12 public void testCompunding() { 13 double F=Compunding.c

复利计算4.0单元测试

——————————复利计算程序单元测试报告—————————— ————————————4.0 单元测试—————————————— ————————————————要求—————————————— 根据复利计算程序,进行Junit单元测试. 在测试会出现什么场面,有哪些情况的结果? 所要期待的返回值是多少? 写测试程序. 运行测试. 完成结果: 测试一:复利计算本息 1.期待的返回值是13439,实际值是13439.16,允许有1.0以内的误差. 2.测试程序: 此为复利计算: 在允许误差为

单元测试:复利计算

测试要求: 对我们和复利计算程序,写单元测试. 有哪些场景? 期待的返回值 写测试程序. 运行测试. 1.源代码:https://github.com/rongjielong/rongjielong/blob/master/calculate/src/exercise.java 2.测试代码:https://github.com/rongjielong/rongjielong/tree/master/calculate/src/test 3.测试示例: (1)判断输入是否正确: 1 packag

复利计算5.0(改成Java版本)与 单元测试

//由于C语言版本不方便单元测试,所以改成了java版本,部分代码如下:import java.util.Scanner; public class FuLi{ public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.println("\n复利计算按 1\n单利计算按 2\n计算筹集的养老金按 3\n计算时间按 4\n计算您要的利率按 5\n计算本利和投资按 6\n计算

复利计算6.0

一.主要功能与需求分析 1.本金为100万,利率或者投资回报率为3%,投资年限为30年,那么,30年后所获得的利息收入:按复利计算公式来计算就是:1,000,000×(1+3%)^30 2.如果按照单利计算,本息的最终收益 3.假如30年之后要筹措到300万元的养老金,平均的年回报率是3%,那么,现在必须投入的本金是多少呢? 4.利率这么低,复利计算收益都这么厉害了,如果拿100万元去买年报酬率10%的股票,若一切顺利,过多长时间,100万元就变成200万元呢? 5.如果我希望在十年内将100万