1. Trang chủ
  2. » Giáo Dục - Đào Tạo

welcome to nguyenhuuthe sites

9 8 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 9
Dung lượng 416,81 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

public class GiaoDich { private int maGD ; private String ngayGD ; private String thoiGianGD ; private LoaiGD loaiGD ; private TaiKhoan tk ; private double soTien ;. public G[r]

Trang 1

+maGD: int +ngayGD: String +thoiGianGD: String +loaiGD: LoaiGD +tk: TaiKhoan +soTien: double

<<create>>+GiaoDich(maGD: int, ngayGD: String, thoiGianGD: String, loaiGD: LoaiGD, tk: TaiKhoan, soTien: double) +show()

KhachHang

+maKH: long

+tenKH: String

+diaChi: String

+maPin: String

+soThe: String

<<create>>+KhachHang(maso: long, ten: String, dc: String, pin: String, sothe: String)

+kiemTraMatKhau(pin: String): boolean

+setMaKH(maso: long)

+getMaKH(): long

LoaiGD

+maLoaiGD: int

+tenLoaiGD: String

<<create>>+LoaiGD(maLoaiGD: int, tenLoaiGD: String)

TaiKhoan

+soTaiKhoan: String +loaiTaiKhoan: String +kh: KhachHang +soDu: double

<<create>>+TaiKhoan(soTaiKhoan: String, loaiTaiKhoan: String, kh: KhachHang, soDu: double) +rutTien(soTienRut: double)

+guiTien(tk: TaiKhoan, soTienGui: double): boolean +kiemTraSoTK(soTK: String): boolean

+xemTaiKhoan()

1 1

0 *

1

1 *

1

Phân tích thiết kế hướng đối tượng

GV: Nguyễn Hữu Thể

Cài đặt Rút tiền ATM

 Use case (trong bài học)

 State Diagram (trong bài học)

