假设一个简单的ATM机的取款过程是这样的:
首先提示用户输入密码(pssword),最多只能输入三次,超过三次则提示用户“密码错误,请取卡”结束交易。如果用户密码正确,载体是用户输入金额(amount),ATM机只能输出100元的纸币,一次取钱数要求最低100,最高2000元。
如果用户输入的金额符合上述要求,则打印输出用户取的钱数,最后提示用户“交易完成,请取卡”,否则提示用户重新输入金额。
假设用户密码是111111。
int main(){ char pwd[10];
int loginSuccess=0;
int count=1;
int amount;
int amountsuccess=1;
do{printf("请输入密码:");
gets(pwd);
if(strcmp(pwd,"111111")==0),
{//这里函数等于0表示正确,取款业务do{loginSuccess=1;if(amountsuccess) printf("请输入金额:");
else,printf("您输入的金额不合法,请重新输入");
scanf("%d",&amount);
if(amount%100==0&&amount=100),{printf("您取走了%d元",amount);
amountsuccess=1;}elseamountsuccess=0;
}while(!amountsuccess);
//1退出}else count++;
}while(countif(count>3&&!loginSuccess)printf("登录系统失败,请取走您的卡");
return 0。
package demo;
import javautilScanner;
public class Test3 {
public static void main(String[] args) {
Scanner scanner =new Scanner(Systemin);
int cnt=3;
String username = null;
String password = null;
double money = 1000;
String targetName = "admin33";
double targetMoney = 1000;
while(true){
if(username!=null&&password!=null){
if("admin"equals(username) && "123"equals(password)){
Systemoutprintln("欢迎光临");
while(true){
Systemoutprintln("请选择您的 *** 作 1 取钱 2 存钱 3 转账 4 查询 5 退出 ");
int n = scannernextInt();
if(n==1){//取钱
Systemoutprintln("请输入金额");
int getter = scannernextInt();
if(getter>=0){
if(getter<=5000){
if(getter<=money){
money-=getter;
}else{
Systemoutprintln("余额不足");
}
}else{
Systemoutprintln("单笔只能取5000及以下");
}
}else{
Systemoutprintln("银行不到给");
}
}else if(n==2){//存钱
Systemoutprintln("请输入金额");
int save = scannernextInt();
if(save>=0){
money+=save;
}
}else if(n==3){//转账
Systemoutprintln("请输入目标账户");
String target = scannernext();
if(targetequals(targetName)){
Systemoutprintln("请输入金额");
int getter = scannernextInt();
if(getter>=0){
if(getter<=5000){
if(getter<=money){
money-=getter;
targetMoney+=getter;
}else{
Systemoutprintln("余额不足");
}
}else{
Systemoutprintln("单笔只能取5000及以下");
}
}else{
Systemoutprintln("银行不到给");
}
}
}else if(n==4){//查询
Systemoutprintln(money);
}else if(n==5){//退出
Systemexit(0);
}else{
Systemoutprintln("没有该项服务");
}
}
}else{
cnt--;
Systemoutprintln("输入错误,您还有"+cnt+"次机会");
username=null;
password=null;
if(cnt<=0){
Systemoutprintln("对不起,您的账号被冻结,请到最近的营业厅解除冻结");
Systemexit(0);
}
}
}else{
Systemoutprintln("请输入您的账号");
username = scannernext();
Systemoutprintln("请输入您的密码");
password = scannernext();
}
}
}
}
最后一列为备注 1、 管理员表(tb_admin) 字段 类型 约束 备注 aId number(6) 主键 --管理员编号 aName varchar2(10) 唯一、非空 --管理员登陆名 aPassword varchar2(16) 非空 --管理员登陆密码 aLastDate date 非空 --上次登陆时间 aNowDate date 非空 --本次登陆时间 2、 yhk登陆表(tb_login) 字段 类型 约束 备注 lId number(8) 主键 --登录ID lCardNumber varchar2(19) 引用yhk信息表 卡号 lPassword number(6) 非空 yhk密码 bIsLock char(1) 默认1 是否被锁,0表示被锁,1表示开启 lTime number(10) 初始为0 登陆次数 aLastDate date 非空 上次登陆时间 aNowDate date 非空 本次登陆时间 3、 客户详细资料表(tb_userInfo) 字段 类型 约束 备注 usId number(8) 主键 客户ID usName varchar2(10) 非空 客户姓名 usIDNumber varchar2(18) 非空 客户身份z号码 usSex char(1) 默认0 客户性别,0表示男,1表示女 usTel varchar2(11) 非空 客户电话 usAddress varchar2(50) 非空 客户地址 4、 银行支行表(tb_Branch) 字段 类型 约束 备注 bId number(3) 主键 支行ID bName varchar2(20) 唯一、非空 支行名 bAddress varchar2(100) 非空 支行地址 5、 yhk信息表(tb_CardInfo) 字段 类型 约束 备注 bCardID number(19) 主键 卡号 bBalance number(8,2) 默认000 余额 bUserId number(8) 引用客户详细资料表 卡对应用户ID bBranchID number(4) 引用支行表 支行ID bDate date 默认系统时间 开户时间 6、 yhk交易类型表(tb_TransType) 字段 类型 约束 备注 tId number(2) 主键 类型ID tType nvarchar2(6) 唯一 类型(转账、存款、取出等) 7、 yhk个人账户存、取款记录表(tb_ Pacount) 字段 类型 约束 备注 tId number(10) 主键 交易记录流水号 tType number(2) 引用交易类型表 交易类型ID tCardID number(19) 引用yhk信息表 交易卡号 tamount number(10) 非空 交易金额 tDate date 非空 交易时间 8、 yhk转账等交易记录表(tb_TransInfo) 字段 类型 约束 备注 tId number(10) 主键 交易记录流水号 tType number(2) 引用交易类型表 交易类型ID tCardIDout number(19) 引用yhk信息表 交易金额转出卡号 tCardIDIn number(19) 引用yhk信息表 交易金额转入卡号 tamount number(10) 非空 交易金额 tDate date 非空 交易时间
#include
#include
int main(void)
{
int i;
int c;
int a[4];
FILE fp;
fp = fopen("D:\\testtxt","r+");
fseek(fp,0,6789);
for (i = 0; i < 4; ++i)
a[i] = fgetc(fp);
for (i = 0; i < 4; ++i)
{
c = a[i];
a[i] = a[4-i];
c[4-i] = c;
fseek(fp,0,6789+i);
fputc(a[i],fp);
}
fclose(fp);
return 0;
}
试试
以上就是关于2 模拟ATM机取款业务,密码有三次机会,密码如果输入正确的话,提示输入金额,金全部的内容,包括:2 模拟ATM机取款业务,密码有三次机会,密码如果输入正确的话,提示输入金额,金、Java编程实现程序用于模拟ATM取款机。、一个用java模拟ATM机的代码且数据库为mysql,等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)