java模拟ATM功能(控制台连接Mysql数据库)

作者:TK13的舔狗 时间:2024-01-22 16:54:46 

本文实例为大家分享了java模拟ATM功能的具体代码,供大家参考,具体内容如下

有三个类:Test.java、Customer.java、CustomerDAO.java、ATMSystem.java

ATMSystem.java实现模拟ATM的功能

Customer.java创建一个用户对象

CustomerDAO.java实现连接数据库

Test为主程序 

ATMSystem.java:


package ATM;

import java.util.Scanner;

public class ATMSystem
{
CustomerDAO dao=new CustomerDAO();
Scanner input=new Scanner(System.in);
private int id;
public ATMSystem()
{

}
public void Regist()
{
System.out.println("注册卡号:");
int myid=input.nextInt();
System.out.println("注册用户名:");
String myname=input.next();
System.out.println("注册密码:");
String mypwd=input.next();
System.out.println("输入存入金额:");
int mymoney=input.nextInt();
dao.Regist(myid, mypwd, myname, mymoney);
}
public boolean login()
{
System.out.println("请输入密码:");
String mypwd=input.next();
id=dao.login(mypwd);
if(id==-1)
{
 System.out.println("登录失败!");
 return false;
}
else
{
 System.out.println("登陆成功!");
 return true;
}
}
public void query(int id)
{
Customer cust=dao.query(id);
System.out.println("********************");
System.out.println("卡号:"+cust.getid());
System.out.println("余额:"+cust.getmoney());
System.out.println("用户名:"+cust.getname());
System.out.println("********************");
}
public void save()
{
System.out.println("输入存款金额:");
int money=input.nextInt();
dao.update_save(id, money);
}
public void get()
{
System.out.println("********************");
System.out.println("输入取款金额:");
int money=input.nextInt();
dao.update_get(id, money);
System.out.println("********************");
}
public void change()
{
System.out.println("请输入转账卡号:");
int inid=input.nextInt();
System.out.println("请输入转账金额:");
int money=input.nextInt();
dao.change(id, inid, money);
}
public void begin()
{
int num=-1;
int Num=0;
System.out.println("请选择功能:");
System.out.println("1.注册      2.登录");
Num=input.nextInt();
switch(Num)
{
case 1:
 Regist();
 break;
case 2:
 if(login())
 {
 while(num!=0)
 {
  System.out.println("********************");
  System.out.println("欢迎欢迎,热烈欢迎");
  System.out.println("请选择功能:");
  System.out.println("1.存款     2.取款   3.查询   4.转账  0.退出");
  System.out.println("********************");
  num=input.nextInt();
  switch(num)
  {
  case 1:
  save();
  break;
  case 2:
  get();
  break;
  case 3:
  query(id);
  break;
  case 4:
  change();
  break;
  case 0:
  System.out.println("谢谢使用!");
  break;
  }
 }
 }
 else
 {
 System.out.println("登录失败,账号、密码错误!");
 }
break;
default:
 break;
}
}
}

Customer.java


package ATM;

public class Customer
{
private int id;
private String pwd;
private int money;
private String name;
public int getid()
{
return id;
}
public void setid(int newid)
{
id=newid;
}
public String getpwd()
{
return pwd;
}
public void setpwd(String newpwd)
{
pwd=newpwd;
}
public String getname()
{
return name;
}
public void setname(String newname)
{
name=newname;
}
public int getmoney()
{
return money;
}
public void setmoney(int newmoney)
{
money=newmoney;
}
}

CustomerDAO.java:


package ATM;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

