/***************************************
程式:複利計算
版本:5.0beta
功能:添加一項可以儲存投資計劃的功能
***************************************/
結對同學:甄增文
學号:201406114233
http://home.cnblogs.com/u/zhenzengwen/
代碼實作預計時間:4小時
代碼實作實際時間:6小時
部落格總結:
在這一次的實驗中我是作為駕駛員的,編碼的部分基本都是由我完成的,我的同伴有幫忙查閱百度來幫助我來完成,相當副駕駛員。
收獲與感悟:
這一次寫動态顯示,從一開始毫無思路,到後來覺得,何為動态顯示,于是我就覺得可以随着操作者的行為一起更新的不就是動态顯示嗎。然後我就思考者如何去實作讓操作者輸入的内容可以随時的顯示在操作頁面上,最後我想到利用txt去随時的記錄操作者的行為,為了能夠更好的實作這個功能,我使用了結構體去完成。完成後,我發現了一點缺陷,就是當操作者不需要這些以前的操作内容怎麼辦?于是就利用了空白讀寫txt使得txt清屏,這樣子才更人性化。
這一次的實驗讓我覺得c的局限性很大,編寫程式的時候代碼量也很大,讓我感到很疲勞,但是,一次次的完善自己的程式是一件很有樂趣的事情,我收獲到了其中的滿足感,而今後的程式設計,我會考慮盡量縮短我的程式的代碼也會考慮利用java的編寫複利計算的程式。

一、項目需求
即要追求利益,又要面對不可預知的金融投資風險, “不能把雞蛋放在同一個籃子裡”,是以有必要進行組合投資。
通過上述計算與對比,可以幫助客戶進行投資決策。
客戶:那麼能否幫我記錄下一筆一筆不同類型的投資,并動态顯示資金現值呢?
#include<stdio.h>
#include<math.h>
struct jisuan {
int day;
double total;
float money;
float base;
double total1;
}stu;
void fuli()
{
int k;
stu.total=1.0;
printf("-------------------------------------------------------------|\n");
printf("每年的年利率比為:");
scanf("%f",&stu.base);
printf("-------------------------------------------------------------|\n");
printf("輸入你存入的年數:");
scanf("%d",&stu.day);
printf("-------------------------------------------------------------|\n");
printf("輸入你複利次數:");
scanf("%d",&k);
stu.total=stu.total*pow(stu.base/k+1,stu.day*k);
printf("-------------------------------------------------------------|\n");
printf("每年的年利率%f,連續%d年,總受益的利率:%lf\n",stu.base,stu.day,stu.total);
printf("-------------------------------------------------------------|\n");
printf("輸入本金金額:");
scanf("%f",&stu.money);
stu.total1=stu.money*stu.total;
printf("-------------------------------------------------------------|\n");
printf("你将可以得到:%lf\n",stu.total1);
printf("-------------------------------------------------------------|\n");
}
save()
{
FILE* wc =fopen("c:\\ccc.txt","a");
if(wc==NULL)
{
printf("failed to open file\n");
return 0;
}
fprintf(wc,"--------------------\n");
fprintf(wc,"| 年利率:%.2f |\n",stu.base);
fprintf(wc,"| 存入年:%d |\n",stu.day);
fprintf(wc,"| 總利率:%.2f |\n",stu.total);
fprintf(wc,"| 本金:%.2f |\n",stu.money);
fprintf(wc,"| 得到金額:%.2f |\n",stu.total1);
fprintf(wc,"--------------------\n");
fclose(wc);
return 0;
}
duqu()
{
FILE* wc =fopen("c:\\ccc.txt","r");
int n = 0;
char ch[1000];
while(!feof(wc))
{
fscanf(wc, "%c", &ch[n]);
printf("%c", ch[n]);
n++;
}
fclose(wc);
return 0;
}
void main()
{
while(1){
int num=7;
duqu();
printf(" \n");
printf(" \n");
printf(" \n");
printf(" \n");
printf(" \n");
printf(" \n");
printf(" -------------------------------------\n");
printf(" | 歡迎來到廣州商業銀行 |\n");
printf(" | 顧客你可以根據1~7選擇 |\n");
printf(" | 1.複利計算 |\n");
printf(" | 2.單利計算 |\n");
printf(" | 3.送你養老金計算方法 |\n");
printf(" | 4.股票賺錢喲 |\n");
printf(" | 5.投資工具找的好才賺錢喲 |\n");
printf(" | 6.本利與本金的存款計算 |\n");
printf(" | 7.貸款 |\n");
printf(" --------------------------------------\n");
printf(" \n");
printf("請根據數字選擇你需要的功能(1~7)\n");
scanf("%d",&num);
switch(num)
{
case 1:
printf("\n");
fuli();
save();
break;
}
}
}
void save()
void duqu()
為新增代碼功能
程式隻是複利計算有次顯示功能還沒完全應用到所有的函數中,剩餘的工作就是将次方法應用到所有函數中,GITHUB上的是目前的這部分函數的代碼。
https://github.com/zzzzzz1234/Huazy/blob/master/fuli6.c
更新了實作動态顯示的清屏
clean()
{
FILE *wc;
wc=fopen("c:\\ccc.txt","w");
fclose(wc);
}
更新了完整的程式,還未實作所有功能可以使用動态顯示
https://github.com/zzzzzz1234/Huazy/blob/master/fuli7.c