复利计算4.0
2016-03-20 13:45
190 查看
程序完成时间为3月20日13:35分。
发表时间为3月20日13:37分。
此版本是在前面三个版本的基础上进行完善,实现了等额本息还款计算,解决了如果用户输入一部分不恰当的数据会提示输入不合法,请重新输入,增强了系统的运行性,不会因此而导致系统会奔溃
不断修改的可观性,使用户更加直观的运用此运算器。
发表时间为3月20日13:37分。
此版本是在前面三个版本的基础上进行完善,实现了等额本息还款计算,解决了如果用户输入一部分不恰当的数据会提示输入不合法,请重新输入,增强了系统的运行性,不会因此而导致系统会奔溃
不断修改的可观性,使用户更加直观的运用此运算器。
#include<stdio.h> #include<math.h> #define x1 while(0 == #define x2 ){ while('\n' != getchar()) { } printf("输入不合法!\n请重新输入: ---"); } double danli(double i,int N,double P) { double nlx,F; nlx = P*i; F = nlx*N + P; return F; } double fuli(double i,int W,int N,double P) { double F; i=pow(1+i/W,W)-1; F=P*pow((i+1),N); return F; } double gusuan(double i,int W,int N,double F) { double P; i = pow(1+i/W,W)-1; P = F/pow((i+1),N); return P; } double shijian(double P,double i,double F) { double N,x; x=F/P; N=(log(x))/(log(i+1)); return N; } double nianxian(double P,double N,double F) { double i; //i = W*(pow(pow(F/P,1.0/N),1.0/W)-1.0); i = pow(F/P,1.0/N)-1.0; return i; } double sum() { double y,yue,F=0.0,i,mi; double nl,yl; int N,W; int ch,j; printf("****** 1-年投资 2-月投资 ******\n"); scanf("%d",&ch); if(ch == 1) { printf("请输入年投资额:\n"); x1 scanf("%lf",&y) x2; } else { printf("请输入月投资额:\n"); x1 scanf("%lf",&yue) x2; } printf("请输入年利率\n"); x1 scanf("%lf",&i) x2; printf("请输入年限\n"); x1 scanf("%d",&N) x2; if(ch == 1) { F = y; for(j=0 ; j<N ; j++) { nl = F*i; F=y+nl+F; } return F-y; } else { F = yue; mi = i/12.0; for(j=0 ; j<N*12 ; j++) { yl = F*mi; F=yue+yl+F; } return F-yue; } } double refund() { double P,i,month_amount; int N,month; printf("************您进入本息还款计算************\n"); printf("请输入贷款金额:\n"); x1 scanf("%lf",&P) x2 printf("请输入年利率:\n"); x1 scanf("%lf",&i) x2 printf("请输入归还年限:\n"); x1 scanf("%d",&N) x2 //每月还款额=[贷款本金×月利率×(1+月利率)^还款月数]÷[(1+月利率)^还款月数-1] i = i/12; month = N*12; month_amount = P*i*pow((1.0+i),month)/(pow(1.0+i,month)-1); return month_amount; } void main() { double P,F1,F,i; //P是本金,F是收益,i年利率 int N,W,ch2; //是期限 while(1) { printf("\t\t***************欢迎使用复利计算器*************\n\n"); printf("\t\t| -----1--------为复利--------------- |\n\n"); printf("\t\t| -----2--------为单利--------------- |\n\n"); printf("\t\t| -----3-------为估算---------------- |\n\n"); printf("\t\t| -----4-------为年限---------------- |\n\n"); printf("\t\t| -----5-------为年利率-------------- |\n\n"); printf("\t\t| -----6-------为月年收益-------------- |\n\n"); printf("\t\t| -----7-------等额本息还款-------------- |\n\n"); printf("\t\t| -----0-------为退出---------------- |\n\n"); printf("\t\t**************请选择想要的功能************\n"); x1 scanf("%d",&ch2) x2;//控制选择 switch(ch2){ case 1: printf("请输入本金:\n"); x1 scanf("%lf",&P) x2; printf("请输入年利率\n"); x1 scanf("%lf",&i) x2; printf("请输入年限:\n"); x1 scanf("%d",&N) x2; printf("请输入复利次数:\n"); x1 scanf("%d",&W) x2; F1 = fuli(i,W,N,P); break; case 2: printf("请输入本金:\n"); x1 scanf("%lf",&P) x2; printf("请输入年利率\n"); x1 scanf("%lf",&i) x2; printf("请输入年限:\n"); x1 scanf("%d",&N) x2; F1 = danli(i,N,P); break; case 3: printf("请输入本利\n"); x1 scanf("%lf",&F) x2; printf("请输入年利率\n"); x1 scanf("%lf",&i) x2; printf("请输入年限:\n"); x1 scanf("%d",&N) x2; printf("请输入复利次数:\n"); x1 scanf("%d",&W) x2; F1 = gusuan(i,W,N,F); break; case 4: printf("请输入本金\n"); x1 scanf("%lf",&P) x2; printf("请输入年利率\n"); x1 scanf("%lf",&i) x2; printf("请输入本利\n"); x1 scanf("%lf",&F) x2; F1=shijian(P,i,F); break; case 5: printf("请输入本金:\n"); x1 scanf("%lf",&P) x2; printf("请输入本利:\n"); x1 scanf("%lf",&F) x2; printf("请输入年限\n"); x1 scanf("%d",&N) x2; F1=nianxian(P,N,F); // i=pow((F/P),(1.0/N))-1; break; case 6: F1=sum(); break; case 7: F1=refund(); break; case 0:break; default: printf("输入不合法!!\n"); continue ; } if(ch2==0) break; printf("结果为:%.2lf\n",F1); } }
相关文章推荐
- Session共享之Memcached部署
- 哈希表(只存Key值)简易版
- lintcode-medium-Edit Distance
- 安卓中转场动画小demo
- Shell printf 命令
- 灰度图像直方图变换的一些代码
- leetcode:Palindrome Partitioning II
- 灰度图像直方图变换的一些代码
- IIS 应用程序池.NET40 重新注册
- Shell printf 命令
- Spring框架基础示例
- 如何制作牛肉虾
- 闭关日记 Day07
- Hadoop伪分布式环境搭建
- 51nod贪心算法入门-----独木舟问题
- 5-19 支票面额 (15分)C语言
- java第八节-多态,抽象类,接口
- Java基础之二:Java语法基础
- Qt4.8.5+VS2010+Addin配置
- vector族函数