public class CustomerDAO
{
private Connection conn=null;
private java.sql.PreparedStatement p=null;
public CustomerDAO()
{
try {
 Class.forName("org.gjt.mm.mysql.Driver");
} catch (ClassNotFoundException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
}
try {
 conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql", "root", "");
} catch (SQLException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
}
}
public int login(String mypwd)
{
String sql="select * from mysql where pwd = ?";
try
{
 p=conn.prepareStatement(sql);
 p.setString(1, mypwd);
 ResultSet rs=p.executeQuery();
 if(rs.next())
 {
 return rs.getInt("id");
 }
 rs.close();
 p.close();
 conn.close();
}
catch (SQLException e)
{
 e.printStackTrace();
}
return -1;
}
public Customer query(int id)
{
Customer cust=new Customer();
try
{
 String sql="select * from mysql where id = ?";
 p=conn.prepareStatement(sql);
 p.setInt(1, id);
 ResultSet rs=p.executeQuery();
 if(rs.next())
 {
 cust.setid(rs.getInt("id"));
 cust.setmoney(rs.getInt("money"));
 cust.setname(rs.getString("name"));
 cust.setpwd(rs.getString("pwd"));
 }
}
catch (Exception e) {
 // TODO: handle exception
}
return cust;

}
public void update_get(int id,int money)
{
String sql="select * from mysql where id = ?";
try
{
 p=conn.prepareStatement(sql);
 p.setInt(1, id);
 ResultSet rs=p.executeQuery();
 if(rs.next())
 {
 if(rs.getInt("money")<money)
 {
  System.out.println("余额不足!");
 }
 else
 {
  sql="update mysql set money = money - ? where id = ?";
  p=conn.prepareStatement(sql);
  p.setInt(1, money);
  p.setInt(2, id);
  p.executeUpdate();
  System.out.println("取款成功!");
 }
 }
}
catch (Exception e)
{
 // TODO: handle exception
}
}
public void update_save(int id,int money)
{
String sql="update mysql set money = money + ? where id = ?";
try
{
 p=conn.prepareStatement(sql);
 p.setInt(1, money);
 p.setInt(2, id);
 p.executeUpdate();
 System.out.println("存款成功!");
}
catch (Exception e)
{
 // TODO: handle exception
}
}
public void change(int myid,int inid,int money)
{
try
{ String sql="select * from mysql where id = ?";
 p=conn.prepareStatement(sql);
 p.setInt(1, inid);
 ResultSet rs=p.executeQuery();
 if(rs.next())
 {
 sql="select * from mysql where id = ?";
 p=conn.prepareStatement(sql);
 p.setInt(1, myid);
 rs=p.executeQuery();
 if(rs.next())
 {
  if(rs.getInt("money")<money)
  {
  System.out.println("余额不足!");
  return;
  }
  else
  {
  sql="update mysql set money = money - ? where id = ?";
  p=conn.prepareStatement(sql);
  p.setInt(1, money);
  p.setInt(2, myid);
  p.executeUpdate();
  sql="update mysql set money = money + ? where id = ?";
  p=conn.prepareStatement(sql);
  p.setInt(1, money);
  p.setInt(2, inid);
  p.executeUpdate();
  }
 }
 }
 else
 {
 System.out.println("卡号错误!");
 }
}
catch (Exception e) {
 // TODO: handle exception
}
}
public void Regist(int myid,String mypwd,String myname,int mymoney)
{
String sql;
try
{
 sql="select * from mysql where id = ?";
 p=conn.prepareStatement(sql);
 p.setInt(1, myid);
 ResultSet rs=p.executeQuery();
 if(rs.next())
 {
 System.out.println("此卡已注册,请勿重复注册!!!!");
 return;
 }
}
catch (Exception e)
{
 // TODO: handle exception
}

try
{
 sql="insert into mysql(id,pwd,money,name) values(?,?,?,?)";
 p=conn.prepareStatement(sql);
 p.setInt(1, myid);
 p.setString(2, mypwd);
 p.setInt(3, mymoney);
 p.setString(4, myname);
 p.executeUpdate();
 System.out.println("注册成功!");
}
catch (Exception e)
{
 // TODO: handle exception
}
}
}

Test.java:


package ATM;

public class Test
{
public static void main(String[] args)
{
// TODO Auto-generated method stub
ATMSystem ATM=new ATMSystem();
while(true)
{
 ATM.begin();
}
}

}

来源:https://blog.csdn.net/K17010/article/details/94185300

标签:java,ATM
0
投稿

猜你喜欢

  • 网页制作前台之javascript

    2013-07-23 08:32:59
  • pytorch实现ResNet结构的实例代码

    2022-12-31 01:50:48
  • 彻底解决ewebeditor网站后台不能上传图片的方法

    2023-07-09 04:09:01
  • python列表生成器常用迭代器示例详解

    2023-11-16 01:35:12
  • 微信小程序开发工具介绍

    2023-08-10 23:05:40
  • python中enumerate的用法实例解析

    2023-03-10 19:11:18
  • Python求导数的方法

    2023-11-22 07:51:15
  • 使用vue-router切换组件时使组件不销毁问题

    2024-04-30 10:35:17
  • Python提取转移文件夹内所有.jpg文件并查看每一帧的方法

    2021-11-24 05:29:30
  • 关于自动化测试框架pytest的Fixture固件

    2023-10-16 00:02:50
  • python requests模块的使用示例

    2022-06-22 14:29:38
  • MySQL数据库高级数据操作之新增数据

    2024-01-18 17:46:38
  • 内容,而不是Chrome

    2008-10-16 13:43:00
  • Sql注入工具_动力节点Java学院整理

    2024-01-20 00:02:10
  • javascript 跳转代码集合

    2024-04-19 10:42:40
  • Python实现井字棋小游戏

    2023-04-27 05:29:07
  • Python发展简史 Python来历

    2021-12-17 11:16:37
  • Windows Oracle常见服务介绍

    2009-05-24 19:17:00
  • 彻底终结浏览器Cache页面的解决方案

    2008-04-21 15:10:00
  • python k-近邻算法实例分享

    2022-03-26 14:47:17
  • asp之家 网络编程 m.aspxhome.com