很简单的例子,我把代码贴出来吧
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程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)