/***************************************
程序:复利计算
版本: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("-------------------------------------------------------------| "); printf("每年的年利率比为:"); scanf("%f",&stu.base); printf("-------------------------------------------------------------| "); printf("输入你存入的年数:"); scanf("%d",&stu.day); printf("-------------------------------------------------------------| "); printf("输入你复利次数:"); scanf("%d",&k); stu.total=stu.total*pow(stu.base/k+1,stu.day*k); printf("-------------------------------------------------------------| "); printf("每年的年利率%f,连续%d年,总受益的利率:%lf ",stu.base,stu.day,stu.total); printf("-------------------------------------------------------------| "); printf("输入本金金额:"); scanf("%f",&stu.money); stu.total1=stu.money*stu.total; printf("-------------------------------------------------------------| "); printf("你将可以得到:%lf ",stu.total1); printf("-------------------------------------------------------------| "); } save() { FILE* wc =fopen("c:\ccc.txt","a"); if(wc==NULL) { printf("failed to open file "); return 0; } fprintf(wc,"-------------------- "); fprintf(wc,"| 年利率:%.2f | ",stu.base); fprintf(wc,"| 存入年:%d | ",stu.day); fprintf(wc,"| 总利率:%.2f | ",stu.total); fprintf(wc,"| 本金:%.2f | ",stu.money); fprintf(wc,"| 得到金额:%.2f | ",stu.total1); fprintf(wc,"-------------------- "); 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(" "); printf(" "); printf(" "); printf(" "); printf(" "); printf(" "); printf(" ------------------------------------- "); printf(" | 欢迎来到广州商业银行 | "); printf(" | 顾客你可以根据1~7选择 | "); printf(" | 1.复利计算 | "); printf(" | 2.单利计算 | "); printf(" | 3.送你养老金计算方法 | "); printf(" | 4.股票赚钱哟 | "); printf(" | 5.投资工具找的好才赚钱哟 | "); printf(" | 6.本利与本金的存款计算 | "); printf(" | 7.贷款 | "); printf(" -------------------------------------- "); printf(" "); printf("请根据数字选择你需要的功能(1~7) "); scanf("%d",&num); switch(num) { case 1: printf(" "); 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