1. Trang chủ
  2. » Luận Văn - Báo Cáo

BÀI tập lớn môn kỹ THUẬT lập TRÌNH

18 1K 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 18
Dung lượng 363,84 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong quá trình thang máy hoạt động, nếu buồng thang đang ở một vị trí nào đó khác với tầng mà hành khách vừa gọi, thang sẽ di chuyển đến tầng đó theo thứ tự ưu tiên như sau :  Nếu than

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

<NHÓM PE01>

Sinh viên thực hiện : Nguyễn Tiến Thành(20092434)

Nguyễn Phúc Quang(20092089)

Lê Anh Tiến(20092698)

Nguyễn Công Bình(20093380) Cát Huy Thành(20092409)

Lớp : THCN – KSCLC– K54

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

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

Ngày nay, khi đất nước ta đang trên đà phát triển mạnh, rất nhiều nhà cao tầng

đã mọc lên trên khắp đất nước để đáp ứng với xu hướng công nghiệp hóa, hiện đại hóa của đất nước Với các nhà nhiều tầng có chiều cao lớn thì việc trang bị thang máy là bắt buộc để phục vụ việc đi lại trong tòa nhà Nếu vấn đề vận chuyển người trong những tòa nhà này không được giải quyết thì các dự án xây dựng các tòa nhà cao tầng không thành hiện thực Hơn thế, việc trang bị thang máy sẽ giúp cho việc di chuyển trong tòa nhà trở nên dễ dàng và thuận tiện hơn rất nhiều

Tuy vậy, thang máy là một thiết bị vận chuyển đòi hỏi tính an toàn nghiêm ngặt,

nó liên quan trực tiếp đến tài sản và tính mạng con người Vì vậy yêu cầu chung đối với thang máy khi thiết kế, chế tạo, lắp đặt, vận hành, sử dụng và sửa chữa là phải tuân thủ một cách nghiêm ngặt các yêu cầu về kỹ thuật an toàn được quy định trong các tiêu chuẩn, quy trình, quy phạm

Dựa trên nhu cầu và mong muốn của mọi người trong tòa nhà, chúng em xin được phát triển phần mềm quản lý thang máy để ứng dụng cho tòa nhà D6 trường đại học Bách Khoa Hà Nội Phần mềm được xây dựng dựa trên nền tảng của hệ thống thang máy của thư viện Tạ Quang Bửu trường đại học Bách Khoa

Hà Nội

Nhóm PE01-THCN-KSCLC-K54

Trang 4

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

Công việc trong nhóm được phân ra làm nhóm nhỏ hơn để mọi người có thể trợ giúp nhau cùng làm việc hiệu quả hơn.

Các nhóm nhỏ:

i Nguyễn Tiến Thành, Nguyễn Công Bình: các bạn này phụ trách việc mô tả bài toán và xây dựng biểu đồ IPO cho bài toán Hạn nộp là trong 1 tuần và các bạn

đã hoàn thành đúng thời hạn.

ii Cát Huy Thành: bạn này thực hiện nhiệm vụ thiết kế chương trình Hạn nộp là 1 tuần và bạn cũng đã hoàn thành đúng thời hạn.

iii Nguyễn Phúc Quang, Lê Anh Tiến: các bạn này phụ trách việc thiết kế giải thuật và cài đặt chương trình Hạn nộp là trong 2 tuần và các bạn đã hoàn thành đúng hạn.

Trang 5

CHƯƠNG 1 PHÂ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

Hệ thống thang máy cho tòa nhà D6 sẽ áp dụng cho các tầng 2, 3, 4, 5 Trong quá trình thang máy hoạt động, nếu buồng thang đang ở một vị trí nào đó khác với tầng mà hành khách vừa gọi, thang sẽ di chuyển đến tầng đó theo thứ tự ưu tiên như sau :

 Nếu thang di chuyển cùng chiều với lệnh gọi thang và di chuyển ngang qua tầng mà hành khách khách đang đứng gọi, thì khi đến tầng dược gọi, thang sẽ dừng lại và đón khách

 Nếu thang đang di chuyển theo chiều ngược với chiều hành khách muốn

đi, hoặc cùng chiều nhưng không đi ngang qua, thì sau khi đáp ứng hết các nhu cầu của chiều đó, thang sẽ quay trở lại đón khách

 Nếu buồng thang đang ở ngay tại tầng mà hành khách vừa gọi, buồng thang sẽ mở cửa đón khách

Khi đã vào bên trong buồng thang, muốn đến tầng nào, khách ấn nút chỉ định tầng đó, thang máy sẽ lập tức di chuyển và tuần tự dừng tại các tầng mà nó đi qua Cửa buồng thang và cửa tầng được thiết kế đóng mở tự động Khi buồng thang di chuyển đến một tầng nào đó, sau khi ngừng hẳn, cửa buồng thang và cửa tầng sẽ tự động mở để khách có thể ra (vào) buồng thang, sau vài giây cửa

sẽ tự động đóng lại Sau đó thang máy sẽ thực hiện lệnh tiếp theo

Trang 6

1.2 Biểu đồ IPO

1.2.1 Chức năng 1

Nhận lệnh của người dùng từ ngoài thang

Vị trí các tầng có yêu

cầu gọi thang và hướng

mà người dùng muốn di

chuyển

Đọc và lưu trữ vào mảng len[] hay mảng xuong[]

Mảng gồm các tầng yêu cầu phân riêng theo hướng mà người dùng muốn di chuyển

1.2.2 Chức năng 2

Nhận lệnh của người dùng từ trong thang

Vị trí tầng mà người

dùng muốn đến

Đọc vị trí tầng mà người dùng muốn đến và dùng các hàm để so sánh điều kiện và đưa ra được mảng trong[] phù hợp với yêu cầu của người dùng

Mảng trong[] thỏa điều kiện:

 trong[i] = 1 khi

có người muốn ra tầng i

 trong[i] = 0 khi không có người muốn ra ở tầng i

1.2.3 Chức năng 3

Di chuyển thang máy

Vị trí tầng và điểm đến

của thang máy

Thay đổi liên tục vị trí tầng để tiến dần đến điểm đến của thang máy

Vị trí tầng bằng với điểm đến

Trang 7

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

1.4

Người dùng gọi thang từ tầng i

Thang 1 đến đón khách

Thang 1 đưa khách

đến điểm khách

muốn, trên đường

đi sẽ đón thêm các

khách khác muốn

đi theo cùng chiều

di chuyển của thang

Thang 2 đến đón khách

Thang 2 đưa khách đến điểm khách muốn, trên đường

đi sẽ đón thêm các khách khác muốn

đi theo cùng chiều

di chuyển của thang

Thang 1 có độ ưu tiên cao hơn

Có người gọi thang

Thang đứng yên và đợi lệnh gọi tiếp theo

Sai

Đúng

Trang 8

1.4 Thiết kế dữ liệu

Mô tả dữ liệu:

Các dữ liệu trong thang máy đều được sử dụng theo cấu trúc mảng

Cụ thể:

Thang máy nhận tín hiệu vào từ các file text:

- BenNgoaiThang.txt

- BenTrongThang1.txt

- BenTrongThang2.txt

Các tín hiệu này được lưu ở 4 mảng:

Hai mảng lưu các tín hiệu gọi từ bên ngoài:

- Mảng len[i] với i là vị trí của tầng

Giá trị của len[i] thể hiện trạng thái của tầng

- Mảng xuong[i] với i là vị trí của tầng

Giá trị của xuong[i] thể hiện trạng thái của tầng

Hai mảng lưu các tín hiệu từ trong thang máy:

- Mảng trong1[i] với i là vị trí của tầng, lưu tín hiệu trong thang máy 1: trong[i] = 1 khi có người muốn ra tầng i;

