1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÀI TẬP LỚN MÔN KỸ THUẬT LẬP TRÌNH

22 227 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 22
Dung lượng 403,5 KB

Nội dung

MỤC LỤC MỤC LỤC 2 LỜI NÓI ĐẦU 3 PHÂN CÔNG THÀNH VIÊN TRONG NHÓM 4 CHƯƠNG 1. PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ GIẢI PHÁP 5 1.1. Mô tả yêu cầu bài toán 5 1.2. Biểu đồ IPO 5 1.2.1. Chức năng của người điều khiển 5 1.2.2. Chức năng của người sử dụng 6 1.3. Thiết kế chương trình 7 1.4. Thiết kế dữ liệu 9 1.5. Thiết kế giải thuật 11 1.5.1. Giải thuật đóngmở cửa 11 1.5.2. Giải thuật tìm kiếm thang máy thực hiện lệnh 12 CHƯƠNG 2. CÀI ĐẶT CHƯƠNG TRÌNH 15 2.1. Các kỹ thuật lập trình đã áp dụng 15 2.2. Kết quả chương trình 16 2.3. Giao diện chương trình 16 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 20 TÀI LIỆU THAM KHẢO 21 PHỤ LỤC 22

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ──────── * ─────── BÀI TẬP LỚN MƠN: KỸ THUẬT LẬP TRÌNH PE10 Sinh viên thực : Võ Tiến Tú Vũ Đình Ba Nguyễn Bá Thủy Phạm Thanh Tùng Lớp : KSCLC – K54 Giáo viên hướng dẫn : TS Vũ Thị Hương Giang Hà Nội, tháng năm 2012 Kỹ thuật lập trình MỤC LỤC MỤC LỤC LỜI NÓI ĐẦU PHÂN CÔNG THÀNH VIÊN TRONG NHÓM CHƯƠNG PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ GIẢI PHÁP 1.1 Mơ tả u cầu tốn 1.2 Biểu đồ IPO 1.2.1 Chức người điều khiển 1.2.2 Chức người sử dụng 1.3 Thiết kế chương trình 1.4 Thiết kế liệu .9 1.5 Thiết kế giải thuật .11 1.5.1 Giải thuật đóng/mở cửa 11 1.5.2 Giải thuật tìm kiếm thang máy thực lệnh .12 CHƯƠNG CÀI ĐẶT CHƯƠNG TRÌNH .15 2.1 Các kỹ thuật lập trình áp dụng 15 2.2 Kết chương trình 16 2.3 Giao diện chương trình 16 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 20 TÀI LIỆU THAM KHẢO .21 PHỤ LỤC 22 Nhóm PE10 - Lớp KSCLC K54 Kỹ thuật lập trình LỜI NĨI ĐẦU Trong xã hội khan tài nguyên sức người, thời gian không gian nay, việc áp dụng tiến tin học vào lĩnh vực đời sống cần thiết Theo quan điểm đó, lĩnh vực xây dựng sở hạ tầng, để tiết kiệm công sức, thời gian lại không gian cho cho việc sử dụng cầu thang bộ, thang máy trở nên quan tâm tòa nhà nhiều tầng Nhìn theo góc độ tin học, “thang máy” phần đặc biệt trông đối tượng hàng đợi Nhưng khơng đơn giản FIFO Tùy vào nhu cầu thực tế, đối tượng hàng đợi mô tả khác theo thứ tự phục vụ hàng đợi Đối với tòa nhà tren 15 tầng sử dụng thang máy, đối đượng hóa hàng đợi khác với hệ thống thang máy tòa nhà tầng sử dụng thang đôi, cụ thể tòa nhà tầng D6 trường Đại học Bách khoa Hà nội, tên mà nhắc đến nhiều tài liệu Sản phẩm mô khơng để phục vụ cho riêng tòa nhà có số tầng cụ thể, số thang cụ thể, thứ tự ưu tiên cụ thể điều quan trọng đáp ứng yêu cầu người hướng dẫn chúng tôi, cô giáo Vũ Thị Hương Giang Mục địch xậy dựng cách thức chung để tiếp cận với đội tượng hàng đợi thang máy Trong trình phát triển chương trình này, thân thành viên nhóm chưa thấu hiểu đối tượng hàng đợi thang máy kĩ lập trình hướng đối tượng C++ nên nhiều thiếu sót Vì việc soạn tài liệu chuẩn mơ tả q trình phát triển, kiểm thử mô tả sản phẩm giúp ích nhiều cho q trình phát triển nhóm việc nâng cấp sau cho nhóm người có nhu cầu sử dụng lại phần mềm Xin cảm ơn cô Vũ Thị Hương Giang người hướng dẫn nhóm, thầy Huỳnh Quyết Thắng, thầy Nguyễn Đức Nghĩa trang bị cho kiến thức để thực chương trình Nhóm PE10 Lớp KSCLC K54 Đại học Bách Khoa Hà nội Nhóm PE10 - Lớp KSCLC K54 Kỹ thuật lập trình PHÂN CƠNG THÀNH VIÊN TRONG NHĨM Cơng việc Người thực Thời gian Phân tích u cầu Cả nhóm 20/3/2012 đến 28/3/2012 Class elevator Nguyền Bá Thủy 29/3 đến 4/4 Class floor Vũ Đình Ba 29/3 đến 4/4 Class systemControl Phạm Thanh Tùng 5/4 đến 10/4 Main(), đồ họa Võ Tiến Tú 5/4 đến 10/4 Kiểm thử Cả nhóm 11/4 đến 15/4 Viết tài liệu Võ Tiến Tú 16/4 đến 19/4 Thiết kế giả pháp Hợp thức hóa thiết kế Cài đặt thiết kế Nhóm PE10 - Lớp KSCLC K54 Kỹ thuật lập trình CHƯƠNG PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ GIẢI PHÁP 1.1 Mô tả u cầu tốn Mơ hệ thống thang máy đơi cho tòa nhà D6 1.1.1 u cầu giao: i) Thang đôi ii) Phân biệt chức người sử dụng người quản lí iii) Có giao diện nhập hiển thị 1.1.2 Những yêu cầu ẩn i) Cho phép nhập lệnh thời điểm ii) Thang đôi liên kết iii) Chọn ưu tiên theo chiều di chuyển khoảng cách iv) Có kiểm sốt trọng lượng v) Mở cửa có cố q trình đóng cửa 1.2 Biểu đồ IPO 1.2.1 Các chức người điều khiển 1.2.1.1 Bật đèn báo động INPUT PROCESS OUTPUT Tên thang Bật đèn báo động Thông báo thực INPUT PROCESS OUTPUT Tên thang Tắt đèn báo động Thông báo thực INPUT PROCESS OUTPUT Tên thang Tên tầng Nhập yêu cầu vào hàng đợi Thông báo nhập yêu cầu 1.2.1.2 Tắt đèn báo động 1.2.1.3 Chọn tầng cần đến 1.2.1.4 Yêu cầu mở cửa INPUT Nhóm PE10 - Lớp KSCLC K54 PROCESS OUTPUT Kỹ thuật lập trình Tên thang Kiểm tra có đóng cửa khơng Nếu đóng cửa nhập u cầu vào hàng đợi Thơng báo nhập yêu cầu 1.2.1.5 Xóa yêu cầu INPUT PROCESS OUTPUT Yêu cầu xóa Xóa phần tử hàng đợi Thông báo thực 1.2.1.6 Chuyển quyền sử dụng cho người sử dụng INPUT PROCESS OUTPUT Yêu cầu chuyển quyền sử dụng Chuyển quyền sử dụng Thông báo thực 1.2.2 Các chức người sử dụng 1.2.2.1 Bật đèn báo động INPUT PROCESS OUTPUT Tên thang Bật đèn báo động Thông báo thực INPUT PROCESS OUTPUT Tên tầng Nhập yêu cầu vào hàng đợi Thông báo nhập yêu cầu INPUT PROCESS OUTPUT Tên tầng Nhập yêu cầu vào hàng đợi Thông báo nhập yêu cầu 1.2.2.2 Gọi lên 1.2.2.3 Gọi xuống 1.2.2.4 Chọn tầng cần đến INPUT Nhóm PE10 - Lớp KSCLC K54 PROCESS OUTPUT Kỹ thuật lập trình Tên thang Tên tầng Nhập yêu cầu vào hàng đợi Thông báo nhập yêu cầu 1.2.2.5 Yêu cầu mở cửa INPUT Tên thang PROCESS OUTPUT Kiểm tra có di chuyển khơng Kiểm tra có đóng cửa khơng Nếu khơng chuyển Thơng báo nhập u cầu đóng cửa nhập yêu cầu vào hàng đợi 1.3 Thiết kế chương trình Sau tìm hiểu, chúng tơi định thiết kế chương trình theo hướng đối tượng Vì chất hệ thống điều khiển thang máy gồm phần: thang máy, lời yêu cầu, điều khiển Các yêu cầu chia làm loại: Yêu cầu có thời gian thực O(1), yêu cầu gọi phương thức tương ứng đối tượng thang máy: i) Bật/tắt báo động ii) Xóa yêu cầu chưa thực trước iii) Chuyển quyền sử dụng cho người sử dụng Yêu cầu có thời gian thực O( �) bị hủy, yêu cầu trừu tượng hóa để lưu đối tượng hàng đợi: i) Yêu cầu đóng/mở cửa ii) Gọi lên, gọi xuống, chọn tầng đến Thiết kế chương trình cụ thể: Đối tượng Thuộc tính phương thức Biến lưu trạng thái đèn báo động Biến lưu trạng thái Thuộc chuyển tính trạng thái di chuyển trước Tầng Biến đềm thời gian di chuyển Nhóm PE10 - Lớp KSCLC K54 Chú thích Đèn bất 1, đèn tắt Đang lên 1, xuống -1 Từ đến Thang đứng yên 0, di chuyển tăng từ đến Kỹ thuật lập trình Biến đếm q trình đóng/mở cửa Biến q trình đóng cửa Trọng lượng bên thang Thang máy Cửa đóng cửa mở 6, q trình trình đóng/mở giảm từ / tăng từ đên Đang q trình đóng cửa 1, ngược lại Nếu đóng cửa u cầu mở cửa có hiệu lực Khơng thể người sử dụng hay người quản trị nhập Trọng lượng nhập từ ngồi chương trình Truyền thuộc tính Phương thức Bật/tắt báo động Đóng/mở cửa Di chuyển Hàng đợi Thuộc tính Phương thức Bộ điều khiển Phương thức Mảng ghi yêu cầu gọi lên Mảng ghi yêu cầu gọi xuống Truyền thuộc tính Thực yêu cầu gọi lên, gọi xuống, chọn tầng cần đến Xóa yêu cầu Gọi hành động Nhóm PE10 - Lớp KSCLC K54 Cập nhật trọng lượng sau đong/mở cửa Đi chuyển lên xuống tâng Có kiểm tra tải di chuyển Có u cấu 1, khơng có yêu cầu Có yêu cầu chọn tầng ghi vào vị trí tương ứng với tầng chọn giá trị Các yêu cầu gọi lên/xuống, chọn tầng cần đền, mở cửa định thực Kế thừa đối tượng Hàng đợi Thang máy Kỹ thuật lập trình Cấu trúc phân cấp chương trình: Main () Class systemControl Class elevator Class floor : Chỉ luồng điều khiển : Chỉ luồng kế thừa thuộc tính 1.4 Thiết kế liệu Đối tượng Elevator Tên biến tên hàm Kiểu Private Alert Private Floor Private countTimeFloor Private isClosingDoor Private countTimeDoor Private State Private volatile Weight Private ThreadMove1/2 ( ) Private ThreadCloseDoor1/2 ( ) Private ThreadOpenDoor1/2 ( ) Protected getAlert (int E) Protected getState (int E) Protected getFloor (int E) Protected getcountTimeFloor (int E) Bool[2] Int[2] Int[2] Bool[2] Int[2] Int[2] Int DWORD WINAPI DWORD WINAPI DWORD WINAPI Bool Int Int Int Nhóm PE10 - Lớp KSCLC K54 Khởi tạo 0 0 Kỹ thuật lập trình floor system control E: Elevator F: Floor D: Direction Protected getisClosingDoor (int E) Protected getcountTimeDoor Protected closeDoor (int E) Protected move (int E, int D) Protected openDoor (int E) Protected turnoffAlert (int E) Protected turnonAlert (int E) Private CallUp Private CallDown Protected getCallUp (int E, int F) Protected getCallDown (int E, int F) Protected getCallDes (int E, int F) Protected reset ( ) Protected del (int E, int F) Protected callUp (int F) bool Int Void Void Void Void void Bool[4][2] Bool[4][2] Bool Bool Bool Void Void Void Protected callDown (int F) Protected refuse (int F, int S, int true E) Void Void Private Flag Private Run Private DesFloor Private StateFloor Private ThreadCallAction ( ) Private findTarget (int E, int S, int D) Private ElevatorTarget ( ) Private resetSystem ( ) Private changeFlag ( ) Private TurnonAlert (int E) Private TurnoffAlert (int E) Private openDoor (int E) Private callDes (int E, int F) Private callUp (int F) Private callDown (int F) S: StatusFloor Bool Bool Int[2] Int[2] DWORD WINAPI Int Int Void Void Void Void Void Void Void Void 0 0 1.5 Thiết kế giải thuật Trong phần này, nêu giải thuật giải thuật mở cửa thang máy đóng cửa thang máy giải thuật tìm thang máy thực lệnh điều khiển 1.5.1 Giải thuật đóng/mở cửa Biểu đồ luồng đóng/mở cửa ( hàm closeDoor openDoor class elevator) Nhóm PE10 - Lớp KSCLC K54 10 Kỹ thuật lập trình closeDoor( E ) isClosingDoor[E] = T countTimeFloor[E]>1 countTimeFloor -Đợi 1s F T countTimeFloor[E]=1 countTimeFloor[E]=0 F isClosingDoor[E]=0 Finish closeDoor[E ] Biểu đồ luồng mở cửa: openDoor( E) countTimeFloor[E]=0 Nhóm PE10 - Lớp KSCLC K54 F isClosingDoor[E]=0 tmp = countTimeDoor[E] countTimeDoor[E]= -1 11 Kỹ thuật lập trình T countTimeFloor[E]

Ngày đăng: 14/01/2019, 17:04

TỪ KHÓA LIÊN QUAN

w