Tải bản đầy đủ

Thiết kế hệ thống đôi thang máy cho khu vực d6

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

Nhóm PE03_THCN

Sinh viên thực hiện : Trần Phong Vũ
Đào Trọng Đại
Nguyễn Lâm Hoàng
Nguyễn An Hoan
Lớp

: KSCLC – K54

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

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



Kỹ thuật lập trình

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
Giải thuật này được mô tả giống như trong chú thích code. Giải
thuật này được viết sao cho thang nào nhận lệnh và thực hiện lệnh gọi của khách
hàng là hợp lý và thuận tiện nhất, hiệu quả tốt nhất. Nhờ vào việc so sánh tầng
hiện tại (curr1, curr2) và chiều đang đi (updown1, updown2) của mỗi thang, đồng
thời đánh giá chiều muốn đi (udord) của khách hàng, giải thuật này không ngoại
trừ trường hợp...........................................................................................................12
CHƯƠNG 2. CÀI ĐẶT CHƯƠNG TRÌNH.............................................................13
Giao diện khởi động cho chương trình....................................................................15
.................................................................................................................................... 15
Đến tầng gọi, gọi tầng khi đang di chuyển, mở cửa đón khách.............................15
.................................................................................................................................... 15
Mở cửa đón khách, nhập tầng đến , mở cửa trả khách và đóng cửa....................15
.................................................................................................................................... 16
Nhập tầng đến khi đang ở trong thang máy...........................................................16
.................................................................................................................................... 16
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN...............................................................17
TÀI LIỆU THAM KHẢO........................................................................................18
PHỤ LỤC..................................................................................................................19

Nhóm PE03 - Lớp KSCLC K54

2


Kỹ thuật lập trình

LỜI NÓI ĐẦU
Trong cuộc sống hàng ngày, khi điều kiện sống ngày càng phát triển thì nhu cầu
đi lại, vận chuyển của con người ngày càng tăng, ngoài nhưng phương tiện giúp con
người đi lại, vận chuyển theo quãng đường rộng hay dài, thì các phương tiện giúp con
người mở rộng không gian sống cũng phát triển theo. Hệ thống thang bộ, thang cuốn
và hệ thống thang máy là những sáng tạo giúp chúng ta thuận tiện hơn về mặt phát

triển không gian sống.
Trường Đại học Bách Khoa Hà Nội hiện có hai tòa nhà có hệ thống thang máy,
là tòa nhà B1 và thư viện Tạ Quang Bửu. Để trước là hỗ trở đi lại, sau là nâng cao mặt
mạnh của khu vực trung tâm tài năng của trường, chúng em thấy cần một hệ thống
thang đôi cho khu vực này.
Theo đó, để tiếp cận một cách trực quan nhất về hệ thống thang máy, mặt khác
để hoàn thành bài tập lớn bộ môn Kỹ Thuật Lập Trình do cô Vũ Thị Hương Giang
hướng dẫn. Chúng em Trần Phong Vũ – Đào Trọng Đại – Nguyễn Lâm Hoàng –
Nguyễn An Hoan - PE03 lớp Kỹ sư chất lượng cao K54 xin được đề xuất một cái nhìn
tổng quát về hệ thống thang máy, cụ thể là hệ thống thang đôi, thiết kế cho khu vực
nhà D6. Dựa trên những phân tích về hệ thống đôi thang máy thư viện Tạ Quang Bửu,
chúng em đã tiếp cận và hoàn thành bài tập lớn: Thiết kế hệ thống đôi thang máy cho
khu vực D6 dựa trên hệ thống đôi thang máy tòa nhà thư viện Tạ Quang Bửu.
Trong quá trình làm bài tập này, do chưa có nhiều kinh nghiệm trong việc phân
tích và thiết kế hệ thống, hơn nữa thời gian hoàn thành bài tập lớn có hạn nên phần
trình bày của chúng em còn nhiều hạn chế, mong giáo viên hướng dẫn và các bạn góp
ý để phần bài tập lớn ngày càng hoàn thiện.
Thay mặt: Trần Phong Vũ

Nhóm PE03 - Lớp KSCLC K54

3


Kỹ thuật lập trình

PHÂN CÔNG THÀNH VIÊN TRONG NHÓM
gian thực hiện công việc>
Stt

Tên công việc

Phân công

1

Nhận định bài tập lớn
Khảo sát hiện trạng tòa nhà thư
viện Tạ Quang Bửu
Phân tích hệ thống về chức
năng

Phong Vũ
Phong Vũ
An Hoan

2
3

K.
Q
07/03/2012 07/03/2012 x
Từ ngày

Đến ngày

09/03/2012 09/03/2012

x

Trọng Đại
09/03/2012 16/03/2012
Lâm Hoàng

x

Phong Vũ
Trọng Đại 09/03/2012 16/03/2012
Lâm Hoàng

x
x
x
x
x
x

4

Phân tích hệ thống về dữ liệu

5

Thiết kế hệ thống
- Thiết kế tổng thể.
- Thiết kế chương trình.
- Thiết kế giao diện sử
dụng.
- Thiết kế các kiểm soát

Phong Vũ
09/03/2012 23/03/2012
Trọng Đại
Lâm Hoàng
An Hoan

6

Cài đặt chương trình . (Code)
- ...
- ...
- ...

Phong Vũ
23/03/2012 15/04/2012
Trọng Đại
Lâm Hoàng

7

Kiểm thử chương trình phần :
- Phong Vũ, An Hoan.
- Trọng Đại.
Kiểm thử hệ thống

Trọng Đại 06/04/2012 20/04/2012
Lâm Hoàng
An Hoan

8

Tài liệu hướng dẫn sử dụng

Phong Vũ

9

Triển khai sử dụng

Trọng Đại

Nhóm PE03 - Lớp KSCLC K54

13/4/2012

20/042012

x
x
x
x
x
x
0

0

4


Kỹ thuật lập trình

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
Yêu cầu: Thiết kế hệ thống thang máy cho khu vực nhà D6, dựa trên hệ thống
thang máy trong tòa nhà thư viện Tạ Quang Bửu.
Yêu cầu cụ thể:
+) Hệ thống thang máy là hệ thống thang đôi, xử lý 2 thang cho một lần nhập dữ liệu
gọi lên xuống, xử lý thang, ưu tiên thang hay gọi thang đón trả khách.(1)
+) Bảng điều khiển trong thang máy có đầy đủ chức năng:
- Có 5 nút nhập tầng từ tầng 1 đến tầng 5 (2)
- Có các chức năng giữ cửa, đóng cửa, mở cửa (3)
- Có thể có chức năng báo động (4)
- Có chức năng hiển thị các giá trị thông báo cho người dùng (5)

1.2. Biểu đồ IPO
1.2.1. Chức năng 1
INPUT
Tầng đang đợi (ord)

PROCESS
Gọi thang
Sắp xếp danh sách đến

Chiều xuống (0) (udord =0)

Danh sách tầng cần đón trả
khách

Danh sách tầng cần đón
trả khách

Gọi thang
Nhập điều kiện gọi thang

Chiều lên (1) (udord = 1)

OUTPUT

Danh sách tầng cần đón
trả khách

Gọi thang
Nhập điều kiện gọi thang

Danh sách tầng cần đón
trả khách

Thang máy di chuyển

Tầng đến

Nhóm PE03 - Lớp KSCLC K54

5


Kỹ thuật lập trình

1.2.2. Chức năng 2
INPUT

PROCESS

OUTPUT

Tầng muốn đến (1,2,3,4,5)

Sắp xếp danh sách đến

Danh sách tầng cần đón
trả khách

Danh sách tầng cần đón trả
khách

Thang máy di chuyển

Tầng đến

1.2.3. Chức năng 3
INPUT

PROCESS

OUTPUT

Nút giữ cửa trên thang máy
(BARSPACE)

Ngừng đóng/mở cửa

Cửa tạm ngừng hoạt động

Tầng đến

Mở cửa

Trạng thái mở cửa

Tầng đến

Đóng cửa

Trạng thái đóng cửa

1.2.4. Chức năng 4
INPUT

PROCESS

