一个简易的ATM机实现

这是我们C语言学习的最后阶段,用C语言做一个控制台控制的简易ATM机。实现输入密码,密码判断,显示选线等功能。我实现的代码如下:

#include<stdio.h>
#include<string.h>
//#include<stdlib.h>
void  welcome(char user[])
{
    printf("     #################################################     \n");
    printf("     #           欢迎来到中国天地银行                #     \n");
    printf("     #               %8s                        #     \n",user);
    printf("     #                                               #     \n");
    printf("     #                欢迎您!                       #     \n");
    printf("     #                                               #     \n");
    printf("     #                                               #     \n");
    printf("     #                                               #     \n");
    printf("     #                本ATM竭诚为您服务              #     \n");
    printf("     #                         最终解释权归          #     \n");
    printf("     #                             张成所有          #     \n");
    printf("     #                            电话:900100111    #     \n");
    printf("     #################################################     \n");
    printf("\n");
}

int password(int tmp)
{
    char pwd[10];
    while(tmp != 0)
    {
        tmp--;
        scanf("%s",pwd);
         if (strcmp(pwd,"9527") == 0)
        {
        printf("密码正确");
        system("pause");
        break;
        return 1;
        }
        else
        {
            if(tmp>0)
            {
                printf("您输入的密码错误,你还有%d次机会,请重新输入\n",tmp);
                continue;
            }
            else
            printf("您输入的密码错误,卡将锁定。按任意键返回到开始界面。\n");
            system("pause");
            system("cls");
            return 0;
        }
    }
} 

void showfile(money)
{
    int num,qukuan,cunkuan,jine,k=1,j=1;
    char zhanghu[20],bianliang[3];
    while (k)
    {
        printf("请选择你要操作的选项:\n1、查询余额\n2、取款\n3、存款\n4、转账\n5、退出\n");
        scanf("%d",&num);
        switch(num)
        {
            case 1:
                printf("您当前账户的余额为:%d元。\n",money);
                system("pause");
                system("cls");
            break;

                case 2:
                printf("请输入您的取款金额(100或100的整数倍):\n");
                scanf("%d",&qukuan);
                if(qukuan<=money)
                {
                    money=money-qukuan;
                    printf("成功取款%d\n",qukuan);
                }
                else
                printf("账户余额不足!\n");
                system("pause");
                system("cls");
            break;

            case 3:
            printf("请输入您的存款金额(100或100的整数倍):\n");
            scanf("%d",&cunkuan);
            money=money+cunkuan;
            printf("成功存款%d元\n",cunkuan);
            system("pause");
            system("cls");
            break;

            case 4:
            while(j)
            {
                printf("请输入您要转账的账户:\n");
                scanf("%s",zhanghu);
                 printf("您要转账的账户为:%s\n",zhanghu);
                 printf("确定?Y/N\n");
                scanf("%s",bianliang);
                if(strcmp(bianliang,"Y")==0)
                {
                    printf("请输入您要转账的金额:\n");
                    scanf("%d",&jine);
                     if(jine<=money)
                    {
                        money=money-jine;
                        printf("成功转账%d元\n",jine);
                        j=0;
                        system("pause");
                        system("cls");
                    }
                    else
                    {
                        printf("账户余额不足!\n");
                        system("pause");
                        break;
                    }
                }
                else
                {
                    j=1;
                    continue;
                }
            }
            break; 

            case 5:
            k=0;
            break;
        }
    }

}

int main()
{
    char user[100],pwd[10];
    int tmp=3,key,flag=1;
    int money=10000;
    while(flag)
    {
        flag = 0;
        printf("请输入您的账户名:\n");
        scanf("%s",user);
        welcome(user);
        printf("(友情提示:您一共有3次机会,3次输入错误将锁定,请核对后谨慎输入)\n");
        printf("请输入您账户名所对应的密码:\n");
        key=password(tmp);
        if(key==1)
        {
            system("cls");
            showfile(money);
        }
        else
        flag = 1;
    } 

}

Code

时间: 2024-10-13 07:06:03

一个简易的ATM机实现的相关文章

简易版ATM机

#include <stdio.h>#include<string.h>#include<stdlib.h> void welcome()//输入账户 { char user[10]; printf("请输入您的账户名:\n"); scanf("%s",user); printf("welcome you!!\n%s\n",user);} int password() //输入密码 { char pwd[10]

用JAVAFX做的一个简易复读机~送给亲爱的老婆~

