Trang 1 / 2 12 LastLast
Hiển thị kết quả từ 1 đến 10 / 15
  1. #1
    Tham gia
    13-11-2009
    Bài viết
    6
    Like
    0
    Thanked 0 Times in 0 Posts

    Anh chi oi giup em bai tap java nay vơi

    Thiết kế ứng dụng máy ATM bằng swing
    Thiết kế ứng dụng gồm hai đối tượng
    - Thẻ ATM và Máy ATM
    Dữ liệu về thẻ ATM được ưu tiên trên CSDL
    Gồm:Acount(maTK,hoten,sodu,matkhau,ngayTCSC)
    NhatkyGD(maTK,ngaygio,tacvu,sotien,sodu)
    Lop TheATM
    -khai báo: maTK,matkhau,hoten,sotiengui,ngaytruycap
    -hàm dựng TheATM()
    -hàm TheATM(hoten,sodu,matkhau)//Inseret một bản ghi vào table Acount
    -TheATM(maTK)
    -Static TheATM Login(maTK,matkhau)
    -số dư ruttien(so tien can rut)
    -so dư gởiTien(so tien can gơi)
    -so dư chuyenTien(maTK, sotien)
    -so dư Xemsodu()
    -String inBaoCao()
    -Void changePIN(so Pin moi)
    -Void setsodu(so tien)
    Lop ATM
    - Khai bao mãng kiểu static các khay đựng tiền
    - Hàm dựng không đối số ATM()
    -ATM(so to tien cac loai)
    - Static int[]chorut(soTK, so tien)
    - Static void nhangui(soTK, so tien)
    - Static boolean chuyen(soTK người gởi, số TK người nhận , số tiền)
    - int[]nạp tiền(số tiền các loại)
    - int[] Display()
    Với hàm rút tiền(số tiền cần rút)
    {
    Kiểm tra số dư >= số tiền cần rút
    Gọi hàm cho rút (so du TK,số tiền)
    }
    Với hàm choRut(soTK, số tiền)
    {
    Phưong án xuất tiền tương ứng với số tiền/số tờ tiền có
    Nếu thành công thì cập nhật lại số dư tài khoản
    Ghi nhật ký giao dịch
    }
    Anh chị giúp em với
    Thank anh chị nhiều
    Quote Quote

  2. #2
    Tham gia
    17-05-2009
    Location
    HCM
    Bài viết
    77
    Like
    0
    Thanked 0 Times in 0 Posts
    Giúp là giúp sao đây^^, bài này khá hay,từng class có đặc tả chi tiết các method rồi, bạn chỉ cần suy nghĩ viết sao cho đúng chức năng của từng method thôi.
    Mình nghĩ bạn đang bí phần giao diện Swing,theo ý mình thì bạn nên tham khảo giao diện màn hình máy ATM bên ngoài, mình làm y chang vậy,chỉ thêm button "INSERT ATM CARD" (tượng trưng cho việc insert thẻ ATM) với 2 value True và False. Ứng với từng thao tác user sẽ có 1 method xử lý và màn hình sẽ hiển thị thông tin phù hợp.
    Chúc bạn làm tốt ^^

  3. #3
    Tham gia
    13-11-2009
    Bài viết
    6
    Like
    0
    Thanked 0 Times in 0 Posts
    Em đang bí tấc cả mọi chỗ.Anh chị nào có thể giúp em với.

  4. #4
    Tham gia
    10-01-2009
    Bài viết
    156
    Like
    0
    Thanked 0 Times in 0 Posts
    Phải tự mình làm chứ. Ai rảnh rỗi làm hộ cả cho bạn. Mà bạn học hành kiểu j mà bí tất cả đc. Cái này ko đc thầy cô dạy thì cũng tự học đc.

  5. #5
    Tham gia
    17-05-2009
    Location
    HCM
    Bài viết
    77
    Like
    0
    Thanked 0 Times in 0 Posts
    Trc hết bạn cần tạo 1 database lưu dữ liệu theo đặc tả, sau đó dùng jdbc để connect database với chương trình của bạn,xử lý rút trích thog tin và cập nhật database,cái quan trọng nhất là bạn làm sao design dc database thôi ^^,
    phần jdbc thì bạn tham khảo tại đây

  6. #6
    Tham gia
    13-11-2009
    Bài viết
    6
    Like
    0
    Thanked 0 Times in 0 Posts

    Em đang viết nhưng có lỗi . Anh chị nào chỉ giúp em với .Thank anh chị nhiều!

    import java.io.*;
    import java.sql.*;
    import java.util.*;


    public class TheATM3 implements Serializable,AppConstants{
    private int maTK ;
    private String pw = "";
    private String hoTen;
    private double sodu ;
    private Date accDay;
    //-------------------------------------------------------------------------
    // Ham dung mac dinh
    //-------------------------------------------------------------------------
    public theATM() {
    try{
    Class.forName(driverClass);
    } catch(Exception e) {
    System.out.println("Error loading driver");
    }
    }
    //-------------------------------------------------------------------------
    // Ham dung nhan 4 doi so ,tao ban ghi moi tren CSDL
    //-------------------------------------------------------------------------
    public theATM(String p,String ht,double s,Date ngay) throws Exception{
    pw = p;
    hoTen=ht;
    sodu = s;
    accDay = ngay;
    maTK=createAccount();
    }
    //-------------------------------------------------------------------------
    // Ham dung nhan doi so m la custNo, doc CSDL de khoi tao kh
    //-------------------------------------------------------------------------
    public theATM(int m) throws Exception{
    this();
    try{
    Connection con = DriverManager.getConnection(dbURL,dbUser,dbPasswor d);
    Statement stmt = con.createStatement();
    ResultSet rs= stmt.executeQuery("Select custNo,password,balance,lastAccess from Account where accNo="+m);
    if(rs.next()){
    maTK=m;
    hoTen=rs.getString("custNo");
    pw=rs.getString("password");
    sodu=rs.getDouble("balance");
    accDay=rs.getDate("lastAccess");
    }
    con.close();
    } catch(Exception e) {
    System.out.println("Error: "+e);
    e.printStackTrace();
    throw new Exception("Error access database!");
    }
    }
    //-------------------------------------------------------------------------
    // Cac phuong thuc JavaBean
    //-------------------------------------------------------------------------

    public void setMaTK(int mat) {
    this.maTK = mat;
    }

    public void setHoTen(int hten) {
    this.hoTen = hten;
    }

    public void setPw(String pass) {
    pw = pass;
    }
    public void setSodu(double s) {
    this.sodu = s;
    }

    public void setAccDay(Date n) {
    accDay = n;
    }

    public int getMaTK() {
    return maTK;
    }

    public int getHoTen() {
    return hoTen;
    }

    public String getPw() {
    return pw;
    }
    public double getSodu() {
    return sodu;
    }
    public Date getAccDay() {
    return accDay;
    }
    //-------------------------------------------------------------------------
    // Ham tao moi account tren CSDL
    //-------------------------------------------------------------------------
    public int createAccount() throws Exception{
    Class.forName(driverClass);
    Connection con = DriverManager.getConnection(dbURL,dbUser,dbPasswor d);
    con.setAutoCommit(false);
    PreparedStatement stmt = con.prepareStatement("Insert into Account(custNo,password,balance) values(?,?,?)");
    stmt.setString(1,hoTen);
    stmt.setString(2,pw);
    stmt.setDouble(3,sodu);
    int rc=stmt.executeUpdate();
    if(rc==1) {
    Statement st1=con.createStatement();
    ResultSet rs=st1.executeQuery("Select accNo from Account where custNo="+hoTen);
    rs.next();
    maTK =rs.getInt(1);
    }
    else throw new Exception("Invalid data");
    con.commit();
    con.close();
    return maTK;
    }
    //--------------- Ham cap nhat so du tren CSDL-----------------------
    public boolean updateData() {
    try{
    Connection con = DriverManager.getConnection(dbURL,dbUser,dbPasswor d);
    Statement stmt = con.createStatement();
    int rc=stmt.executeUpdate("Update Account set balance='"+sodu+"' where accNo="+maTK);
    con.close();
    return true;
    } catch(Exception e) {
    System.out.println("Error: "+e);
    e.printStackTrace();
    }
    return false;
    }
    //-------------------Ham doi ma pin-----------------------------------
    public boolean changPin(String pw) {
    try{
    Connection con = DriverManager.getConnection(dbURL,dbUser,dbPasswor d);
    con.setAutoCommit(false);
    Statement stmt = con.createStatement();
    int rc=stmt.executeUpdate("Update Account set pass='"+pw+"' where accNo="+maTK);
    con.commit();
    con.close();
    return true;
    } catch(Exception e) {
    System.out.println("Error: "+e);
    e.printStackTrace();
    return false;
    }

    }
    //--------------------Ham rut tien-------------------------------------------------
    public double rutTien(double s){
    try{
    Connection con = DriverManager.getConnection(dbURL,dbUser,dbPasswor d);
    con.setAutoCommit(false);
    Statement stmt = con.createStatement();
    ResultSet rs=stmt.executeQuery("Select balance from Account where accNo="+maTK);
    if(rs.next()){
    sodu=rs.getDouble(1);
    if(s>0){
    sodu+=s;
    updateData();
    con.commit();
    con.close();
    }
    }
    }catch(Exception e) {
    System.out.println("Error: "+e);
    e.printStackTrace();
    }
    return sodu;
    }
    //---------------------------Ham gui tien---------------------------
    public double guiTien(double s){
    try{
    Connection con = DriverManager.getConnection(dbURL,dbUser,dbPasswor d);
    con.setAutoCommit(false);
    Statement stmt = con.createStatement();
    ResultSet rs=stmt.executeQuery("Select balance from Account where accNo="+maTK);
    if(rs.next()){
    sodu=rs.getDouble(1);
    if(s>0){
    sodu+=s;
    updateData();
    con.commit();
    con.close();
    }
    }
    }catch(Exception e) {
    System.out.println("Error: "+e);
    e.printStackTrace();
    }

    return sodu;
    }
    //-----------------Ham chuyen Tien--------------------------------
    public double chuyenTien(int toaccNo,double s) throws Exception{
    double tosodu;
    Connection con = DriverManager.getConnection(dbURL,dbUser,dbPasswor d);
    con.setAutoCommit(false);
    Statement stmt = con.createStatement();
    if(s<=sodu){
    sodu-=s;
    updateData();
    ResultSet rs=stmt.executeQuery("Select balance from Account where accNo="+toaccNo);
    rs.next();
    tosodu=rs.getDouble(1);
    tosodu+=s;
    Statement stmt1 = con.createStatement();
    int rc=stmt1.executeUpdate("Update Account set balance='"+tosodu+"' where accNo="+toaccNo);
    con.commit();
    con.close();
    }
    return sodu;
    }
    //-------------------------ham dang nhap---------------------------------------
    public boolean login(int ma,String p)
    {
    try{
    Connection con = DriverManager.getConnection(dbURL,dbUser,dbPasswor d);
    Statement stmt = con.createStatement();
    PreparedStatement stmt2=con.prepareStatement("SELECT balance FROM Account WHERE accNo=? AND password=?");
    stmt2.setInt(1,ma);
    stmt2.setString(2,p);
    ResultSet rs=stmt2.executeQuery();
    if(rs.next())
    {
    sodu=rs.getDouble("balance");
    con.close();
    return true;
    }
    else
    {
    return false;
    }
    }
    catch(Exception e) {
    System.out.println("Error: "+e);
    e.printStackTrace();
    }
    return false;
    }
    }

  7. #7
    Tham gia
    12-11-2009
    Location
    Y! : hezman87
    Bài viết
    32
    Like
    2
    Thanked 2 Times in 2 Posts
    bài này cũng hay đấy .
    theo code của bạn ở trên mình thấy cách lập trình của bạn chưa hướng đối tượng lắm .

    Làm việc với swing bạn nên dùng mô hình 3 lớp .
    lớp giao diện
    lớp xử lý (cái atm và theAtm)
    và lớp két noi database

    Code:
    public class TheATM3 implements Serializable
    bạn biết xài Seialiable thì chắc cũng tìm hiểu sâu về java rồi .
    chắc bị vướng về swing hả .
    nếu vướng swing pm mình mình up lại liệu cho .

  8. #8
    Tham gia
    13-11-2009
    Bài viết
    6
    Like
    0
    Thanked 0 Times in 0 Posts
    Có anh chị nào có thể chỉ cho em chỗ này không
    Khi em chọn chức năng rút tiền.Em sẽ nhập vào số tiền cần rút là 200 ngàn.Làm sao để khi em nhận số tiền cần rút đó có các loại tiền là 100 ngàn, 50 ngàn và 10 ngàn.
    Tức là số tiền em rút tương ứng với số tờ có trong máy

  9. #9
    Tham gia
    12-11-2009
    Location
    Y! : hezman87
    Bài viết
    32
    Like
    2
    Thanked 2 Times in 2 Posts
    Bạn cứ chia xuống cho từng mức , nếu mà lẻ thì giảm xuống ,
    vd : 200 -> 2 tờ 100
    250 -> 2 tờ 100 1 tờ 50
    260 -> 2x100 1x50 1x10

  10. Thành viên Like bài viết này:


  11. #10
    Tham gia
    10-03-2009
    Bài viết
    36
    Like
    0
    Thanked 0 Times in 0 Posts
    Nhu the thi phai kiem tra so to 100 con trong may la bao nhieu nua cho. Het tien 100 rui phai xai 50k thui. Het 50k phai xai 10k thay the. Het 10k phai thong bao het tien .

    [=========> Bổ sung bài viết <=========]

    A ma ban cam the ra may rut thu xem no tra tien nhu the nao. Chac phai co phan phoi theo luat khac, chu neu the thi nhanh het tien 100k lem.
    Được sửa bởi phungdinhvu lúc 11:27 ngày 24-11-2009 Reason: Bổ sung bài viết

Trang 1 / 2 12 LastLast

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •