1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Bài tập lớn môn kỹ thuật lập trình thang máy

15 1,2K 1

Đ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 15
Dung lượng 185,5 KB

Nội dung

Để có thể quản lý và giám sát hoạt động của các thang máy ta có thể sử dụng các chương trình phần mềm để có thể quản lý tốt nhất một cách có hệ thống, an toàn và dễ sử dụng.. Chính vì th

Trang 1

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

<TÊN NHÓM>

PE 11

Sinh viên thực hiện : <Đỗ Văn Dũng>

<Nguyễn Xuân Bình> <Nguyễn Tiến Cường> <Nguyễn Thành Đạt>

Giáo viên hướng dẫn : TS Vũ Thị Hương Giang

Hà Nội, tháng 5 năm 2012

Trang 2

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 1 5

1.2.2 Chức năng 2 5

1.3 Thiết kế chương trình 5

1.4 Thiết kế dữ liệu 5

1.5 Thiết kế giải thuật 5

1.5.1 Giải thuật 1 6

1.5.2 Giải thuật 2 6

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 7

2.3 Giao diện chương trình 8

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 9

TÀI LIỆU THAM KHẢO 10

PHỤ LỤC 11

Trang 3

LỜI NÓI ĐẦU

Hiện nay, cùng với sự tăng trưởng mạnh mẽ của nền kinh tế quốc gia kéo theo nhu cầu về đô thị hóa tăng cao Các dự án đầu tư lớn về cơ sở hạ tầng, khu

đô thị mới, chung cư cao cấp, trung tâm thương mại được xây dựng ngày càng nhiều Do vậy, nhu cầu tiêu thụ thang máy ở Việt Nam sẽ tăng lên rất nhanh trong những năm tới

Để có thể quản lý và giám sát hoạt động của các thang máy ta có thể sử dụng các chương trình phần mềm để có thể quản lý tốt nhất một cách có hệ thống, an toàn và dễ sử dụng

Việc điều khiển, vận hành giám sát nó là một bài toán cần được giải quyết dành cho các kĩ sư Chính vì thế bài tập lớn của chúng tôi chọn đề tài” chương trình điều khiển thang máy trong tòa nhà 6 tầng”

Quá trình tiếp cận:

- 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++

Được sự hướng dẫn tận tình 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

đã hoàn thành bài tập này

Do thời gian làm đồ án có hạn, nên 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ự đóng góp ý kiến của thầy cô và các bạn

Xin chân thành cảm ơn

Trang 4

PHÂN CÔNG THÀNH VIÊN TRONG NHÓM

Phân công công việc nhóm:

Đỗ Văn Dũng: tổng hợp bài tập, kiểm thử chương trình

Nguyễn Xuân Bình: xây dựng chương trình, viết code, đồ họa

Nguyễn Tiến Cường: tìm hiểu thực tế, xây dựng thuật toán

Nguyễn Thành Đạt: xây dựng thuật toán, viết code, kiểm thử chương trình, test

Trang 5

CHƯƠNG 1. PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ GIẢI PHÁP

<Trình bày, mô tả chi tiết về các kết quả khảo sát về bài toán – thông qua đề bài

và sau những lần trao đổi, gặp mặt các thành viên trong nhóm>

<Thiết kế dữ liệu, giải thuật, giao diện chương trình>

1.1 Mô tả yêu cầu bài toán

Nội dung bài tập: thiết kế chương trình điều khiển thang máy đôi cho tòa

nhà D6 (6 tầng)

gồm các phần:

- thực nghiệm tìm hiểu hoạt động thang máy đôi thư viện Tạ Quang Bửu

- thiết kế giải thuật cho chương trình điểu khiển thang máy

- Test và kiểm tra giải thuật

- Viết chương trình bằng ngôn ngữ lập trình C

- Kiểm thử chương trình

- Viết báo cáo và mở rộng chương trình

1.2 Biểu đồ IPO

<Mô tả biểu đồ IPO cho các nghiệp vụ của bài toán >

1.2.1 chức năng ngoài thang

Nút lên

Nút xuống

Đọc dữ liệu đầu vào Đọc dữ liệu đầu vào

Cấu trúc khach.vitri Cấu trúc khach.vitri

1.2.2 Chức năng chọn thang gần nhất

Thang 1, thang 2 Chọn thang gần nhất Thang 1 hoặc thang 2

1.2.3 chức năng chọn đường thang đến

Thang 1

Thang 2

Chọn đường lên hay xuống

Thành công hoặc thất bại

Trang 6

Chọn đường lên hay xuống

Thành công hoặc thất bại

1.2.4 chức năng mở cửa

Thang 1

Thang 2

Mở cửa đón khách

Mở cửa đón khách

Thất bại or thành công Thất bại or thành công

1.2.5 chức năng nhập bên trong thang máy

1.2.6 chức năng đóng cửa thang

Thang 1

Thang 2

Đóng cửa để di chuyển Đóng cửa để di chuyển

Thành công hoặc thất bại

Thành công hoặc thất bại

