C语言实现模拟银行系统

 更新时间:2022年06月15日 11:04:22   作者:toMontain  
这篇文章主要为大家详细介绍了C语言实现模拟银行系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了C语言实现银行系统的具体代码,供大家参考,具体内容如下

1.实现要求

生成一个1000-1000000之间的随机数来代表账户余额(要求每次生成的数不一样);
实现登录功能:用户有三次输入密码的机会,输入正确的密码才能登录,如果输入错误超过了三次 之后密码还是错,则提示账户被冻结,退出程序。
实现查询账户余额功能:查询账户余额并输出。
实现取款功能:提示用户输入相应的金额,并取款。
实现存款功能:提示用户输入存款金额,并存款。
实现修改密码功能:提示用户输入新的密码,密码修改成功后,退出系统,提示重新登录。
实现退出系统功能。

2.示例代码:

//示例代码:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

void menu();
int changePwd();
int drawDeposit() ;
void getDeposit() ;
void judgePwd();
void Print();
long saveDeposit();

long deposit;//存款
int password=123456;//密码 
//随机生成一个1000-1000000之间的整数来代表存款
void getDeposit() {
    do {
        deposit=rand()%1000000+1;
    } while(deposit<1000);
}

//打印菜单选择项
void menu() {
    printf("\t  ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n");
    printf("\t☆※※※※※※※※欢迎使用银行系统※※※※※※※※☆\n");
    printf("\t  ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n\n");
    printf("银行业务有以下几种:\n");
    printf("按键1:查看账户余额\n");
    printf("按键2:取款\n");
    printf("按键3:存款\n");
    printf("按键4:修改密码\n");
    printf("按键5:退出系统\n");
}

//判断密码是否正确
void judgePwd() {
    int input;
    int count=0;//输入密码的次数,初值为0
    printf("请输入您的密码:");
    scanf("%d",&input);
    count++;//每输入一次密码,次数加一
    //如果密码密码输入错误,就提示重新输入,直到输入正确的密码或者次数用完
    while(input!=password) {
        if(count==3) {//当count=3时,表示输入了3次错误的密码,退出程序
            printf("你的次数已用完,账户已被冻结!\n");
            printf("正在退出系统......\n");
            exit(0);
        }
        printf("密码输入错误,请重新输入:(您还有%d次机会)\n请输入您的密码:",3-count);
        scanf("%d",&input);
        count++;
    }
    printf("密码输入正确,登录成功!\n");
    printf("\n \n");
}
//打印账户余额
void Print() {
    printf("您的账户余额为:%ld\n",deposit);
}
//取款
int drawDeposit() {
    long draw;//取款金额
    do {
        printf("请输入您的取款金额(本机只能提取100元面值的钞票):");
        scanf("%ld",&draw);
        if(draw>deposit) {//如果输入的金额大于余额,提示余额不足
            while(draw>deposit) {
                printf("您的余额不足,请重新输入取款金额:");
                scanf("%ld",&draw);
            }
        }
        if(draw<100||draw%100!=0) {//输入的金额不合法,提示重新输入
            printf("输入的取款金额有误,请重新输入取款金额:\n");
        }
    } while(draw<100||draw%100!=0);
    deposit=deposit-draw;//计算余额(原来的余额-取款金额)
    return draw;
}
//存款
long  saveDeposit() {
    long save;//存款金额
    printf("存款时只接受面值为100的钞票。\n") ;
    printf("请输入您的存款金额:");
    scanf("%ld",&save);
    //存款金额不能为负,且只能存百元钞
    while(save<=0||save%100!=0) {
        printf("存款金额不符合规定,请重新输入存款金额:");
        scanf("%ld",&save);
    }
    deposit=deposit+save;//账户余额=原来的余额+存款金额
    return save;
}
//修改密码
int changePwd() {
    int change_pwd,change;
    char ch;
    printf("您确定要修改密码吗?(Y/y)");
    scanf("%c",&ch);
    ch=getchar();
    if(ch=='y'||ch=='Y') {
        judgePwd(); 
        printf("请输入新的密码:");
        scanf("%d",&change_pwd);
        printf("请确认新的密码:") ;
        scanf("%d",&change);
        if(change_pwd!=change) {
            printf("两次密码输入不一致,即将返回主页面...\n");
//            menu();
            return password;
        } else {
            password=change_pwd; 
            printf("密码修改成功......\n");
            printf("请重新登录:\n");
            judgePwd();
            return change_pwd;
        }
    } else {
        return password;
    }
}
int main() {
    srand((unsigned)time(NULL));//使每次生成的随机金额不同
    getDeposit();//调用函数生成账户余额
    menu();//调用函数,打印菜单
//    int password=123456;//设置初始密码
    judgePwd();//判断输入的密码是否正确
    int ch,statu=0;
    //程序主体:登录之后,只有等到用户自己选择退出时才退出系统, 否则就一直执行下去
    while(1) {
        printf("--------------------------------------------------------------------------------\n\n");
        menu();
        printf("请选择你的业务:\n");
        scanf("%d",&ch);
        //根据用户输入选择执行相应的操作
        switch(ch) {
            case 1:
                Print();
                break;
            case 2:
                printf("取款成功,金额为:%ld\n",drawDeposit());
                break;
            case 3:
                printf("存款成功,金额为:%ld\n",saveDeposit());
                break;
            case 4:
                password=changePwd();
                break;
            case 5:
                statu=-1;
                break;
            default:
                printf("输入有误,请重新输入......\n");
        }
        if(statu==-1) {
            break;
        }
    }
    printf("\n欢迎下次光临,再见\3\3\3\3\3...\n");
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 老生常谈C语言中指针的使用

    老生常谈C语言中指针的使用

    这篇文章主要为大家详细介绍了C语言中指针的使用,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • C语言数据的存储专项分析

    C语言数据的存储专项分析

    使用编程语言进行编程时,需要用到各种变量来存储各种信息。变量保留的是它所存储的值的内存位置。这意味着,当您创建一个变量时,就会在内存中保留一些空间。您可能需要存储各种数据类型的信息,操作系统会根据变量的数据类型,来分配内存和决定在保留内存中存储什么
    2022-07-07
  • C语言中常量指针与指针常量区别浅析

    C语言中常量指针与指针常量区别浅析

    这篇文章主要介绍了C语言中常量指针与指针常量区别,有需要的朋友可以参考一下
    2013-12-12
  • C程序读取键盘码的方法

    C程序读取键盘码的方法

    这篇文章主要介绍了C程序读取键盘码的方法,运行时可通过键盘按键获取其对应的键盘码,文章最后附带了键盘码与按键的对照表,需要的朋友可以参考下
    2014-09-09
  • C语言直接选择排序算法详解

    C语言直接选择排序算法详解

    直接选择排序就是遍历整个数组,每遍历一遍的目的是找出该数组中的最大数和最小数对应的下标,然后将最小数和数组的第一个数进行交换,最大数和数组的最后一个数进行交换,然后缩小范围再次遍历
    2022-08-08
  • Linux系统下C语言gets函数出现警告问题的解决方法

    Linux系统下C语言gets函数出现警告问题的解决方法

    这篇文章主要给大家介绍了关于在Linux系统下C语言gets函数出现警告问题的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • 关于c语言中回调函数的理解

    关于c语言中回调函数的理解

    这篇文章主要给大家介绍了关于c语言中回调函数的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 一文带你学习C++析构函数

    一文带你学习C++析构函数

    在C++中,析构函数是一种特殊类型的成员函数,用于在对象生命周期结束时被自动调用,本文我们将介绍C++析构函数的一些重要知识点,并提供相应代码示例,需要的朋友可以参考下
    2023-05-05
  • C/C++实现遍历文件夹最全方法总结

    C/C++实现遍历文件夹最全方法总结

    这篇文章主要为大家介绍了C/C++实现遍历文件夹功能的最全方法总结,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2022-09-09
  • C++实现简易通讯录

    C++实现简易通讯录

    这篇文章主要为大家详细介绍了C++实现简易通讯录,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-07-07

最新评论