Nhóm chia ra thành các công việc chính: - Nghiên cứu hoạt động của thang máy Thư viện Ta Quang Bửu: Tìm hiểu hoạt động và giao diện người dùng của thang máy.. Đặt tên biến:
Trang 1──────── * ───────
BÀI TẬP LỚN
MÔN: KỸ THUẬT LẬP TRÌNH
PF14
Sinh viên thực hiện : Phùng Đức Thuận
Vũ Minh Thành Tống Minh Quý Phạm Văn Quyền
Giáo viên hướng dẫn : TS Vũ Thị Hương Giang
Hà Nội, tháng 5 năm 2012
Trang 2MỤC LỤC
MỤC LỤC 1
LỜI NÓI ĐẦU 0
PHÂN CÔNG THÀNH VIÊN TRONG NHÓM 3
CHƯƠNG 1 PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ GIẢI PHÁP 4
1.1 Mô tả yêu cầu bài toán 4
1.2 Biểu đồ IPO Error! Bookmark not defined 1.2.1 Chức năng 1 Error! Bookmark not defined 1.2.2 Chức năng 2 Error! Bookmark not defined 1.3 Thiết kế chương trình 7
1.4 Thiết kế dữ liệu 7
1.5 Thiết kế giải thuật Error! Bookmark not defined 1.5.1 Giải thuật 1 Error! Bookmark not defined 1.5.2 Giải thuật 2 Error! Bookmark not defined CHƯƠNG 2 CÀI ĐẶT CHƯƠNG TRÌNH 7
2.1 Các kỹ thuật lập trình đã áp dụng 7
2.2 Kết quả chương trình 9
2.3 Giao diện chương trình Error! Bookmark not defined KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 10
TÀI LIỆU THAM KHẢO 10 PHỤ LỤC Error! Bookmark not defined.
Trang 3LỜI NÓI ĐẦU
Hiện nay , cùng với việc phát triển mạnh mẽ của kinh tế xã hội , cơ sở hạ tầng ngày được nâng cao, đồng nghĩa với việc các tòa cao ốc, khu nhà cao tầng , chung cư lớn được xây dựng rộng khắp Vì thế , nhu cầu về thang máy là hết sức cần thiết Từ đó , thang máy trở thành bài toán và đề tài hấp dẫn Được sự hướng dẫn của cô giáo Vũ Thị Hương Giang – Viện Công nghệ thông tin và truyền thông- Trường Đại học Bách khoa Hà Nội, chúng tôi đã xây dựng bài toán về thang máy cho tòa nhà 5 tầng Nội dung công việc :
- Nghiên cứu hoạt động của thang máy Thư viện Ta Quang Bửu
- Tìm hiểu thành phần cấu tạo cơ bản của thang máy
- Xây dựng thuật toán điều khiển thang máy
- Xây dựng chương trình điều khiển với ngôn ngữ C và C++
Tuy có nhiều hạn chế về thời gian , lượng kiến thức về lập trình nhưng nhóm cũng đã cố gắng hoàn thàn công việc, mặc dù vậy cũng không thể tránh khỏi thiết sót và hạn chế, chúng tôi rất mong nhận được sự đóg góp ý kiến của thầy cô và các bạn
Xin chân thành cảm ơn
Nhóm PE14
2
Nhóm PE14 - Lớp Cơ Khí Hàng Không-CLC- K54
Trang 4PHÂN CÔNG THÀNH VIÊN TRONG NHÓM
Tổ chức họp nhóm: xác định các quy trình làm việc để đạt được kết quả tối ưu
Nhóm chia ra thành các công việc chính:
- Nghiên cứu hoạt động của thang máy Thư viện Ta Quang Bửu: Tìm hiểu hoạt động và giao diện người dùng của thang máy
- Tìm hiểu thành phần cấu tạo cơ bản của thang máy qua các tài liệu thu thập được
- Thiết kế các chức năng và thuật toán cũng như viết sơ đồ luồng cho từng chức năng:
cả nhóm thực hiện(thời gian 10 ngày)
- Viết code và đồ họa: Thành , Quyền, Quý , Thuận
- Viết báo cáo bằng bản word: Quý , Thuận
Trang 5PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ GIẢI PHÁP
1.1 Mô tả yêu cầu bài toán
“Mô phỏng hệ thống điều khiển thang máy nhà D6 5 tầng”
Qua các quan sát thực tế và những lần thảo luận nhóm, nhóm đã đi đến việc thống nhất cấu trúc của thang máy để có thể lập trình một cách thuận tiện Cùng
với việc tham khảo trên mạng nhóm đã thống nhất về quá trình chạy của thang, sự kết hợp giữa hai thang sao cho đạt được hiệu quả tối ưu nhất
Bài toán là mô phỏng quá trình hoạt động của thang đôi cho tòa nhà D6, hệ thống thang máy bao gồm 2 thang Mỗi thang vừa có thể hoạt động độc lập một cách chính xác, vừa có thể kết hợp với nhau để có thể phục vụ hành khách một cách tối ưu nhất
Những điểm cần lưu ý:
- Chương trình dễ hiểu,dễ xây dựng
- Hoạt động ổn định
- Hiệu năng cao
- Tốc độ quét,xử lí thông tin của chương trình phải rất nhanh
- Có khả năng kiểm tra tiếp nhận các tín hiệu ngõ vào là gần như liên tục
- Đạt được mục tiêu là tối thiểu thời gian chờ đợi của khách hàng và tối thiểu được quãng đường cần đi của thang máy
4
Nhóm PE14 - Lớp Cơ Khí Hàng Không-CLC- K54
Trang 61.2 Biểu đồ IPO
1.2.1 Chức năng: Nhập dữ liệu bên ngoài
INPUT PROCESS OUTPUT
Nút lên
Nút xuống
Bấm
Bấm
Số( tầng cần tới)
Số( tầng cần tới)
1.2.2 1.2.2 Chức năng: chọn thang.
INPUT PROCESS OUTPUT
Chọn thang Thang mở
1.2.3 1.2.3 Chức năng: Chọn đường thang đến
INPUT PROCESS OUTPUT
Chọn
Chọn
Thang mở
Thang mở
1.2.4.
1.2.5.
1.2.6 1.2.4 Chức năng: mở cửa
INPUT PROCESS OUTPUT
Thang 1
Thang 2
Mở
Mở
Cửa mở
Cửa mở
Trang 71.2.7 1.2.5 Chức năng:: nhập dữ liệu bên trong
INPUT PROCESS OUTPUT
Cửa đóng Chọn Số (tầng cần đến)
1.2.8 1.2.6 Chức năng: đóng cửa thang máy.
INPUT PROCESS OUTPUT
Cửa mở( thang 1)
Cửa mở (Thang 2)
Đóng Đóng
Cửa đóng hoặc mở
Cửa đóng hoặc mở
1.2.9 1.2.6 Chức năng: tính tải trọng
INPUT PROCESS OUTPUT
Tải trọng Kiểm tra Thông báo
1.2.10 1.2.7 Chức năng Tình huống khẩn cấp
INPUT PROCESS OUTPUT
Phím bấm khẩn cấp Bấm Đèn báo hiệu
6
Nhóm PE14 - Lớp Cơ Khí Hàng Không-CLC- K54
Trang 81.3 Thiết kế chương trình
Hàm main
1.4 Thiết kế dữ liệu
Nội dung Kiểu Kích thước Các giá trị có
nghĩa
Ghi chú
Mã thang máy Int 2 byte 1 và 2
Mã tầng Int 2 byte 1; 2; 3; 4 và 5
Số người dùng Int 2 byte <=5
Vị trí thang máy Int 2 byte 1; 2; 3; 4;5
1.5 Thiết kế giải thuật
CÀI ĐẶT CHƯƠNG TRÌNH
1.6 Các kỹ thuật lập trình đã áp dụng
STT Mô tả kỹ thuật / quy tắc Mô tả đối tượng áp dụng (hàm,
biến, biểu thức, câu lệnh) và
Hàm Dichchuyen() Hàm xử lý
XuLyDC()
Hàm Ve_TM()
Các hàm floor1() floor2() floor3() floor4() floor5()
Trang 9phạm vi áp dụng I.Các kỹ thuật
làm việc với biến
1 Đặt tên biến: chữ cái đầu tiên trong tên biến viết thường, ngắn gọn, có tính chất gợi nhớ
Các biến chỉ trạng thái của thang máy (biến chỉ số tầng, biến lưu giá trị nút bấm,…) trong cấu trúc
dữ liệu của thang máy.và trong các hàm xử lý công việc của thang máy (hàm xác định hướng
di chuyển của thang, hàm dịch chuyển vị trí thang máy,…)
2 Sử dụng các kiểu dữ liệu hợp lý: chọn các kiểu dữ liệu sao cho chương trình trở nên đơn giản, khai bào hạn chế các giá trị cùng kiểu, cho giá trị khởi tạo
Áp dụng cho các biến chạy (biến đếm) trong các hàm con
Áp dụng cho các giá trị tối đa (khởi tạo mặc định số tầng tối
đa, số bước di chuyển cho 1 tầng)
II Các kỹ
thuật viết mã
chương trình hiệu
quả
1 Gióng hàng, đặt dấu đóng mở
ngoặc theo quy tắc thống nhất
Áp dụng với tất cả các hàm con và hàm chính trong chương trình
2 Sử dụng else if cho cấu trúc đa lựa chọn
Áp dụng với các câu lệnh rẽ nhánh trong chương trình chính và các hàm con
3 Trình bày chương trình dễ đọc, dễ hiểu, chú thích rõ ràng
Chú thích trước mỗi hàm con, trước các lệnh phức tạp, các biến III Các kỹ
thuật thiết kế
chương trình
1 Modul hóa chương trình Chia chương trình ra thành các
hàm con (hàm xác định hướng, hàm di chuyển,…)
2 Đơn giản hóa chương trình, lựa chọn những cấu trúc dữ liệu sao cho việc thiết kế giải thuật là đơn giản nhất
Sử dụng kiểu int với các biến đếm, các biến thể hiện lựa chọn
IV Các kỹ
thuật xây dựng
hàm/thủ tục
1 Cách đặt tên các hàm, chương trình con nhất quán, ngắn gọn và có tính chất gợi nhớ
Các chương trình con luôn được đặt tên để có thể phản ánh rõ nhất vai trò của chương trình con
8
Nhóm PE14 - Lớp Cơ Khí Hàng Không-CLC- K54
Trang 102 Mỗi chương trình con đều có
một nhiệm vụ rõ ràng
Mỗi chương trình con thực hiện
1 nhiệm vụ riêng biệt
V Các kỹ
thuật bẫy lỗi và
lập trình phòng
ngừa
1 Bẫy lỗi, kiểm tra việc nhập dữ liệu của người dung
Ở các lệnh để cho người dùng nhập giá trị có thêm các lệnh để kiểm tra đầu vào
2 Tạo giao diện rõ ràng Khai báo các hàm con trước khi
sử dụng, phần khai báo biến tách biệt với phần xử lý
3 Viết và kiểm thử từng thành phần chương trình, mối quan
hệ của các thành phần
Kiểm thử từng chương trình con sau khi viết
VI Phong
cách lập trình
1 Phong cách lập trình nhất quán
Cách bố trí các hàm, sử dụng biến nhất quán trong toàn chương trình
1.7 Kết quả chương trình
Chức
năng
(đánh
số
theo
menu
từ
1-14)
Chữ ký (Khai báo chức năng) Tình trạng khi nộp bài
( 0 : chưa làm
1 : chưa chạy
2 : chạy thông và chưa bắt
hết ngoại lệ 3: chạy thông và có bắt hết
ngoại lệ)
Người thực hiện : ai làm gì
(X: cài đặt Y: kiểm thử)
1 Nhận yêu cầu ngoài thang 3 Thành: cài đặt
Thuận: kiểm thử
2 Nhận yêu cầu trong thang 3 Quý: cài đặt
Trang 11Quyền: kiểm thử
3 Lựa chọn thang hợp lý 3 Quý: cài đặt
Thuận:Kiểm thử
4 Di chuyển thang 3 Thành: cài đặt
Thuận:Kiểm thử
5 Đóng mở cửa 3 Thành: cài đặt
Quyền: kiểm thử
6 Cảnh báo khi quá tải 3 Quý: cài đặt
Thuận: kiểm thử
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Ưu điểm:
- Mô tả được cấu trúc ngoài thang trong thang
- Chạy khá giống với thang máy thật
Nhược điểm:
- Chưa liên kết tốt 2 thang máy với nhau
- Thang máy làm việc chưa tối ưu
- Viết code còn nhiều hạn chế và gặp nhiều sai sót
Hướng phát triển:
Phương hướng ban đầu là khắc phục những nhược điểm trên Một số việc cần làm để khắc phục:
10
Nhóm PE14 - Lớp Cơ Khí Hàng Không-CLC- K54
Trang 12- Nâng cao kĩ thuật lập trình để có được một phong cách lập trình chuyên nghiệp.
- Tìm hiểu và nêu ra phương hướng để giải quyết các mô phỏng thiếu sót
TÀI LIỆU THAM KHẢO
[1] Slide môn Kỹ thuật lập trình của cô Vũ Thị Hương Giang
[2] Giáo trình Tin học đại cương của thầy Tô Văn Nam
[3] Giáo trình Câú trúc dữ liệu và giải thuật của thầy Nguyễn Đức Nghĩa
[4] Các tài liệu tham khảo trên mạng
Trang 1312
Nhóm PE14 - Lớp Cơ Khí Hàng Không-CLC- K54