单元测试代码

  1 #include<stdio.h>
  2 #include<math.h>
  3 #include<conio.h>
  4 
  5 
  6 void benjin()//计算本金
  7 {
  8      int N,m;
  9      double i,F,P;
 10      printf("复利终值:");
 11      scanf("%lf",&F);
 12      while(F<=0  ||  F>999999999)
 13      {
 14          printf("输入错误,请重新输入大于0的本金:
");
 15          scanf("%lf",&F);
 16      }
 17      printf("年利率:");
 18      scanf("%lf",&i);
 19      while(i<=0 || i>=1)
 20      {
 21          printf("输入错误,请重新输入0~1之间的利率:
");
 22          scanf("%lf",&i);
 23      }
 24      printf("存入年限:");
 25      scanf("%d",&N);
 26      while(N<=0 || N>100)
 27      {
 28          printf("输入错误,请重新输入0~100之间的年限:
");
 29          scanf("%d",&N);
 30      }
 31      printf("年复利次数:");
 32      scanf("%d",&m);
 33      while(m<=0)
 34      {
 35          printf("输入错误,请重新输入大于0的复利次数:
");
 36          scanf("%d",&m);
 37      }
 38      P=F/pow((1+i/m),N*m);
 39      printf("年复利终值为%.4lf需要本金为:%.4lf
",F,P);
 40 }
 41 void fuli()//计算复利终值
 42 {
 43      int N,m;
 44      double i,F,P;
 45      printf("存入本金:");
 46      scanf("%lf",&P);
 47      while(P<=0  ||  P>999999999)
 48      {
 49          printf("输入错误,请重新输入大于0的本金:
");
 50          scanf("%lf",&P);
 51      }
 52      printf("年利率:");
 53      scanf("%lf",&i);
 54      while(i<=0 || i>=1)
 55      {
 56          printf("输入错误,请重新输入0~1之间的利率:
");
 57          scanf("%lf",&i);
 58      }
 59      printf("存入年限:");
 60      scanf("%d",&N);
 61      printf("年复利次数:");
 62      scanf("%d",&m);
 63      F=P*pow((1+i/m),N*m);
 64      printf("复利终值:%.4lf
",F);
 65 }
 66 void danli()//单利计算
 67 {
 68      int N;
 69      double i,H,P,L;
 70      printf("存入本金:");
 71      scanf("%lf",&P);
 72      while(P<=0  ||  P>999999999)
 73      {
 74          printf("输入错误,请重新输入大于0的本金:
");
 75          scanf("%lf",&P);
 76      }
 77      printf("年利率:");
 78      scanf("%lf",&i);
 79      while(i<=0 || i>=1)
 80      {
 81          printf("输入错误,请重新输入0~1之间的利率:
");
 82          scanf("%lf",&i);
 83      }
 84      printf("存入年限:");
 85      scanf("%d",&N);
 86      L=P*N*i;
 87      H=L+P;
 88      printf("本息和为:%.4lf
",H);
 89 }
 90 void years()//求年份
 91 {
 92      int N,m;
 93      double i,F,P;
 94      printf("复利终值:");
 95      scanf("%lf",&F);
 96      printf("存入本金:");
 97      scanf("%lf",&P);
 98      printf("年利率:");
 99      scanf("%lf",&i);
100      while(i<=0 || i>=1)
101      {
102          printf("输入错误,请重新输入0~1之间的利率:
");
103          scanf("%lf",&i);
104      }
105      printf("年复利次数:");
106      scanf("%d",&m);
107      N=(int)(log(F/P)/log(1+i/m)/m);
108      printf("从%.4lf到%.4lf需要%d年
",P,F,N);
109 }
110 void nianlilv()//计算年利率
111 {
112      int N,m;
113      double i,F,P;
114      printf("复利终值:");
115      scanf("%lf",&F);
116      printf("存入本金:");
117      scanf("%lf",&P);
118      printf("存入年限:");
119      scanf("%d",&N);
120      printf("年复利次数:");
121      scanf("%d",&m);
122      i=m*(pow(F/P,1.0/(N*m))-1);
123      printf("从%.4lf到%.4lf需要%.4lf
",P,F,i);
124 }
125 void nianjinzhongzhi()//计算年金终值
126 {
127      int N,n;
128      double i,F,P;
129      printf("存入本金:");
130      scanf("%lf",&P);
131      while(P<=0  ||  P>999999999)
132      {
133          printf("输入错误,请重新输入大于0的本金:
");
134          scanf("%lf",&P);
135      }
136      printf("存入年限:");
137      scanf("%d",&N);
138      printf("年利率:");
139      scanf("%lf",&i);
140      while(i<=0 || i>=1)
141      {
142          printf("输入错误,请重新输入0~1之间的利率:
");
143          scanf("%lf",&i);
144      }
145      printf("		1:按年投资
		2:按月投资
");
146 A:printf("请选择你要的功能<1|2>:");
147      scanf("%d",&n);
148      if(n==1)
149      {
150          F=P*(pow(1+i,N)-1)/i;
151          
152      }
153      else if(n==2)
154      {
155          F=N*12*(P*(i/12)+P);
156      }
157      else
158      {
159          printf("输入有误!请重新输入
");
160          goto A;
161      }
162      printf("%d年后的总产值:%.4lf
",N,F);
163 
164 }
165 void benxi()//本息
166 {
167     double F,i,P;
168     int N;
169     printf("输入贷款金额:");
170     scanf("%lf",&F);
171     printf("输入贷款时间(年):");
172     scanf("%D",&N);
173     printf("输入年利率:");
174     scanf("%lf",&i);
175     while(i<=0 || i>=1)
176      {
177          printf("输入错误,请重新输入0~1之间的利率:
");
178          scanf("%lf",&i);
179      }
180     P=F*i/(12*(1+i)*(pow(1+i,N)-1));
181     printf("贷款%.4lf每月需要还款:%.4lf
",F,P);
182 
183 }
184 void menu()//菜单
185 {
186        printf("		|-----------------------------------|
");
187        printf("		|             欢迎欢迎              |
");
188        printf("		|-----------------------------------|
");
189        printf("		|           1:计算本金              |
");
190        printf("		|           2:计算年复利终值        |
");
191        printf("		|           3:单利计算              |
");
192        printf("		|           4:计算年份              |
");
193        printf("		|           5:计算年利率            |
");
194        printf("		|           6:年金终值              |
");
195        printf("		|           7:贷款金额              |
");
196        printf("		|           0:结束                  |
");
197        printf("		|-----------------------------------|
");
198        printf("请输入你要选择的功能(0~7):
");
199 
200 }
201 void main()
202 {
203      int n;
204      while(1)
205      {
206          menu();
207          scanf("%d",&n);
208          if(n==0)
209              break;
210          switch(n)
211          {
212             case 1:
213                 benjin();break;
214             case 2:
215                 fuli();break;
216             case 3:
217                  danli();break;
218             case 4:
219                  years();break;
220             case 5:
221                  nianlilv();break;
222             case 6:
223                  nianjinzhongzhi();break;
224             case 7:
225                 benxi();break;
226             case 0:n=0;break;    
227 
228          }
229           getch();
230      }
231 }

原文地址:https://www.cnblogs.com/joker317/p/5338704.html