#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的本金: "); scanf("%lf",&F); } printf("年利率:"); scanf("%lf",&i); while(i<=0 || i>=1) { printf("输入错误,请重新输入0~1之间的利率: "); scanf("%lf",&i); } printf("存入年限:"); scanf("%d",&N); while(N<=0 || N>100) { printf("输入错误,请重新输入0~100之间的年限: "); scanf("%d",&N); } printf("年复利次数:"); scanf("%d",&m); while(m<=0) { printf("输入错误,请重新输入大于0的复利次数: "); scanf("%d",&m); } P=F/pow((1+i/m),N*m); printf("年复利终值为%.4lf需要本金为:%.4lf ",F,P); } void fuli()//计算复利终值 { int N,m; double i,F,P; printf("存入本金:"); scanf("%lf",&P); while(P<=0 || P>999999999) { printf("输入错误,请重新输入大于0的本金: "); scanf("%lf",&P); } printf("年利率:"); scanf("%lf",&i); while(i<=0 || i>=1) { printf("输入错误,请重新输入0~1之间的利率: "); scanf("%lf",&i); } printf("存入年限:"); scanf("%d",&N); printf("年复利次数:"); scanf("%d",&m); F=P*pow((1+i/m),N*m); printf("复利终值:%.4lf ",F); } void danli()//单利计算 { int N; double i,H,P,L; printf("存入本金:"); scanf("%lf",&P); while(P<=0 || P>999999999) { printf("输入错误,请重新输入大于0的本金: "); scanf("%lf",&P); } printf("年利率:"); scanf("%lf",&i); while(i<=0 || i>=1) { printf("输入错误,请重新输入0~1之间的利率: "); scanf("%lf",&i); } printf("存入年限:"); scanf("%d",&N); L=P*N*i; H=L+P; printf("本息和为:%.4lf ",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之间的利率: "); scanf("%lf",&i); } printf("年复利次数:"); scanf("%d",&m); N=(int)(log(F/P)/log(1+i/m)/m); printf("从%.4lf到%.4lf需要%d年 ",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 ",P,F,i); } void nianjinzhongzhi()//计算年金终值 { int N,n; double i,F,P; printf("存入本金:"); scanf("%lf",&P); while(P<=0 || P>999999999) { printf("输入错误,请重新输入大于0的本金: "); scanf("%lf",&P); } printf("存入年限:"); scanf("%d",&N); printf("年利率:"); scanf("%lf",&i); while(i<=0 || i>=1) { printf("输入错误,请重新输入0~1之间的利率: "); scanf("%lf",&i); } printf(" 1:按年投资 2:按月投资 "); 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("输入有误!请重新输入 "); goto A; } printf("%d年后的总产值:%.4lf ",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之间的利率: "); scanf("%lf",&i); } P=F*i/(12*(1+i)*(pow(1+i,N)-1)); printf("贷款%.4lf每月需要还款:%.4lf ",F,P); } void menu()//菜单 { printf(" |-----------------------------------| "); printf(" | 欢迎欢迎 | "); printf(" |-----------------------------------| "); printf(" | 1:计算本金 | "); printf(" | 2:计算年复利终值 | "); printf(" | 3:单利计算 | "); printf(" | 4:计算年份 | "); printf(" | 5:计算年利率 | "); printf(" | 6:年金终值 | "); printf(" | 7:贷款金额 | "); printf(" | 0:结束 | "); printf(" |-----------------------------------| "); printf("请输入你要选择的功能(0~7): "); } 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(); } }
完善中