0319 复利计算器4.0
 

/**

程序完成时间: 3月19日 9:50pm

发表时间: 3月20日 0:18am

此版本是在前三个版本的基础上添加了 等额本息还贷计算 的新功能
并且按照实验要求增强了系统的健壮性,保证在输入一部分的错误的
数据,后程序不会崩溃。例如是在输入int或者是输入double类型的
地方,输入了字符,是会提示并且允许重新输入。

并且通过宏定义使得代码变得简洁,还有简化了修改的操作,还认识
到宏定义的妙用是可以使得编程变得简单,还可以增大代码的复用性。

**/


 1 #include<stdio.h>
  2 #include<math.h>
  3 #include<stdlib.h>
  4
  5 #define WARN1   while(0 ==
  6 #define WARN2   ){    while('\n' != getchar())    {    }    printf("输入不合法!\n请重新输入:    ");        }
  7
  8 double danli()
  9 {
 10     double P,F,i; //P是本金,F是收益,i年利率
 11     int N; //是期限
 12     double nlx;
 13     printf("------进入单利计算\n");
 14     printf("请输入本金:\n");
 15     WARN1    scanf("%lf",&P)    WARN2
 16     printf("请输入年利率\n");
 17     WARN1    scanf("%lf",&i)    WARN2
 18     printf("请输入年限:\n");
 19     WARN1    scanf("%d",&N)    WARN2
 20
 21     nlx = P*i;
 22     F = nlx*N + P;
 23     return F;
 24
 25 }
 26
 27 double fuli()
 28 {
 29
 30     double P,F,i; //P是本金,F是收益,i年利率
 31     int N,W; //是期限
 32     printf("-------进入复利计算\n");
 33     printf("请输入本金:\n");
 34     WARN1    scanf("%lf",&P)    WARN2
 35     printf("请输入年利率\n");
 36     WARN1    scanf("%lf",&i)    WARN2
 37     printf("请输入年限:\n");
 38     WARN1    scanf("%d",&N)    WARN2
 39     printf("请输入复利次数:\n");
 40     scanf("%d",&W);
 41
 42     i=pow(1+i/W,W)-1;
 43     F=P*pow((i+1),N);
 44     return F;
 45 }
 46
 47 double gusuan()
 48 {
 49     double P,F,i; //P是本金,F是收益,i年利率
 50     int N,W; //是期限
 51     printf("-------进入本金计算\n");
 52     printf("请输入收益:\n");
 53     WARN1    scanf("%lf",&F)    WARN2
 54     printf("请输入年利率\n");
 55     WARN1    scanf("%lf",&i)    WARN2
 56     printf("请输入年限:\n");
 57     WARN1    scanf("%d",&N)    WARN2
 58     printf("请输入复利次数:\n");
 59     WARN1    scanf("%d",&W)    WARN2
 60     i = pow(1+i/W,W)-1;
 61     P = F/pow((i+1),N);
 62     return P;
 63 }
 64
 65 double TZtime()
 66 {
 67     double year;
 68     double P,F,i; //P是本金,F是收益,i年利率
 69     int W; //是期限
 70     printf("-------进入投资时间计算\n");
 71     printf("请输入本金:\n");
 72     WARN1    scanf("%lf",&P)    WARN2
 73     printf("请输入收益:\n");
 74     WARN1    scanf("%lf",&F)    WARN2
 75     printf("请输入年利率\n");
 76     WARN1    scanf("%lf",&i)    WARN2
 77     printf("请输入复利次数:\n");
 78     WARN1    scanf("%d",&W)    WARN2
 79     i = pow((1+i/W),W)-1;
 80     year = log(F/P)/log(1+i);
 81     return year;
 82
 83 }
 84 double bestProject()
 85 {
 86     double P,F,i;
 87     int N,W;
 88     printf("-------进入项目利率计算\n");
 89     printf("请输入本金:\n");
 90     WARN1    scanf("%lf",&P)    WARN2
 91     printf("请输入收益:\n");
 92     WARN1    scanf("%lf",&F)    WARN2
 93     printf("请输入年限\n");
 94     WARN1    scanf("%d",&N)    WARN2
 95     printf("请输入复利次数:\n");
 96     WARN1    scanf("%d",&W)    WARN2
 97     i = W*(pow(pow(F/P,1.0/N),1.0/W)-1.0);
 98     return i;
 99
100
101 }
102
103 double sum()
104 {
105     double y,F=0.0,i;
106     int N;
107     int ch;
108     printf("-------进入定投计算\n");
109     printf("####### 1-年投资  2-月投资 #######\n");
110     WARN1    scanf("%d",&ch)    WARN2
111     if(ch == 1)
112     {
113         printf("请输入年投资额:\n");
114         WARN1    scanf("%lf",&y)    WARN2
115     }
116     else
117     {
118         printf("请输入月投资额:\n");
119         WARN1    scanf("%lf",&y)    WARN2
120     }
121
122     printf("请输入年利率\n");
123     WARN1    scanf("%lf",&i)    WARN2
124     printf("请输入年限\n");
125     WARN1    scanf("%d",&N)    WARN2
126     //        printf("请输入复利次数:\n");
127     //        scanf("%d",&W);
128     if(ch == 2)
129     {
130         i = i/12.0;
131         N = N*12;
132     }
133     F = y*(1.0+i)*(-1+pow(1.0+i,N))/i;
134
135     return F;
136
137
138
139 }
140
141 double refund()
142 {
143     double P,i,month_amount;
144     int N,month;
145     printf("-------进入本息还款计算\n");
146     printf("请输入贷款金额:\n");
147     WARN1    scanf("%lf",&P)    WARN2
148     printf("请输入年利率:\n");
149     WARN1    scanf("%lf",&i)    WARN2
150     printf("请输入归还年限:\n");
151     WARN1    scanf("%d",&N)    WARN2
152
153         //每月还款额=[贷款本金×月利率×(1+月利率)^还款月数]÷[(1+月利率)^还款月数-1]
154
155     i = i/12;
156     month = N*12;
157     month_amount = P*i*pow((1.0+i),month)/(pow(1.0+i,month)-1);
158     return month_amount;
159
160 }
161
162 void main()
163 {
164     double F1;
165     int ch2;
166
167     while(1)
168     {
169         printf("*************复利计算机(4.0)************\n");
170
171         printf("------    1 复利                  ------\n");
172         printf("------    2 单利                  ------\n");
173         printf("------    3 本金估算              ------\n");
174         printf("------    4 投资年限估算          ------\n");
175         printf("------    5 最优投资项目利率估算  ------\n");
176         printf("------    6 定期投资收益计算      ------\n");
177         printf("------    7 等额本息还款计算      ------\n");
178         printf("------    0 退出                  ------\n");
179         printf("请选择:    ");
180         WARN1    scanf("%d",&ch2)    WARN2
181         switch(ch2){
182         case 1:
183             F1 = fuli(); break;
184         case 2:
185             F1 = danli(); break;
186         case 3:
187             F1 = gusuan();
188             break;
189         case 4:
190             F1 = TZtime();
191             break;
192         case 5:
193             F1 = bestProject();
194         case 6:
195             F1 = sum();
196             break;
197         case 7:
198             F1 = refund();
199             break;
200         case 0:
201             exit(1);
202             break;
203         default:
204             printf("输入不合法!!\n");
205             continue ;
206         }
207
208             printf("结果为:%.2lf\n",F1);
209
210     }
211
212
213 }

