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 }
转载于:https://www.cnblogs.com/liezhihua/p/5290781.html
0319 复利计算器4.0相关推荐
- 计算机junit测试类,复利计算器4.0之再遇JUnit
复利计算器4.0之再遇JUnit 前言 虽然之前的复利计算器版本已经尝试过使用JUnit单元测试,但由于没有系统性地学习过JUnit的使用,用得并不好,主要问题表现在测试的场景太少,并没有达到测试所需 ...
- 0318复利计算器4.0
#include<stdio.h> #include<math.h>double benjin=0,W=0; double year=0; int N=1; double li ...
- 0329 复利计算器5.0 Juint单元测试 组员 254列志华 253韩麒麟
0329 复利计算器5.0 Juint单元测试 组员 254列志华 253韩麒麟 一.主要功能与需求分析 1.本金为100万,利率或者投资回报率为3%,投资年限为30年,那么,30年后所获得的利息收入 ...
- 复利计算机软件,复利计算器5.0加强版
一.客户需求 已完成需求: 1.客户说:帮我开发一个复利计算软件. 2.如果按照单利计算,本息又是多少呢? 3.假如30年之后要筹措到300万元的养老金,平均的年回报率是3%,那么,现在必须投入的本金 ...
- 复利计算1.0,2.0,3.0
1 import java.util.Scanner; 2 3 public class Fulijisuan { 4 5 public static void main(String[] args) ...
- 复利计算器app发布
复利计算器app发布 抱歉:由于无法实现服务端的持续开启,发布的app仅为简单的单机版,暂时舍弃了c/s版本的一些功能,如:投资动态管理功能. 应用详情博客:请点击这里 apk下载地址1(百度手机助手 ...
- 复利java_复利计算1.0,2.0,3.0(java)
importjava.util.Scanner;public classch {public static voidmain(String[] args) { Scanner scanner= new ...
- Labview项目---制作复利计算器
Compound Interest Calculator 项目介绍 Front Panel Block Diagram Sub VI Block Diagram设计说明 使用方法 项目介绍 本文章的解 ...
- python复利计算_如何让Python复利计算器给出正确的答案
早前曾发布过一个关于错误的问题.多亏了这里的几个人,我才解决了这个问题.现在我遇到了我的复利计算器的问题,当你输入本金.复利(年.月等).利率(0.03等)和年数时,计算错误. 其他Q链接:final ...
最新文章
- Java微信二次开发(八)
- 科技发烧友之单反佳能700d中高端
- java xml 合并_Java中合并XML文档的设计与实现
- C# 采用线程重绘图形要点记录
- 使用RMAN对数据文件进行恢复
- Keras——用Keras搭建RNN分类循环神经网络
- Hadoop出现core-site.xml not found的解决办法
- 围棋智能机器人阿法狗,阿尔法狗机器人围棋
- python与排版设计_python 排版
- 循环冗余校验CRC及对应例题
- word图片另存为变黑色_五种方法可将Word文档转换成图片文件
- PHP手机深色模式,哪些手机深色模式比较好?六大主流品牌手机深色模式对比介绍...
- 海淘也疯狂 跨境电商网站8月监测报告
- Windows优化大师下载| Windows优化大师下载
- Python导入excel数据
- RStudio 开发环境配置
- 关于电脑网速网占用问题(svchost.exe)(¥72)
- sql语句的编程手册(转)
- UniswapV2Library.sol
- selenium webdriver 使用webDriver点击ENTER建的两种方法
热门文章
- 最新小白秒赞网站源码
- Oracle 11g中的IO Calibrate(automatic DOP: skipped because of IO calibrate statistics are missing)
- 2021年新版电影小程序商业版+前端(含教程、采集)
- 【论文导读2】Causal Machine Learning:A Survey and Open Problems
- 【MFC】对话框练习
- Ubuntu 16.04lts 下使用打印机器
- YOLO系列目标检测算法——PP-YOLO
- 7系列XADC调试记录
- 用PS制作256色的BMP图片
- 洛谷P1650:田忌赛马 ← 贪心算法