Number the language of science If I were someone who had a yen to learn about math, but never had the time to do so, and if I found myself marooned on that proverbial “desert island,” the one book I would hope to have along is, to be honest, a good swimming manual. But the second book might very well be this one. For Dantzig accomplishes these essential tasks of scientific exposition: to assume his readers have no more than a general educated background; to give a clear and vivid account of material most essential to the story being told; to tell an important story; and—the task most rarely achieved of all— to explain ideas and not merely allude to them. One of the beautiful strands in the story of Number is the manner in which the concept changed as mathematicians expanded the republic of numbers: from the counting numbers 1, 2, 3,… to the realm that includes negative numbers, and zero … –3, –2, –1, 0, +1, +2, +3, … and then to fractions, real numbers, complex numbers, and, via a different mode of colonization, to infinity and the hierarchy of infinities. Dantzig brings out the motivation for each of these augmentations: There is indeed a unity that ties these separate steps into a single narrative. In the midst of his discussion of the expansion of the number concept, Dantzig quotes Louis XIV
MỤC LỤC CHƯƠNG TRÌNH QUẢN LÝ QUÁN CAFÉ .3 Mục đích chương trình Chức chương trình .3 Xây dựng chương trình 3.1 Cơ sở liệu 3.2 Thiết kế lớp 4 Xây dựng lớp chương trình 4.1 Lớp thứ nhất: MenuChinh 4.2 Lớp thứ hai: TrangThai .6 4.3 Lớp thứ 3: GoiMon .8 4.4 Lớp thứ 4: ThemBan 10 4.5 Lớp thứ 5: ThucDon 12 4.6 Lớp thứ 6: ThemMon 14 4.7 Lớp thứ 7: GhepBan 16 4.8 Lớp thứ 8: TinhTien 19 4.9 Lớp thứ : TroGiup 21 4.10 Lớp thứ 10: TroGiup .23 LỜI MỞ ĐẦU Java ngôn ngữ lập trình Sun Microsystems giới thiệu vào tháng năm 1995 Từ đó, trở thành cơng cụ lập trình lập trình viên chuyên nghiệp Java xây dựng tảng C C++ Do sử dụng cú pháp C đặc trưng hướng đối tượng C++ Java ngôn ngữ đơn giản, hướng đối tượng, phân tán, thông dịch mạnh mẽ, bảo mật, cấu trúc độc lập, khả chuyển, hiệu cao linh động Đặc biệt Java dễ dàng lập trình đồ họa, xử lý kiện kết nối với nhiều hệ sở liệu khác Bài báo cáo giúp bạn hiểu phần cách thiết kế giao diện người dùng sử dụng thư viện AWT, xử lý kiện kết nối sở liệu với MS Access Qua đề tài: “Xây dựng chương trình quản lý qn café ngơn ngữ Java”, nhóm chúng em xin chân thành cảm ơn thầy giáo Mai Văn Hà dạy chúng em môn học lập trình Java hướng dẫn nhóm thực đề tài Nhóm SVTH Nguyễn Mậu Tiến Nguyễn Quốc Việt Nguyễn Thành Sơn CHƯƠNG TRÌNH QUẢN LÝ QUÁN CAFÉ Mục đích chương trình Ngày nay, sống giới mà công nghệ thông tin tác động lên hầu hết lĩnh vực từ kinh tế trị, văn hóa,xã hội… Cơng việc gì? Nói chung giúp cho chất lượng sống người tốt Chương trình làm công việc tương tự Chương trình quản lý quán café giúp cho việc quản lý quán café trở nên dể dàng, tiện lợi xác hơn, đặc biệt quán café lớn Chức chương trình Khi muốn mở rộng quán café lên cần thêm số lượng bàn vào qn, chương trình làm điều Nhập danh sách đồ uống mà khách gọi Cập nhật thơng tin thực đơn có qn, ta sửa bảng đơn giá của loại đồ uống cho phù hợp với thị trường, tầm cở quán… Khi khách hàng muốn thêm hay bớt gọi(ví dụ có người vào sau, hay người bàn khơng uống muốn trả lại đồ uống), chương trình cập nhật thơng tin Khi khách hàng hai bàn khác muốn nhập lại thành bàn (ví dụ khách hàng hai bàn bạn, muốn ghép bàn để nói chuyện, hay khách hàng bàn muốn làm quen, giao lưu với khách hàng bàn bên cạnh) Chương trình giúp cho kiểm soát đươc trạng thái bàn bàn sủ dụng, bàn chưa sử dụng để từ mà có kế hoạch xếp khách vào quán cách hiệu Và điều tất yếu chương trình giúp cho người quản lý điều hành qn café tính xác số tiền mà khách hàng bàn phải trả, hóa đơn tốn Xây dựng chương trình 3.1 Cơ sở liệu Theo chức trình bày cần xây dựng sở liệu cho chương trình Ở chương trình sử dụng Microsoft Access 2003 để xây dựng sở liệu Cơ sở liệu chương trình gồm bảng: Bảng Ban: quản lý số bàn quán café gồm có trường: Trường BanID: khóa bảng Ban Trường TenBan: trường tên bàn quán Trường GhiChu: trường dùng để thêm thích cho bàn, ví dụ bàn gần cửa vào hay tầng vị trí số… Bảng Thuc_don: bảng danh sách có quán, gồm có trường: Trường DoUongID: khóa bảng Thuc_don Trường TenDoUong: trường cho biết tên đồ uống Trường Đơn Giá: trường cho biết giá tiền loại đồ uống Bảng Goi_mon: bảng nhập vào danh sách đồ uống mà khách hàng cần gọi, gồm có trường: Trường GoiID: khóa bảng Trường BanID: trường Lookup từ trường Ban.BanID Trường DoUongID: trường Lookup từ trường Thuc_don Trường SoLuong: số lượng loại đồ uống mà khách hàng muốn gọi Ta có Relationships sở liệu café sau: Hình relationships sở liệu 3.2 Thiết kế lớp - Giao diện cho chương trình quản lý quán café: với kiến thức vừa học, chương trình thiết kế giao diện chương trình dựa thư viện awt Để làm việc với sở liệu: để lớp chương trình kết nối tốt với sở liệu lớp sử dụng phương thức connect() sau: public void connect() { try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch (ClassNotFoundException ex) { System.out.print("Error: " + ex.getMessage()); } try { String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=c:/cafe.mdb"; = DriverManager.getConnection(url); stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UP DATABLE); } catch(SQLException se) { System.err.println("Error: "+se.getMessage()); } } - Tạo ResultSet rs chứa bảng ghi truy vấn từ sở liệu thiết kế Sau làm việc ghi rs cập nhật, tìm kiếm, thêm ghi, xóa ghi… Các cách làm việc ResultSet dùng nhiều chương trình là: o Cập nhật record: dùng phương thức updateRow(): phương thức dùng để xác lập việc cập nhật liệu, tức chép lại thay đổi từ ResultSet vào bảng tương ứng sở liệu đĩa Phương thức lần làm thay đổi ghi hành, muốn thay đổi ghi khác cân di chuyển sang ghi phương thức di chuyển như: first(),next(),previous(),last(),absolute(numberRow),relative(number Row) o Thêm record: đối tượng ResultSet cập nhật tồn record đặc biệt gọi insertrow để dùng cho việc thêm record mới.Record khơng phải thành phần Resultset mà nằm vùng đệm khác Các bước thêm record sau: Dịch chuyển đến vị trí insertrow phương thức moveToInsertRow() Thực việc điền giá trị cách gọi phương thức updateXXX() cho trường.(XXX kiểu liệu) Sau chắn ràng giá trị thêm vào đúng, ta gọi phương thức insertrow() để thêm ghi vào ResultSet bảng o Xóa record Dịch chuyển đến ghi cần xóa Gọi phương thức deleteRow() - Dựa ResultSet với phương thức cho, xây dựng hàm đặc trưng cho lớp, hàm tong() lớp TinhTien, hàm Luu() lớp GhepBan … với thuật tốn trình bày phần sau Xây dựng lớp chương trình 4.1 Lớp thứ nhất: MenuChinh Nhiệm vụ lớp tạo giao diện cho chương trình quản lý quán café , từ để đối tượng khác(thực chức chương trình) gắn lên đó, bao gồm: Các Menu: File: gắn đối tượng: Trang Thai Goi Mon Tinh Tien Cap Nhat: gắn đối tượng: Them Ban Thuc Don Xu Ly gắn đối tượng: Them/Bot Mon Ghep Ban Help gắn đối tượng: Tro Giup About Hình Giao diện chương trình 4.2 Lớp thứ hai: TrangThai Lớp có nhiệm vụ tạo đối tượng giúp người quản lý xác định rõ bàn quán sử dụng hay chưa sử dụng Khi người quản lý click vào nút “Xem” tất trạng thái bàn sẻ Hình Trạng thái bàn Thuật toán: - Xây dựng giao diện thư viện awt - Kết nối đến sở liệu hàm connect(): - Sử dụng hàm Xem() để xác định trạng thái bàn cách tạo ResultSet “rs” ghi gồm trường BanID lấy từ bảng Goi_mon Tạo cờ flag kiểu boolean khởi tạo flag = false So sánh chuỗi có từ BanID lấy bảng Ban với tất ghi có “rs” tồn flag = true Như vậy, sau so sánh flag = false bàn chưa sử dụng, flag= true bàn sử dụng.Ở ta sử dụng TextArea dung để chứa trường TenBan trạng thái bàn public void Xem() { try { connect(); rs = stmt.executeQuery("SELECT BanID FROM Goi_mon"); for(int i = 0; i