复利计算的实验总结跟感悟

1、开始用的开发工具是eclipse,后来改为用c语言,前两次的代码有200左右,一个人操作,工作量为100分钟左右。

2、估计完成第4,5个实验所需代码行数为130左右,一个人操作,所用时间80分钟。

3、估计完成第6个实验所需代码行数70左右,所用时间一人90分钟。

4、现已经完成了全部实验,实际代码行数为169行左右。所用时间总共为170分钟左右。这明显跟以上统计的有些差距,说明自己的实际情况还是有很大的不了解,以后要不断去衡量自己的情况,从而去定制更加符合要求的,这样更加方便以后的工作的提高,而之前用java来做,并不影响用c语言,差距不是很大。

 感悟:

个人编写代码的能力还是不太乐观,本来项目不大的一个实验,花费了很多时间,不断想不断敲代码,下次需要改进方法,想衡量架构怎么实现,然后再分析是需要什么函数的调用,再去敲代码,这样效果应该会好点,这是在这次实验的一个总结。

 

 

 

  1 #include<stdio.h>
  2 #include<math.h>
  3 
  4 double danli(double i,int N,double P)
  5 {
  6     double nlx,F;
  7     nlx = P*i;
  8     F = nlx*N + P;
  9     return F;
 10 
 11 }
 12 
 13 double fuli(double i,int W,int N,double P)
 14 {
 15     double F;
 16     i=pow(1+i/W,W)-1;
 17     F=P*pow((i+1),N);
 18     return F;
 19 }
 20 
 21 double gusuan(double i,int W,int N,double F)
 22 {
 23     double P;
 24     i = pow(1+i/W,W)-1;
 25     P = F/pow((i+1),N);
 26     return P;
 27 }
 28 double shijian(double P,double i,double F)
 29 {
 30     double N,x;
 31     x=F/P;
 32     N=(log(x))/(log(i+1));
 33     return N;
 34 
 35 }
 36 double nianxian(double P,double N,double F)
 37 {
 38     double i;
 39      //i = W*(pow(pow(F/P,1.0/N),1.0/W)-1.0);
 40      i = pow(F/P,1.0/N)-1.0;
 41      return i;
 42 }
 43 double sum()
 44 {
 45      double y,yue,F=0.0,i,mi;
 46      double nl,yl;
 47      int N,W;
 48      int ch,j;
 49      printf("****** 1-年投资  2-月投资 ******\n");
 50      scanf("%d",&ch);
 51      if(ch == 1)
 52      {
 53          printf("请输入年投资额:\n");
 54         scanf("%lf",&y);
 55      }
 56      else
 57      {
 58          printf("请输入月投资额:\n");
 59          scanf("%lf",&yue);
 60      }
 61      
 62      printf("请输入年利率\n");
 63      scanf("%lf",&i);
 64      printf("请输入年限\n");
 65      scanf("%d",&N);
 66      
 67      if(ch == 1)
 68      {
 69          F = y;
 70          for(j=0 ; j<N ; j++)
 71          {
 72              nl = F*i;
 73              F=y+nl+F;
 74          }
 75         return F-y;
 76      }
 77      else
 78      {
 79          F = yue;
 80          mi = i/12.0;
 81          for(j=0 ; j<N*12 ; j++)
 82          {
 83              yl = F*mi;
 84             F=yue+yl+F;
 85          }
 86          return F-yue;
 87     }
 88     
 89     
 90  }
 91 void main()
 92 {
 93     double P,F1,F,i; //P是本金,F是收益,i年利率
 94     int N,W,ch2; //是期限
 95     while(1)
 96     {
 97     printf("\t\t***************欢迎使用复利计算器*************\n\n");
 98     printf("\t\t|     -----1--------为复利---------------    |\n\n");
 99     printf("\t\t|     -----2--------为单利---------------    |\n\n");
100     printf("\t\t|     -----3-------为估算----------------    |\n\n");
101     printf("\t\t|     -----4-------为年限----------------    |\n\n");
102     printf("\t\t|     -----5-------为年利率--------------    |\n\n");
103     printf("\t\t|     -----6-------为月年收益--------------    |\n\n");
104     printf("\t\t|     -----0-------为退出----------------    |\n\n");
105     printf("\t\t**************请选择想要的功能************\n");
106     scanf("%d",&ch2);//控制选择
107     switch(ch2){
108     case 1:
109         printf("请输入本金:\n");
110         scanf("%lf",&P);
111         printf("请输入年利率\n");
112         scanf("%lf",&i);
113         printf("请输入年限:\n");
114         scanf("%d",&N);
115         printf("请输入复利次数:\n");
116         scanf("%d",&W);
117         F1 = fuli(i,W,N,P); break;
118     case 2:
119         printf("请输入本金:\n");
120         scanf("%lf",&P);
121         printf("请输入年利率\n");
122         scanf("%lf",&i);
123         printf("请输入年限:\n");
124         scanf("%d",&N);
125         F1 = danli(i,N,P); break;
126     case 3:
127         printf("请输入本利\n");
128         scanf("%lf",&F);
129         printf("请输入年利率\n");
130         scanf("%lf",&i);
131         printf("请输入年限:\n");
132         scanf("%d",&N);
133         printf("请输入复利次数:\n");
134         scanf("%d",&W);
135         F1 = gusuan(i,W,N,F);
136         break;
137         
138     case 4:
139         printf("请输入本金\n");
140         scanf("%lf",&P);
141         printf("请输入年利率\n");
142         scanf("%lf",&i);
143          printf("请输入本利\n");
144         scanf("%lf",&F);
145         F1=shijian(P,i,F);
146         break;
147     case 5:
148 
149         printf("请输入本金:\n");
150          scanf("%lf",&P);
151          printf("请输入本利:\n");
152          scanf("%lf",&F);
153          printf("请输入年限\n");
154          scanf("%d",&N);
155         F1=nianxian(P,N,F);
156         
157 //    i=pow((F/P),(1.0/N))-1;
158         break;
159     case 6:
160         F1=sum();
161         break;
162 
163     case 0:break;
164     }
165     if(ch2==0)
166         break;
167     printf("结果为:%.2lf\n",F1);
168     }
169 } 

posted @ 2016-03-17 19:54  你若精彩,蝴蝶自来  阅读(633)  评论(0编辑  收藏  举报