OUTPUT

Số người trong thang máy
(<20)

Đếm số người

Tín hiệu báo động hoặc
không

Trọng lượng tổng cộng
(<1350kg)

Cân tổng trọng lượng

Tín hiệu báo động hoặc
không

1.2.5. Chức năng 5
INPUT

PROCESS

OUTPUT

Số tầng hiện tại (curr1, curr2) Hiển thị tầng hiện tại
Chiều di chuyển hiện tại
(updown1, updown2)

Hiển thị chiều di chuyển
hiện tại

Nhóm PE03 - Lớp KSCLC K54

6


Kỹ thuật lập trình

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

-

Main() là chương trình chính để chạy chương trình.
Chaythang() dùng để thực hiện các trường hợp hai thang cùng hoạt động,
hoặc một thang hoạt động, một thang đứng yên.
Lienkethaithang() dùng để chen các tầng gọi đến vào các thang thích hợp
khi có lệnh gọi thang.
Mocua() dùng để thực hiện mở cửa thang máy.
Dongcua() dùng để thực hiện đóng cửa thang máy.
Tangden() dùng để nhập tầng khách hang muốn đến.
Tangdoi() dùng để nhập tầng hiện tại mà khách hang đang đợi.
Chieudi() dùng để nhập chiều lên hay xuống mà khách hàng muốn đi.
Xoatang() dùng để xóa các tầng đã đi đến.
Demcount() dùng để đếm số tầng có trong danh sách tầng đợi được biểu
diễn dưới dạng mảng.
Delay() dùng để trễ thang máy.

Nhóm PE03 - Lớp KSCLC K54

7


Kỹ thuật lập trình

1.4. Thiết kế dữ liệu
1 . XÁC ĐỊNH CÁC THUỘC TÍNH XUẤT PHÁT CỦA CHƯƠNG TRÌNH :

Dựa trên tài liệu khảo sát hệ thống, biểu đồ phân cấp chương trình ta nhận thấy hệ
thống có các thực thể cơ sở sau :
- Tầng đợi //tầng mà khách hàng đang đợi và gọi thang.
- Tầng đến //tầng mà khách hàng muốn đến.
- Chiều đi //chiều mà khách hàng muốn đi.
- Vị trí thang máy //vị trí thang máy hiện tại.
- Chiều đi thang máy //chiều thang máy đang đi hiện tại.
Ngoài các thực thể cơ sở trên, khi xây dựng chương trình sẽ xuất hiện thêm các
thực thể mới là các phần tách ra và kết hợp của các thực thể cơ sở trên.

2. XÁC ĐỊNH CÁC THUỘC TÍNH TRONG CHƯƠNG TRÌNH :

Tầng đợi:
+ Biến x //tầng khách hang đang đợi.
+ Mảng m1doi[] , m2doi[] //lưu trữ tất cả các tầng mà khách hàng đang đợi.
+ Mảng m1[], m2[] // lưu trữ cả tầng khách hàng đang đợi va muốn đến.
Tầng đến:
+ Biến x //tầng mà khách hàng muốn đến.
+ Mảng m1[], m2[] //lưu trữ tầng khách hàng đang đợi và muốn đến.
Chiều đi:
+ Udord // udord = 0 yêu cầu đi lên, udord = 1 yêu cầu đi xuống.
Vị trí thang máy:
+ Curr1, curr2 //vị trí 2 thang máy hiện tại.
Chiều đi thang máy:
+ updown1, updown2 // updown = -1 thang máy đi xuống, updown = 0 thang
máy đứng yên, updown = 1 thang máy đi lên.

Nhóm PE03 - Lớp KSCLC K54

8


Kỹ thuật lập trình

