第4周 C语言及程序设计提高例程-15 小小型应用系统开发指导(三)

问题及代码:

#include<stdio.h>
#include<stdlib.h>
double Balance;//全局变量金额
int iPASSFILE;//全局变量密码
int pass();//验证密码 
void work();//业务驱动 
void getBalance();//获得余额 
void Menu();//显示菜单 
void undatepassword();//更改密码 
void withdraw();//取款 
void save();//存款 
void saveBlance();//退出系统时保存数据 
int main()
{
	printf("欢迎来到时缔银行!");
	if(pass())
	{
	  work();
	}
	return 0;
}

int pass()
{
	int ipass;
	int iTry=3;
	FILE *fp;
	if((fp=fopen("password.txt","r")==NULL))
	 {
	   printf("password file cannot open!")
       exit(0);
      }
     fscanf(fp,"%d",&iPASSWORD);
     fclose(fp);
     do
     {
     	iTry--;
     	printf("请输入密码:");
     	scanf("%d",ipass);
     	if(iTry>3)
     	  printf("您已尝试%d次",iTry);
     	  else
     	  printf("您的错误已超过3次,不能进入系统");
	 }
	 while(iTry);
	return iTry;
}
 void work()
  {
  	int iChoice;
  	getBlance();
     do
     {
     	showMenu();
     	printf("请输入0-4");
		scanf("%d",&iChoice);
		swich(iChoice)
		  case 1:
		  	printf("您有%.2f\n",Blance);
		  	break;
		  case 2:
		  	withdraw();
		  	break;
		  case 3:
		    save();
		    break;
		  case 4:
		  	undatepassword();
		  	break;
		  case 0:
		  	printf("欢迎下次再来!");
		  
	 }
	 while(ichoice);
	 saveBlance();
  }
  void getBalance()
  {
   	FILE*fp;
  	if(fp=fopen("balance.dat","r")==NULL)
  	{
  	 printf("balance file cannot open!");
  	 exit(0);
  }
  	 fscanf(fp,"%lf",&Balance);
  	 fclose(fp);
  	 return;
  }
  void show Menu()
  {
  	printf("\n您可以办理下面的业务:\n");
    printf("  1.查询\n");
    printf("  2.取款\n");
    printf("  3.存款\n");
    printf("  4.改密码\n");
    printf("  0.退出\n");
  }
  void undatepassword();
  {
   FILE *fp;
   int ipassword1,ipassword2;
    printf("请输入新密码:");
    scanf("%d", &ipassword1);
    printf("再输入新密码:");
    scanf("%d", &ipassword2);
    if(ipassword1==ipassword2)
     iPASSFILE=ipassword1;
     printf("你的密码修改完毕!请保持好密码!");
	   if ((fp=fopen("password.txt", "w"))==NULL)
        {
            printf("password file cannot open!");
            exit(0);
        }
        fprintf(fp, "%d", iPASSFILE);
        fclose(fp);
    else
        printf("两次输入不一致,密码修改失败.\n");
    }
    void withdraw()
    {
    	double dMoney;
    	printf("请输入取款金额:");
		scanf("%lf",dMoney);
		if(dMoney<Balance)
		{
			Balance-=dMoney;
			printf("取款后您还有%.2lf余额",Balance);
		 } 
		 else
		    printf("您的余额不足,请重新输入!");
		    return;
	}
	void save()
{
    double dMoney;  //存款金额
    printf("输入存款额: ");
    scanf("%lf", &dMoney);
    dBalance+=dMoney;
    printf("存款后,您有%.2f元. \n",dBalance);
    return;
}
void saveBalance()
{
    FILE *fp;  //用于文件操作
    //保存余额
    if ((fp=fopen("balance.dat", "w"))==NULL)
    {
        printf("data file cannot open!");
        exit(0);
    }
    fprintf(fp, "%f", dBalance);
    fclose(fp);
}
运行结果:

暂无

知识总结:

自定义函数在实际中的应用,建立模块化和体系化。

学习心得:
对流程模块化,用最简洁的方式梳理出主线,然后再将各个模块进行完善。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值