【C语言学习】编写银行存取款机——基础小白练习应用

2019-07-30  本文已影响0人  榆野铃爱

心得感悟

纸上得来终觉浅,绝知此事要躬行。学过的C语言都忘得差不多了,所以今天的课程以及任务对我来说还是很艰难的,连写scanf都忘了加&,语法错误层出不穷,bug一个接着一个。但是同时我也收获颇丰,上学期我基本都是照着课本敲代码,让我自己写根本无从下手,这次练习全都靠自己想出来,一次次修改完成的,十分有成就感。这个程序难易程度刚好,非常适合有一定基础的小白去提高C语言的编程能力。


1. 目的:

  1. 锻炼程序逻辑思维
  2. 熟悉基本数据类型
  3. 能正确地使用条件语句和循环语句
  4. 多加练习C语言

2. 技术

  1. 分析程序框架
  2. 完成各个程序框架部分
  3. 将复杂部分放入另一个函数(函数的应用)

3. 技术的使用

1. 分析程序框架

2. 完成各个程序框架部分

    printf("********************************************\n\n");
    printf("               欢迎使用\n\n");
    printf("********************************************\n\n");
for(i=0;i<4;++i)
    {
        printf("\n请输入密码:");
        scanf_s("%d",&inputkey);
        if(inputkey == key)
        {
            //操作选项,提示输入
            printf("1.存款\n2.取款\n3.设置密码\n4.退出\n\n请选择所需操作:");
            application();
        }
        else
            printf("密码错误!还有%d次机会!",3-i);
        }
    if(i==4)
        printf("\n四次密码输入错误!银行卡已冻结,请联系客服!");
    system("pause");
    return 0;
switch(choice){
    case 1:               //存款
                        
    case 2:               //取款
                        
    case 3:               //设置密码
                        
    case 4:               //退出
    
    default:             //判断不合法情况
    
case 1:
    printf("\n请输入存款金额:");
    scanf_s("%d",&new_money);
    money += new_money;
    printf("存款成功!余额为:%d\n",money);
    printf("已返回主菜单!\n");
    break;
case 2:
    while(1)
    {
        printf("\n请输入取款金额:");
        scanf_s("%d",&new_money);
        if(money >= new_money)
        {
            money -= new_money;
            printf("取款成功!余额为:%d\n",money);
            printf("已返回主菜单!\n");
            break;
        }
        else
        {
            printf("余额不足!是否继续?Y或N:");
            scanf_s("%s",&j);
            if(j == 'Y')
                continue;
            else
                printf("已返回主菜单!\n");
                break;
        }
    }
    break;
case 3:
    for(i=0;i<4;++i)
    {
        printf("\n请输入原始密码:");
        scanf_s("%d",&inputkey);
        if(inputkey == key)
        {
            printf("密码正确!请输入新密码:");
            scanf_s("%d",&new_key1);
            printf("请再入确认新密码:");
            scanf_s("%d",&new_key2);
            if(new_key1 == new_key2)
            {
                key = new_key2;
                printf("密码修改成功!您的密码为:%d\n",key);
                printf("已返回主菜单!\n");
                break;
            }
            else
                printf("两次密码不相同!请重新操作!\n");
                printf("已返回主菜单!\n");
                break;
        }
        else
            printf("密码错误!还有%d次机会!",3-i);
    }
    if(i==4)
    {
        printf("\n四次密码输入错误!银行卡已冻结,退出系统!");
        exit(0);
    }
    break;
case 4:
    printf("\n退出成功!\n\n");
    break;
default:
    printf("输入不合法!请重新输入:");
    break;

3. 将复杂部分放入另一个函数(函数的应用)

可以看出,实现功能的代码较为复杂,且整个编码使用循环和条件语句实现,关联性较强,不好拆开,综合考虑,将整个实现功能的代码装入另一个函数,使主函数更加简洁

void application (void)
{
    while(1){
        scanf_s("%d",&choice);//获取输入
        switch(choice){
            case 1:               //存款
                        
            case 2:               //取款
                        
            case 3:               //设置密码
                        
            case 4:               //退出
            
            default:            //判断输入不合法情况
        }
    }
}

注意在主函数前加上函数声明,在主函数应用处调用

 void application (void);
if(inputkey == key)
{
    //操作选项,提示输入
    printf("1.存款\n2.取款\n3.设置密码\n4.退出\n\n请选择所需操作:");
    application();
}
上一篇 下一篇

猜你喜欢

热点阅读