posted on 2016-03-20 00:16 liezh 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/liezhihua/p/5290781.html

0319 复利计算器4.0相关推荐

  1. 计算机junit测试类,复利计算器4.0之再遇JUnit

    复利计算器4.0之再遇JUnit 前言 虽然之前的复利计算器版本已经尝试过使用JUnit单元测试,但由于没有系统性地学习过JUnit的使用,用得并不好,主要问题表现在测试的场景太少,并没有达到测试所需 ...

  2. 0318复利计算器4.0

    #include<stdio.h> #include<math.h>double benjin=0,W=0; double year=0; int N=1; double li ...

  3. 0329 复利计算器5.0 Juint单元测试 组员 254列志华 253韩麒麟

    0329 复利计算器5.0 Juint单元测试 组员 254列志华 253韩麒麟 一.主要功能与需求分析 1.本金为100万,利率或者投资回报率为3%,投资年限为30年,那么,30年后所获得的利息收入 ...

  4. 复利计算机软件,复利计算器5.0加强版

    一.客户需求 已完成需求: 1.客户说:帮我开发一个复利计算软件. 2.如果按照单利计算,本息又是多少呢? 3.假如30年之后要筹措到300万元的养老金,平均的年回报率是3%,那么,现在必须投入的本金 ...

  5. 复利计算1.0,2.0,3.0

    1 import java.util.Scanner; 2 3 public class Fulijisuan { 4 5 public static void main(String[] args) ...

  6. 复利计算器app发布

    复利计算器app发布 抱歉:由于无法实现服务端的持续开启,发布的app仅为简单的单机版,暂时舍弃了c/s版本的一些功能,如:投资动态管理功能. 应用详情博客:请点击这里 apk下载地址1(百度手机助手 ...

  7. 复利java_复利计算1.0,2.0,3.0(java)

    importjava.util.Scanner;public classch {public static voidmain(String[] args) { Scanner scanner= new ...

  8. Labview项目---制作复利计算器

    Compound Interest Calculator 项目介绍 Front Panel Block Diagram Sub VI Block Diagram设计说明 使用方法 项目介绍 本文章的解 ...

  9. python复利计算_如何让Python复利计算器给出正确的答案

    早前曾发布过一个关于错误的问题.多亏了这里的几个人,我才解决了这个问题.现在我遇到了我的复利计算器的问题,当你输入本金.复利(年.月等).利率(0.03等)和年数时,计算错误. 其他Q链接:final ...

最新文章

  1. Java微信二次开发(八)
  2. 科技发烧友之单反佳能700d中高端
  3. java xml 合并_Java中合并XML文档的设计与实现
  4. C# 采用线程重绘图形要点记录
  5. 使用RMAN对数据文件进行恢复
  6. Keras——用Keras搭建RNN分类循环神经网络
  7. Hadoop出现core-site.xml not found的解决办法
  8. 围棋智能机器人阿法狗,阿尔法狗机器人围棋
  9. python与排版设计_python 排版
  10. 循环冗余校验CRC及对应例题
  11. word图片另存为变黑色_五种方法可将Word文档转换成图片文件
  12. PHP手机深色模式,哪些手机深色模式比较好?六大主流品牌手机深色模式对比介绍...
  13. 海淘也疯狂 跨境电商网站8月监测报告
  14. Windows优化大师下载| Windows优化大师下载
  15. Python导入excel数据
  16. RStudio 开发环境配置
  17. 关于电脑网速网占用问题(svchost.exe)(¥72)
  18. sql语句的编程手册(转)
  19. UniswapV2Library.sol
  20. selenium webdriver 使用webDriver点击ENTER建的两种方法

热门文章

  1. 最新小白秒赞网站源码
  2. Oracle 11g中的IO Calibrate(automatic DOP: skipped because of IO calibrate statistics are missing)
  3. 2021年新版电影小程序商业版+前端(含教程、采集)
  4. 【论文导读2】Causal Machine Learning:A Survey and Open Problems
  5. 【MFC】对话框练习
  6. Ubuntu 16.04lts 下使用打印机器
  7. YOLO系列目标检测算法——PP-YOLO
  8. 7系列XADC调试记录
  9. 用PS制作256色的BMP图片
  10. 洛谷P1650:田忌赛马 ← 贪心算法