结对同伴的学号:201406114258
姓名:梁毅乾
博客地址:http://www.cnblogs.com/ken520/
一、新的功能需求
即要追求利益,又要面对不可预知的金融投资风险, “不能把鸡蛋放在同一个篮子里”,所以有必要进行组合投资。
通过上述计算与对比,可以帮助客户进行投资决策。
客户:那么能否帮我记录下一笔一笔不同类型的投资,并动态显示资金现值呢?
二、估算
估计用时:5h
实际用时:3h
实际代码行:296行
三、工作分配:
冯铭杰:设计界面,将新的投资界面设计出来
复审代码,包括风格规范和代码设计规范
梁毅乾:编写主要的代码,实现新功能
四、工作情形:
#include<stdio.h> #include<math.h> #define MAXLINE 100000 #define BUFLEN 1024 double p,i,f; int n; void Danli() { while(1) { printf("请输入本金:"); scanf("%lf",&p); if(p<=0) printf("本金输入错误,请重新输入!\n"); else break; } while(1) { printf("请输入年利率(百分比):"); scanf("%lf",&i); if(i<=0 || i>=1) printf("年利率输入错误,请重新输入!\n"); else break; } while(1) { printf("请输入存储年限:"); scanf("%d",&n); if(n<=0) printf("存储年限输入错误,请重新输入!\n"); else break; } f = p+p*i*n; printf("单利终值为:%0.2lf\n",f); } double Fuli() { while(1) { printf("请输入本金:"); scanf("%lf",&p); if(p<=0) printf("本金输入错误,请重新输入!\n"); else break; } while(1) { printf("请输入年利率(百分比):"); scanf("%lf",&i); if(i<=0 || i>=1) printf("年利率输入错误,请重新输入!\n"); else break; } while(1) { printf("请输入存储年限:"); scanf("%d",&n); if(n<=0) printf("存储年限输入错误,请重新输入!\n"); else break; } f = p*(pow(1+i,n)); printf("复利终值为:%lf\n",f); return(f); } void Need() { while(1) { printf("请输入目标金额:"); scanf("%lf",&f); if(f<=0) printf("目标金额输入错误,请重新输入!\n"); else break; } while(1) { printf("请输入年利率(百分比):"); scanf("%lf",&i); if(i<=0 || i>=1) printf("年利率输入错误,请重新输入!\n"); else break; } while(1) { printf("请输入目标年限:"); scanf("%d",&n); if(n<=0) printf("目标年限输入错误,请重新输入!\n"); else break; } p = f/pow(1+i,n); printf("需要投入的本金为:%0.2lf\n",p); } void Year() { while(1) { printf("请输入本利和:"); scanf("%lf",&f); if(f<=0) printf("本利和输入错误,请重新输入!\n"); else break; } while(1) { printf("请输入年回报率(百分比):"); scanf("%lf",&i); if(i<=0 || i>=1) printf("年回报率输入错误,请重新输入!\n"); else break; } while(1) { printf("请输入本金:"); scanf("%lf",&p); if(p<=0) printf("本金输入错误,请重新输入!\n"); else break; } for(n=1;;n++) //穷举法求满足的计息期数 { if((p*(pow((1+i),n)))>=f) { printf("最低年限为:%d\n\n",n); break; } } } void YearRate() { while(1) { printf("请输入本利和:"); scanf("%lf",&f); if(f<=0) printf("本利和输入错误,请重新输入!\n"); else break; } while(1) { printf("请输入本金:"); scanf("%lf",&p); if(p<=0) printf("本金输入错误,请重新输入!\n"); else break; } while(1) { printf("请输入目标年限:"); scanf("%d",&n); if(n<=0) printf("目标年限输入错误,请重新输入!\n"); else break; } i = pow((f/p),1.0/n)-1; printf("年回报率为:%0.2lf\n",i); } void Getgains() { while(1) { printf("请输入每年定投金额:"); scanf("%lf",&p); if(p<=0) printf("每年定投金额输入错误,请重新输入!\n"); else break; } while(1) { printf("请输入年收益(百分比):"); scanf("%lf",&i); if(i<=0 || i>=1) printf("年收益输入错误,请重新输入!\n"); else break; } while(1) { printf("请输入定投年数:"); scanf("%d",&n); if(n<=0) printf("定投年数输入错误,请重新输入!\n"); else break; } f = p*(1+i)*(pow((1+i),n)-1)/i; printf("基金定投收益为:%0.2lf\n",f); } void Text1(double f) { double a = 115; double n =(int)f; if(n==a) printf("正确\n"); else printf("错误\n"); } void GetData() { FILE *file; char buf[BUFLEN]; int len=0,i=0,j=0; char *array[MAXLINE]; file=fopen("test.txt","r");//打开TXST.TxT文件 if(!file)return -1; while(fgets(buf,BUFLEN,file))//读取TXT中字符 { len=strlen(buf); array[i]=(char*)malloc(len+1); if(!array[i])break; strcpy(array[i++],buf); } fclose(file); i--; for(j=0;j<i;j++) { printf("%s",array[j]);//打印test文档的字符 free(array[j]); } } main() { int num=0; double f; while(1){ printf("\t\t\t|************复利计算器************|\n"); printf("\t\t\t|------------1.单利----------------|\n"); printf("\t\t\t|------------2.复利----------------|\n"); printf("\t\t\t|------------3.计算本金------------|\n"); printf("\t\t\t|------------4.年限估算------------|\n"); printf("\t\t\t|------------5.估算年回报率--------|\n"); printf("\t\t\t|------------6.定额定投收益计算----|\n"); printf("\t\t\t|------------7.动态资金显示--------|\n"); printf("\t\t\t|----------------------------------|\n"); printf("请输入选择:"); scanf("%d",&num); switch(num) { case 1: Danli(); break; case 2: f=Fuli(); Text1(f); break; case 3: Need(); break; case 4: Year(); break; case 5: YearRate(); break; case 6: Getgains(); break; case 7: GetData(); break; default: return 0; } } }
五、总结:
感觉两个人一起做任务,是感觉不到时间的流逝的,结队是有意义的!