Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 25 kết quả

Đề tài: Rút tiền từ cây ATM viết bằng c# như thế nào?

  1. #1
    Ngày gia nhập
    05 2011
    Bài viết
    28

    Mặc định Rút tiền từ cây ATM viết bằng c# như thế nào?

    Chào mọi người!
    Em đang làm form rút tiền từ máy ATM trong project mô phỏng máy rút tiền ATM.
    yêu cầu:
    - tài khoản lớn hơn số tiền cần rút.
    - tài khoản sau khi rút phải còn lại số dư 50 nghìn
    - tiền trong máy lớn hơn số tiền rút.
    Em loay hoay mãi mà không ra kính mong các pro giúp đỡ!!!

  2. #2
    Ngày gia nhập
    11 2008
    Bài viết
    218

    Ý kiến của mình thế này:
    */ Yêu cầu:
    - Bạn cần lưu tài khoản của người sử dụng (user, pass, số tiền hiện có) và trạng thái máy ATM (số tiền còn dư trong máy) vào database (loại gì thì tùy bạn)

    */ Các bước thực hiện:
    1- Đăng nhập tài khoản người dùng, ghi nhớ số tiền hiện có (user_money)
    2- Kiểm tra số tiền còn dư trong ATM (atm_money)
    3- Nếu atm_money<atm_min thì thông báo "hết tiền" và kết thúc (atm_min là số tiền nhỏ nhất phải rút trong 1 giao dịch)
    4- user nhập số tiền cần rút (get_money) (số này bạn phải kiểm tra theo các ràng buộc, nếu chưa hợp lệ thì yêu cầu nhập lại, vd: phải là bội của 10k và nhỏ hơn 5 triệu)
    5- Nếu get_money +50k > user_money thì thông báo "không rút được" và quay lại b4;
    6- Nếu atm_money < get_money thì thông báo "không đủ tiền" và quay lại b4;
    7- Thông báo rút tiền thành công, atm_money = atm_money - get_money; user_money = user_money - get_money; cập nhật atm_money, user_money vào database.
    8- Có rút tiếp không? nếu có thì quay lại b2, nếu không thì END.

    */ Ngoài ra, nếu yêu cầu cao hơn thì bạn cần dùng thuật toán đổi tiền để xem số tiền cần rút sẽ có bao nhiêu tờ tiền mệnh giá khác nhau sao cho số tờ tiền là ít nhất.

    Trên đây là một vài ý kiến cá nhân của mình, hi vọng nó có ích với bạn.
    Chúc bạn thành công!

  3. #3
    Ngày gia nhập
    05 2011
    Bài viết
    28

    Chào Who_am_I!
    Phần đăng nhập mình đã đăng nhập thành công và dùng getfirstvalue để truyền dữ liệu cho form rút tiền rồi. đây là code của mình.
    1 .Mình tạo lớp là dacm.cs
    code như sau:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data;
    using System.Data.SqlClient;
    using System.Windows.Forms;


    namespace TIEN_DACM
    {
    class dacm
    {
    public SqlConnection conn = new SqlConnection();
    public void ketnoi()
    {

    conn.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|DB_ATM.mdf;Integrated Security=True;User Instance=True";
    conn.Open();

    }
    public void dongketnoi()
    {
    conn.Close();
    }
    public void thucthi(string sql)
    {
    dacm b = new dacm();
    try
    {
    b.ketnoi();
    SqlCommand cmd = new SqlCommand(sql, b.conn);
    cmd.ExecuteNonQuery();


    }
    catch (SqlException err)
    {
    MessageBox.Show(err.ToString());
    }
    }
    }
    }

    2.code form rút tiền form này chỉ có mình chỉ thực hiện rút nhanh trên 1 button là nút 100000k thôi.Nhưng không hiểu sao chương trình không có lỗi nào báo rút thành công nhưng không update được vào bảng sau khi rút.Bạn xem và sửa hộ mình với.Cảm ơn bạn rất nhiều.
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.SqlClient;

    namespace TIEN_DACM
    {
    public partial class frm_ruttien : Form
    {
    public frm_ruttien()
    {
    InitializeComponent();
    }
    dacm ac = new dacm();

    private string _getFirstValue = null;



    // Thuộc tính này có nhiệm vụ lấy giá trị từ các Form khác.
    public string GetFirstValue
    {
    get
    {
    return _getFirstValue;
    }

    set
    {
    _getFirstValue = value;
    }
    }


    private void btn_100_Click(object sender, EventArgs e)
    {

    string a = GetFirstValue;
    int c, d;


    string sql = ("select * from khachhang,atm where khachhang.sotaikhoan='" + a + "'");

    ac.ketnoi();
    SqlCommand cmd = new SqlCommand(sql, ac.conn);
    SqlDataReader re = cmd.ExecuteReader();
    while (re.Read())
    {

    string b = re["tien"].ToString();

    string g = re["tienatm"].ToString();
    //string stk = re["stk"].ToString();


    if ((100000 <= Convert.ToInt32(b)) && (100000 <= Convert.ToInt32(g)) && (Convert.ToInt32(b) - 100000 >= 50000))
    {


    c = ((Convert.ToInt32(b)) - 100000);
    string sql2 = ("Update khachhang set tien='" + c + "' where sotaikhoan='" + a + "'");
    ac.thucthi(sql2);
    MessageBox.Show("Rút thành công!");
    d = ((Convert.ToInt32(g)) - 100000);
    string sql4 = ("Update atm set tienatm='" + d + "' ");
    ac.thucthi(sql4);
    //string sql5 = ("insert into lichsugiaodich(sotienrut,sotkh,ngaygiaodich,ghichu ) values('" + 100000 + "','" + stk + "','" + DateTime.Now.ToString() + "','" + "rut tien" + "')");
    // ac.thucthi(sql5);



    }
    else
    {
    MessageBox.Show("so tien khong du");
    }


    }


    ac.dongketnoi();



    }

    private void frm_ruttien_Load(object sender, EventArgs e)
    {
    txtsotaikhoan.Text = GetFirstValue;
    }

  4. #4
    Ngày gia nhập
    05 2011
    Bài viết
    28

    Đây là file đính kèm project của mình.
    Attached Files Attached Files

  5. #5
    Ngày gia nhập
    11 2008
    Bài viết
    218

    1/ Bạn đã làm đúng rồi đấy, dữ liệu vẫn update đúng sau khi bạn thực hiện rút tiền. Lí do mà bạn thấy rằng dữ liệu không được update là như thế này:
    Trong chuỗi kết nối của bạn là: conn.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|DB_ATM.mdf;Integrated Security=True;User Instance=True";
    như vậy sau mỗi lần Clear và Build lại Solution thì tệp DB_ATM.mdf được copy lại vào thư mục Bin\Debug (tức là không thay đổi gì so với gốc nên bạn cảm thấy dữ liệu không được update). Không tin thì bạn cứ Build rồi chỉ chạy tệp TIEN_DACM.exe xem!

    2/ Mình xin góp ý nhỏ, trong btn_100_Click bạn nên sửa lại như sau:
    Visual C# Code:
    1. ....
    2.            while (re.Read())
    3.             {
    4.                 b = re["tien"].ToString();
    5.                 g = re["tienatm"].ToString();
    6.                 //string stk = re["stk"].ToString();
    7.             } //Kết thúc cấu trúc while ở đây
    8. ...

  6. #6
    Ngày gia nhập
    05 2011
    Bài viết
    28

    Mặc định Rút tiền từ cây ATM viết bằng c# như thế nào?

    Cảm ơn bạn rất nhiều!Mình cũng mới học winform c# thôi.Nên mình ko thạo lắm.
    Bạn ơi! thế bây giờ mình phải thay đổi chuối kết nối nào cho phù hợp.vì bài này mình còn phải chạy ở máy khác nữa.Mình test rất đơn giản là chạy xong quay vào bảng kiểm tra xem nó đã thực hiện được chưa thôi.
    ++
    còn cái góp ý của bạn nghĩa là mình đưa đoạn if để tính và up date vào bảng ra ngoài phải ko?

  7. #7
    Ngày gia nhập
    11 2008
    Bài viết
    218

    Chuỗi kết nối thế cũng được rồi bạn ạ, vì khi bạn mang sang máy khác thì bạn chỉ chạy tệp EXE thôi mà, ko phải Clear và Build lại nhiều lần như lúc đang test.

    ++ đúng rồi bạn ạ.

  8. #8
    Ngày gia nhập
    05 2011
    Bài viết
    28

    Bạn ơi!
    mình làm theo cách của bạn kết thúc while và đưa if ra ngoài nhưng nó báo lỗi ở các biến string b=...
    và string g...???

  9. #9
    Ngày gia nhập
    04 2011
    Bài viết
    44

    bạn khai báo

    Code:
    string b;
    string g;
     while (re.Read())
                {
                    b = re["tien"].ToString();
                    g = re["tienatm"].ToString();
                    //string stk = re["stk"].ToString();
                }

  10. #10
    Ngày gia nhập
    05 2011
    Bài viết
    28

    Mình đã làm lại.Sau đó mình vào datbase và show table data ở các bảng lên số tiền vẫn còn nguyên bạn à.nó chưa update được số tiền còn lại sau khi rút vào bảng .Giúp mình với phải khắc phục thế nào bạn ơi!!

Các đề tài tương tự

  1. Game bài b52 - game bài đầu tiên tại việt nam được rút tiền thắng
    Gửi bởi NgjchLanDJ trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 115
    Bài viết cuối: 12-09-2013, 05:49 PM
  2. Hỗ trợ rút tiền mặt 100% hạn mức thẻ tín dụng 0989913708
    Gửi bởi ngahsew trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 12-09-2013, 02:07 PM
  3. Kỹ thuật C++ Cách viết hàm tạo dạng rút gọn
    Gửi bởi ductri_vn trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 12-09-2013, 07:29 AM
  4. Rút gỗ, rút khỉ, uno, angry bird .... BoardGameVn2012 discount 10%
    Gửi bởi ecomvn88 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 21-05-2012, 10:33 PM
  5. Algorithm Viết code thời khóa biểu viết trên Window Form C# như thế nào?
    Gửi bởi hocphp_1998 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 10
    Bài viết cuối: 12-04-2011, 11:10 PM

Quyền hạn của bạn

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