1.3 Thiết kế chương trình

Các hàm có trong chương trình:

int lenh_goi_thang();

void lenh_goi_cat_ngang();

void dieu_thang(thang_may tm, int tang);

int lenh_trong_thang(thang_may tm);

void do_lenh_trong(thang_may tm,int tang_dich);

void xoa_lenh_goi(int n);

void xoa_lenh_trong(thang_may tm, int n);

int abi(int a);

void nhap_lenh_dieu_khien(thang_may tm);

void gioi_thieu();

Trang 7

1.4 Thiết kế dữ liệu

Cấu trúc dữ liệu chính:

 Cấu trúc :thang máy gồm các thuộc tính:

-mã TM

- Vị trí( từ tầng 1 đến tầng 6)

- Trạng thái(-1 đi xuống,0 đứng yên,1 đi lên)

- Tầng cuối(tầng 1đến tầng 6)

- Được chọn(0 không được chọn,1 được chọn kiểu 1 có nghĩa là thang máy đang đi lên hoặc đi xuống khách chọn chiều đến cùng chiều đi

chuyển của thang,2 nghia là thang đang đi lên hoặc đi xuống khách chọn chiều đến ngược chiều di chuyển của thang)

 Cấu trúc tầng:gồm các thuộc tính:

- Trạng thái( 0-không có khách,-1 khách đi xuống,1 khách đi lên)

- Thang1 (0 thang1 đứng yên tại tầng này,-1 thang1 sẽ xuống khỏi tầng này,1 thang1 sẽ lên khỏi tầng này)

- Thang2 tương tự

- Số khách trả của mỗi thang

 Cấu trúc khách: gồm các thuộc tính:

- Vị trí(tầng 1,2, ,6)

- Trạng thái(0,-1,1)

- Tầng đến(1,2, ,6)

1.5 Thiết kế giải thuật

<Mô tả chi tiết về 2-4 giải thuật quan trọng tương ứng với các thành phần chính trong chương trình và các IPO giới thiệu ở trên Lưu ý: chỉ giới thiệu các giải thuật được sinh viên cải tiến hay áp dụng có sáng tạo; nếu không có thì thôi>

<Với những nghiệp vụ phức tạp, có thể vẽ thêm biểu đồ luồng>

1.5.1 Giải thuật 1

Hàm chọn thang máy

 Nếu vị trí khách ở trên 2 thang

- 2 thang cùng chiều

+ Thang đi lên, khách đi lên và vị trí khách khác tầng trên cùng

Khoảng cách thang nào tới vị trí của khách nhỏ hơn sẽ được chọn + Các trường hợp còn lại, thang được chọn là thang có khoảng cách giữa tầng cuối cùng với vị trí khách nhỏ hơn (nếu bằng thì thang được chọn là thang 1)

- 2 thang ngược chiều

+ Khách đi lên, vị trí khách khác tầng trên cùng thang đi lên sẽ được chọn

Trang 8

+ Khách đi xuống, vị trí khách khác tầng dưới cùng, thang được chọn

là thang có khoảng cách giữa tầng cuối cùng( tầng trên cùng hoặc dưới cùng) đến vị trí khách nhỏ hơn

- Một thang đứng im, một thang chuyển động

+ Nếu thang máy chuyển động lên, khách đi lên, thang máy đó được chọn, nếu không thang còn lại sẽ được chọn

- 2 thang đều đứng yên

+ Thang được chọn là thang có khoảng cách đến vị trí khác nhỏ hơn

 Nếu khách ở dưới 2 thang

- 2 thang cùng chiều

+ Thang đi xuống, khách đi xuống (vị trí khách khác tầng 1), thang được chọn là thang có khoảng cách gần hơn đến vị trí khách

+ Các trường hợp còn lại thang được chọn là thang có khoảng cách

từ tầng cuối cùng đến vị trí khách nhỏ hơn( trường hợp bằng nhau, thang 1 sẽ được chọn)

- 2 thang ngược chiều

+ Khách đi xuống, thang có chiều đi xuống sẽ được chọn

+ Khách đi lên, thang được chọn là thang có khoảng cách từ tầng cuối cùng đến vị trí khách nhỏ hơn( trường hợp bằng nhau, thang 1 sẽ được chọn)

- Một thang chuyển động, một thang đứng yên

+ Nếu thang chuyển động xuống, khách đi xuống, thang đó được chọn, nếu không, thang còn lại được chọn

- 2 thang đều đứng yên, thang được chọn là thang có khoảng cách tới vị trí khách nhỏ hơn( nếu bằng nhau, thang 1 được chọn)

 Khách ở giữa hai thang

- 2 thang ngược chiều,

+ thang ở trên đi xuống, thang có cùng chiều với lệnh gọi sẽ được chọn

+ thang ở trên đi lên, thang có khoảng cách tầng cuối cùng đến vị trí khách nhỏ hơn sẽ được chọn (Nếu bằng nhau, thang 1 sẽ được chọn)

- 2 thang cùng chiều