1.5. Thiết kế giải thuật
1.5.1. Giải thuật 1
Giải thuật chèn tầng vào mảng sao cho phù hợp với quá trình làm việc của thang
máy. Giải thuật này tương ứng với thành phần chính trong chức năng 1 và chức năng
2, trong các IPO được giới thiệu ở trên.
void chentang(int x, int m[100], int mdoi[100], int updown){
for (i=0; i<=50; i++) if (mdoi[i] == 0) {
mdoi[i] = x;
break;
}
for (i=0; i<=5; i++) if (x == m[i]) return;
if (updown == 0) (m[1]=x);
else if (updown == 1){
if (m[0] > x){
int count = 0;
for (i=0; i<=5; i++) if (m[i] != 0) count = count + 1;
for (i=0; i< count; i++){
if (m[i] < x){
for (j= count-1; j>=i; j--){
m[j+1] = m[j];
}
m[i]=x;
break;
}
if ((m[i] > x) && (m[i+1] == 0)) m[count] = x;
}
}
else if (m[0] < x){
int count = 0;
for (i=0; i<=5; i++) if (m[i] != 0) count = count + 1;
for (i=0; i< count; i++){
if ((x < m[i]) || (m[i-1] > m[i])){
for (j= count-1; j>=i; j--){
m[j+1] = m[j];
}
m[i]=x;
break;
}
if ((m[i] < x) && (m[i+1] == 0)) m[count] = x;

}
}
}
else {
if (m[0] < x){// truong hop thang may dang di xuong//
int count = 0;
for (i=0; i<=5; i++) if (m[i] != 0) count = count + 1;
for (i=0; iif (m[i] > x){
for (j= count-1; j>=i; j--){
m[j+1] = m[j];
}
m[i]=x;
break;
}
if ((m[i] < x) && (m[i+1] == 0)) m[count] = x;
}
}
else if (m[0] > x){
int count = 0;
for (i=0; i<=5; i++) if (m[i] != 0) count = count + 1;
for (i=1; i< count; i++){
if ((x > m[i]) || (m[i-1] < m[i])){
for (j= count-1; j>=i; j--){
m[j+1] = m[j];
}
m[i]=x;
break;
}
if ((m[i] > x) && (m[i+1] == 0)) m[count] = x;
}
}
}
}

Giải thuật này dùng để chèn tầng được mô tả như sau:
- Chèn giá trị nhập vào x(tầng đợi) vào mảng m1doi[] nếu mảng này chưa
có phần tử nào chứa giá trị bằng x (tránh không xử lý đi qua hơn 2 lần)
- Nếu mảng m1[] cũng có phần tử có giá trị bằng x thì không chèn.
- Nếu thang máy đang đứng yên (updown = 0) thì m[] chỉ có 1 phần tử
m[0] # 0 nên chèn x vào m[1] để thang máy tiếp tục xử lý
- Nếu thang máy đang đi lên (updown = 1) nếu tầng được gọi lớn hơn tầng
hiện tại của thang máy (curr = m[0]) thì tiến hành sắp xếp vào dãy đang
tăng của thang máy, nếu tầng được gọi nhỏ hơn tầng hiện tại của thang
máy thì tiến hành xắp xếp vào dãy đang giảm của thang máy.
- Tương tự cho trường hợp thang máy đang chiều đi xuống.
Biểu đồ luồng cho trường hợp thang máy đi lên và tầng được gọi nhỏ hơn tầng
Nhóm PE03 - Lớp KSCLC K54

9


Kỹ thuật lập trình
hiện thời của thang máy:

Start

x, updown, m, mdoi

T
mdoi[i] ==
0

mdoi[i] = x

F
T

m[i] == x

F
T

updown ==
0

m [1] = x

F

updown ==
1

T
m[0] > x

T
T

m[i] < x

for (j= count-1; j>=i; j--){
m[j+1] = m[j];
};
m[i]=x;

F
…..

end

Nhóm PE03 - Lớp KSCLC K54

10


Kỹ thuật lập trình

1.5.2. Giải thuật 2
Giải thuật này tiến hành liên kết hai thang, khi nhập vào một giá trị tầng gọi thì
thang nào sẽ được nhận lệnh gọi, thang nào không nhận lệnh gọi của khách hàng.
Giải thuật này gắn với chức năng xử lý thang đôi, tiến hành chạy hai thang cùng lúc.
void lienkethaithang(int updown1, int updown2, int x){//lien ket hai thang//
if ((updown1 == 0) && (updown2 == 0)){//hai thang dang dung yen//
x = tangdoi(x);
udord = chieudi(udord);
if (curr1 == curr2) chentang(x,m1,m1doi,updown1);
else {
if ( abs(curr1-x) <= abs(curr2-x) ) chentang(x,m1,m1doi,updown1);
else chentang(x,m2,m2doi,updown2);
}
}
if ((updown1 == 0) && (updown2 == 1)){//thang 1 dung yen, thang 2 chuyen dong di len//
x = tangdoi(x); udord = chieudi(udord);
if ((udord == 0) || ((udord == 1)&&(x < curr2)))
chentang(x,m1,m1doi,updown1);
else chentang(x,m2,m2doi,updown2);
}
if ((updown1 == 0) && (updown2 == -1)){//thang 1 dung yen, thang 2 chuyen dong di xuong//
x = tangdoi(x); udord = chieudi(udord);
if ((udord == 1) || ((udord == 0)&&(x > curr2)))
chentang(x,m1,m1doi,updown1);
else chentang(x,m2,m2doi,updown2);
}
if ((updown1 == 1) && (updown2 == 0)){//thang 2 dung yen, thang 1 chuyen dong di len//
x = tangdoi(x); udord = chieudi(udord);
if ((udord == 0) || ((udord == 1)&&(x < curr1)))
chentang(x,m2,m2doi,updown2);
else chentang(x,m1,m1doi,updown1);
}
if ((updown1 == -1) && (updown2 == 0)){//thang 2 dung yen, thang 1 chuyen dong di xuong//
x = tangdoi(x); udord = chieudi(udord);
if ((udord == 1) || ((udord == 0)&&(x > curr1)))
chentang(x,m2,m2doi,updown2);
else chentang(x,m1,m1doi,updown1);
}
if ((updown1 == 1) && (updown2 == 1)){//thang 1 va 2 cung di len//
x = tangdoi(x); udord = chieudi(udord);
if (curr1 == curr2) chentang(x,m1,m1doi,updown1); //uu tien thang 1//;
if (curr1 > curr2){
if ((udord == 1) && (curr2 <= x < curr1))
chentang(x,m2,m2doi,updown2);
else chentang(x,m1,m1doi,updown1);
}
if (curr1 < curr2){
if ((udord == 1) && (curr1 <= x < curr2))
chentang(x,m1,m1doi,updown1);
else chentang(x,m2,m2doi,updown2);
}
}
if ((updown1 == -1) && (updown2 == -1)){//thang 1 va 2 cung di xuong//
x = tangdoi(x); udord = chieudi(udord);
if (curr1 == curr2) chentang(x,m2,m2doi,updown2); //uu tien thang 2//;
if (curr1 > curr2){
if ((udord == 0) && (curr2 < x <= curr1))
chentang(x,m1,m1doi,updown1);

Nhóm PE03 - Lớp KSCLC K54

11


Kỹ thuật lập trình
else chentang(x,m2,m2doi,updown2);
}
if (curr1 < curr2){
if ((udord == 0) && (curr1 < x <= curr2))
chentang(x,m2,m2doi,updown2);
else chentang(x,m1,m1doi,updown1);
}
}
if ((updown1 == 1) && (updown2 == -1)){//thang 1 di len, thang 2 di xuong//
x = tangdoi(x); udord = chieudi(udord);
if (curr1 <= curr2){
if ((x > curr2) || ((udord == 1) && (curr1 <= x <= curr2))) chentang(x,m1,m1doi,updown1);
else chentang(x,m2,m2doi,updown2);
}
else{
if ((x > curr1) || ((udord == 1) && (curr2 < x <= curr1))) chentang(x,m1,m1doi,updown1);
else chentang(x,m2,m2doi,updown2);
}
}
if ((updown1 == -1) && (updown2 == 1)){//thang 1 di xuong, thang 2 di len//
x = tangdoi(x); udord = chieudi(udord);
if (curr1 >= curr2){
if ((x > curr1) || ((udord == 1) && (curr2 <= x <= curr1))) chentang(x,m2,m2doi,updown2);
else chentang(x,m1,m1doi,updown1);
}
else{
if ((x > curr2) || ((udord == 1) && (curr1 < x <= curr2))) chentang(x,m2,m2doi,updown2);
else chentang(x,m1,m1doi,updown1);
}
}
}

