银行测算系统C代码

来源:互联网 发布:阿里云视频监控平台 编辑:程序博客网 时间:2024/04/28 09:38

#include<math.h>
#include<stdio.h>
//定义变量
float totalsum,perbj,perlx,rate,leftbj,sumbj,sumlx,perbx;
int i,mode,ptime;
FILE*fp;
char filename[10];
//两种还款方式计算函数,包含向显示器和文本文件输出等功能
void account(float totalsum,float rate,int ptime,int mode)
{
 sumbj=0;sumlx=0;
 leftbj=totalsum;//还款前剩余本金额等于总还款额
 //向显示器输出各还款标题信息
 printf("ptime/tperbj/tperlx/tperbx/tleftbj/n");
 printf("---------------------------/n");
 //向文件输出各还款标题信息
 fprintf(fp,"ptime/tperbj/tperlx/tperbx/tleftbj/n");
 fprintf(fp,"-----------------------/n");
 //建立循环计算每月还款额
 for(i=1;i<=ptime;i++)
 {
  if(mode==1)         //等额本金还款方式
  {
   perbj=totalsum/ptime;
   perlx=leftbj*rate/1000;
  }
  else               //等额本息还款方式
  {
            perlx=(totalsum*(rate/1000)*pow((1+rate/1000),ptime))/(pow((1+rate/1000),ptime)-1);
   perlx=leftbj*rate/1000;
   perbj=perbx-perlx;
  }
  leftbj=leftbj-perbj;
  sumbj=sumbj+perlx;//统计总还款金额
  sumlx=sumlx+perlx;//统计总还款利息
  printf("%d/t%.3f/t%.3f/t%.3f/t%.3f/n",i,perbj,perlx,perbj+perlx,leftbj);//向显示器输出各还款金额
        fprintf(fp,"%d/t%.3f/t%.3f/t%.3f/t%.3f/n",i,perbj,perlx,perbj+perlx,leftbj);//向文件输出各还款金额
 }  
 printf("------------------------/n");
 printf("sum/t%.3f/t%.3f/t%.3f/n",sumbj,sumlx,sumbj+sumlx);//向显示器输出各合计金额
 fprintf(fp,"------------------------/n");
 fprintf(fp,"sum/t%.3f/t%.3f/t%.3f/n",sumbj,sumlx,sumbj+sumlx);//向文件输出各合计金额
}
void main()
{
 printf("please filename:");
 scanf("%s,filename");//输入文件名
 //判断文件是否存在,不存在则重新建立,存在则向文本文件添加内容
 if((fp=fopen(filename,"a"))==NULL)
 {
  fp=fopen(filename,"w++");
  if(fp==NULL)
  {
   printf("Cannot create file/n");
   return;
  }
 }
 printf("/nplease input totalsum,rate,ptime,mode:/n");
 scanf("%f,%f,%d,%d",&totalsum,&rate,&ptime,&mode);
 account(totalsum,rate,ptime,mode);//调用计算函数
}