因为之前发烧一直没有了解这个 所以最近才补上 分数扣了就扣了 补上先
单元测试迟点更
#include<stdio.h>
#include <math.h>
#include <string.h> struct jilv{
char lei[];
int nian;
double li,money2,money;
}num[]; void frame(){
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*********************************\n");
}
fuli(int i){
int a,b,c;
double d,d2,result;
strcpy(num[i].lei,"复利计算");
printf("请输入本金:");
scanf("%d",&a);
num[i].money=a;
printf("请输入利率:");
scanf("%lf",&d);
num[i].li=d;
printf("请输入年限:");
scanf("%d",&b);
num[i].nian=b;
d=+d;
d2=pow(d,b);
result=a*d2;
num[i].money2=result;
printf("到期后本息为:%lf\n",result);
i++;
here:
printf("********************\n");
printf("1.继续计算\n2.上一层\n");
scanf("%d",&c);
if (c==)
fuli(i);
else if (c==)
return i;
else
{
printf("输入有误!\n");
goto here;
}
return i;
}
danli(int i)
{
int a,b,d;
double c,result;
strcpy(num[i].lei,"单利计算");
printf("输入本金:");
scanf("%d",&a);
num[i].money=a;
printf("输入利率:");
scanf("%lf",&c);
num[i].li=c;
printf("输入年限:");
scanf("%d",&b);
num[i].nian=b;
result=a*c*b+a;
num[i].money2=result;
printf("到期后本息为:%lf\n",result);
i++;
here1:
printf("********************\n");
printf("1.继续计算\n2.上一层\n");
scanf("%d",&d);
if (d==)
danli(i);
else if (d==)
return i;
else
{
printf("输入有误!\n");
goto here1;
}
return i;
}
benjin(int i)
{
int a,b,c;
double d,d2,result;
strcpy(num[i].lei,"复利本金");
printf("输入期望:");
scanf("%d",&a);
num[i].money2=a;
printf("输入年限:");
scanf("%d",&b);
num[i].nian=b;
printf("输入利率:");
scanf("%lf",&d);
num[i].li=d;
d=+d;
d2=pow(d,b);
result=a/d2;
num[i].money=result;
printf("你需要投入的本金为:%lf\n",result);
i++;
here2:
printf("********************\n");
printf("1.继续计算\n2.上一层\n");
scanf("%d",&c);
if (c==)
benjin(i);
else if (c==)
return i;
else
{
printf("输入有误!\n");
goto here2;
}
return i;
}
shijian(int i)
{
int c,n=;
double a,b,d,d2,result2;
strcpy(num[i].lei,"复利时间");
printf("输入期望:");
scanf("%lf",&a);
num[i].money2;
printf("输入本金:");
scanf("%lf",&b);
num[i].money=b;
printf("输入利率:");
scanf("%lf",&d);
num[i].li=d;
result2=a/b;
d=+d;
d2=d;
while (d<result2)
{
d=d*d2;
n++;
}
printf("%d ",n);printf("%lf\n",result2);
printf("需要%d年才能达到期望\n",n);
num[i].nian=n;
i++;
here3:
printf("********************\n");
printf("1.继续计算\n2.上一层\n");
scanf("%d",&c);
if (c==)
shijian(i);
else if (c==)
return i;
else
{
printf("输入有误!\n");
goto here3;
}
return i;
}
lilv(int i)
{
int d,c;
double a,b,result,n2,n;
strcpy(num[i].lei,"复利利率");
printf("输入本金:");
scanf("%lf",&a);
num[i].money=a;
printf("输入期望:");
scanf("%lf",&b);
num[i].money2=b;
printf("输入年限:");
scanf("%d",&c);
num[i].nian=c;
n2=(double)c;
n=/n2;
a=b/a;
result=pow(a,n);
printf("你需要找一个利率为%lf的理财工具\n",result-);
num[i].li=result-;
i++;
here4:
printf("********************\n");
printf("1.继续计算\n2.上一层\n");
scanf("%d",&d);
if (d==)
lilv(i);
else if (d==)
return i;
else
{
printf("输入有误!\n");
goto here4;
}
return i;
}
biao(int i)
{
int b;
printf("计算类型\t\t本金\t\t年限\t\t利率\t\t本息\n");
for (b=;b<i;b++)
{
printf("%s\t%15.3lf %12d %15.3lf %15.3lf\n",num[b].lei,num[b].money,num[b].nian,num[b].li,num[b].money2);b++;
}
} main(){
int a,i=,b=;
/*for (b=0;b<20;b++)
{
num[b].money=0;
}
*/
frame();
printf("输入需要操作的序号:");
scanf("%d",&a);
while(a>&&a<=)
{
switch (a)
{
case :
i=fuli(i);
break;
case :
i=danli(i);
break;
case :
i=benjin(i);
break;
case :
i=shijian(i);
break;
case :
i=lilv(i);
break;
case :
biao(i);
}
frame();
printf("输入需要操作的序号:");
scanf("%d",&a);
}
b=; }