Giải thuật này được mô tả giống như trong chú thích code. Giải thuật này
được viết sao cho thang nào nhận lệnh và thực hiện lệnh gọi của khách hàng là hợp lý
và thuận tiện nhất, hiệu quả tốt nhất. Nhờ vào việc so sánh tầng hiện tại (curr1, curr2)
và chiều đang đi (updown1, updown2) của mỗi thang, đồng thời đánh giá chiều muốn
đi (udord) của khách hàng, giải thuật này không ngoại trừ trường hợp.

Nhóm PE03 - Lớp KSCLC K54

12


Kỹ thuật lập trình

CHƯƠNG 2. 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

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ý
4.
5.
II.
Các kỹ
thuật viết mã
chương trình
hiệu quả

Khởi tạo biến
Thêm biến trung gian
1. Nguyên tắc
2. Cấu trúc rẽ nhánh
3. Cấu trúc lặp

III.
Các kỹ
thuật thiết kế
chương trình

IV. Các kỹ
thuật xây dựng

1. Thiết kế top_down
2. Tinh chỉnh từng bước
3.
Thiết kế dữ liệu
1. Đăt tên cho hàm

Nhóm PE03 - Lớp KSCLC K54

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
Biến toàn thể: m1[], m2[],
m1doi[], m2doi[], x, updown1,
updown2, udord, curr1, curr2.
Biến cục bộ: m[], updown, x.
Biến trung gian: i,j
m1doi[], m2doi[]: mảng danh sách
tầng mà khách hàng đợi thang 1, 2.
Updown1, updown2: tầng 1, 2 lên
xuống hay đứng yên.
Curr1, curr2: tầng thang hiện tại.
Udord: chiều khách hàng muốn đi.
Dùng kiểu int cho tất cả các biến,
để đánh các chỉ số và mã hóa các
trạng thái thang máy
m1[], m2[], m1doi[], m2doi[], i,j:
khởi tạo 1 lần dùng nhiều lần
- Gióng hàng hợp lý, thống nhất.
- Sử dụng khoảng cách hợp lý
Hàm lienkethaithang(),
chentang(), chaythang() chủ yếu
sử dụng cấu trúc rẽ nhánh if - else.
- Cấu trúc lặp for(...)... While(...)
được sử dụng hầu hết trong các
hàm sử dụng.
- Hàm chaythang() sử dụng vòng
lặp while(..) để lặp với số lần lặp
không biết trước do yêu cầu của
người sử dụng thang máy là không
biết trước
Thiết kế cho cả chương trình, phân
cấp chương trình. Thiết kế
top_down cho hàm Chaythang()
Cấu trúc dữ liệu mảng với các giải
thuật thêm, xóa, chèn trong mảng
Các tên hàm có tính chất gợi nhớ,
gợi tả khi sử dụng.
13


Kỹ thuật lập trình

V.
Các kỹ
thuật bẫy lỗi và
lập trình phòng
ngừa

VI. Phong
cách lập trình

2. Tăng tốc độ chương
trình
1. Giao diện rõ ràng
2. Nhất quán các hàm sử
dụng, các hàm sử dụng
không thay đổi cách
thức.
3. Kiểm tra mã nguồn
trong khi viết chương
trình
1. Nhất quán
2. Rõ ràng, chú thích đầy
đủ

Áp dụng cho các hàm con, vừa viết
vừa kiểm tra điều kiện, điều kiên
biên, kiểm thử.
Áp dụng cho toàn bộ chương trình
Cho toàn chương trình

1.7. Kết quả chương trình
Chức
năng
(đán
h số
theo
menu
từ 114)
1

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(1)
Y: kiểm thử(2))

Gọi thang (nhập tầng đợi)

3

2

Nhập chiều đi

3

3

Nhập tầng đến trong thang

3

4

Mở cửa

3

5

Đóng cửa

3

6

Giữ cửa

3

7

Đón khách

3

8

Trả khách

3

9

