5 6 toán tử Lớp trừu tượng và giao diện o Lớp trừu tượng o Giao diện o Xây dựng lớp cài đặt giao diện o Interfaces from the C# Libraries Cấu trúc dữ liệu trong C# Xây dựng cấu trúc dữ
Trang 1Độc lập – Tự do – Hạnh phúc
ĐỀ CƯƠNG CHI TIẾT HỌC PHẦN NGÔN NGỮ LẬP TRÌNH 2 – PROGRAMMING LANGUAGES II
(LẬP TRÌNH DOTNET)
1 Thông tin về giáo viên
TT Họ tên giáo viên Học
hàm
Học vị Đơn vị công tác (Bộ môn)
1 Đỗ Trung Dũng KS Bộ môn công nghệ phần mêm
2 Phan Việt Anh KS Bộ môn công nghệ phần mêm
Thời gian, địa điểm làm việc: Bộ môn công nghệ phần mềm – Khoa CNTT
Địa chỉ liên hệ: Bộ môn CNPM – Khoa CNTT -
Điện thoại, email: 01656750567, dung38tn@yahoo.com
Các hướng nghiên cứu chính: Trí tuệ nhân tạo, lập trình cơ sở dữ liệu…
2 Thông tin chung về học phần
- Tên học phần: PROGRAMMING LANGUAGES 2 (LẬP TRÌNH DOTNET)
- Mã học phần: 12525151
- Số tín chỉ: 2
- Cấu trúc học phần:
- Học phần (bắt buộc hay lựa chọn): Lựa chọn
- Các học phần tiên quyết: Cấu trúc dữ liệu và giải thuật; Lập trình hướng đối tượng
- Các yêu cầu đối với học phần (nếu có):
- Giờ tín chỉ đối với các hoạt động:
Nghe giảng lý thuyết: 15
Trang 2- Kỹ năng: Kỹ năng phát triển ứng dụng Windows Form và ứng dụng CSDL trên
bộ Visual Studio Net
- Thái độ, chuyên cần: Lên lớp đầy đủ và chuẩn bị cho giờ lên lớp theo yêu cầu của giáo viên
4 Tóm tắt nội dung học phần
Giới thiệu các kiến thức cơ bản về công nghệ DotNet và ngôn ngữ lập trình hướng đối tượng C#, các cấu trúc dữ liệu cơ bản và các cấu trúc dữ liệu tổng quát nâng cao trong C# Các kỹ thuật và phương pháp phát triển ứng dụng trên Windows
Các khái niệm cơ bản
Các khái niệm cơ bản
o Giới thiệu Microsoft.Net
o Tính năng của bộ VS.NET
o Không gian tên
o Cấu trúc của chương trình C#
o Kiểu dữ liệu mảng
o Kiểu dữ liệu xâu kí tự
o Kiểu dữ liệu liệt kê
o Kiểu dữ liệu struct
3 [1,3]
Trang 3o Phương thức và tầm vực truy cập
o Giới thiệu trường dữ liệu
o Giới thiệu thuộc tính - property
o Thuộc tính tĩnh
o Thuộc tính mảng Nạp chồng toán tử
o Tại sao phải nạp chồng toán tử?
o Danh sách các toán tử có thể nạp chồng trong C#
o Cú pháp nạp chồng toán
tử
o Chi tiết về nạp chồng
9 [1,3]
Trang 45
6
toán tử Lớp trừu tượng và giao diện
o Lớp trừu tượng
o Giao diện
o Xây dựng lớp cài đặt giao diện
o Interfaces from the C# Libraries
Cấu trúc dữ liệu trong C#
Xây dựng cấu trúc dữ liệu trong C#
o Danh sách liên kết
o Danh sách liên kết đơn
o Danh sách liên kết kép
o Ngăn xếp(Stack) và hàng đợi(Queue)
o Ngăn xếp(Stack)
o Hàng đợi (Queue)
o Tree
o Cây nhị phân (Binary Tree)
o Cây nhị phân tìm kiếm (Binary Search Tree) Lập trình tổng quát trong C#
6 [1]
Trang 52
3
o Giới thiệu lập trình tổng quát
o Lớp tổng quát (Generic Class)
o Phương thức tổng quát (Generic Method )
o Cấu trúc tổng quát (Generic Struct) Các cấu trúc dữ liệu tập hợp trong C#
Chương 4 Lập trình Window form
o Giao tiếp đồ họa với người dùng
Chương 5 Lập trình cơ sở dữ liệu
o Giới thiệu công nghệ ADO và ADO.Net
o Tạo connection sử dụng
9 [1,2]
Trang 6the Data Source Configuration Wizard
o Tạo kết nối đến CSDL
MS Access và SQL Server
o Đối tượng DataSet
o Xây dựng từng bước ứng dụng với ADO.Net
o Tạo và hiển thị dữ liệu từ DataSet
o Nạp dữ liệu vào các
control cơ bản
6 Giáo trình, tài liệu tham khảo
TT Tên giáo trình, tài liệu Tình trạng giáo trình, tài liệu
có
2 ADO NET Programming, Terrence
J Joubert and Ryan N Payet,
Wordware Publishing, 2003
X
3 Sams Teach Yourself NET
Windows® Forms in 21 Days, Chris
Payne, Sams Publishing, 2002
Tự học,
tự ng.cứu
Lý thuyết
Bài tập
Thảo luận Các khái niệm cơ bản
Các khái niệm cơ bản
o Giới thiệu Microsoft.Net
o Tính năng của bộ
VS.NET
o Không gian tên
o Cấu trúc của chương
trình C#
Trang 7o Kiểu dữ liệu xâu kí tự
o Kiểu dữ liệu liệt kê
o Kiểu dữ liệu struct
Trang 8o Giới thiệu trường dữ liệu
o Giới thiệu thuộc tính -
Cấu trúc dữ liệu trong C#
Xây dựng cấu trúc dữ liệu trong
Trang 9o Giao diện khả tuần
tự (Serializable)
o Giao diện khả sao
chép (IClonableable)
Trang 10o Giao diện kiểu từ
chuẩn bị
Ghi chú
Lý thuyết Theo
bố trí của P2
Chương I: Các khái niệm cơ bản
I Các khái niệm cơ bản
1 Giới thiệu Microsoft.Net
2 Tính năng của bộ VS.NET
- Đọc trước bài giảng ở nhà
- Chú ý nghe giảng
Trang 113 Không gian tên
4 Cấu trúc của chương trình C#
2 Kiểu dữ liệu xâu kí tự
3 Kiểu dữ liệu liệt kê
4 Kiểu dữ liệu struct
- Tích cực tham gia phát biểu ý kiến
cầu SV chuẩn
bị
Ghi chú
Lý thuyết
Bài tập Theo
bố trí của P2
Bài 1:
Viết chương trình tìm nghiệm của phương trình bậc
Chuẩn
bị tốt bài tập
Trang 12Viết chương trình tính tiền điện tiêu thụ của một hộ gia đình biết chỉ số điện kế của tháng trước và tháng hiện tại Đơn giá điện trên 1KWh được quy định như sau:
627 đ/KWh nếu số điện tiêu thụ không quá 100
900 đ/KWh nếu số điện tiêu thụ trên 100 đến không quá 150
1210 đ/KWh nếu số điện tiêu thụ trên 150 đến không quá 200
1340 đ/KWh nếu số điện tiêu thụ trên 200
Bài 4:
Viết chương trình tạo menu sau:
CHUONG TRINH TINH DIEN TICH VA CHU VI
CAC HINH
1 Tinh dien tich va chu vi hinh tam giac biet 3 canh
2 Tinh dien tich va chu vi hinh tron biet ban kinh
3 Tinh dien tich va chu vi hinh chu nhat biet 2 canh
4 Ket thuc chuong trinh
Chon hinh de tinh (1/2/3/4):
Khi người sử dụng chọn 1 hoặc 2 hoặc 3 thì chương trình phải lấy vào dữ liệu, tính diện tích và chu vi hình tương ứng, đưa kết qua ra màn hình
Khi đưa kết quả ra màn hình phải dừng lại để người
sử dụng xem, chờ cho đến khi người sử dụng ấn phím bất kỳ thì quay trở lại menu Nếu người sử dụng chọn 4 thì kết thúc chương trình
Trang 13Viết chương trình tính sinx với độ chính xác 0.0001
theo công thức:
Bài 7:
Viết chương trình nhập vào một số nhị phân có tối
đa 16 bit biểu diễn các số nguyên không âm Cho biết số nhị phân này có giá trị (thập phân) bằng bao nhiêu
cầu SV chuẩn
bị
Ghi chú
Lý thuyết
Bài tập
Thảo luận
Trang 14Thực hành với các bài tập ở phần trên Chuẩn
bị tốt bài tập
chuẩn bị
Ghi chú
Lý thuyết Theo
bố trí của P2
Chương II: Lập trình hướng đối tượng C#
I Lớp và đối tượng
1 Định nghĩa lớp
2 Khai báo Class
3 Khởi tạo và truy cập đối tượng
5 Từ khóa ref, out và params
6 Delegates and Events III Thuộc tính
1 Giới thiệu trường dữ liệu - field
2 Giới thiệu thuộc tính - property
- Chú ý nghe giảng
- Tích cực tham gia phát biểu ý kiến
Trang 152 Danh sách các toán tử có thể nạp chồng trong C#
3 Cú pháp nạp chồng toán tử
4 Chi tiết về nạp chồng toán tử
V Lớp trừu tượng và giao diện
cầu SV chuẩn
bị
Ghi chú
Trang 16Lý thuyết
Bài tập Theo
bố trí của P2
Bài 1:
Tạo lớp lớp đối tượng phân số có tử số và mẫu số
là các số nguyên Viết chương trình sử dụng lớp phân số để chứa 2 phân số nhập vào từ bàn phím;
thực hiện cộng, trừ, nhân, chia hai phân số bằng các phép toán +, -, *, /; đưa ra các kết quả ra màn hình
Bài 2:
Tạo một lớp đối tượng thang máy, mỗi đối tượng
có một mục dữ liệu lưu trữ tầng hiện tại mà thang máy đang đứng, một mục dữ liệu lưu trữ tổng số tầng của toà nhà, các hàm thành viên thực hiện hành động sau:
• Hiển thị tầng hiện tại mà thang máy đang đứng
• Di chuyển thang máy lên một tầng
• Di chuyển thang máy xuống một tầng Chương trình cho phép người sử dụng di chuyển thang máy lên một tầng bằng cách ấn dấu +, di chuyển thang máy xuống một tầng bằng cách ấn dấu -, di chuyển thang máy tới một tầng nào đó bằng cách nhập vào số của tầng, kết thúc chương trình ấn chữ q Sau mỗi thay đổi chương trình phải hiển thị tầng mà thang máy đang đứng Cho rằng lúc đầu thang máy đang ở tầng 1
Bài 3:
Viết chương trình tạo một lớp có tên là book chứa
dữ liệu cần thiết để quản lý sách trong một cửa hàng sách Dữ liệu gồm có tên sách, tác giả, nhà xuất bản, giá sách, số lượng hiện có và tổng số các loại sách đang có trong cửa hàng Chương trình chính cho phép người sử dụng nhập vào từng cuốn sách, lưu các đối tượng sách trong một mảng, hiển thị tất cả các sách và bán một cuốn sách bằng cách giảm số lượng cuốn sách đi 1
ở nhà
Trang 17tự của ngày trong tuần, có các hàm thực hiện công việc: nhập vào tên này (Sunday, Monday, Tuesday,…), hiển thị tên ngày, hiển thị số thứ tự của ngày, cộng ngày với một số nguyên trả về một ngày trong tuần, trừ hai ngày để có số lượng ngày
Viết chương trình sử dụng lớp weekday cho phép người sử dụng nhập vào tên ngày hiện tại, nhập vào
số lượng ngày rồi cho biết sau số ngày này là thứ mấy, nhập vào ngày bắt đầu và kết thúc một khoá học rồi cho biết khoá học kéo dài bao nhiêu ngày
cầu SV chuẩn
bị
Ghi chú
Thực hành với các bài tập ở phần trên Chuẩn
bị tốt bài tập
chuẩn bị
Ghi chú
Trang 18chức
dạy học
địa điểm
Lý thuyết Theo
bố trí của P2
Chương III: Cấu trúc dữ liệu trong C#
I Xây dựng cấu trúc dữ liệu trong C#
1.Danh sách liên kết Danh sách lien kết đơn Danh sách lien kết kép
2.Ngăn xếp(Stack) và hàng đợi(Queue)
Ngăn xếp(Stack) Hàng đợi (Queue)
3 Tree
Cây nhị phân (Binary Tree) Cây nhị phân tìm kiếm (Binary Search Tree)
II.Lập trình tổng quát trong C#
Giới thiệu lập trình tổng quát Lớp tổng quát (Generic Class) Phương thức tổng quát (Generic Method )
III Các cấu trúc dữ liệu tập hợp trong C#
Mảng động (ArrayList) Các giao diện chuẩn cung cấp trong C#
Giao diện khả liệt kê (IEnumerable)
Giao diện khả so sánh (IComparable)
Giao diện khả tuần tự (Serializable)
Giao diện khả sao chép (IClonableable)
Giao diện kiểu từ điển (IDictionary)
- Đọc trước bài giảng ở nhà
- Chú ý nghe giảng
- Tích cực tham gia phát biểu ý kiến
Trang 19SV chuẩn bị
Ghi chú
Lý thuyết
Bài tập Theo
bố trí của P2
Bài số 1:
- Xây dựng lớp Person có họ tên, ngày
tháng năm sinh và các hàm nhập dữ liệu, hiện dữ liệu ra màn hình, hàm tính tuổi, các toán tử so sánh theo tuổi
- Xây dựng lớp Student kế thừa lớp
Person có thêm tên lớp, kết quả học tập (điểm
thi) và các hàm nhập dữ liệu, hiện dữ liệu ra màn hình và các toán tử so sánh điểm của 2 sinh viên
- Hiện danh sách N sinh viên
- Sắp xếp sinh viên tăng dần theo tuổi
- Tìm và in ra các sinh viên có tuổi thấp nhất
Chuẩn bị tốt bài tập ở nhà
Trang 20(Sử dụng cấu trúc dữ liệu mảng, danh sách liên kết, hàng đợi ưu tiên)
Bài số 2:
- Xây dựng lớp Person có họ tên, năm
sinh và các hàm nhập dữ liệu, hiện dữ liệu ra màn hình, hàm tính tuổi, các toán tử so sánh theo tuổi
- Xây dựng lớp Lecturer kế thừa lớp
Person có thêm các môn giảng dạy (tên môn, số
tiết), số năm công tác và các hàm nhập dữ liệu, hiện dữ liệu ra màn hình và các toán tử so sánh
số năm công tác của 2 giáo viên
- Hiện danh sách N giáo viên
- Tìm và in ra các giáo viên có tuổi cao nhất
- Tìm và in ra các giáo viên giảng dạy nhiều môn nhất
- Tìm và in ra các giao viên có tổng số tiết của các môn giảng dạy nhiều nhất
(Sử dụng cấu trúc dữ liệu mảng, danh sách liên kết, hàng đợi ưu tiên)
Bài số 3:
- Xây dựng lớp Sanpham có tên sản phẩm, ngày tháng năm sản xuất và các hàm nhập dữ liệu, hiện dữ liệu ra màn hình, các toán tử so sánh ngày tháng năm sản xuất
- Xây dựng lớp Hoadon bán sản phẩm kế thừa lớp Sanpham có thêm số lượng bán, giá bán
và các hàm nhập dữ liệu, hiện dữ liệu ra màn hình, hàm tính tiền của hóa đơn (=số lượng x giá bán) và các toán tử so sánh tiền của 2 hóa đơn
Trang 21(Sử dụng cấu trúc dữ liệu mảng, danh sách liên kết, hàng đợi ưu tiên)
Bài số 4:
- Xây dựng lớp đội tuyển Doituyen gồm
có tên đội, số vận động viên và các phương thức nhập, xuất ra màn hình, các toán tử so sánh số vận động viên của 2 đội
- Xây dựng lớp đội thi đấu Seagames kế thừa lớp Doituyen có thêm số môn đăng ký thi đấu và các phương thức nhập, xuất ra màn hình, các toán tử so sánh số môn đăng ký thi đấu Lập chương trình chính gồm các chức năng:
- Nhập danh sách N (N<=20) đội tuyển thi đấu
- Sắp xếp danh sách đội tuyển theo thứ tự tăng dần của số vận động viên
- Sắp xếp danh sách đội tuyển theo thứ tự tăng dần của số môn đăng ký thi đấu
- In ra danh sách đội thi đấu gồm: Tên đội, Số vận động viên, Số môn đăng ký thi đấu
- Tìm và in ra các đội tuyển đăng ký thi đấu nhiều môn nhất
(Sử dụng cấu trúc dữ liệu mảng, danh sách liên kết, hàng đợi ưu tiên)
Bài số 5:
Trang 22- Xây dựng lớp người Nguoi gồm: họ tên, ngày tháng năm sinh, quê quán và các phương thức: nhập, in ra Các toán tử so sánh theo tuổi
- Xây dựng lớp nhân viên Nhanvien thừa
kế từ lớp trên và có thêm: tiền lương, chức vụ
Và có các phương thức: nhập, in ra Các toán tử
so sánh tiền lương của 2 nhân viên
Lập chương trình chính gồm các chức năng:
- Nhập danh sách N (N<=20) nhân viên - Sắp xếp danh sách nhân viên theo thứ tự giảm của tiền lương
- In ra danh sách nhân viên gồm: Họ tên, năm sinh, tên môn thi, tiền lương, chức vụ
- Sắp xếp nhân viên theo thứ tự tăng dần của tuổi
- Sắp xếp nhân viên theo thứ tự tăng dần của lương
- Tìm và in ra các nhân viên có tiền lương cao nhất
(Sử dụng cấu trúc dữ liệu mảng, danh sách liên kết, hàng đợi ưu tiên)
- Thực hiện các toán tử so sánh 2 phân số
- Nhập vào N phân số, sắp xếp tăng dần
(Sử dụng cấu trúc dữ liệu mảng, danh sách liên kết, hàng đợi ưu tiên)
Bài tập 7:
Xây dựng lớp biểu diễn số phức Sophuc
Trang 23với hai thành phần dữ liệu thực, ảo và các hàm thành phần xuất, nhập, định giá trị cho số phức, cộng, trừ, nhân, chia hai số phức
Viết chương trình cho phép nhập vào hai
số phức, in ra kết quả các phép toán cộng, trừ, nhân, chia hai số phức kể trên
Nhap vao N so ao (Sử dụng cấu trúc dữ liệu mảng, danh sách liên kết, hàng đợi ưu tiên)
Bài tập 9:
Xây dựng một lớp số lớn Solon
Viết chương trình thực hiện:
- So sánh 2 số lớn
- Cộng, trừ, nhân, chia hai số lớn
- Nhập vào N số lớn, xây dựng cây nhị phân tìm kiếm trên N số lớn này
- Tính giá trị của biếu thức
Chú ý: Cài đặt các giao diện: IComparable,
IEnumerable Thảo luận
Thực
hành, thí
Trang 24SV chuẩn bị
Ghi chú
Thực hành với các bài tập ở phần trên Chuẩn bị
tốt bài tập ở nhà
chuẩn bị
Ghi chú
Lý thuyết Theo
bố trí của P2
Chương IV: Lập trình Windows Forms
I Giao tiếp đồ họa với người dùng
II Form control III Các loại control cơ bản
IV Các loại hộp thoại
V Ứng dụng MDI
- Đọc trước bài giảng ở nhà
- Chú ý nghe giảng
- Tích cực tham gia phát biểu ý kiến
Trang 25SV chuẩn bị
Ghi chú
Lý thuyết
Bài tập Theo
bố trí của P2
Bài 1:
Cho dữ liệu về danh mục các sản phẩm trong file: DMSanpham.txt gồm Mã sản phẩm, Tên sản phẩm, Đơn giá theo cấu trúc sau:
MaSP1, Tên SP1, 10 MaSP2, Tên SP2, 100 Thiết kế một Form gồm:
- ListBox: hiển thị danh sách các sản phầm được đọc từ file
- Một Label hiển thị đơn giá tương ứng của sản phẩm đang được chọn trong LISTBOX
- Một CheckBox “VAT” để tính đơn giá theo 10% VAT
- Một nút “Hiển thị”, một nút “Thoát”
Bài 2:
Cho dữ liệu về danh sách các sinh viên trong file: DSSinhvien.txt gồm Mã sinh viên, Tên sinh viên, quê quán, ngày tháng năm sinh, giới tính, điểm trung bình theo cấu trúc sau:
MaSV1, Tên SV1, Quê quán 1, 10/1/1994, Nam, 6.5
Chuẩn bị tốt bài tập ở nhà