结对同伴的学号: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;
		}
	}
}

  

五、总结:

感觉两个人一起做任务,是感觉不到时间的流逝的,结队是有意义的!

posted on 2016-04-06 23:22  55冯铭杰  阅读(222)  评论(1编辑  收藏  举报