复利计算的实验总结跟感悟
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 }