trong[i] = 0 khi không có người muốn ra ở tầng i;

- Mảng trong2[i] tương tự với thang máy thứ 2

Trang 9

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

1.5.1 Giải thuật 1: Hai thang máy quét tín hiệu nhận điểm đến

Ta sẽ ưu tiên cho thang 1 chọn điểm đến trước theo qui tắc:

 Khi thang máy đi lên, thang sẽ duyệt theo mảng len[], trong1[] Nếu điểm đến chọn từ mảng len[], sau khi chọn, toàn bộ những phần tử có yêu cầu nằm trong quãng đường chuyển động của mảng len[] sẽ gán giá trị là 1 (thể hiện tầng

đã nằm trong trách nhiệm của thang1) Giá trị mảng trong1[] không thay đổi

 Khi thang máy đi xuống, thang duyệt theo mảng xuong[] và trong1[] Giá trị của các mảng sau khi duyệt xong đặt tương

tự như trên

Khi thang máy đứng yên Thang máy sẽ quét cả 3 mảng len[], xuong[], trong[] Giá trị mảng sau khi duyệt đặt như trên

Thang máy 2 duyệt như thang 1, khác ở chỗ: Thang máy 2 chỉ duyệt các phần tử len[], xuong[] mà giá trị của nó bằng 3 Sau khi nhận điểm đến, giá trị của phần tử đặt lại là 2

Ví dụ:

7

1

Tần

g

Bảng 1 Bảng 2

Nếu tín hiệu váo như bảng 1 Thang máy 1 đang đi lên, sẽ chọn tầng 2, 5,6 Giá trị sau khi chọn vẽ ở bảng 2

Thang máy 2 chọn các giá trị 3 còn lại sao cho phù hợp Ở bảng trên, thang đã biến đổi toàn bộ giá trị bên cột xuống sang giá trị 2

Nhờ cách phân biệt giá trị này, các tín hiệu được lặp lại một cách hệ thống, không bị lặp lại

1 1 2 2 1

L X

Trang 10

1.5.2 Giải thuật 2: Cách thang máy đón khách

Dựa vào tín giá trị của các mảng:

Đối với thang 1, khi đi lên, sẽ dừng ở các tầng mà len[] có giá trị bằng 1 Sau mỗi lần dừng, giá trị len[]=0; hoặc sẽ dừng ở các tầng có tín hiệu trong1[] = 1, cũng trả lại giá trị của nó bằng 0 sau khi dừng

Thang 1 khi đi xuống cũng xét tương tự nhưng với mảng giá trị xuong[]

Đối với thang 2, xet điểm đón khách tương tự như thang 1 Khác ở chỗ: Giá trị len[], xuong[] mà thang 2 phải dừng là 2 Sau khi dừng cũng đặt lại giá trị phần

tử về 0

Nhờ cách đặt giá trị này, hai thang đã kết hợp với nhau để đón khách trọn vẹn, không bỏ sót

1.5.3 Giải Thuật 3: Cách thang máy chuyển động

Thang máy chuyển động thực chất là chuỗi hiển thị các vị trí của tầng thông qua hàm tienden(vị trí, điểm đến)

Hàm tienden trả lại giá trị là vị trí sao cho thang sẽ tiến dần điểm đến

Quá trình cập nhật chọn lựa điểm đến, gán vị trí với hàm tiến đến đã tạo được lộ trình đi cho thang máy

Ưu điểm Cách chuyển động này giúp ta dễ dàng mở rộng về giao diện cho thang máy, tăng chất lượng phần mềm

Trang 11

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

2.1 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à 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 với tên gọi mang tính chất dễ nhớ

Biến địa phương và biến toàn cục trong chương trình

2 Sử dụng biến trung gian Áp dụng cho các biến đếm

hoặc dùng để lưu trữ lại giá trị của một biến khác mà ta không muốn thao tác trực tiếp trên biến đó

