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

单元测试代码

2016-03-30 20:21 381 查看
#include<stdio.h>
#include<math.h>
#include<conio.h>

void benjin()//计算本金
{
int N,m;
double i,F,P;
printf("复利终值:");
scanf("%lf",&F);
while(F<=0  ||  F>999999999)
{
printf("输入错误,请重新输入大于0的本金:\n");
scanf("%lf",&F);
}
printf("年利率:");
scanf("%lf",&i);
while(i<=0 || i>=1)
{
printf("输入错误,请重新输入0~1之间的利率:\n");
scanf("%lf",&i);
}
printf("存入年限:");
scanf("%d",&N);
while(N<=0 || N>100)
{
printf("输入错误,请重新输入0~100之间的年限:\n");
scanf("%d",&N);
}
printf("年复利次数:");
scanf("%d",&m);
while(m<=0)
{
printf("输入错误,请重新输入大于0的复利次数:\n");
scanf("%d",&m);
}
P=F/pow((1+i/m),N*m);
printf("年复利终值为%.4lf需要本金为:%.4lf\n",F,P);
}
void fuli()//计算复利终值
{
int N,m;
double i,F,P;
printf("存入本金:");
scanf("%lf",&P);
while(P<=0  ||  P>999999999)
{
printf("输入错误,请重新输入大于0的本金:\n");
scanf("%lf",&P);
}
printf("年利率:");
scanf("%lf",&i);
while(i<=0 || i>=1)
{
printf("输入错误,请重新输入0~1之间的利率:\n");
scanf("%lf",&i);
}
printf("存入年限:");
scanf("%d",&N);
printf("年复利次数:");
scanf("%d",&m);
F=P*pow((1+i/m),N*m);
printf("复利终值:%.4lf\n",F);
}
void danli()//单利计算
{
int N;
double i,H,P,L;
printf("存入本金:");
scanf("%lf",&P);
while(P<=0  ||  P>999999999)
{
printf("输入错误,请重新输入大于0的本金:\n");
scanf("%lf",&P);
}
printf("年利率:");
scanf("%lf",&i);
while(i<=0 || i>=1)
{
printf("输入错误,请重新输入0~1之间的利率:\n");
scanf("%lf",&i);
}
printf("存入年限:");
scanf("%d",&N);
L=P*N*i;
H=L+P;
printf("本息和为:%.4lf\n",H);
}
void years()//求年份
{
int N,m;
double i,F,P;
printf("复利终值:");
scanf("%lf",&F);
printf("存入本金:");
scanf("%lf",&P);
printf("年利率:");
scanf("%lf",&i);
while(i<=0 || i>=1)
{
printf("输入错误,请重新输入0~1之间的利率:\n");
scanf("%lf",&i);
}
printf("年复利次数:");
scanf("%d",&m);
N=(int)(log(F/P)/log(1+i/m)/m);
printf("从%.4lf到%.4lf需要%d年\n",P,F,N);
}
void nianlilv()//计算年利率
{
int N,m;
double i,F,P;
printf("复利终值:");
scanf("%lf",&F);
printf("存入本金:");
scanf("%lf",&P);
printf("存入年限:");
scanf("%d",&N);
printf("年复利次数:");
scanf("%d",&m);
i=m*(pow(F/P,1.0/(N*m))-1);
printf("从%.4lf到%.4lf需要%.4lf\n",P,F,i);
}
void nianjinzhongzhi()//计算年金终值
{
int N,n;
double i,F,P;
printf("存入本金:");
scanf("%lf",&P);
while(P<=0  ||  P>999999999)
{
printf("输入错误,请重新输入大于0的本金:\n");
scanf("%lf",&P);
}
printf("存入年限:");
scanf("%d",&N);
printf("年利率:");
scanf("%lf",&i);
while(i<=0 || i>=1)
{
printf("输入错误,请重新输入0~1之间的利率:\n");
scanf("%lf",&i);
}
printf("\t\t1:按年投资\n\t\t2:按月投资\n");
A:printf("请选择你要的功能<1|2>:");
scanf("%d",&n);
if(n==1)
{
F=P*(pow(1+i,N)-1)/i;

}
else if(n==2)
{
F=N*12*(P*(i/12)+P);
}
else
{
printf("输入有误!请重新输入\n");
goto A;
}
printf("%d年后的总产值:%.4lf\n",N,F);

}
void benxi()//本息
{
double F,i,P;
int N;
printf("输入贷款金额:");
scanf("%lf",&F);
printf("输入贷款时间(年):");
scanf("%D",&N);
printf("输入年利率:");
scanf("%lf",&i);
while(i<=0 || i>=1)
{
printf("输入错误,请重新输入0~1之间的利率:\n");
scanf("%lf",&i);
}
P=F*i/(12*(1+i)*(pow(1+i,N)-1));
printf("贷款%.4lf每月需要还款:%.4lf\n",F,P);

}
void menu()//菜单
{
printf("\t\t|-----------------------------------|\n");
printf("\t\t|             欢迎欢迎              |\n");
printf("\t\t|-----------------------------------|\n");
printf("\t\t|           1:计算本金              |\n");
printf("\t\t|           2:计算年复利终值        |\n");
printf("\t\t|           3:单利计算              |\n");
printf("\t\t|           4:计算年份              |\n");
printf("\t\t|           5:计算年利率            |\n");
printf("\t\t|           6:年金终值              |\n");
printf("\t\t|           7:贷款金额              |\n");
printf("\t\t|           0:结束                  |\n");
printf("\t\t|-----------------------------------|\n");
printf("请输入你要选择的功能(0~7):\n");

}
void main()
{
int n;
while(1)
{
menu();
scanf("%d",&n);
if(n==0)
break;
switch(n)
{
case 1:
benjin();break;
case 2:
fuli();break;
case 3:
danli();break;
case 4:
years();break;
case 5:
nianlilv();break;
case 6:
nianjinzhongzhi();break;
case 7:
benxi();break;
case 0:n=0;break;

}
getch();
}
}





                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: