实现ATM功能的基本程序

基于VC6.0的C程序

#include <stdio.h>
#include <stdlib.h>
#include<String.h>
#include<math.h>
#include<windows.h> 
#define M 100
struct info {             //定义用户
    char user[30];  //账号
    char name[10];  //姓名
    long pw;        //密码
    long dsit;      //总额
}bank[M];
int display();
void chaxun(); //查询余额
void cunkuan();//存款
void qukuan();//取款
void menu();//主菜单
void login();//登录
void regist();//注册
float N=0;
int user1, user2;
int main()
{
     printf("欢迎使用中国工商银行自助服务客户端!\n\n");
     system("color f0");  //面板颜色
     menu();
     return 0;
}
void menu()//主界面
{int choice = -1;
while(1)
    {   
printf("               欢迎使用银行存取款系统             \n");
        printf("\n         ================================       \n");
        printf("           1.登录                                 \n");
        printf("           2.注册                                 \n");
        printf("           3.退出                                 \n");
        printf("\n         ================================       \n");

        printf("\t*  请输入您的选择:");
            scanf("%d", &choice); 
        switch(choice) 
        {
            case 1:
                system("cls");
                login();
                break;
            case 2:
                system("cls");
                regist();
                break;
            case 3:
                exit(0);
                break;
            default:
                printf("输入有误,请重输...\n");
                break;
        }   
}
}
void login() //登录
{
    int i,j;
    int flag = 0;
    char my_act[100];
    long password; 
    int X = -1;
    printf("\t\t=================****登录****=================\n\n");
    printf("\t\t*  输入账户:    "); 
    scanf("%s", my_act);
    printf("\n");
    for(i=0; i<3; i++) 
    {
        printf("\t\t*  输入密码:    ");
        scanf("%ld", &password);

        if(password == bank[i].pw) 
        {
            user1 = i;
            flag = 1;
            printf("\t\t登录成功,正在跳转页面...\n"); 
            _sleep(2000);
            system("cls");
            while(1) 
            {
                X = display();//成功进入 
                if(X == 1) 
                {
                    system("cls");  
                    display();
                }
                else 
                    return; 
            }
        }
        else 
        {
            printf("\n");
            if(i<2)
            {   printf("\t\t密码错误,请重新输入...\n");
                printf("\n");
                _sleep(2000);
            }
            else
            {
                printf("\t\t密码错误!超过三次!登录操作失败!正在返回······\n");
                _sleep(2000);
                system("cls");  
                menu();
            }
        }
    }
}
void regist() //注册
{
    int i,n=0;
    printf("\t\t=================****注册****=================\n\n");
    printf("\t\t请输入您的姓名....\n");
    printf("\t\t");
    scanf("%s", bank[n].name);
    printf("\t\t请输入您的账户....\n");
    printf("\t\t");
    scanf("%s", bank[n].user);
    printf("\t\t输入您的密码......\n");
    printf("\t\t"); 
    scanf("%ld", &bank[n].pw);
    for(i=0; i<M && i != n; i++) {
        if(strcmp(bank[n].user, bank[i].user) == 0) {
            printf("\t\t账户已存在,请重新注册......\n");
            n -= 1; 
            _sleep(2000);
            system("cls");
            return;
        }
    }
    printf("\t\t注册成功\n");
    bank[n].dsit = 0;
    n ++;
    _sleep(2000);
    system("cls");
    return; 
}
int display()
{
     printf("      **********************  主菜单  ************************");
     printf("\n");
     printf("      **************       1.查询余额           **************");
     printf("\n");
     printf("      **************       2.存款               **************");
     printf("\n");
     printf("      **************       3.取款               **************");
     printf("\n");
     printf("      **************       0.退出               **************");
     printf("\n\n");
     int m;
     printf("请输入您的选择:");
     scanf("%d",&m);
     while(1)
     {
          switch(m)
          {
               case 1:
                {
                     chaxun();
                     display();
                }break;
               case 2:
                {
                     cunkuan();
                     display();
                }break;
               case 3:
                {
                     qukuan();
                     display();
                }break;
               case 0:
                {
                     exit(0);
                }break;
               default:
                    printf("您的选择有误,请重新输入!\n\n");
                    _sleep(1000);
                    display();break;
          }
     } 
}
void chaxun()//查询
{
     printf("你当前的账户余额为:%.2f元!\n\n",N);
     _sleep(1500);
}
void cunkuan()
{
     int m;
     printf("请输入存款金额:");
     scanf("%d",&m);
     printf("存款正在处理中,请稍后....\n");
     _sleep(1500);
     N += m;
     printf("你的存款%d元已经成功存入账户中!\n\n",m);
     _sleep(500);
     display();
}
void qukuan()//取款
{
     printf("      **********************  取款  *************************");
     printf("\n");
     printf("      **************       1.1000              **************");
     printf("\n");
     printf("      **************       2.500               **************");
     printf("\n");
     printf("      **************       3.200               **************");
     printf("\n");
     printf("      **************       4.100               **************");
     printf("\n");
     printf("      **************       0.返回上级菜单      **************");
     printf("\n\n");
     int m;
     printf("请选择取款金额:");
     scanf("%d",&m);
     switch(m)
     {
          case 1:
           {
                if(N>=1000)
                {

                     N = N-1000; 
                     printf("请求正在处理中,请稍后...\n");
                     _sleep(1500);
                     printf("请查收钞票...\n\n");
                     _sleep(1500);
                }
                else
                {
                     printf("你的当期余额不足1000元,请重新选择!\n");
                     qukuan();
                }
           }break;
          case 2:
           {
                if(N>=500)
                {

                     N = N-500; 
                     printf("请求正在处理中,请稍后...\n");
                     _sleep(1500);
                     printf("请查收钞票...\n\n");
                     _sleep(1500);
                }
                else
                {
                     printf("你的当期余额不足500元,请重新选择!\n");
                     qukuan();
                }
           }break;
          case 3:
           {
                if(N>=200)
                {

                     N = N-200; 
                     printf("请求正在处理中,请稍后...\n");
                     _sleep(1500);
                     printf("请查收钞票...\n\n");
                     _sleep(1500);
                }
                else
                {
                     printf("你的当期余额不足200元,请重新选择!\n");
                     qukuan();
                }
           }break;
          case 4:
           {
                if(N>=100)
                {

                     N = N-100; 
                     printf("请求正在处理中,请稍后...\n");
                     _sleep(1500);
                     printf("请查收钞票...\n\n");
                     _sleep(1500);
                }
                else
                {
                     printf("你的当期余额不足100元,请重新选择!\n");
                     _sleep(1000);
                     qukuan();
                }
           }break;
          case 0:
           {
                display();
           }break;
          default: 
               printf("您的选择有误,请重新输入!");
               _sleep(1000);
               qukuan();
               break;
     }

}

这是一个基础的ATM系统,还有很多地方可以完善,希望大家指点批评

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值