3 Sử dụng biến con trỏ Áp dụng để lưu trữ giá trị

như trên một mảng

II Các kỹ

thuật viết mã

chương trình

hiệu quả

1 Gióng hàng hợp lý, thống nhất

Áp dụng trong toàn bộ chương trình

2 Dùng các đoạn trống để đánh dấu phân cấp chương trình

Áp dụng trong toàn bộ chương trình

3 Sử dụng () và các biểu thức dạng nguyên bản trong cấu trúc rẽ nhánh

Áp dụng trong toàn bộ chương trình

III Các kỹ

thuật thiết kế

chương trình

1 Sử dụng các chương trình con

Các chương trình con chủ yếu được gọi trong quá trình xử lý hàm main() và một số hàm cần thiết khác

2 Thiết kế chương trình theo kiểu: top – down

Chia bài toán thang máy

ra thành nhiều bài toán nhỏ hơn : xử lí bên ngoài thang, trong thang 1, trong thang 2

Tìm giải pháp cho từng bài toán nhỏ đó rồi gộp lại để xử lý bài toán

Trang 12

IV Các kỹ

thuật xây dựng

hàm/thủ tục

1 Tên các hàm mang tính chất gợi nhớ và bắt đầu bằng chữ in thường

Áp dụng trong toàn bộ chương trình

2 Sử dụng dữ liệu có cấu trúc để tăng tốc độ của chương trình

Áp dụng trong toàn bộ chương trình

V Các kỹ

thuật bẫy lỗi

và lập trình

phòng ngừa

1 Dùng hàm bao gói

2 Dùng dữ liệu có cấu trúc

để đơn giản hóa tham số đầu vào

3 Các hàm đều nhất quán với nhau

4 Kiểm tra điều kiện biên của các tham số đầu vào

VI Phong

cách lập trình

1 Viết đầy đủ chú thích cho các phần của chương trình

2 Gióng hàng các cặp mở đóng ngoặc cùng cấp

Trang 13

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

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ử)

1 Nhận yêu cầu từ ngoài

thang

3

2 Nhận yêu cầu từ trong

thang

3

3 Cho thang chạy theo chiều

lên

3

4 Cho thang chạy theo chiều

xuống

3

5 Xử lý tình huống cần xét

đến sự ưu tiên khi có nhiều

lệnh gọi cùng lúc

3

Trang 14

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

Ví dụ trường hợp: thang 1 chạy từ 2 lên 9 đến tầng 3 thì có người tàng 5 muốn lên, vào thang, người này xuống tầng 8.

Trang 16

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

Trong quá trình làm bài tập lớn Chúng em đã rút ra được những điều rất tốt cho bản thân và đồng thời cũng giúp ích cho môn học rất nhiều Sau đây là một vài điều mà chúng em tự đánh giá về quá trình làm bài tập lớn của nhóm mình:

 Ưu điểm:

i Chương trình rõ rang, dễ hiểu

ii Mô tả trực quan thao tác của người dùng khi ở trong thang và ngoài thang

iii Có thể phát triển với số tầng tùy ý

 Nhược điểm:

i Chương trình vẫn chạy trên nền console, chưa tích hợp đồ họa

để thân thiện với người dùng hơn

ii Vẫn còn một số chức năng phụ trợ chưa được thiết kế

Hướng phát triển thêm của chương trình:

 Tích hợp giao diện đồ họa vào chương trình để thân thiện với người dùng hơn

 Thiết kế thêm một số tính năng phụ trợ như: đóng, mở cửa khẩn cấp, giới hạn số người dùng đồng thời,…

Trang 17

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] http://www.thegioithangmay.vn/

[3] http://congtythangmay.info/

Trang 18

PHỤ LỤC

Chương trình vẫn chưa được hoàn thiện như ý Chúng em sẽ cố gắng hoàn thiện thêm một số chi tiết vào buổi thuyết trình

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

TỪ KHÓA LIÊN QUAN

w