+ khách đi lên, thang đi lên, thang bên dưới được chọn +khách đi xuống, thang đi xuống, thang bên trên được chọn +khách đi ngược chiều với thang, thang được chọn là thang đi đến tầng cuối trước

- 2 thang đứng yên

+ thang được chọn là thang có khoảng cách đến vị trí khách nhỏ hơn

- Một thang đứng yên, một thang chuyển động

+ nếu thang bên trên chuyển động xuống, lệnh gọi xuống, thang đó được chọn

+ nếu thang bên dưới chuyển động lên, lệnh gọi lên, thang đó được chọn

Trang 9

+ ngoài hai trường hợp trên, thang đứng yên được chọn

 Thang đứng yên tại vị trí khách gọi, thang đó được chọn

1.5.2 Giải thuật 2

Thang máy có 2 kiểu gọi

Kiểu 1 là trên đường thang máy di chuyển, dừng lại đón khách

Kiểu 2 là trên đường thang máy di chuyển, không dừng lại đón khách, đến tầng cuối cùng, quay lại đón khách

Hàm gọi thang máy đến

 Nếu thang được gọi theo kiểu 1 và có vị trí tầng khác vị trí khách

- Vị trí thang lớn hơn vị trí khách

for ( i = vi tri khách + 1; i<= vị trí thang máy; i++) hướng đi của thang

là đi xuống(-1)

- Vị trí thang nhỏ hơn vị trí khách

for ( i = vị trí thang máy; i<=vị trí khách-1; i++) hướng đi thang máy

là đi lên

- Xác định lại điểm cuối

m=fabs( tầng cuối – vị trí thang máy)

n= fabs(vị trí thang máy – vị trí khách)

nếu n>m tầng cuối = vi trí khách

Trang 10

CHƯƠNG 2. CÀI ĐẶT CHƯƠNG TRÌNH

2.1 Các kỹ thuật lập trình đã áp dụng

<Liệt kê các kỹ thuật lập trình đã sử dụng để làm bài tập lớn >

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à phạm vi áp dụng

I Các kỹ

thuật làm việc

với biến

1 Khai báo biến

2 Đặt tên biến

3 Sử dụng kiểu dữ liệu hợp

lý cho biến

4 Khởi tạo biến

5 Sử dụng biến trung gian

6 Sử dụng con trỏ

II Các kỹ

thuật viết mã

chương trình

hiệu quả

1 Sử dụng các cấu trúc rẽ nhánh

2 Các cấu trúc lặp

III Các kỹ

thuật thiết kế

chương trình

1 Thiết kế giải thuật

2 Thiết kế dữ liệu

IV Các kỹ

thuật xây dựng

hàm/thủ tục

1 Sử dụng các quy tắc tăng tốc độ

2 Kĩ thuật chồng, đa năng hóa các hàm, toán tử

V Các kỹ

thuật bẫy lỗi

và lập trình

phòng ngừa

1 Dung hàm bao gói

2 Tạo giao diện rõ ràng

3 Đơn giản hóa các hàm bằng cách cấu trúc chương trình

4 Kiểm tra tham số đầu vào

VI Phong

cách lập trình

1 Tổ chức mã nguồn

2 Chú thích rõ ràng

Trang 11

2.2 Kết quả chương trình

<Trình bày tổng quan về kết quả đạt được trong quá trình làm bài tập lớn trong chương trình minh họa, nêu qua những chức năng chính đã thực hiện được> Chức

năng

(đán

h số

theo

men

u 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

(X: cài đặt Y: kiểm thử)

Trang 12

2.3 Giao diện chương trình

Trang 13

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Trong quá trình thực hiện bài tập lớn, nhóm đã thực hiện được yêu cầu của bài toán đặt ra Ưu điểm là đã sử dụng được những kiến thức đã tiếp thu từ bài giảng môn kĩ thuật lập trình ở trên lớp để xây dựng chương trình

Nhược điểm là chưa có kinh nghiệm lập trình, chưa tối ưu hóa được chương trình về dung lượng và thời gian chạy

Hướng phát triển cho đề tài:

Tiếp tục tìm hiểu xây dựng chương trình tối ưu hơn

Thêm vào những tính năng quản lý cần thiết với 1 thang máy như khối lượng tối

đa hay chức năng báo động trong thang

Đưa thêm đồ họa để việc giao tiếp giữa người sử dụng và chương trình thuận tiện hơn

Trang 14

TÀI LIỆU THAM KHẢO

<Liệt kê thông tin chi tiết về các tài liệu tham khảo đã sử dụng trong quá trình làm bài tập lớn – kể cả tài liệu tiếng Anh, tiếng Việt, trên Internet hay sách, báo…>

[1] Slide môn Kỹ thuật lập trình của cô Vũ Thị Hương Giang

[2]…

Trang 15

PHỤ LỤC

<Phần này đưa ra hướng dẫn cài đặt, hướng dẫn sử dụng của chương trình, một

số các vấn đề khác muốn trình bày…>

Ngày đăng: 14/06/2016, 16:19

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w