结对同伴的学号: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;
}
}
}
五、总结:
感觉两个人一起做任务,是感觉不到时间的流逝的,结队是有意义的!