1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 #include<math.h> 5 int menu();//主菜单 6 void fuli();//复利 7 void danli();//单利 8 void capital();//本金 9 void time();//时限 10 void rate();//利率 11 void main()//主函数 12 { 13 int choice; 14 choice=menu(); 15 while(1) 16 { 17 switch(choice) 18 { 19 case 1: 20 fuli(); 21 break; 22 case 2: 23 danli(); 24 break; 25 case 3: 26 capital(); 27 break; 28 case 4: 29 time(); 30 break; 31 case 5: 32 rate(); 33 break; 34 } 35 choice=menu(); 36 } 37 } 38 39 40 int menu()//主菜单 41 { 42 int choice; 43 printf(" ********复利计算器******** "); 44 printf(" 功能选择 "); 45 printf(" 1.复利计算 "); 46 printf(" 2.单利计算 "); 47 printf(" 3.本金计算 "); 48 printf(" 4.时间计算 "); 49 printf(" 5.利率计算 "); 50 printf(" 请输入1-5功能键: "); 51 while( (!(scanf("%d",&choice)))|| (choice<1)||(choice>5))//重新输入 52 { 53 printf(" 请重新选择: "); 54 printf(" 功能选择 "); 55 printf(" 1.复利计算 "); 56 printf(" 2.单利计算 "); 57 printf(" 3.本金计算 "); 58 printf(" 4.时间计算 "); 59 printf(" 5.利率计算 "); 60 printf(" 请输入1-5功能键: "); 61 } 62 return choice; 63 } 64 65 66 67 void jisuan()//计算公式 68 { 69 printf("复利计算公式 "); 70 printf("F=P*(1+i)N次方 "); 71 printf("单利计算公式 "); 72 printf("I=P*i*N次方 "); 73 printf("本金计算公式 "); 74 printf("P=F*(1+i)N次方 "); 75 printf("时间计算公式 "); 76 printf("T=(int)(log(F/P)/log(1+i/m)/m) "); 77 printf("利率计算公式 "); 78 printf("R=m*(pow(F/P,1.0(N*m))-1) "); 79 80 printf("F:最后值: "); 81 printf("P:本金: "); 82 printf("R:利率: "); 83 printf("T:时间: "); 84 } 85 86 87 void fuli() //复利 88 { 89 int T,m; 90 double R,F,P; 91 jisuan(); 92 printf("存入本金:"); 93 scanf("%lf",&P); 94 printf("年利率:"); 95 scanf("%lf",&R); 96 printf("存入年限:"); 97 scanf("%d",&T); 98 printf("年复利次数:"); 99 scanf("%d",&m); 100 F=P*pow((1+T/m),T*m); 101 printf("最后值:%.4lf ",F); 102 } 103 104 105 void danli() //单利 106 { 107 int T; 108 double R,F,P; 109 jisuan(); 110 printf("存入本金:"); 111 scanf("%lf",&P); 112 printf("年利率:"); 113 scanf("%lf",&R); 114 printf("存入年限:"); 115 scanf("%d",&T); 116 F=P*R*T; 117 printf("最后值:%.4lf ",F); 118 } 119 120 121 122 123 void capital() //本金 124 { 125 int T,m; 126 double R,F,P; 127 jisuan(); 128 printf("终值:"); 129 scanf("%lf",&F); 130 printf("年利率:"); 131 scanf("%lf",&R); 132 printf("存入年限:"); 133 scanf("%d",&T); 134 printf("年复利次数:"); 135 scanf("%d",&m); 136 P=F/pow((1+R/m),R*m); 137 printf("本金:%.4lf ",P); 138 } 139 140 141 142 void time() //时间 143 { 144 int T,m; 145 double R,F,P; 146 jisuan(); 147 printf("存入本金:"); 148 scanf("%lf",&P); 149 printf("年利率:"); 150 scanf("%lf",&R); 151 printf("年复利次数:"); 152 scanf("%d",&m); 153 printf("终值:"); 154 scanf("%lf",&F); 155 T=(int)(log(F/P)/log(1+R/m)/m); 156 printf("时间:%d ",T); 157 } 158 159 160 void rate() //利率 161 { 162 int T,m; 163 double R,F,P; 164 jisuan(); 165 printf("存入本金:"); 166 scanf("%lf",&P); 167 printf("存入年限:"); 168 scanf("%d",&T); 169 printf("年复利次数:"); 170 scanf("%d",&m); 171 printf("最后值:"); 172 scanf("%lf",&F); 173 R=m*(pow(F/P,1.0/(T*m))-1); 174 printf("利率:%.4lf ",R); 175 }
结果截图: