天天看點

複利計算5(結對合作)

複利計算 5.0-結對程式設計

結對同伴:

名字:陳施恩

學号:201406114222

部落格位址:http://home.cnblogs.com/u/chenshien/

一、項目簡介

開發工具:vc++

開發語言:c語言

主要功能:複利計算、單利計算,投資計算

二、新增功能——投資計算

     即要追求利益,又要面對不可預知的金融投資風險, “不能把雞蛋放在同一個籃子裡”,是以有必要進行組合投資。

     通過上述計算與對比,可以幫助客戶進行投資決策。 

     客戶:那麼能否幫我記錄下一筆一筆不同類型的投資,并動态顯示資金現值呢?

三、分工:

  施恩:負責制定整體架構、制作界面、搜尋相關資料、檢查代碼,提供建議,整理格式

  蔡彩虹:編寫需求功能的代碼,檢測代碼,和隊友商量代碼缺陷

四、時間和代碼量估算:

  估計:需要5小時

  實際:用了3,新增代碼200

五、工作照

複利計算5(結對合作)

實作代碼:

#include<stdio.h>

#include<math.h>

void touzi();

void bijiao(int q,double number[4]);

double danli(double i,int N,double P)//單利計算

{

double nlx,F;

nlx = P*i;

F = nlx*N + P;

return F;

}

double fuli(double i,int W,int N,double P)//複利計算

{

double F;

i=pow(1+i/W,W)-1;

F=P*pow((i+1),N);

return F;

double gusuan(double i,int W,int N,double F)//估算

double P;

i = pow(1+i/W,W)-1;

P = F/pow((i+1),N);

return P;

double shijian(double P,double i,double F)//時間

double N,x;

x=F/P;

N=(log(x))/(log(i+1));

return N;

double nianxian(double P,double N,double F)//年限

double i;

i = pow(F/P,1.0/N)-1.0;

return i;

double sum()

double y,yue,F=0.0,i,mi;

double nl,yl;

int N;

int ch,j;

printf("****** 1-年投資 2-月投資 ******\n");

scanf("%d",&ch);

if(ch == 1)

{

printf("請輸入年投資額:\n");

scanf("%lf",&y);

}

else

{

printf("請輸入月投資額:\n");

scanf("%lf",&yue);

printf("請輸入年利率\n");

scanf("%lf",&i);

printf("請輸入年限\n");

scanf("%d",&N);

if(ch == 1)

F = y;

for(j=0 ; j<N ; j++)

{

nl = F*i;

F=y+nl+F;

}

return F-y;

F = yue;

mi = i/12.0;

for(j=0 ; j<N*12 ; j++)

yl = F*mi;

F=yue+yl+F;

}

return F-yue;

}

}

double refund()

double P,i,month_amount;

int N,month;

printf("************您進入本息還款計算************\n");

printf("請輸入貸款金額:\n");

scanf("%lf",&P);

printf("請輸入年利率:\n");

scanf("%lf",&i);

printf("請輸入歸還年限:\n");

scanf("%d",&N);

//每月還款額=[貸款本金×月利率×(1+月利率)^還款月數]÷[(1+月利率)^還款月數-1]

i = i/12;

month = N*12;

month_amount = P*i*pow((1.0+i),month)/(pow(1.0+i,month)-1);

return month_amount;

}

void main()

double P,F1,F,i; //P是本金,F是收益,i年利率

int N,W,ch2; //是期限

while(1)

printf("\t\t***************歡迎使用複利電腦*************\n\n");

printf("\t\t| -----1:複利---------------- |\n\n");

printf("\t\t| -----2:單利---------------- |\n\n");

printf("\t\t| ------3:估算---------------- |\n\n");

printf("\t\t| -------4:年限---------------- |\n\n");

printf("\t\t| ------5:年利率-------------- |\n\n");

printf("\t\t| ------6:月年收益------------ |\n\n");

printf("\t\t| ------7:等額本息還款-------- |\n\n");

printf("\t\t| ------8:投資計算----------------|\n\n");

printf("\t\t| ------0:為退出---------------- |\n\n");

printf("\t\t**************請選擇想要的功能************\n");

scanf("%d",&ch2);//控制選擇

switch(ch2){

case 1:

printf("請輸入本金:\n");

scanf("%lf",&P);

printf("請輸入年利率\n");

scanf("%lf",&i);

printf("請輸入年限:\n");

scanf("%d",&N);

printf("請輸入複利次數:\n");

scanf("%d",&W);

F1 = fuli(i,W,N,P); break;

case 2:

F1 = danli(i,N,P); break;

case 3:

printf("請輸入本利\n");

scanf("%lf",&F);

scanf("%d",&N);

scanf("%d",&W);

F1 = gusuan(i,W,N,F);

break;

case 4:

printf("請輸入本金\n");

scanf("%lf",&P);

printf("請輸入本利\n");

scanf("%lf",&F);

F1=shijian(P,i,F);

case 5:

printf("請輸入本利:\n");

printf("請輸入年限\n");

F1=nianxian(P,N,F);

case 6:

F1=sum();

case 7:

F1=refund();

case 8:

touzi();

case 0:break;

default:

printf("輸入不合法!!\n");

continue ;

}

if(ch2==0)

printf("結果為:%.2lf\n",F1);

}

void touzi()//計算

int n,q=0;

double i,p;

double temp;

double number[4];

printf("\t*請輸入存儲金額:");

while(scanf("%lf",&p)!=1||p<=0)

{

printf("\t輸入錯誤,請重新輸入:");

getchar();

}

printf("\t*請輸入年利率:");

while(scanf("%lf",&i)!=1||i<=0)

getchar();

printf("\t*請輸入t投資時間(年):");

while(scanf("%d",&n)!=1||n<=0||n>100)

printf("\t輸入錯誤,請重新輸入:");

getchar();

number[0]=p*pow((1+i),n);//複利

bijiao(0,number);

number[1]=p*12*(pow(1+i,n)-1)/i;//等額月投

bijiao(1,number);

number[2]=(p*pow((1+i),n)-1)/i;//等額年投

bijiao(2,number);

number[3]=p*(1+i*n);//單利

bijiao(3,number);

temp=number[0];

for(int j=1;j<4;j++)

if(number[j]>temp)

{

temp=number[j];

q=j;

}

printf("\t建議:\n");

bijiao(q,number);

void bijiao(int q,double number[4])//判斷最大的利益投資

{

switch (q)

case 0:printf("\t選擇複利投資,本利和為%.2lf\n",number[0]);break;

case 1:printf("\t選擇等額月投資,本利和為%.2lf\n",number[1]);break;

case 2:printf("\t選擇等額年投資,本利和為%.2lf\n",number[2]);break;

case 3:printf("\t選擇等單利投資,本利和為%.2lf\n",number[3]);break;

複利計算5(結對合作)
複利計算5(結對合作)

複利計算5(結對合作)
複利計算5(結對合作)
複利計算5(結對合作)