atm取款机java课程设计
A. 使用Java语言中(类和对象)编写: ATM自动存取款机的程序
很简单的例子,我把代码贴出来吧
import java.util.Scanner;
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) {
System.out.println("☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆(ABC)中国农业银行ATM自动存取款机☆☆☆☆☆☆☆☆☆☆☆☆☆");
System.out.println("\n\t\t\t\t1.存款业务");
System.out.println("\n\t\t\t\t2.取款业务");
System.out.println("\n\t\t\t\t3.查询余额");
System.out.println("\n\t\t\t\t4.退出ATM系统");
System.out.println("\n☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆中国农业银行欢迎您的使用☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆");
in = new Scanner(System.in);
switch (in.nextInt()) {
case 1:
System.out.println("请输入您的存款数额!");
depositMoney = in.nextDouble();
if(depositMoney < 0)
System.out.println("您的输入无效,请重新输入!");
result = account.deposit(depositMoney);
if(result == 0){
System.out.println("存款业务完成,是否显示余额?Y/N");
if("Y".equalsIgnoreCase(in.next())){
System.out.println("您当前的余额为:"+account.checkCurrent());
}else {
break;
}
}else {
System.out.println("无法完成交易!");
break;
}
break;
case 2:
System.out.println("请输入您的取款数额!");
drawMoney = in.nextDouble();
if (drawMoney < 0) {
System.out.println("您的输入无效,请重新输入!");
}
result = account.withDraw(drawMoney);
if (result == 0) {
System.out.println("存款业务完成,是否显示余额?Y/N");
if("Y".equalsIgnoreCase(in.next())){
System.out.println("您当前的余额为:"+account.checkCurrent());
}else {
break;
}
} else {
System.out.println("无法完成交易!");
break;
}
case 3:
System.out.println("您当前的余额为:"+account.checkCurrent());
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) {
this.currentMoney = currentMoney;
}
}
/**
* 取款业务
* @param drawMoney
* @return 0代表成功,1代表失败
*/
public int withDraw(double drawMoney) {
if (currentMoney > 0 && drawMoney <= currentMoney) {
currentMoney -= drawMoney;
} else {
System.out.println("您的余额已不足!");
return 1;
}
return 0;
}
/**
* 存款业务
* @param depositMoney
* @return 0代表成功,1代表失败
*/
public int deposit(double depositMoney) {
if (depositMoney > 0) {
currentMoney += depositMoney;
return 0;
}else {
System.out.println("您提交的存款为负数,无法完成存款交易");
return -1;
}
}
/**
* 查询余额业务
* @return
*/
public double checkCurrent() {
return currentMoney;
}
}
B. 急求,关于Java课程设计ATM创建实现
我现写的:importjava.util.Scanner;publicclassATM{
privatestaticStringtheName="admin";
="123456";
privatestaticintbalance=10000;
publicstaticvoidgetBalance(){
System.out.println("当前余额:"+balance);
}
publicstaticvoiddrawMoney(Scannersc){
intmoney=0;
System.out.println("请输入取款金额:");
money=sc.nextInt();
Stringtype="";
if(balance>0){
if(balance>=money){
if(money<=5000){
balance=balance-money;
type="请在30秒内提取现金... 剩余余额:"+balance;
}elseif(money<=0){
type="金额错误";
}else{
type="超出最大限制金额";
}
}else{
type="超出最大余额";
}
}else{
type="余额不足";
}
System.out.println(type);
}
publicstaticvoidbankMoney(Scannersc){
intmoney=0;
System.out.println("请输入存储金额:");
money=sc.nextInt();
Stringtype="";
if(money>0){
balance=balance+money;
type="存储成功,现有余额:"+balance;
}else{
type="存储金额不能为负";
}
System.out.println(type);
}
publicstaticvoipdatePass(Scannersc){
StringoldPass="";
StringnewPass1="";
StringnewPass2="";
while(true){
System.out.println("请输入原密码:");
oldPass=sc.next();
if(oldPass.equals(thePassword)){
break;
}else{
System.out.println("密码错误,请重新输入");
}
}
while(true){
System.out.println("请输入新密码");
newPass1=sc.next();
System.out.println("再次输入");
newPass2=sc.next();
if(newPass1.equals(newPass2)){
if(!isSame(newPass1)){
thePassword=newPass1;
System.out.println("修改成功");
break;
}else{
System.out.println("所有字符不能相同,重新输入");
}
}else{
System.out.println("两次输入不一致,重新输入");
}
}
}
publicstaticbooleanisSame(Stringstring){
booleanbool=false;
for(inti=0;i<string.length()-1;i++){
charchar1=string.charAt(i);
for(intj=i+1;j<string.length();j++){
charchar2=string.charAt(j);
if(char1==char2){
bool=true;
break;
}
}
}
returnbool;
}
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
while(true){
Stringname="";
Stringpassword="";
System.out.println("请输入账号:");
name=sc.next();
System.out.println("请输入密码:");
password=sc.next();
if(name.equals(theName)&&password.equals(thePassword)){
break;
}else{
System.out.println("账号或密码错误,请重新输入!");
}
}
while(true){
intoperate=0;
System.out.println("请选择你要进行的操作: 1、查询2、取款3、存款4、修改密码0、退出");
operate=sc.nextInt();
if(0==operate){
System.out.println("谢谢使用!");
break;
}elseif(1==operate){
getBalance();
}elseif(2==operate){
drawMoney(sc);
}elseif(3==operate){
bankMoney(sc);
}elseif(4==operate){
updatePass(sc);
}
}
}
}
C. 急急急~~求JAVA中用方法写出一个银行ATM取款机的代码怎么写!!
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();
card.type="招商银行";
card.money=1000D;
}
/**
*
* @param money 你要取的钱
* @return 返回的是取到的钱
*/
public double getMoney(double money){
if( (card.money-money) >=0){
card.money=card.money-money;//从卡中减去要取的钱,并重新改变卡中的余额
return money;
}else{
System.out.println("余额不足:请存款!");
return 0;
}
}
/**
* 存款
* @param money
*/
public void setMoney(double money){
if(money<=0){
System.out.println("不能为0!");
}else
card.money=card.money+money;
}
/**
* 这个方法是输出客户卡的信息
*/
public void print(){
System.out.println(card);
}
}public class Text {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Person p=new Person();
p.card.cardCode="111100022222";
p.setMoney(1000);
double money=p.getMoney(2000);
System.out.println(p.card);
}
}
D. ATM取款机系统用JAVA怎么做/
银行 ATM 客户
要用到多线程,考虑线程安全
E. java 编写ATM提款机程序
原程序的错误有:
1.a为int型。去掉‘’
2.ATM1 atm = new ATM1 , 类名要和前面的一致
3.加入int a = sc.nextInt();// 请加入此句 进而选择相应功能,
PS:程序已调好,试试吧。
import java.util.Scanner;
public class ATM1 {
Scanner sc = new Scanner(System.in);
private String name = "lorin";
private double password = 123;
private double money = 500;
public void aloha(){
System.out.println("***********************");
System.out.println("* *");
System.out.println("* 欢迎使用ATM *");
System.out.println("* *");
System.out.println("* 制作人:lorin *");
System.out.println("* *");
System.out.println("* *");
System.out.println("************************");
land();
}
//登陆页面
public void land(){
System.out.println("请选择操作界面:1取款,2存款,3查询,4转账,5退出");
int a = sc.nextInt();// 请加入此句
switch(a){
case 1 : // 去掉‘’ 因为a 为int型。
get();
break;
case 2 :
set();
break;
case 3 :
query();
break;
case 4 :
divert();
break;
case 5 :
SetOut();
break;
}
}
//取款
public void get(){
System.out.println("请输入取款金额:");
int a = sc.nextInt();
if(a>money){
System.out.println("余额不足!");
}else{
money-=a;
System.out.println("当前余额为:"+money);
land();
}
}
//存款
public void set(){
System.out.println("请输入存款金额:");
int a = sc.nextInt();
money+=a;
System.out.println("当前余额为:"+money);
land();
}
//查询
public void query(){
System.out.println("当前余额为:"+money);
land();
}
//转账
public void divert(){
System.out.println("该功能站未开放!");
land();
}
//退出
public void SetOut(){
System.exit(0);
}
public static void main(String[] args) {
ATM1 atm = new ATM1();
atm.aloha();
}
}
F. ATM机取钱题的java做法
publicstaticvoidmain(String[]args){
StringrealPwd="111111";
IntegererrorCount=0;
Integeraccount;
Scannersc= newScanner(System.in);
while(true){
System.out.print("请输入密码:");
Stringpwd=sc.next();
if(!pwd.equals(realPwd)){
errorCount++;
System.out.println("第"+errorCount+"次输入密码不正确");
if(errorCount>=3){
System.out.println("密码错误,请取卡");
break;
}
}else{
while(true){
System.out.print("请输入取款金额:");
account=sc.nextInt();
if(account>1000||account<0){
System.out.println("取款金额最低0元,最高1000元");
}elseif(account%100!=0){
System.out.println("只有100的纸币");
}else{
System.out.println("取款金额"+account+"元");
System.out.println("交易完成,请取卡");
break;
}
}
break;
}
}
}
G. Java编程实现程序用于模拟ATM取款机。
package demo;
import java.util.Scanner;
public class Test3 {
public static void main(String[] args) {
Scanner scanner =new Scanner(System.in);
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)){
System.out.println("欢迎光临");
while(true){
System.out.println("请选择您的操作 1 取钱 2 存钱 3 转账 4 查询 5 退出 ");
int n = scanner.nextInt();
if(n==1){//取钱
System.out.println("请输入金额");
int getter = scanner.nextInt();
if(getter>=0){
if(getter<=5000){
if(getter<=money){
money-=getter;
}else{
System.out.println("余额不足");
}
}else{
System.out.println("单笔只能取及以下");
}
}else{
System.out.println("银行不到给");
}
}else if(n==2){//存钱
System.out.println("请输入金额");
int save = scanner.nextInt();
if(save>=0){
money+=save;
}
}else if(n==3){//转账
System.out.println("请输入目标账户");
String target = scanner.next();
if(target.equals(targetName)){
System.out.println("请输入金额");
int getter = scanner.nextInt();
if(getter>=0){
if(getter<=5000){
if(getter<=money){
money-=getter;
targetMoney+=getter;
}else{
System.out.println("余额不足");
}
}else{
System.out.println("单笔只能取5000及以下");
}
}else{
System.out.println("银行不到给");
}
}
}else if(n==4){//查询
System.out.println(money);
}else if(n==5){//退出
System.exit(0);
}else{
System.out.println("没有该项服务");
}
}
}else{
cnt--;
System.out.println("输入错误,您还有"+cnt+"次机会");
username=null;
password=null;
if(cnt<=0){
System.out.println("对不起,您的账号被冻结,请到最近的营业厅解除冻结");
System.exit(0);
}
}
}else{
System.out.println("请输入您的账号");
username = scanner.next();
System.out.println("请输入您的密码");
password = scanner.next();
}
}
}
}
H. 用java写过银行ATM取款机的程序
。。。这为什么 跟我们当初留的题目如此一样
I. JAVA 模拟ATM柜员机模拟程序
/*
要求:使用字符用户界面。当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:
1、查询余额:初始余额为10000元
2、ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。
3、ATM存款:不能出现负存款。
4、修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。
(卡号密码余额放到文件中)
*/
public class ATM {
private Account acc;
private File dataFile;
private FileWriter fw;
private BufferedWriter bw;
private String filePath = "./data.txt";
public ATM() {
this.acc = new Account();
try {
this.dataFile = new File(this.filePath);
if (!this.dataFile.exists()) {
this.dataFile.createNewFile();
}
this.fw = new FileWriter(this.filePath);
this.bw = new BufferedWriter(this.fw);
} catch (IOException io) {
System.err.println("Cannot open file");
io.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new ATM().interact();
}
public void interact() {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Account #: ");
String temp = br.readLine();
System.out.println("Password: ");
String temp2 = br.readLine();
if (!this.acc.isValid(Long.parseLong(temp.trim()), temp2.trim()) {
System.err.println("Wrong password");
return;
}
System.out.println("1. Account Inquery.");
System.out.println("2. Withdraw");
System.out.println("3. Deposit.");
System.out.println("4. Change Password.");
System.out.println("5. Export to File.");
System.out.println("0. Exit.");
int c = 100;
while (c != 0) {
String str = br.readLine();
try {
int c = Integer.parseInt(str.trim());
} catch (NumberFormatException nfe) {
System.err.println("Invalid choice");
continue;
}
switch (c) {
case 0:
System.out.println("Thank you");
break;
case 1:
System.out.println("Balance: " + this.acc.balanceInquery());
break;
case 2:
System.out.println("How much? ");
String temp = br.readLine();
try {
long ammount = Long.parseLong(temp.trim());
this.acc.withdraw(ammount);
break;
} catch (NumberFormatException nfe) {
System.err.println("Invalid amount");
continue;
}
case 3:
System.out.println("How much? ");
String temp = br.readLine();
try {
long ammount = Long.parseLong(temp.trim());
this.acc.deposit(ammount);
break;
} catch (NumberFormatException nfe) {
System.err.println("Invalid amount");
continue;
}
case 4:
System.out.println("Old password: ");
String temp = br.readLine();
System.out.println("New password: ");
String temp2 = br.readLine();
this.acc.changePassword(temp, temp2);
break;
case 5:
this.bw.write(this.acc.toString());
break;
default:
break;
}
}
}
}
class Account {
private long accNo = 123456;
private String pass = "123456";
private long balance = 10000;
public Account() {
}
public boolean isValid(long accNo, String pass) {
return (this.accNo == accNo) && (pass.equals(this.pass));
}
public void changePassword(String oldPass, String password) {
if (!oldPass.equals(this.pass)) {
System.err.println("Wrong password.");
return;
}
if (password.length < 6) {
System.err.println("Password too short");
return;
}
if (password.equals(this.pass)) {
System.err.println("Password cannot be the same.");
return;
}
this.pass = password;
}
public long balanceInquery() {
return this.balance;
}
public void withdraw(long amount) {
if (amount > 5000 || amount < 0) {
System.err.println("Withdraw limit: $0-$5000");
return;
}
if ((amount % 100) != 0) {
System.err.println("The amount has to be a proct of 100");
return;
}
long newBalance = this.balance - amount;
if (newBalance < 0) {
System.err.println("Not enough money in the account");
return;
}
this.balance = newBalance;
}
public void deposit(long amount) {
if (amount < 0) {
System.err.println("Cannot deposit negative amount");
return;
}
this.balance += amount;
}
public String toString() {
return ("Account #: " + this.accNo + "\n" + "Password: " + this.pass + "\n" + "Balance: " + this.balance);
}
}
J. 求高手用JAVA编写一个模拟ATM机取款业务需求如下:
楼主您好,编码如下,直接运行即可:
import java.util.Scanner;
public class AtmGetMoney {
public static void main(String[] args) {
String password = "111111";
int count = 0;
int a = 0;
while(count<3){
System.out.println("请输入银行卡密码: ");
Scanner scan = new Scanner(System.in);
String passwd = scan.nextLine();
while(passwd.equals(password)){
System.out.println("请输入取款金额: ");
int amount = scan.nextInt();
if(amount%100 == 0 && amount <= 1000){
System.out.println("您的取款金额为: "+amount);
System.out.println("交易完成,请读卡!");
a = a + 1;
break;
}
else {
System.out.println("只能提取100元纸币,要求最低0,最高1000!");
continue;
}
}
if (a == 1){
break;
}
else if (count < 2) {
System.out.println("银行卡密码错误");
count = count + 1;
continue;
}
else {
System.out.println("密码错误请读卡");
break;
}
}
}
}