#include<stdio.h>
#include <stdlib.h>
void main()
{
int Num,a,code,ll=0,l=0,p,n,r=0,x,m,Num1,Num2;
int num[10],feng[10],money[10],s[6],t[6];
int i=0;
for(p=0;p<9;p++)
{
num[p]=000000;
money[p]=5000;
feng[p]=0;
}
loop:
//首先...请蒋老师原谅我N多的goto...
printf(" _______________________________\n");
printf("| |\n");
printf("| 欢迎使用ATM自动取款机 |\n");
printf("| |\n");
printf("| ~第一小组热情开发~ |\n");
printf("|_______________________________|\n");
printf(" 请输入卡号:");
scanf("%d",&Num);
fflush(stdin);
if(Num==00)
{
printf("是否进入管理员模式?1/2:");//是否进入管理员模式。
scanf("%d",&a);
fflush(stdin);
switch(a)
{
case 1:
{
printf("请输入管理员密码(6位):");
scanf("%d",&code);
fflush(stdin);
if(code!=num[0])
{
printf("密码不正确!\n");
printf("按任意键返回。\n");
while(getchar()!=EOF)
{
system("cls");
goto loop;
}
}
else
{
guanlimoshi://密码输入正确后,进入管理模式.
system("cls");
printf("|-----欢迎进入管理员模式-------|\n");
printf("| 1:查询用户帐户信息 |\n");
printf("| 2:返回欢迎界面 |\n");
printf("|______________________________|\n");
printf(" 请选择:");
scanf("%d",&n);
fflush(stdin);
switch(n)
{
case 1:system("cls");goto guanli;break;
case 2:system("cls");goto loop;break;
}
}
}
case 2:{
system("cls");
goto loop;
break;
}
default:printf("输入错误!\n");break;
}
}
else
{
if(feng[Num]==1)//如果输入的不是管理员帐号,则判断该帐号是否被封.
{
printf("该帐号已被封存!\n");//如果被封,则返回开头.
printf("按任意键返回。\n");
while(getchar()!=EOF)
{
system("cls");
goto loop;}
}
else//如果没被封,则开始输入密码.
{
printf("请输入密码:");
state:
scanf("%d",&code);
fflush(stdin);
if(code!=num[Num])
{
printf("密码不正确!请重新输入:");
i++;//计算输入错误几次.
if(i<3)
goto state;
else
{
printf("连续三次出错!\n");
++r;//计算连续三次出错共有几次.
if(r<2)//小于2则返回欢迎界面.
{
i=0;
printf("按任意键返回。\n");
while(getchar()!=EOF)
{
system("cls");
goto loop;
}
}
else//大于2则封存帐户,然后返回欢迎界面.
{
printf("您的帐号已被封存.\n");
feng[Num]=1;
printf("按任意键返回。\n");
while(getchar()!=EOF)
{
system("cls");
goto loop;
}
}
}
}
else//如果密码输入正确,则进入用户页面.
{
system("cls");
shuru:
printf("|---欢迎使用ATM自动取款机---|\n");
printf("| 1.取款 2.余额查询 |\n");
printf("| 3.密码修改 4.转帐 |\n");
printf("| 5.历史交易纪录查询 |\n");
printf("| 6.返回欢迎界面 |\n");
printf("|___________________________|\n");
printf(" 请输入选项:\n");
scanf("%d",&x);
fflush(stdin);
switch (x)//进行选择.
{
case 1:system("cls");goto qukuan;break;
case 2:system("cls");goto yuechaxun;break;
case 3:system("cls");goto mimaxiugai;break;
case 4:system("cls");goto zhuanzhang;break;
case 5:system("cls");goto lishijilu;break;
case 6:system("cls");goto loop;break;
default:printf("输入错误!\n");system("cls");goto shuru;
}
}
}
qukuan://进入取款页面.
printf("|----取款----|\n");
printf("| 1.取款 |\n");
printf("| 2.返回 |\n");
printf("|------------|\n");
scanf("%d",&x);
fflush(stdin);
switch (x)
{
case 1:{
if(l>5000)//判断累计取款额.
{
printf("累计取款超过5000元,系统出错.\n");
printf("按任意键返回。\n");
while(getchar()!=EOF)
{
system("cls");
goto shuru;
}
}
else//若低于5000,则开始取款.
{
if(money[Num]<100)//判断此时余额,进行屏幕打印.
{
printf("余额不足.\n");//以下N个疯狂的循环道理同此.
printf("按任意键返回。\n");
while(getchar()!=EOF)
{
system("cls");//原谅我吧蒋老师...我实在没想出啥好方法...
goto shuru;
}
}
else if(money[Num]<200)//现金在0~200元之间时。
{
printf("请选择:1.100元 2.返回上一级\n");
scanf("%d",&n);
fflush(stdin);
switch(n)
{
case 1:{
printf("正在取款,请稍候......\n");
money[Num]-=100;
l+=100;
printf("取款成功!\n");
printf("按任意键返回。\n");
while(getchar()!=EOF)
{
system("cls");
goto qukuan;
}
break;
}
case 2:goto shuru;break;
default:{
printf("输入错误!\n");
printf("按任意键返回。\n");
while(getchar()!=EOF)
{
system("cls");
goto qukuan;
}
break;
}
}
}
else if(money[Num]<500)//现金在0~500元之间时。
{
printf("请选择:1.100元 2.200元 3.返回上一级.\n");
scanf("%d",&n);
fflush(stdin);
switch(n)
{
case 1:{
printf("正在取款,请稍候......\n");
money[Num]-=100;
l+=100;
printf("取款成功!\n");
printf("按任意键返回。\n");
while(getchar()!=EOF){
system("cls");
goto qukuan;}
break;
}
case 2:{
printf("正在取款,请稍候......\n");
money[Num]-=200;
l+=200;
printf("取款成功!\n");
printf("按任意键返回。\n");
while(getchar()!=EOF)
{
system("cls");
goto qukuan;
}
break;
}
case 3:goto shuru;break;
default:{
printf("输入错误!\n");
printf("按任意键返回。\n");
while(getchar()!=EOF)
{
system("cls");
goto qukuan;
}
break;
}
}
}
else if(money[Num]<1000)//现金在0~1000元之间时。
{
printf("请选择:1.100元 2.200元 3.500元 4.返回上一级.\n");
scanf("%d",&n);
fflush(stdin);
switch(n)
{
case 1:{
printf("正在取款,请稍候......\n");
money[Num]-=100;
l+=100;
printf("取款成功!\n");
printf("按任意键返回。\n");
while(getchar()!=EOF)
{
system("cls");
goto qukuan;}
break;
}
case 2:{
printf("正在取款,请稍候......\n");
money[Num]-=200;
l+=200;
printf("取款成功!\n");
printf("按任意键返回。\n");
while(getchar()!=EOF)
{
system("cls");
goto qukuan;
}
break;
}
case 3:{
printf("正在取款,请稍候......\n");
money[Num]-=500;
l+=500;
printf("取款成功!\n");
printf("按任意键返回。\n");
while(getchar()!=EOF)
{
system("cls");
goto qukuan;
}
break;
}
case 4:goto shuru;break;
default:{
printf("输入错误!\n");
printf("按任意键返回。\n");
while(getchar()!=EOF)
{
system("cls");
goto qukuan;
}
break;
}
}
}
else if(money[Num]<2000)//现金在0~2000元之间时。
{
printf("请选择:1.100元 2.200元 3.500元 4.1000元 5.返回上一级.\n");
scanf("%d",&n);
fflush(stdin);
switch(n)
{
case 1:{
printf("正在取款,请稍候......\n");
money[Num]-=100;
l+=100;
printf("取款成功!\n");
printf("按任意键返回。\n");
while(getchar()!=EOF)
{
system("cls");
goto qukuan;
}
break;
}
case 2:{
printf("正在取款,请稍候......\n");
money[Num]-=200;
l+=200;
printf("取款成功!\n");
printf("按任意键返回。\n");
while(getchar()!=EOF){
system("cls");
goto qukuan;}
break;
}
case 3:{
printf("正在取款,请稍候......\n");
money[Num]-=500;
l+=500;
printf("取款成功!\n");
printf("按任意键返回。\n");
while(getchar()!=EOF)
{
system("cls");
goto qukuan;
}
break;
}
case 4:{
printf("正在取款,请稍候......\n");
money[Num]-=1000;
l+=1000;
printf("取款成功!\n");
printf("按任意键返回。\n");
while(getchar()!=EOF)
{
system("cls");
goto qukuan;
}
break;
}
case 5:goto shuru;break;
default:{
printf("输入错误!\n");
printf("按任意键返回。\n");
while(getchar()!=EOF)
{
system("cls");
goto qukuan;
}
break;
}
}
}
else//现金在2000元以上时。
{
printf("请选择:1.100元 2.200元 3.500元 4.1000元 5.2000元 6.返回上一级.\n");
scanf("%d",&n);
fflush(stdin);
switch(n)
{
case 1:{
printf("正在取款,请稍候......\n");
money[Num]-=100;
l+=100;
printf("取款成功!\n");
printf("按任意键返回。\n");
while(getchar()!=EOF)
{
system("cls");
goto qukuan;}
break;
}
case 2:{
printf("正在取款,请稍候......\n");
money[Num]-=200;
l+=200;
printf("取款成功!\n");
printf("按任意键返回。\n");
while(getchar()!=EOF)
{
system("cls");
goto qukuan;}
break;
}
case 3:{
printf("正在取款,请稍候......\n");
money[Num]-=500;
l+=500;
printf("取款成功!\n");
printf("按任意键返回。\n");
while(getchar()!=EOF)
{
system("cls");
goto qukuan;
}
break;
}
case 4:{
printf("正在取款,请稍候......\n");
money[Num]-=1000;
l+=1000;
printf("取款成功!\n");
printf("按任意键返回。\n");
while(getchar()!=EOF)
{
system("cls");
goto qukuan;}
break;
}
case 5:{
printf("正在取款,请稍候......\n");
money[Num]-=2000;
l+=2000;
printf("取款成功!\n");
printf("按任意键返回。\n");
while(getchar()!=EOF)
{
system("cls");
goto qukuan;}
break;
}
case 6:goto shuru;break;
default:{
printf("输入错误!\n");
printf("按任意键返回。\n");
while(getchar()!=EOF)
{
system("cls");
goto qukuan;}
break;
}
}
}
}
break;}
case 2:goto shuru;break;
default:{
printf("输入错误!\n");
printf("按任意键返回。\n");
while(getchar()!=EOF)
{
system("cls");
goto qukuan;}
break;
}
}
mimaxiugai://进入修改密码页面。
printf("|-----修改密码-----|\n");
printf("| 请选择: |\n");
printf("| 1.修改密码。 |\n");
printf("| 2.返回上一级。 |\n");
printf("|__________________|\n");
scanf("%d",&x);
fflush(stdin);
switch(x)
{
case 1:{
printf("请输入新密码(六位):\n");//第一次输入。
for(m=0;m<=5;m++)
{
s[m]=getch();//这里,输入时可以显示*,但是不能用退格健。
printf("*");//退格键会被当作一个字符输入。问题有待解决……
}
printf("请重新输入密码(六位):\n");//第二次输入。
for(m=0;m<=5;m++)
{
t[m]=getch();
printf("*");
}
for(m=0;m<=5;m++)//判断两次输入是否相同。
{
if(s[m]!=t[m])
{
printf("输入与第一遍不符!\n");
printf("按任意键返回。\n");
while(getchar()!=EOF)
{
system("cls");
goto mimaxiugai;}
}
}//计算出密码。=_=|||凭我的智商只想出了这种方法……
num[Num]=s[0]*100000+s[1]*10000+s[2]*1000+s[3]*100+s[4]*10+s[5];
//此种计算密码的方法是错误的,但是没有发现哪里出了错。希望老师帮忙解决下~谢啦~~
printf("密码修改完成!\n");
printf("按任意键返回。\n");
while(getchar()!=EOF)
{system("cls");
goto mimaxiugai;}
}
case 2:system("cls");goto shuru;break;
default:{
printf("输入错误!\n");
printf("按任意键返回。\n");
while(getchar()!=EOF)
{
system("cls");
goto mimaxiugai;}
break;
}
}
zhuanzhang://进入转账页面。
printf("|-----转帐-----|\n");
printf("| 请选择: |\n");
printf("| 1.转帐 |\n");
printf("| 2.返回上一级 |\n");
printf("|______________|\n");
scanf("%d",&x);
fflush(stdin);
switch(x)
{
case 1:{//开始转账。
printf("请输入转账给的用户账号:\n");
scanf("%d",&Num1);
fflush(stdin);
printf("请再次输入账号:\n");//确认。
scanf("%d",&Num2);
fflush(stdin);
if(Num1==Num2)//如果两次输入相同,则进行转账。
{
printf("请输入转账金额:\n");
scanf("%d",&ll);
fflush(stdin);
if(money[Num]>=ll)
{
money[Num]-=ll;
money[Num1]+=ll;
printf("转账成功!!\n");
printf("按任意键返回。\n");
while(getchar()!=EOF)
{system("cls");
goto zhuanzhang;}
}
else
{
printf("余额不足!!\n");
printf("按任意键返回。\n");
while(getchar()!=EOF)
{system("cls");
goto zhuanzhang;}
}
break;
}
else
{//输入不同,则返回。
printf("账号确认失败!\n");
printf("按任意键返回。\n");
while(getchar()!=EOF)
{system("cls");
goto zhuanzhang;}
}
}
case 2:system("cls");goto shuru;break;
default:{
printf("输入错误!!\n");
printf("按任意键返回。\n");
while(getchar()!=EOF)
{system("cls");
goto zhuanzhang;}
break;}
}
yuechaxun://进入余额查询页面。直接打印出余额。
printf("|-----余额查询-----|\n");
printf("|当前余额:%6d---|\n",money[Num]);
printf("| 按0返回上一级 |\n");
printf("|__________________|\n");
scanf("%d",&x);
fflush(stdin);
switch(x)//按0返回。
{
case 0:system("cls");goto shuru;break;
default:{
printf("输入错误!请重新输入。\n");
printf("按任意键返回。\n");
while(getchar()!=EOF)
{
system("cls");
goto yuechaxun;
}
break;
}
}
guanli://进入管理员页面。可以查询用户信息。
printf("|------查询用户信息------|\n");
printf("| 1.输入账号. |\n");
printf("| 2.返回上一级. |\n");
printf("|________________________|\n");
printf("请输入选项:");
scanf("%d",&x);
switch(x)
{
case 1:{
printf("请输入账号:");
scanf("%d",&Num);
fflush(stdin);
printf("|--用户名称:%06d-------|\n",Num);
printf("| 用户密码:%06d |\n",num[Num]);
printf("| 用户余额:%6d |\n",money[Num]);
printf("|________________________|\n");
if(feng[Num]==1)
{
printf("该账号已被封存!\n");
printf("是否解封?(Y/N)\n");
scanf("%c",&x);
if((x=='y')||(x=='Y'))
{
feng[Num]=0;
printf("账号已解封!\n");
}
else
break;
}
printf("按0返回上一级。");
scanf("%d",&x);
fflush(stdin);
switch(x)
{
case 0:{
system("cls");
goto guanli;
break;
}
default:break;
}
}
case 2:system("cls");goto guanlimoshi;break;
default:{
printf("输入错误!请重新输入:");
printf("按任意键返回。\n");
while(getchar()!=EOF)
{
system("cls");
goto guanli;
}
break;
}
}
lishijilu:
printf("|----------------历史纪录-----------------|\n");
printf("| 对不起,本功能尚未完善,敬请期待后续……|\n");
printf("| * ^__^ * |\n");
printf("|_________________________________________|\n");
printf("按任意键返回。\n");
while(getchar()!=EOF)
{
system("cls");
goto shuru;
}
}
}
相关推荐
ATM需求分析报告主要关注的是ATM系统的功能描述和需求,以便明确用户需求,促进开发者与用户之间的沟通,确保软件开发符合预期。ATM(Auto Teller Machine)系统由ATM服务器和ATM终端两部分构成,其中终端与持卡人...
ATM(Automated Teller Machine)是自动取款机的缩写,它是银行服务的重要组成部分,为用户提供24小时的自助金融服务。在这个“ATM一系列任务”中,我们主要探讨的是与银行账户子系统相关的技术问题和解决方案。银行...
标题“CMMI-ATM Training”指的是针对能力成熟度模型集成(Capability Maturity Model Integration,简称CMMI)认证过程中,特定于高级技术管理人员(Appraisal Team Member,简称ATM)的培训。CMMI是一套帮助组织...
基于C++的ATM机模拟程序系统源码。基于C++基于C++的ATM机模拟程序系统源码。基于C++的ATM机模拟程序系统源码。基于C++的ATM机模拟程序系统源码。基于C++的ATM机模拟程序系统源码。基于C++的ATM机模拟程序系统源码。...
“ATM管理系统需求规格说明书” 在本资源摘要中,我们将讨论ATM管理系统的需求规格说明书。ATM管理系统是一种复杂的系统,涉及到多个方面的技术和业务流程。在本文中,我们将从ATM管理系统的需求规格说明书的角度,...
ATM取款机顺序图分析 本资源摘要信息对ATM取款机顺序图进行了详细的分析,介绍了ATM取款机的交互作用图、状态图、活动图等动态行为模型。下面将对ATM取款机顺序图的知识点进行详细的解释: 1. Session建立:当一名...
在本Java课程设计中,我们将探索如何利用编程技术构建一个模拟ATM(自动取款机)系统的应用。这个项目旨在帮助新手程序员理解面向对象编程、类的设计以及如何将实际问题转化为计算机程序。以下是对该ATM机系统的关键...
Oracle ATM项目是一个基于Oracle数据库技术实现的简单自动取款机(Automatic Teller Machine)模拟系统。这个项目旨在帮助初学者理解和应用Oracle在实际业务场景中的功能,如数据存储、事务处理和并发控制等。通过这...
使用LabVIEW设计自动柜员机(ATM)控制器。 一般操作: 1、ATM控制器模拟自动柜员机的控制系统。用户与前面板上的控件和指示器交互以执行常见的ATM功能,例如存入资金,提取资金以及从用户帐户查询资金余额。 2、ATM...
ATM机,全称为Automated Teller Machine,是银行自动柜员机的简称,它是一种电子设备,允许用户在无需银行工作人员协助的情况下进行各种金融交易,如存取款、转账、查询余额等。ATM机数据库则是存储这些交易数据的...
【C# ATM机模拟程序详解】 C# ATM机改善版是一个针对初学者设计的编程项目,旨在通过模拟现实生活中自动取款机(ATM)的功能,帮助学习者掌握C#编程语言的基础知识以及面向对象编程的概念。这个项目不仅涵盖了基本...
本项目是一个使用LabVIEW构建的ATM(Automated Teller Machine,自动柜员机)模拟系统,旨在提供一个与真实ATM相似的交互体验,用于教学或实验目的。 在描述中提到,这个ATM模拟器包含了基本的ATM操作功能。这通常...
ATM图形界面化源代码是实现自动取款机(Automatic Teller Machine)用户交互界面的软件开发项目。这个项目的核心目标是为ATM系统创建一个直观、易用且功能丰富的图形用户界面(GUI)。在现代银行系统中,GUI是至关...
ATM机因其网点多,无需过多维护,服务成本低,而成为最佳的服务终端。本ATM机系统就是本着拥有原系统功能基础之上拥有更多个性服务而设计。从而满足人们日渐增长的服务需求,最终提升本金融单位的行业竞争力。
ATM机(Automatic Teller Machine)是银行业务中不可或缺的一部分,它允许用户在任何时间进行存取款、转账等操作。在这个项目中,我们将探讨如何使用Microsoft Foundation Classes (MFC)库来创建一个简单的ATM系统。...
### ATM异步转移模式基本概念详解 #### 一、引言 随着信息技术的快速发展,通信技术也在不断进步,异步转移模式(Asynchronous Transfer Mode,简称ATM)作为一种高效的宽带交换技术,在90年代中期成为了通信领域的...
在Java编程中,"Java数组版ATM"项目是一个典型的面向对象设计实例,它通过数组来模拟自动取款机(ATM)的功能。这个项目旨在教授如何利用Java语言中的类、对象、数组以及相关的面向对象设计原则来实现一个简单的银行...
ATM机流程与实现 ATM(Automated Teller Machine),即自动取款机,是银行服务的重要组成部分,为用户提供24小时的现金存取、转账等自助操作。ATM机的工作流程涉及到多个系统和安全机制,下面我们将深入探讨其核心...
在Java编程语言中,ATM(自动取款机)界面设计是GUI(图形用户界面)开发的一个典型示例。此代码展示了一个简单的ATM界面,它由多个面板、按钮和文本组件构成,允许用户进行基本操作如插卡、取卡、查询余额和取款。 ...