有段时间没有写博客了,原因一个是最近工作很忙,各种出差,一个是去年就答应老婆给她做一个简易的复读机,用来学习英语的,要求是本地的,具备最基本的AB复读和最近几秒的复读.其实去年就默默的研究过一段时间,先后尝试过JMF还有JAVA SOUND,无奈实在是不好用...不好用就算了,java sound感觉都完不成这些功能...结果最近无意中看到JDK1.8集成了JAVAFX,应该是oracle试图改善SWING的恶劣形象吧...别的没有研究,至少在音频播放这块,已经功能很强大了.所以短短续续做了2个

Socket 初识 用Socket建立一个简易Web服务器

摘自<Asp.Net 本质论>作者:郝冠军 //在.Net中.system.Net命名空间提供了网络编程的大多数数据据类型以及常用操作,其中常用的类型如下:/*IPAddress 类表示一个IP地址* IPEndPoint类用来表示一个IP地址和一个端口号的组合,成为网络的端点.* System.Net.Sockets命名空间中提供了基于Socked编程的数据类型.* Socket类封装了Socked的操作.* 常见的操作:* Listen:设置基于连接通信的Socket进入监听状态,并设置等

文件及输入输出流模拟ATM机

题目:两部分要求都要实现. 一.ATM机的账户记录Account有账户的唯一性标识(11个长度的字符和数字的组合),用户的姓名,操作日期(Date),操作类型,账户密码(六位的数字,可以用0开头),当前的余额(可以为0). 模拟ATM的功能设计,用户插卡后显示选择语言界面,输入密码界面,用户输入正确密码(用户输入错误密码,则提示该卡已被锁定,无法操作),则弹出选择界面:存款.取款.转账汇款.修改密码.查询余额. 选择"取款",则显示100元.500元.1000元.1500元.2000元

菜鸡程序猿的开始:java基础知识之一个简单ATM机

import java.util.Scanner; public class Atm{ static int allmoney=150000; //ATM现有余额 static int all=200000; // ATM最大量 static int money =10000; // 初始化用户的余额 public static void main(String[] args) { System.out.print("*********************************"

Atm机制作

大概一个星期以前,我对java的认识就是:java是什么?编程是什么? 想从一个初学者,变成一个精通者,有点难!! 如今学习java已经一个星期了,简单编写了Atm机的程序,希望前辈们,多多指教 import java.util.Scanner; public class Atmfangfa { public static boolean login(){ boolean boo;  Scanner s = new Scanner(System.in);  System.out.println(

摩根大通银行被黑客攻克, ATM机/网银危在旦夕,winxp退市灾难来临了

winxp4月退市到如今还不到半年,就出现故障了 7600多万个消费者银行账户被黑.此外还有700万个小企业账户的信息也被黑客窃取,这个算不算灾难呢?假设等到银行业彻底崩溃,资金彻底丧失,那不仅仅是灾难,而是末日. 因为越来越多黑客受雇于组织.针对winxp退市的唾手可得的攻击成了他们的巨大狂欢.我觉得黑客可能利用winxp漏洞入侵atm机后再进入银行网络.在没有安全操作系统(windows不安全众人皆知)情况下把数据放到云服务.等于把安全钥匙交给了黑客.摩根发布这些事件是想获得针对账户攻击的免

模拟ATM机银行系统

淄博汉企Java基础考核项目 模拟银行自助终端系统 一. 本系统模拟银行用户使用ATM机开户.查询.存款.取款功能,要求使用java语言编程实现. 说明: 1. 对于数据输入异常,可使用java异常处理机制进行处理. 2. 评分将以功能实现与代码规范性相结合的方式进行考核. 3. 如果对项目需求有疑问,可以随时以QQ留言方式联系我进行咨询. 4. 国庆放假期间,每天都有老师在公司值班,10月4日是我在公司值班,10月7日正常上班,欢迎大家到公司来做项目. 二. 项目功能要求: 项目开始运行显示主

ATM机无线采集监控系统解决方案

1.解决方案介绍 本系统采用采用厦门为那通信TD-LTE ROUTER 2026工业4G无线路由器,连接DVR/NVR设备,可上传本地视屏和抓拍图像监测的同时,上传和监测ATM多个敏感传感器正常状态.通过运营商APN/VPDN专网卡(SIM),与银行服务器机房建立专网隧道,保证数据认证安全加密,采用LTE 4G高速网络制式,保证视频图像数据大数据传输可靠性,达到统一管理,统一监控目的.实时保护ATM机正常运行和取款公民的人身安全. 采用的传感器包括人体感应器.配钞传感器.震动传感器等,在加上针孔