C语言及程序设计初步应用程序小设计-CSDN银行

#include <stdio.h>
#include <stdlib.h>
//C语言及程序设计初步,综合练习,CSDN银行,功能说明
/* 1.输入密码进行登录(错误三次后退出程序),输入0-4选择不同功能,1-查询、2-取款,3-存款,4-改密码,0-退出.
   2.只支持单个用户,密码和存款余额分别保存在本地两个文件中
   3.取款功能支持超出额度提示.
   4.修改密码需要输入两次新密码,先要输入原密码,如果原密码输入不正确,则立即退出。(安全性)
   5.取款和存款操作需要加入确认提示,点击确认后才会继续操作,取消的话回退会上一级
*/


int main()
{
    long iMoney,iOut,iPut;
    long iPass,iPass_file,iPass_change_old,iPass_change_new1,iPass_change_new2;
    FILE *fp1,*fp2;
    int iErr_count=1;
    int flag=0,choice;
    char choice_temp;
    printf("欢迎使用CSDN银行\n");
    fp1=fopen("passwd.dat","r");
    fp2=fopen("money.dat","r");
    fscanf(fp1,"%ld",&iPass_file);
    fscanf(fp2,"%ld",&iMoney);
    fclose(fp1);
    fclose(fp2);
    while(iErr_count<=3)
    {
        if(iErr_count==1)
            printf("请输入密码:");
        else
            printf("密码错误,请再次输入密码: ");
        scanf("%ld",&iPass);
        if(iPass==iPass_file)
            break;
        else
            iErr_count++;
    }
    if(iErr_count>3)
    {
        printf("错误三次,程序退出,该帐号锁定。\n");
        exit(0);
    }
    while(flag==0)
    {
        printf("本行提供以下业务:\n");
        printf("1.  查询.\n");
        printf("2.  取款.\n");
        printf("3.  存款.\n");
        printf("4.  改密码.\n");
        printf("0.  退出.\n");
        printf("请选择需要办理的业务(1-4),按0退出");
        scanf("%d",&choice);
        switch(choice)
        {
            case 1:
            {
                printf("当前的存款余额为:%ld\n",iMoney);
                break;
            }
            case 2:
            {
                printf("请输入需要取出的金额:");
                scanf("%ld",&iOut);
                printf("确认取出%ld元(输入n取消,任意键确认)\n",iOut);
                choice_temp=getchar();//接收前一个字符串的\n
                choice_temp=getchar();
                if(choice_temp=='n'||choice_temp=='N')
                    break;
                if(iOut<=iMoney)
                {
                    iMoney-=iOut;
                    printf("成功取出%ld元!\n",iOut);
                }
                else
                {
                    printf("余额不足!\n");
                }
                break;
            }
            case 3:
            {
                printf("请输入需要存入的金额:");
                scanf("%ld",&iPut);
                printf("确认存入%ld元(输入n取消,任意键确认)\n",iPut);
                choice_temp=getchar();//接收前一个字符串的\n
                choice_temp=getchar();
                if(choice_temp=='n'||choice_temp=='N')
                    break;
                iMoney+=iPut;
                printf("成功存入%ld元!\n",iPut);
                break;
            }
            case 4:
            {
                iErr_count=1;
                while(iErr_count<=3)
                {
                    if(iErr_count==1)
                        printf("请输入原密码:");
                    else
                        printf("密码错误,请再次输入原密码: ");
                    scanf("%ld",&iPass_change_old);
                    if(iPass_change_old==iPass)
                            break;
                    else
                        iErr_count++;
                }
                if(iErr_count>3)
                {
                    printf("错误三次,程序退出,该帐号锁定。\n");
                    exit(0);
                }
                printf("校验通过,请输入新密码:");
                scanf("%ld",&iPass_change_new1);
                printf("请再次输入新密码:");
                scanf("%ld",&iPass_change_new2);
                while(iPass_change_new1!=iPass_change_new2)
                {
                    printf("两次结果不一致,请重新输入!\n");
                    printf("校验通过,请输入新密码:");
                    scanf("%ld",&iPass_change_new1);
                    printf("请再次输入新密码:");
                    scanf("%ld",&iPass_change_new2);
                }
                iPass=iPass_change_new1;
                printf("修改密码成功!\n");
                break;
            }
            case 0:
            {
                flag=1;
                break;
            }
            default:
            {
                printf("输入错误,请重新输入!\n");
            }
        }
    }
    fp1=fopen("passwd.dat","w");
    fp2=fopen("money.dat","w");
    fprintf(fp1,"%ld",iPass);
    fprintf(fp2,"%ld",iMoney);
    fclose(fp1);
    fclose(fp2);
    printf("谢谢您的使用,欢迎下次光临!\n");
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值