zoukankan      html  css  js  c++  java
  • 0406复利实验--结队(冯铭杰 梁毅乾)

    结对同伴的学号: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("本金输入错误,请重新输入!
    ");
            else
    			break;
    	}
    	while(1)
    	{
    		printf("请输入年利率(百分比):");
    		scanf("%lf",&i);
    		if(i<=0 || i>=1)
    			printf("年利率输入错误,请重新输入!
    ");
            else
    			break;
    	}
    	while(1)
    	{
    		printf("请输入存储年限:");
    		scanf("%d",&n);
    		if(n<=0)
    			printf("存储年限输入错误,请重新输入!
    ");
            else
    			break;
    	}
    	f = p+p*i*n;
    	printf("单利终值为:%0.2lf
    ",f);
    }
    
    double Fuli()
    {
    	
    	while(1)
    	{
    		printf("请输入本金:");
    		scanf("%lf",&p);
    		if(p<=0)
    			printf("本金输入错误,请重新输入!
    ");
            else
    			break;
    	}
    	while(1)
    	{
    		printf("请输入年利率(百分比):");
    		scanf("%lf",&i);
    		if(i<=0 || i>=1)
    			printf("年利率输入错误,请重新输入!
    ");
            else
    			break;
    	}
    	while(1)
    	{
    		printf("请输入存储年限:");
    		scanf("%d",&n);
    		if(n<=0)
    			printf("存储年限输入错误,请重新输入!
    ");
            else
    			break;
    	}
    	f = p*(pow(1+i,n));
    	printf("复利终值为:%lf
    ",f);
    	return(f); 
    }
    
    void Need()
    {
    	while(1)
    	{
    		printf("请输入目标金额:");
    		scanf("%lf",&f);
    		if(f<=0)
    			printf("目标金额输入错误,请重新输入!
    ");
            else
    			break;
    	}
    	while(1)
    	{
    		printf("请输入年利率(百分比):");
    		scanf("%lf",&i);
    		if(i<=0 || i>=1)
    			printf("年利率输入错误,请重新输入!
    ");
            else
    			break;
    	}
    	while(1)
    	{
    		printf("请输入目标年限:");
    		scanf("%d",&n);
    		if(n<=0)
    			printf("目标年限输入错误,请重新输入!
    ");
            else
    			break;
    	}
    	p = f/pow(1+i,n);
    	printf("需要投入的本金为:%0.2lf
    ",p);
    }
    
    void Year()
    {
    	while(1)
    	{
    		printf("请输入本利和:");
    		scanf("%lf",&f);
    		if(f<=0)
    			printf("本利和输入错误,请重新输入!
    ");
            else
    			break;
    	}
    	while(1)
    	{
    		printf("请输入年回报率(百分比):");
    		scanf("%lf",&i);
    		if(i<=0 || i>=1)
    			printf("年回报率输入错误,请重新输入!
    ");
            else
    			break;
    	}
    	while(1)
    	{
    		printf("请输入本金:");
    		scanf("%lf",&p);
    		if(p<=0)
    			printf("本金输入错误,请重新输入!
    ");
            else
    			break;
    	}
    	for(n=1;;n++) //穷举法求满足的计息期数
    	{
    		if((p*(pow((1+i),n)))>=f)
    		{
    			printf("最低年限为:%d
    
    ",n);
    			break;
    		}
    	}
    }
    
    void YearRate()
    {
    	while(1)
    	{
    		printf("请输入本利和:");
    		scanf("%lf",&f);
    		if(f<=0)
    			printf("本利和输入错误,请重新输入!
    ");
            else
    			break;
    	}
    	while(1)
    	{
    		printf("请输入本金:");
    		scanf("%lf",&p);
    		if(p<=0)
    			printf("本金输入错误,请重新输入!
    ");
            else
    			break;
    	}
    	while(1)
    	{
    		printf("请输入目标年限:");
    		scanf("%d",&n);
    		if(n<=0)
    			printf("目标年限输入错误,请重新输入!
    ");
            else
    			break;
    	}
    	i = pow((f/p),1.0/n)-1;
    	printf("年回报率为:%0.2lf
    ",i);
    }
    
    void Getgains()
    {
    	while(1)
    	{
    		printf("请输入每年定投金额:");
    		scanf("%lf",&p);
    		if(p<=0)
    			printf("每年定投金额输入错误,请重新输入!
    ");
            else
    			break;
    	}
    	while(1)
    	{
    		printf("请输入年收益(百分比):");
    		scanf("%lf",&i);
    		if(i<=0 || i>=1)
    			printf("年收益输入错误,请重新输入!
    ");
            else
    			break;
    	}
    	while(1)
    	{
    		printf("请输入定投年数:");
    		scanf("%d",&n);
    		if(n<=0)
    			printf("定投年数输入错误,请重新输入!
    ");
            else
    			break;
    	}
    	f = p*(1+i)*(pow((1+i),n)-1)/i;
    	printf("基金定投收益为:%0.2lf
    ",f);
    }
    
    void Text1(double f)
    {
    	double a = 115;
    	double n =(int)f;
    	if(n==a)
    		printf("正确
    ");
    	else
    		printf("错误
    ");
    }
    
    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("			|************复利计算器************|
    ");
    		printf("			|------------1.单利----------------|
    ");
    		printf("			|------------2.复利----------------|
    ");
    		printf("			|------------3.计算本金------------|
    ");
    		printf("			|------------4.年限估算------------|
    ");
    		printf("			|------------5.估算年回报率--------|
    ");
    		printf("			|------------6.定额定投收益计算----|
    ");
    		printf("			|------------7.动态资金显示--------|
    ");
    		printf("			|----------------------------------|
    ");
    		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;
    		}
    	}
    }
    

      

    五、总结:

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

  • 相关阅读:
    [NOIp2016] 天天爱跑步
    状压DP小拼盘
    DP × KMP
    KMP算法 详解+模板
    [NOI2014] 起床困难综合症
    [洛谷P3391] 文艺平衡树 (Splay模板)
    START
    【C】单链表的实现
    【数据结构】动态顺序表
    C语言实现扫雷程序
  • 原文地址:https://www.cnblogs.com/55fmj/p/5361708.html
Copyright © 2011-2022 走看看