使用Java语言中(类和对象)编写: ATM自动存取款机的程序

使用Java语言中(类和对象)编写: ATM自动存取款机的程序,第1张

很简单的例子,我把代码贴出来吧

import javautilScanner;

public class ATM {

/

@param args

/

public static void main(String[] args) {

Scanner in = null;

int result;

double drawMoney;

double depositMoney;

Account account = new Account();

while (true) {

Systemoutprintln("☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆(ABC)中国农业银行ATM自动存取款机☆☆☆☆☆☆☆☆☆☆☆☆☆");

Systemoutprintln("\n\t\t\t\t1存款业务");

Systemoutprintln("\n\t\t\t\t2取款业务");

Systemoutprintln("\n\t\t\t\t3查询余额");

Systemoutprintln("\n\t\t\t\t4退出ATM系统");

Systemoutprintln("\n☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆中国农业银行欢迎您的使用☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆");

in = new Scanner(Systemin);

switch (innextInt()) {

case 1:

Systemoutprintln("请输入您的存款数额!");

depositMoney = innextDouble();

if(depositMoney < 0)

Systemoutprintln("您的输入无效,请重新输入!");

result = accountdeposit(depositMoney);

if(result == 0){

Systemoutprintln("存款业务完成,是否显示余额?Y/N");

if("Y"equalsIgnoreCase(innext())){

Systemoutprintln("您当前的余额为:"+accountcheckCurrent());

}else {

break;

}

}else {

Systemoutprintln("无法完成交易!");

break;

}

break;

case 2:

Systemoutprintln("请输入您的取款数额!");

drawMoney = innextDouble();

if (drawMoney < 0) {

Systemoutprintln("您的输入无效,请重新输入!");

}

result = accountwithDraw(drawMoney);

if (result == 0) {

Systemoutprintln("存款业务完成,是否显示余额?Y/N");

if("Y"equalsIgnoreCase(innext())){

Systemoutprintln("您当前的余额为:"+accountcheckCurrent());

}else {

break;

}

} else {

Systemoutprintln("无法完成交易!");

break;

}

case 3:

Systemoutprintln("您当前的余额为:"+accountcheckCurrent());

break;

case 4:

break;

default:

break;

}

}

}

}

public class Account {

private double currentMoney;//当前余额

public double getCurrentMoney() {

return currentMoney;

}

public void setCurrentMoney(double currentMoney) {

if (currentMoney > 0) {

thiscurrentMoney = currentMoney;

}

}

/

取款业务

@param drawMoney

@return 0代表成功,1代表失败

/

public int withDraw(double drawMoney) {

if (currentMoney > 0 && drawMoney <= currentMoney) {

currentMoney -= drawMoney;

} else {

Systemoutprintln("您的余额已不足!");

return 1;

}

return 0;

}

/

存款业务

@param depositMoney

@return 0代表成功,1代表失败

/

public int deposit(double depositMoney) {

if (depositMoney > 0) {

currentMoney += depositMoney;

return 0;

}else {

Systemoutprintln("您提交的存款为负数,无法完成存款交易");

return -1;

}

}

/

查询余额业务

@return

/

public double checkCurrent() {

return currentMoney;

}

}

代码如下

package BaiDdu;

import javautilScanner;

public class ATM {

/1提示请输入密码然后直接进入下一步。密码6位限制(限制方法用 “最小大于100000最大小于999999”这样限制)

2提示密码正确还是错误密码直接弄成“123456”错误返回上一步循环方法用for循环。

3密码输入正确后进入下一步提示5个选项(1余额查询“基础10000”2取款  3存款4退出)

4进行取款或者存款之后要回到第三步重新选择(余额和取款存款相关联)

备注:用键盘输入的方法用scanner/

private static int money=10000;//全局变量 余额 默认10000

public static void main(String args[])

{

for(;;){//for循环,有意思吗?

    Systemoutprintln("请输入密码:");

Scanner input=new Scanner(Systemin);

int pw=inputnextInt();

if ( Checkpw(pw)) {

Systemoutprintln("密码正确。");

Next();

}

else  Systemoutprintln("密码错误!");

}

}

public static boolean Checkpw(int pw)

{

if (pw==123456)return true;//固定密码就不需要限制位数了,反正不符合就错

else

return false;

}

public static void Next() {

do {

Systemoutprintln("请选择你需要的功能:");

Systemoutprintln("1余额查询  2取款  3存款 4退出");

int value = new Scanner(Systemin)nextInt();

switch (value) {

case 1:// 查询余额

Systemoutprintln("您的余额为 "+money+"元");

break;

case 2:// 取款

Systemoutprintln("请输入取款金额:");

 

int getnum=new Scanner(Systemin)nextInt();

if (getnum<0) Systemoutprintln("输入金额有误!");

else if(getnum>money)Systemoutprintln("余额不足");

else {money=money-getnum;Systemoutprintln("取款成功,余额为"+money);}

break;

case 3:// 存款

Systemoutprintln("请输入存款金额:");

 

int pushnum= new Scanner(Systemin)nextInt();

if (pushnum<0) Systemoutprintln("输入金额有误!");

else {money=money+pushnum;Systemoutprintln("存款成功,余额为"+money);}

break;

case 4:// 退出

Systemoutprintln("谢谢使用!");

Systemexit(0);

break;

 

default:

Systemoutprintln("输入有误");

break;

}

 

}while(true);

}

}

2、运行效果

呵呵,刚好我这里有,如果这符合你需要的话可以传给你,我们学java的时候写的,里面有注释,相信你都会看的懂。如果要求有数据库的,可以自己扩展,我这扩展很容易的。需要的话hi我

public class Card {

public String type; //卡的类型

public String cardCode; //卡号

public double money; //钱

/

重写toString()方法

/

public String toString(){

return "卡的类型:"+type+"\t卡号:"+cardCode+"\t余额:"+money;

}

}public class Person {

Card card;

/

构造方法,一般用来初始化信息

此方法是创建对象时自动调用的

/

public Person(){

card=new Card();

cardtype="招商银行";

cardmoney=1000D;

}

/

@param money 你要取的钱

@return 返回的是取到的钱

/

public double getMoney(double money){

if( (cardmoney-money) >=0){

cardmoney=cardmoney-money;//从卡中减去要取的钱,并重新改变卡中的余额

return money;

}else{

Systemoutprintln("余额不足:请存款!");

return 0;

}

}

/

存款

@param money

/

public void setMoney(double money){

if(money<=0){

Systemoutprintln("不能为0!");

}else

cardmoney=cardmoney+money;

}

/

这个方法是输出客户卡的信息

/

public void print(){

Systemoutprintln(card);

}

}public class Text {

/

@param args

/

public static void main(String[] args) {

// TODO Auto-generated method stub

Person p=new Person();

pcardcardCode="111100022222";

psetMoney(1000);

double money=pgetMoney(2000);

Systemoutprintln(pcard);

}

}

ATM系统势必要把,安全性放在第一位,那么用Java的多线程以及锁可以解决多用户 *** 作统一账户的情况,关于每登录进来一个账户,也可以写一个事件监听,关于异常也就是你说的取款记得要用同步锁(synchronized) ,还有什么不明白的吗

以上就是关于使用Java语言中(类和对象)编写: ATM自动存取款机的程序全部的内容,包括:使用Java语言中(类和对象)编写: ATM自动存取款机的程序、用java做一个简易的ATM机具体流程在下面、如何用JAVA制作ATM程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9814779.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存