• 复利计算-4


      1 #include<stdio.h>
      2 #include<stdlib.h>
      3 #include<math.h>
      4 void Compounding(){
      5     int n,k;
      6     double F,P;
      7     float i;
      8     printf("|-----------------------------------------|
    ");
      9     printf("   请输入你所存入的本金:");
     10     scanf("%lf",&P);
     11     printf("|-----------------------------------------|
    ");
     12     printf("   请输入你所存的年利率比:");
     13     scanf("%f",&i);
     14     printf("|-----------------------------------------|
    ");
     15     printf("   请输入你所存的年限:");
     16     scanf("%d",&n);
     17     printf("|-----------------------------------------|
    ");
     18     printf("   请输入你所存的复利次数:");
     19     scanf("%d",&k);
     20     printf("|-----------------------------------------|
    ");
     21     F=P*pow(i/k+1,k*n);
     22     printf("
    通过复利存款,你所获得的金额为:%.4lf
    
    ",F);
     23 }
     24 
     25 void Simple_Interested(){
     26     int n;
     27     double F,P;
     28     float i;
     29     printf("|-----------------------------------------|
    ");
     30     printf("   请输入你所存入的本金:");
     31     scanf("%lf",&P);
     32     printf("|-----------------------------------------|
    ");
     33     printf("   请输入你所存的周期利息:");
     34     scanf("%f",&i);
     35     printf("|-----------------------------------------|
    ");    
     36     printf("   请输入你所存的周期数:");
     37     scanf("%d",&n);
     38     printf("|-----------------------------------------|
    ");
     39     F=P*(1+i*n);
     40     printf("
    通过单利存款,你所获得的金额为:%.4lf
    
    ",F);
     41 }
     42 
     43 void Comparison(){
     44     printf("		<复利计算器>
    ");
     45     Compounding();
     46     printf("		<单利计算器>
    ");
     47     Simple_Interested();
     48 }
     49 
     50 void Count_Deposit(){
     51     double F,P;
     52     float i;
     53     int n,k,a;
     54     printf("
    请输入你希望获得的最终金额为:");
     55     scanf("%lf",&F);
     56     printf("
    请输入你选的存款方式(1、复利;2、单利):");
     57     scanf("%d",&a);
     58     switch(a)
     59     {
     60     case 1:
     61         printf("
    请输入<<复利>>存款的信息!!!!!
    ");
     62         printf("|-----------------------------------------|
    ");
     63         printf("   请输入<<复利>>你所存的年利率比:");
     64         scanf("%f",&i);
     65         printf("|-----------------------------------------|
    ");
     66         printf("   请输入<<复利>>你所存的年限:");
     67         scanf("%d",&n);
     68         printf("|-----------------------------------------|
    ");
     69         printf("   请输入<<复利>>你所存的复利次数:");
     70         scanf("%d",&k);
     71         printf("|-----------------------------------------|
    ");
     72         P=F/pow(i/k+1,k*n);
     73         printf("
    通过复利存款,你所需要的存款金额为:%lf
    
    ",P);
     74         break;
     75     case 2:
     76         printf("请输入<<单利>>存款的信息!!!!!
    ");
     77         printf("|-----------------------------------------|
    ");
     78         printf("   请输入<<单利>>你所存的周期利息:");
     79         scanf("%f",&i);
     80         printf("|-----------------------------------------|
    ");    
     81         printf("   请输入<<单利>>你所存的周期数(年份):");
     82         scanf("%d",&n);
     83         printf("|-----------------------------------------|
    ");
     84         P=F/(1+i*n);
     85         printf("
    通过单利存款,你所需要的存款金额为:%lf
    
    ",P);
     86         break;
     87     }
     88 }
     89 
     90 void Count_Year(){
     91     double n,F,P;
     92     float i;
     93     int k,a;
     94     printf("
    请输入你所存的金额为:");
     95     scanf("%lf",&P);
     96     printf("
    请输入你希望获得的最终金额为:");
     97     scanf("%lf",&F);
     98     printf("
    请输入你选的存款方式(1、复利;2、单利):");
     99     scanf("%d",&a);
    100     switch(a)
    101     {
    102     case 1:
    103         printf("
    请输入<<复利>>存款的信息!!!!!
    ");
    104         printf("|-----------------------------------------|
    ");
    105         printf("   请输入<<复利>>你所存的年利率比:");
    106         scanf("%f",&i);
    107         printf("|-----------------------------------------|
    ");
    108         printf("   请输入<<复利>>你所存的复利次数:");
    109         scanf("%d",&k);
    110         printf("|-----------------------------------------|
    ");
    111         n=log(F/P)/log(i/k+1)/k;
    112         printf("
    通过复利存款,你所需要的存款年限为:%lf
    
    ",n);
    113         break;
    114     case 2:
    115         printf("请输入<<单利>>存款的信息!!!!!
    ");
    116         printf("|-----------------------------------------|
    ");
    117         printf("   请输入<<单利>>你所存的周期利息:");
    118         scanf("%f",&i);
    119         printf("|-----------------------------------------|
    ");
    120         n=(F/P-1)/i;
    121         printf("
    通过单利存款,你所需要的存款年限为:%lf
    
    ",n);
    122         break;
    123     }
    124 }
    125 
    126 void Count_Interest(){
    127     double F,P,b,i;
    128     int k,a,n;
    129     printf("
    请输入你所存的金额为:");
    130     scanf("%lf",&P);
    131     printf("
    请输入你希望获得的最终金额为:");
    132     scanf("%lf",&F);
    133     printf("
    请输入你所存款的年限:");
    134     scanf("%d",&n);
    135     printf("
    请输入你选的存款方式(1、复利;2、单利):");
    136     scanf("%d",&a);
    137     switch(a)
    138     {
    139     case 1:
    140         printf("
    请输入<<复利>>存款的信息!!!!!
    ");
    141         printf("|-----------------------------------------|
    ");
    142         printf("   请输入<<复利>>你所存的复利次数:");
    143         scanf("%d",&k);
    144         printf("|-----------------------------------------|
    ");
    145         b=(double)1/(k*n);
    146         i=(pow(F/P,b)-1)*k;
    147         printf("
    通过复利存款,你所需要的存款的利率为:%lf
    
    ",i);
    148         break;
    149     case 2:
    150         i=(F/P-1)/n;
    151         printf("
    通过单利计算,你所需要的存款的利率为:%lf
    
    ",i);
    152         break;
    153     }
    154 }
    155 
    156 void Count_Money(){
    157     int n,a;
    158     double F,P;
    159     float i;
    160     printf("请输入存款的信息!!!!!
    ");
    161     printf("
    |-----------------------------------------|
    ");
    162     printf("   请输入你每次所投入的本金:");
    163     scanf("%lf",&P);
    164     printf("|-----------------------------------------|
    ");
    165     printf("   请输入你所投本金的利息:");
    166     scanf("%f",&i);
    167     printf("|-----------------------------------------|
    ");    
    168     printf("   请输入你所存款的年限:");
    169     scanf("%d",&n);
    170     printf("|-----------------------------------------|
    ");
    171     printf("
    请输入你选的存款方式(1、年投;2、月投):");
    172     scanf("%d",&a);
    173     switch(a)
    174     {
    175     case 1:
    176         F=P*(1+i)*(pow(1+i,n)-1)/i;
    177         break;
    178     case 2:
    179         F=P*12*(1+i)*(pow(1+i,n)-1)/i;    
    180         break;
    181     }
    182     printf("
    存款%d年,你所获得的金额为:%.4lf
    
    ",n,F);
    183 }
    184 
    185 
    186 
    187 
    188 void Count_Refunt(){
    189     int n,a;
    190     double F,P;
    191     float i;
    192     printf("请输入借款的信息!!!!!
    ");
    193     printf("
    |-----------------------------------------|
    ");
    194     printf("   请输入你所借的金额:");
    195     scanf("%lf",&F);
    196     printf("|-----------------------------------------|
    ");
    197     printf("   请输入你借款的利息(年):");
    198     scanf("%f",&i);
    199     printf("|-----------------------------------------|
    ");    
    200     printf("   请输入你借款的年限:");
    201     scanf("%d",&n);
    202     printf("|-----------------------------------------|
    ");
    203     printf("
    请输入你选的借款方式(1、年还;2、月还):");
    204     scanf("%d",&a);
    205     switch(a)
    206     {
    207     case 1:
    208         P=F*i*pow(1+i,n)/pow(1+i,n-1);
    209         printf("
    你每年要还的金额为:%.4lf
    
    ",P);
    210         break;
    211     case 2:
    212         i=i/12;
    213         n=n*12;
    214         P=F*i*pow(1+i,n)/pow(1+i,n-1);
    215         printf("
    你每月要还的金额为:%.4lf
    
    ",P);
    216         break;
    217     }
    218     
    219 }
    220 
    221 void menu(){
    222     printf("|-----------------------------------------|
    ");
    223     printf("|               0、退出系统               |
    ");
    224     printf("|-----------------------------------------|
    ");
    225     printf("|               1、复利存款               |
    ");
    226     printf("|-----------------------------------------|
    ");
    227     printf("|               2、单利存款               |
    ");
    228     printf("|-----------------------------------------|
    ");
    229     printf("|      3、输出复利存款、单利存款的结果    |
    ");
    230     printf("|-----------------------------------------|
    ");
    231     printf("|            4、输入终值求存款            |
    ");
    232     printf("|-----------------------------------------|
    ");
    233     printf("|        5、输入终值、存款求所需年份      |
    ");
    234     printf("|-----------------------------------------|
    ");
    235     printf("|       6、输入终值、存款、年份求利率     |
    ");
    236     printf("|-----------------------------------------|
    ");
    237     printf("| 7、输每年(月)投入本金,求几年后的终值 |
    ");
    238     printf("|-----------------------------------------|
    ");
    239     printf("|        8、输入贷款,求年(月)还款      |
    ");
    240     printf("|-----------------------------------------|
    ");
    241 }
    242 
    243 void main(){
    244     char t;
    245     int a;
    246     menu();
    247 loop:
    248     printf("
    请输入你的选择:");
    249     if(scanf("%d",&a)==1){
    250     switch(a)
    251     {
    252     case 0:
    253          exit(0);
    254          break;
    255     case 1:
    256         system("cls");
    257         t=getchar();
    258         Compounding();
    259         break;
    260     case 2:
    261         system("cls");
    262         t=getchar();
    263         Simple_Interested();
    264         break;
    265     case 3:
    266         system("cls");
    267         t=getchar();
    268         Comparison();
    269         break;
    270     case 4:
    271         system("cls");
    272         t=getchar();
    273         Count_Deposit();
    274         break;
    275     case 5:
    276         system("cls");
    277         t=getchar();
    278         Count_Year();
    279         break;
    280     case 6:
    281         system("cls");
    282         t=getchar();
    283         Count_Interest();
    284         break;
    285     case 7:
    286         system("cls");
    287         t=getchar();
    288         Count_Money();
    289         break;
    290     case 8:
    291         system("cls");
    292         t=getchar();
    293         Count_Refunt();
    294         break;
    295     default:
    296         printf("输入有误!请重新输入!(目前功能选项只有1~8)
    ");
    297         goto loop;
    298     }    
    299     }
    300     else{
    301         system("cls");
    302         t=getchar();
    303         printf("
    输入有误!请重新输入!(目前功能选项只有1~8)
    
    ");
    304         main();
    305     }
    306 }

    1、年还款

    2、月还款

  • 相关阅读:
    Jenkins自定义变量共享
    HTML中调用JavaScript的几种情况和规范写法
    [Python] 建 Django 项目
    [Django] Window上通过IIS发布Django网站
    [Python] 怎么把HTML的报告转换为图片,利用无头浏览器
    VMware vSphere Client
    mysql优化
    LINUX 内核的优化
    sed强大的固定替换格式
    nfs以及优化
  • 原文地址:https://www.cnblogs.com/moliny/p/5302876.html
Copyright © 2020-2023  润新知