单元测试代码
2016-03-30 20:21
381 查看
#include<stdio.h> #include<math.h> #include<conio.h> void benjin()//计算本金 { int N,m; double i,F,P; printf("复利终值:"); scanf("%lf",&F); while(F<=0 || F>999999999) { printf("输入错误,请重新输入大于0的本金:\n"); scanf("%lf",&F); } printf("年利率:"); scanf("%lf",&i); while(i<=0 || i>=1) { printf("输入错误,请重新输入0~1之间的利率:\n"); scanf("%lf",&i); } printf("存入年限:"); scanf("%d",&N); while(N<=0 || N>100) { printf("输入错误,请重新输入0~100之间的年限:\n"); scanf("%d",&N); } printf("年复利次数:"); scanf("%d",&m); while(m<=0) { printf("输入错误,请重新输入大于0的复利次数:\n"); scanf("%d",&m); } P=F/pow((1+i/m),N*m); printf("年复利终值为%.4lf需要本金为:%.4lf\n",F,P); } void fuli()//计算复利终值 { int N,m; double i,F,P; printf("存入本金:"); scanf("%lf",&P); while(P<=0 || P>999999999) { printf("输入错误,请重新输入大于0的本金:\n"); scanf("%lf",&P); } printf("年利率:"); scanf("%lf",&i); while(i<=0 || i>=1) { printf("输入错误,请重新输入0~1之间的利率:\n"); scanf("%lf",&i); } printf("存入年限:"); scanf("%d",&N); printf("年复利次数:"); scanf("%d",&m); F=P*pow((1+i/m),N*m); printf("复利终值:%.4lf\n",F); } void danli()//单利计算 { int N; double i,H,P,L; printf("存入本金:"); scanf("%lf",&P); while(P<=0 || P>999999999) { printf("输入错误,请重新输入大于0的本金:\n"); scanf("%lf",&P); } printf("年利率:"); scanf("%lf",&i); while(i<=0 || i>=1) { printf("输入错误,请重新输入0~1之间的利率:\n"); scanf("%lf",&i); } printf("存入年限:"); scanf("%d",&N); L=P*N*i; H=L+P; printf("本息和为:%.4lf\n",H); } void years()//求年份 { int N,m; double i,F,P; printf("复利终值:"); scanf("%lf",&F); printf("存入本金:"); scanf("%lf",&P); printf("年利率:"); scanf("%lf",&i); while(i<=0 || i>=1) { printf("输入错误,请重新输入0~1之间的利率:\n"); scanf("%lf",&i); } printf("年复利次数:"); scanf("%d",&m); N=(int)(log(F/P)/log(1+i/m)/m); printf("从%.4lf到%.4lf需要%d年\n",P,F,N); } void nianlilv()//计算年利率 { int N,m; double i,F,P; printf("复利终值:"); scanf("%lf",&F); printf("存入本金:"); scanf("%lf",&P); printf("存入年限:"); scanf("%d",&N); printf("年复利次数:"); scanf("%d",&m); i=m*(pow(F/P,1.0/(N*m))-1); printf("从%.4lf到%.4lf需要%.4lf\n",P,F,i); } void nianjinzhongzhi()//计算年金终值 { int N,n; double i,F,P; printf("存入本金:"); scanf("%lf",&P); while(P<=0 || P>999999999) { printf("输入错误,请重新输入大于0的本金:\n"); scanf("%lf",&P); } printf("存入年限:"); scanf("%d",&N); printf("年利率:"); scanf("%lf",&i); while(i<=0 || i>=1) { printf("输入错误,请重新输入0~1之间的利率:\n"); scanf("%lf",&i); } printf("\t\t1:按年投资\n\t\t2:按月投资\n"); A:printf("请选择你要的功能<1|2>:"); scanf("%d",&n); if(n==1) { F=P*(pow(1+i,N)-1)/i; } else if(n==2) { F=N*12*(P*(i/12)+P); } else { printf("输入有误!请重新输入\n"); goto A; } printf("%d年后的总产值:%.4lf\n",N,F); } void benxi()//本息 { double F,i,P; int N; printf("输入贷款金额:"); scanf("%lf",&F); printf("输入贷款时间(年):"); scanf("%D",&N); printf("输入年利率:"); scanf("%lf",&i); while(i<=0 || i>=1) { printf("输入错误,请重新输入0~1之间的利率:\n"); scanf("%lf",&i); } P=F*i/(12*(1+i)*(pow(1+i,N)-1)); printf("贷款%.4lf每月需要还款:%.4lf\n",F,P); } void menu()//菜单 { printf("\t\t|-----------------------------------|\n"); printf("\t\t| 欢迎欢迎 |\n"); printf("\t\t|-----------------------------------|\n"); printf("\t\t| 1:计算本金 |\n"); printf("\t\t| 2:计算年复利终值 |\n"); printf("\t\t| 3:单利计算 |\n"); printf("\t\t| 4:计算年份 |\n"); printf("\t\t| 5:计算年利率 |\n"); printf("\t\t| 6:年金终值 |\n"); printf("\t\t| 7:贷款金额 |\n"); printf("\t\t| 0:结束 |\n"); printf("\t\t|-----------------------------------|\n"); printf("请输入你要选择的功能(0~7):\n"); } void main() { int n; while(1) { menu(); scanf("%d",&n); if(n==0) break; switch(n) { case 1: benjin();break; case 2: fuli();break; case 3: danli();break; case 4: years();break; case 5: nianlilv();break; case 6: nianjinzhongzhi();break; case 7: benxi();break; case 0:n=0;break; } getch(); } }
相关文章推荐
- Github安装失败主要是因为.net framework 4.0安装失败
- delphi 控件大全(确实很全)
- LeetCode 22. Generate Parentheses
- Java Web项目中解决中文乱码方法总结
- 基本排序算法java实现之选择排序
- Spring 面试题
- java GC、新生代、老年代
- c++使用心得
- C++组合应用之strtok字符串分割、数组平分算法、动态数组函数传参
- 菜鸟学习之javaweb 乱码的解决
- 在Spring3中,配置DataSource的方法有6种。
- Android——电脑蓝屏重启后,studio无法认出Android环境 setup JDK(缓存!缓存!缓存)
- Java内存区域与内存溢出异常
- Java--TreeMap源码解读
- CF_5A_ChatServer'sOutgoingTraffic
- printPrimes作业
- activiti自定义流程之Spring整合activiti-modeler5.16实例(五):流程定义列表
- activiti自定义流程之Spring整合activiti-modeler5.16实例(五):流程定义列表
- Java学习_多线程
- Qt5.6 windows下vs2015编译QODBC