Hiển thị tầng

3

10

Hiển thị chiều đi

3

11
12

Báo động
Nhập nhiều tầng đến

0
3

Phong Vũ(1)
Trọng Đại (2)
Trọng Đại (1)
Lâm Hoàng (2)
Phong Vũ (1)
Trọng Đại (2)
Trọng Đại(1)
An Hoan(2)
Lâm Hoàng (1)
An Hoan(2)
Trọng Đại (1)
An Hoan (2)
Phong Vũ(1)
Trọng Đại(2)
Phong Vũ(1)
An Hoan (2)
Trọng Đại (1)
Lâm Hoàng (2)
Lâm Hoàng (1)
Trọng Đại(2)
An Hoan (1)
Phong Vũ (1)

Nhóm PE03 - Lớp KSCLC K54

14


Kỹ thuật lập trình
Trọng Đại (2)

1.8. Giao diện chương trình
Giao diện khởi động cho chương trình

Đến tầng gọi, gọi tầng khi đang di chuyển, mở cửa đón khách

Mở cửa đón khách, nhập tầng đến , mở cửa trả khách và đóng cửa.
Nhóm PE03 - Lớp KSCLC K54

15


Kỹ thuật lập trình

Nhập tầng đến khi đang ở trong thang máy

Nhóm PE03 - Lớp KSCLC K54

16


Kỹ thuật lập trình

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Đây là một bài tập lớn có quy mô nhỏ, nhưng bài tập với hệ thống có tính năng
phức tạp, được cài đặt thuận tiện, sao cho phù hợp và dễ chấp nhận nhất theo ý muốn
của người dùng cũng như người thực hiện bài tập này. Vì thế bài tập lớn mà nhóm
PE03 hoàn thành, mặc dù còn nhiều thiếu sót không thể tránh khỏi, tuy nhiên đã trình
bày và cài đặt một cách tương đối đầy đủ chức năng mà hệ thống đôi thang máy yêu
cầu.
Chương trình mô phỏng hệ thống đôi thang máy của nhóm PE03 được trình bày
và hướng dẫn sử dụng rõ ràng, giúp người sử dụng có thể hiểu và sử dụng các tính
năng có của chương trình này. Nhưng chương trình này chưa xử lý được hệ thống báo
động khi có sự cố quá tải hay quá số người quy định, lúc nhập dữ liệu vào hai thang thì
phải dừng hoạt động của hai thang. Vì thế tính khả thi chưa cao.Hơn nữa giao diên của
chương trình còn thô sơ, không đẹp và bắt mắt gây nhàm chán cho người dùng.
Chương trình được chúng em hoàn thành trong 10 tuần, chưa được triệt để và còn
nhiều thiếu sót, cần một số hướng phát triển mới để hoàn thiện chương trình hơn. Cần
cài đặt hệ thống báo động khi có sự cố, tạo giao diện mới và đẹp chi chương trình mô
phỏng, Hoặc tạo hướng đi mới cho toàn bộ chương trình như thay đổi ngôn ngữ viết
chương trình, sử dụng một số hàm có sẵn, hoặc hàm con thích hợp để tối ưu hóa
chương trình. Và nhiều hướng phát triển mới khác mong giáo viên hướng dẫn và các
bạn góp ý. Chúng em - PE03_KSCLC_K54 xin chân thành cảm ơn thầy cô và các bạn
đã đọc trình bày báo cáo của chúng em.
Thay mặt: Trần Phong Vũ

Nhóm PE03 - Lớp KSCLC K54

17


Kỹ thuật lập trình

TÀI LIỆU THAM KHẢO
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] Kỹ năng lập trình (Nguyễn Thanh Nghị/ Lê Hoài Bắc)
[3] Bài tập lập trình C (Hoàng Trung Sơn)

Nhóm PE03 - Lớp KSCLC K54

18


Kỹ thuật lập trình

PHỤ LỤC
- Bạn có thể chạy thử chương trình theo file đính kèm của nhóm.
- Hướng dẫn sử dụng chương trình được đưa ngay đầu chương trình,

Nhóm PE03 - Lớp KSCLC K54

19



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×