Trang 2 BUỔI 1: XUẤT NHẬP DỮ LIỆU CƠ BẢN Mục tiêu Xuất dữ liệu ra màn hình, nhập dữ liệu từ bàn phím Nhập chuỗi, số nguyên, số thực Tham số của phương thức: tham trị, ref, out, par
Trang 1Trang 1
BÀI TẬP THỰC HÀNH
LẬP TRÌNH TRÊN
WINDOWS
BUỔI 1: XUẤT NHẬP DỮ LIỆU CƠ BẢN 2
BUỔI 2: THIẾT KẾ LỚP {1} 3
BUỔI 3: THIẾT KẾ LỚP {2} 4
BUỔI 4: THIẾT KẾ LỚP {3} 5
BUỔI 5: Windows Form {1} 6
BUỔI 6: Windows Form {3} 12
BUỔI 7: TRUY CẤP CSDL THEO CÁCH CONNECTED 14
BUỔI 8: TRUY CẬP CSDL THEO CÁCH DISCONNECTED 19
BUỔI 9: TÌM KIẾM VÀ CẬP NHẬT DƯ LIỆU 21 BUỔI 10: Ôn tập
BUỔI 11: Kiểm tra
Trang 2Trang 2
BUỔI 1: XUẤT NHẬP DỮ LIỆU CƠ BẢN
Mục tiêu
Xuất dữ liệu ra màn hình, nhập dữ liệu từ bàn phím (Nhập chuỗi, số nguyên, số thực)
Tham số của phương thức: tham trị, ref, out, params
Xây dựng lớp cơ bản: Field, Constructor, Method (Nhập, xuất, tính toán)
Nhập xuất cơ bản: Console.WriteLine(), Console.ReadLine()
Bài 1 Xuất và nhập chuỗi
Dùng chương trình Visual Studio.Net viết chương trình nhập họ tên và xuất họ tên đã nhập ra màn hình console theo định dạng sau:
Nhap ho ten cua ban: Tran Anh Minh
Chao ban Tran Anh Minh!
Bài 2 Nhập số nguyên
Viết chương trình nhập hai số nguyên x, y Tính xy và xuất theo định dạng sau:
Nhap so nguyen x: 7
Nhap so nguyen y: 3
Ket qua 7 mu 3 la: 343
Viết phương thức: truyền tham số bằng tham trị, tham chiếu: ref, out
Bài 3 return giá trị
Xây dựng lớp có phương thức tìm giá trị lớn nhất của ba số nguyên
Bài 4 Phương thức bool
Xây dựng lớp có phương thức kiểm tra n có phải là số nguyên tố hay không
Bài 5 Tham chiếu ref
Xây dựng lớp có phương thức hoán vị hai số thực
Bài 6 Tham chiếu out
Xây dựng lớp có phương thức tìm giá trị lớn nhất và giá trị nhỏ nhất của ba số thực
Xây dựng lớp cơ bản
Bài 7 Nhập xuất thông tin sinh viên
Xây dựng lớp sinh viên để lưu trữ 1 sinh viên (mã sinh viên, họ tên, địa chỉ, sinh viên năm thứ mấy) Hãy nhập xuất 1 sinh viên
Bài 8 Tính lương 1 nhân viên
Viết chương trình nhập thông tin một nhân viên (họ tên, mức lương, số ngày vắng) Tính và xuất lương của nhân viên, biết rằng một ngày vắng sẽ bị trừ 100.000 VNĐ
Trang 3 Thiết kế và xây dựng lớp đơn giản để giải một số bài toán
Xây dựng các lớp có đầy đủ các thành phần: Field, Constructor, Property, Method
Bài 1 Giá trị đơn thức
Viết chương trình tính giá trị của đơn thức P(x) = a x n (a là số thực, n là số nguyên không âm) với giá trị x cho trước
Bài 2 Khoảng cách giữa 2 điểm
Viết chương trình tính khoảng cách giữa 2 điểm A và B trong mặt phẳng tọa độ theo 2 cách:
Phương thức thành viên
Phương thức tĩnh
Bài 3 Trung điểm của 2 điểm
Viết chương xác định trung điểm I của 2 điểm A và B theo 2 cách:
Phương thức thành viên
Phương thức tĩnh
Bài 4 Đạo hàm đơn thức
Viết chương trình tính đạo hàm của đơn thức P(x) = a x n theo qui tắc đạo hàm
1
( ) '( ) n
Bài 5 Tính tuổi 1 sinh viên
Viết chương trình nhập thông tin sinh viên (họ tên, năm sinh) Tính và xuất tuổi sinh viên này
Bài 6 Đa năng toán tử
Thiết kế lớp phân số có chức năng +, -, *, / và so sánh >, <, >=, <=, ==, != giữa 2 phân số
Trang 4Bài 1 Lớp chứa mảng 1 chiều
Xây dựng lớp dãy số chứa n số nguyên Hãy viết các phương thức
a Các loại Constructor
b Indexer để truy cập phần tử thứ i trong dãy
c Nhập / Xuất dãy số
d Tìm các số chẵn
Bài 2 Lớp chứa mảng 2 chiều
Xây dựng lớp mảng 2 chiều có kích thước nxm Hãy viết các phương thức
d Tính giá trị của đa thức với giá trị x được nhập từ bàn phím
Bài 4 Dãy phân số
Xây dựng lớp chứa n phân số Hãy tính tổng của n phân số đó
Bài 5 Tính lương nhân viên
Một phòng ban có n nhân viên (họ tên, mức lương, số ngày vắng) Biết rằng một ngày vắng sẽ bị trừ 100.000 VNĐ Hãy tổng lương của phòng ban
Trang 5Trang 5
BUỔI 4: THIẾT KẾ LỚP {3}
Mục tiêu
Thừa kế, đa hình
Thiết kế và xây dựng lớp phức tạp để giải một số bài toán
Bài 1 Tính lương nhân viên
Trong một công ty X, các nhân viên trong công thuộc một trong 2 bộ phân và gọi là: nhân viên kinh doanh và nhân viên sản xuất Thông tin cơ bản của nhân viên gồm: Mã nhân viên, họ tên
Cách tính lương cho nhân viên mỗi bộ phận như sau:
Nhân viên kinh doanh: Ngoài mức lương cơ bản hàng tháng, nhân viên còn nhận được khoảng tiền 500.000 trên 1 hợp đồng được ký kết
Nhân viên sản xuất: Lương nhân viên sản xuất tính theo số lượng sản phẩm x 1000 Nếu làm trên 3000 sản phẩm sẽ được thương thêm 5% lương
Viết chương trình tính lương cho các nhân viên
Bài 2 Tính điểm thí sinh
Phân tích, thiết kế và hiện thực theo hướng đối tượng chương trình tính điểm thi cho các thí sinh
trong một cuộc thi tin học, thông tin Cuộc thi: danh sách thí sinh Cuộc thi giành cho hai đối tượng thí sinh:
Chuyên (giành cho những thí sinh chưa có giải trước đây) Siêu cúp (giành cho những thí sinh đã đoạt giải trước đây)
Biết rằng các thí sinh phải làm 3 bài thi lập trình, riêng đối tượng Chuyên làm thêm bài thi tiếng Anh (để cộng điểm thêm), đối tượng Siêu cúp phải làm thêm bài cơ sở dữ liệu (CSDL)
Thông tin chung của các thí sinh: sbd (số báo danh), hoten (họ tên), bai1, bai2, bai3 (điểm của bài 1, 2, 3), tongdiem (tổng điểm cuối cùng của từng thí sinh)
Thông tin riêng cho đối tượng Chuyên: tiengAnh (điểm tiếng Anh)
Thông tin riêng cho đối tượng Siêu cúp: csdl (điểm CSDL)
Kết quả được xét như sau:
Thí sinh Chuyên: Tổng 3 bài thi lập trình + điểm thưởng tiếng Anh được xét như sau:
o 7≤tiengAnh≤8: cộng 1 điểm
o 9≤tiengAnh≤10: cộng 2 điểm
Thí sinh Siêu cúp: Tổng điểm của 4 bài thi
Yêu cầu: Viết chương trình nhập thông tin cuộc thi và xuất tổng điểm thi của từng thí sinh
Trang 7Trang 7
Hình 3
7 Thiết lập nút Enter cho button “Bình phương”, nút ESC cho button “Thoát”
8 Hiện Form chính ở giữa màn hình
Bài 2: Modal Form
Hình 1
Yêu cầu:
1 Thiết kế giao diện như hình trên
2 Khi nhấn nút “Nhập phân số 1”, “Nhập phân số 2” sẽ hiện ra form nhập sau (hiển thị
dạng Modal Form)
Hình 2
3 Chỉ có một form hiện trong Taskbar
4 Thực hiện các phép tính dựa trên lớp PhanSo
5 Xác nhận khi nhấn nút “Thoát”
Trang 8Trang 8
Bài 3: Modeless Form
Hình 1
Yêu cầu:
1 Thiết kế giao diện như hình trên
2 Khi nhấn nút “Thêm” sẽ hiện ra form thêm thí sinh sau (hiển thị dạng Modeless
Form)
Trang 9Trang 9
Hình 2
3 Thay đổi màu các TextBox khi chúng được active
4 Khi nhấn nút “Chấp nhận” sẽ thêm thí sinh vào danh sách thí sinh trong MainForm
5 Khi nhấn nút “Cập nhật” sẽ hiện form cho phép chỉnh sửa thong tin thí sinh đã chọn danh sách thí sinh (SV tự thiết kế form này)
6 Khi nhấn nút “Xóa” chương trình phải xác nhận trước khi xóa thí sinh đang được chọn trong danh sách thí sinh
Bài 4: NotePad
Mô phỏng chương trình NotePad
Hình 1
Yêu cầu: Một số chức năng quan trọng
1 New, Open, Save, SaveAs, Exit
2 Undo, Cut, Copy, Paste, Delete
Trang 102 Nếu lật một ô có chứa mìn thì thua (Hình 1)
3 Khi lật một ô không có mìn, nếu được đánh số n (18) thì xung quanh ô đó có đúng
n trái mìn
4 Khi lật một ô không có mìn và xung quanh ô đó cũng không có mìn thì nó lật một loạt các ô liên tiếp không có mìn như hình 3
Trang 11Trang 11 Hình 2 Đã lật hết các ô không có mìn (Thắng)
Hình 3 Lật một số ô liên tiếp
Trang 12Thiết kế form dùng để thêm nhân viên vào danh sách nhân viên như sau
Khi nhấn nút Thêm, chương trình sẽ thêm thông tin mới nhập vào listview
Bài 2
Thêm button Xóa để xóa nhân viên đã chọn trong ListView
Trang 13Trang 13
Bài 3
Thêm button Cập nhật vào form
Khi người dùng chọn 1 dòng nhân viên thì thông tin nhân viên đó sẽ hiện lên các TextBox Người dùng có thể chỉnh sửa thông tin đó Sau khi chỉnh sửa trên TextBox, người dùng nhấn button Cập nhật thì thông tin đó sẽ lưu vào ListView
Trang 14 Lấy dự liệu theo cách Connected
Tạo CSDL với tên CSDL: QLXe
Xe (Bảng Xe)
BangSo nvarchar(10) Bảng số xe
HangXe nvarchar (20) Hãng xe
NgaySuDung DateTime Ngày đầu tiên sử dụng
NgaySuaChua DateTime Ngày sửa chữa gần nhất
NhanVien (Bảng Nhân viên)
MaNV nvarchar (5) Mã nhân viên
Ten nvarchar (20) Tên
NgayVaoLam DateTime Ngày vào làm
PhanCong (Bảng Phân công)
BangSo nvarchar (10)
MaNV nvarchar (5)
NgayLamViec DateTime Ngày làm việc
DoanhSo int Doanh số nộp trong ca làm việc
Thiết lập quan hệ giữa các bảng
Dữ liệu mẫu
Trang 15Trang 15
LẤY DỮ LIỆU THEO CÁCH CONNECTED
Bài 1: [Kết nối đến Data Source]
Giao diện
Yêu cầu:
1 Đặt tên các menuitem hợp lý
2 Lưu chuỗi kết nối trong file: app.config
3 Khi click vào menu “Đọc chuỗi kết nối”, chương trình sẽ đọc chuỗi kết nối đã lưu
trong file app.config và hiện ra màn hình như sau
Trang 16Trang 16
4 Khi click vào menu “Mở kết nối”, chương trình mở kết nối và thông báo kết nối đã được mở thành công hay thất bại
5 Khi click vào menu “Đóng kết nối”, chương trình đóng kết nối lại
6 Khi click vào menu “Trạng thái Kết nối”, chương trình sẽ cho biết kết nối đang mở hay đóng
Tổng doang số theo từng quý
Bài 3: [Lấy tập giá trị - Đăng nhập] Tên Project: ThucNghiemCSDL
Giao diện:
Yêu cầu:
1 Thêm cột matkhau (mật khẩu) vào trong bảng NhanVien
2 Form Đăng nhập hiện thị trước các form khác
3 Khi nhấn nút “Đăng nhập”, chương trình sẽ kiểm tra xem có nhân viên trong csdl không Nếu có thì hiện form chính
4 Khi nhấn nút “Đăng nhập”, chương trình sẽ thoát ứng dụng
Trang 17Trang 17
Giao diện:
Yêu cầu:
1 Combobox “Nhập Bảng số”: Dữ liệu lấy từ cột “BangSo” trong bảng Xe
2 Nút “Chi tiết xe”: Tìm thông tin xe có bảng số được nhập/chọn trong Combobox Nếu không tìm thấy thông tin xe sẽ hiện message
Trang 18Trang 18
Trang 19Trang 19
BUỔI 8: TRUY CẬP CSDL THEO CÁCH DISCONNECTED
Mục tiêu
Sự Adapter để truy vấn CSDL
Truy vấn trên 1 và nhiều bảng trong CSDL
Bài 1: [Truy vấn 1 bảng] Tên Project: ThucNghiemCSDL
Giao diện:
Yêu cầu:
1 Lấy danh sách nhân viên và hiện lên lưới bằng DataAdapter
Trang 20Trang 20
Bài 2: [Truy vấn nhiều bảng] Tên Project: ThucNghiemCSDL
Giao diện:
Yêu cầu:
1 Hiện tên bảng trong Combobox
2 Khi chọn bảng nào thì thông tin bảng đó hiện trong lưới
Trang 22Trang 22
Yêu cầu:
1 Nút “Xem tất cả” hiện tất cả dữ liệu doanh số trong bảng “PhanCong”
2 Nút “Tìm” chỉ hiện doanh số của nhân viên đã chọn
3 Lưới phân công có thêm cột “doanh số sau thuế”
Bài 2 CẬP NHẬT DỮ LIỆU
Giao diện: