第47课时,简单银行系统的初步框架(加强版)


/*
*Copyright(c) 2015/4/20 CSDN博客
*All rights reserved.
*文件名称:main.c
*作    者:金叶
*完成日期:2015/4/20
*版本号:V1.0
*问题描述:简单银行系统的初步框架
*程序输出:
*/
/*
说明:
    本程序在学习者仅掌握了基本数据类型和控制结构的前提下设计,模拟银行储蓄系统的基本功能。
    在运行前,请建立文件password.txt,其中存储一个整数,表示密码。
    建立文件balance.dat,其中存储一个数,表示余额。
    运行结束后,对数据所做的所有修改均可以利用文件保存下来。
本程序进一步的改进:
    1、银行应该是多用户,而绝不可以是单个的用户
    2、应该要记录详细的业务过程
    3、增加转帐、挂失等功能
    4、密码的加密存储以及密码输入隐藏
    5、在程序的结构方面,100多行程序放在main函数中,已经显得复杂了。
    随着课程进展,我们将继续完善这个程序。
*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int iChoose; //菜单选择
    int iPass; //正确的密码
    int iPassinflie; //文件中保存的密码
    int iTry=0; //输入密码次数
    int iNewpassword1,iNewpassword2; //改密码时要输入的新密码
    double dMoney_all; //总余额
    int dMoney_give,dMoney_save; //取款金额,存款金额(这个只能是整数 所以定为整型数)
    FILE *fp; //文件指针变量

    printf("欢迎进入CSDN银行系统!\n\n");

    if ((fp=fopen("password.txt","r"))==NULL){
            printf("password file cannot open!");
            exit(0);
        }
    fscanf(fp,"%d",&iPassinflie);
    fclose(fp);
    do {
            iTry++;
    printf("请输入您的银行卡密码:");
    scanf("%d",&iPass);
    if (iPass!=iPassinflie){
        printf("你输入的密码不正确,你已经输错%d次\n",iTry);
    }
    if (iTry>3){
        printf("你已经输错3次,不能进去系统\n");
        exit(0);
    }
    if (iPass==iPassinflie){
        break;
    }
    }
    while (1);

    printf("亲爱的用户CSDN银行欢迎您!\n\n");

    do {
        printf("请选择要使用的功能:\n");
        printf("1.查询余额\n");
        printf("2.取款\n");
        printf("3.存款\n");
        printf("4.修改密码\n");
        printf("0.退出\n");
        scanf("%d",&iChoose);
        switch (iChoose)
        {
            //查询余额
        case 1:
            if ((fp=fopen("balance.dat","r"))==NULL){
            printf("balance file cannot open!");
            exit(0);
            }
            fscanf(fp,"%lf",&dMoney_all);
            printf("您可用余额为:%.2lf元\n\n\n",dMoney_all);
            fclose(fp);
            break;
            //取款
        case 2:
            if ((fp=fopen("balance.dat","w"))==NULL){
            printf("balance file cannot open!");
            exit(0);
            }
            fscanf(fp,"%lf",&dMoney_all);
            do {
                    printf("输入你的取款金额:");
            scanf("%d",&dMoney_give);
            if ((dMoney_give%100)!=0){
                printf("请输入100的倍数。\n"); //判断输入的是不是100的倍数
             }
             else if (dMoney_all>dMoney_give){
                    dMoney_all-=dMoney_give;
                    fprintf(fp,"%f",dMoney_all);
                    printf("请拿好你的钱,注意小偷。\n\n");
                    break;
             }
             else{
                printf("您的余额不足\n\n");
                exit(0);
             }
             }
             while (1);
             fclose(fp);
             break;
             //存款
        case 3:
            if ((fp=fopen("balance.dat","w"))==NULL){
            printf("balance file cannot open!");
            exit(0);
            }
            fscanf(fp,"%lf",&dMoney_all);
            do{
                    printf("输入你的存款金额:");
            scanf("%d",&dMoney_save);
            if (dMoney_save%100!=0){
                printf("请输入100的倍数。\n"); //判断输入的是不是100的倍数
             }
             else
             {
                    dMoney_all+=dMoney_save;
                    fprintf(fp,"%f",dMoney_all);
                    printf("您已存入%d元\n\n",dMoney_save);
                    break;
             }

             }
             while (1);
             fclose(fp);
             break;
             //修改密码
        case 4:
            if ((fp=fopen("password.txt","w"))==NULL){
            printf("password file cannot open!");
            exit(0);
            }
            fscanf(fp,"%d",&iPassinflie);
            printf("请输入新的密码:\n");
            scanf("%d",&iNewpassword1);
            printf("请重复输入新的密码:\n");
            scanf("%d",&iNewpassword2);
            if (iNewpassword1==iNewpassword2){
                    iPassinflie=iNewpassword1;
               fprintf(fp,"%d",iPassinflie);
               printf("密码修改完成。\n\n");
            }
            else{
                printf("你输入错误。\n");
                //exit(0);
                }
            fclose(fp);
            break;
            //退出
        case 0:
            exit(0);
            }
         }
         while (iChoose);

         return 0;

}







入门级应该到了吧 哈哈 


下面就要开始下一部分的学习了 加油!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值