 Class Diagram

Yêu cầu:

1 Chuyển từ Class Diagram sang Physical Data Model

2 Từ Physical Data Model sang SQL query

3 SQL query sang MySQL

4 Class Java truy vấn từ MySQL

5 Viết các xử lý Rút tiền, gửi tiền, xem số dư tài khoản với dữ liệu lưu trữ trong database

Sinh viên từ cài đặt lại trong trường hợp KhachHang và TaiKhoan có mối quan hệ theo soTK (theo tài liệu lý thuyết)

Trang 2

KhachHang.java

public class KhachHang {

private long maKH;

private String tenKH;

private String diaChi;

private String maPin;

private String soThe;

public KhachHang(long maso, String ten, String dc, String pin, String

sothe){

maKH = maso;

tenKH = ten;

diaChi = dc;

maPin = pin;

soThe = sothe;

}

public boolean kiemTraMatKhau(String pin) {

if(maPin == pin)

return true;

else

return false;

}

public void setMaKH(long maso) {

//

}

public long getMaKH() {

return maKH; }

public String getTenKH() {

return tenKH; }

}

TaiKhoan.java

public class TaiKhoan {

private String soTaiKhoan;

private String loaiTaiKhoan;

private KhachHang kh;

private double soDu;

public TaiKhoan(String soTaiKhoan, String loaiTaiKhoan, KhachHang kh, double soDu){

this.soTaiKhoan = soTaiKhoan;

this.loaiTaiKhoan = loaiTaiKhoan;

this.kh = kh;

this.soDu = soDu;

Trang 3

}

public double getSoDu() {

return soDu; }

public String getTenKH(){

return kh.getTenKH();

}

//public boolean rutTien(double soTienRut) {

public double rutTien(double soTienRut) {

if(soDu > soTienRut){

soDu = soDu - soTienRut;

return soTienRut;

}

else{

return -1; //Không thành công

} }

public double guiTien(TaiKhoan tk, double soTienGui) {

if(kiemTraSoTK(tk.soTaiKhoan)){

if(soDu > soTienGui){

soDu -= soTienGui;

tk.soDu += soTienGui;

return soTienGui;

}

else

return -2; //trả về nếu không đủ tiền để gửi

}

else

return -1; //nếu nhập sai tài khoản nhận

}

public boolean kiemTraSoTK(String soTK){

if(soTK != null)

return true;

else

return false;

}

public void xemTaiKhoan() {

System.out.println("Khách hàng: " + kh.getTenKH());

System.out.println("Số tài khoản: " + soTaiKhoan);

System.out.println("Số dư: " + soDu);

}

}

Trang 4

LoaiGD.java

public class LoaiGD {

private int maLoaiGD;

private String tenLoaiGD;

public LoaiGD(int maLoaiGD, String tenLoaiGD){

this.maLoaiGD = maLoaiGD;

this.tenLoaiGD = tenLoaiGD;

}

public String getTenLoaiGD(){

return tenLoaiGD; }

}

GiaoDich.java

public class GiaoDich {

private int maGD;

private String ngayGD;

private String thoiGianGD;

private LoaiGD loaiGD;

private TaiKhoan tk;

private double soTien;

public GiaoDich(int maGD, String ngayGD, String thoiGianGD, LoaiGD loaiGD,

TaiKhoan tk, double soTien){

this.maGD = maGD;

this.ngayGD = ngayGD;

this.thoiGianGD = thoiGianGD;

this.loaiGD = loaiGD;

this.tk = tk;

this.soTien = soTien;

}

public void show(){

System.out.println("Mã GD: "+maGD);

System.out.println("Ngày GD: "+ngayGD);

System.out.println("Thời gian GD: "+thoiGianGD);

System.out.println("Loại GD: "+loaiGD.getTenLoaiGD());

System.out.println("Tên khách hàng: "+tk.getTenKH());

System.out.println("Số tiền GD: "+soTien);

System.out.println(" -");

}

}

Trang 5

Database.java

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.Statement;

public class Database {

private Connection con = null;

private Statement stmt = null;

private ResultSet result = null;

public Connection getConnectDB() {

try {

Class.forName("com.mysql.jdbc.Driver");

con = DriverManager.getConnection(

"jdbc:mysql://localhost:3306/ATM?useUnicode=true&characterEncoding=UTF-8",

"root", "");

return con; } catch (Exception e) {

System.out.println("Error: " + e);

return null;

} }

public void closeConnect() {

try {

if (result != null) {

result.close();

}

if (stmt != null) {

stmt.close();

}

if (con != null) {

con.close();

} } catch (Exception e) {

System.out.println(e);

} }

public void loadData(){

try {

getConnectDB();

Statement st = con.createStatement();

String sql = "Select * from lophoc"; ResultSet rs = st.executeQuery(sql);

Trang 6

while (rs.next()) {

System.out.println(rs.getString("tenlop"));

}

con.close();

} catch (Exception e) {

System.out.println(e);

} }

public void loadKhachHang(){

try {

getConnectDB();

Statement st = con.createStatement();

String sql = "Select * from KhachHang"; ResultSet rs = st.executeQuery(sql);

while (rs.next()) {

System.out.println(rs.getString(1) + "\t" + rs.getString(2) + "\t"+rs.getString(3) + "\t" +

rs.getString(4));

}

con.close();

} catch (Exception e) {

System.out.println(e);

} }

public ResultSet loadKhachHang(int makh){

try {

getConnectDB();

Statement st = con.createStatement();

String sql = "Select * from KhachHang where makh = "+makh; ResultSet rs = st.executeQuery(sql);

if (rs != null)

return rs;

else

return null;

} catch (Exception e) {

System.out.println(e);

return null;

} }

public ResultSet loadTaiKhoan(int makh){

try {

getConnectDB();

Statement st = con.createStatement();

Trang 7

String sql = "Select soTaiKhoan, loaiTaiKhoan, soDu, TaiKhoan.makh from TaiKhoan, KhachHang where TaiKhoan.makh = KhachHang.makh and KhachHang.makh = "+makh;

ResultSet rs = st.executeQuery(sql);

if(rs != null)

return rs;

else

return null;

} catch (Exception e) {

System.out.println(e);

return null;

} }

public void infoConnectDB(){

if (getConnectDB() != null)

System.out.println("Kết nối database thành công");

else

System.out.println("Kết nối database không thành công");

}

public static void main(String[] args) {

Database db = new Database();

db.infoConnectDB(); //Xem thông tin kết nối db.loadData(); //Gọi phương thức hiển thị dữ liệu db.closeConnect();

}

}

ATMDemo2.java

import java.sql.ResultSet;

import java.sql.SQLException;

public class ATMDemo2 {

public static void main(String[] args) throws SQLException {

KhachHang kh1 = null;

TaiKhoan tk1 = null;

Database db = new Database();

System.out.println("Khách hàng thứ nhất thực hiện giao dịch ");

int makh1 = 1; //giả sử khách hàng thứ nhất nhập mã pin và giao dịch

ResultSet rs1 = db.loadKhachHang(makh1);

if(rs1.next())

kh1 = new KhachHang(rs1.getInt(1), rs1.getString(2),

Trang 8

rs1.getString(3), rs1.getString(4), rs1.getString(5));

ResultSet rs2 = db.loadTaiKhoan(makh1);

if(rs2.next())

tk1 = new TaiKhoan(rs2.getString(1), rs2.getString(2), kh1, rs2.getFloat(3));

tk1.xemTaiKhoan(); //Giao dịch xem số dư tài khoản }

}

 Kết quả: ứng dụng console có dạng

Khách hàng thứ nhất thực hiện giao dịch

Khách hàng: Nguyễn Văn A

 Database có dạng

KhachHang

TaiKhoan

Trang 9

 Sinh viên bổ sung

- Nhập số thẻ từ bàn phím, nhập số pin từ bàn phím, kiểm tra số pin

- Hiển thị chọn loại giao dịch (switch…case)

Ngày đăng: 21/01/2021, 16:10

🧩 Sản phẩm bạn có thể quan tâm

w