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

Nội dung

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 Sinh viên thực : 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 Hà Nội, tháng năm 2012 Kỹ thuật lập trình MỤC LỤC Nhóm PE01 - Lớp KSCLC-K54 Kỹ thuật lập trình LỜI NÓI ĐẦU Ngày nay, đất nước ta đà phát triển mạnh, nhiều nhà cao tầng mọc lên khắp đất nước để đáp ứng với xu hướng công nghiệp hóa, đại hóa đất nước Với nhà nhiều tầng có chiều cao lớn việc trang bị thang máy bắt buộc để phục vụ việc lại tòa nhà Nếu vấn đề vận chuyển người tòa nhà không giải dự án xây dựng tòa nhà cao tầng không thành thực Hơn thế, việc trang bị thang máy giúp cho việc di chuyển tòa nhà trở nên dễ dàng thuận tiện nhiều Tuy vậy, thang máy thiết bị vận chuyển đòi hỏi tính an toàn nghiêm ngặt, liên quan trực tiếp đến tài sản tính mạng người Vì yêu cầu chung thang máy thiết kế, chế tạo, lắp đặt, vận hành, sử dụng sửa chữa phải tuân thủ cách nghiêm ngặt yêu cầu kỹ thuật an toàn quy định tiêu chuẩn, quy trình, quy phạm Dựa nhu cầu mong muốn người tòa nhà, chúng em xin 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 xây dựng dựa tảng hệ thống thang máy thư viện Tạ Quang Bửu trường đại học Bách Khoa Hà Nội Nhóm PE01-THCN-KSCLC-K54 Nhóm PE01 - 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 nhóm phân làm nhóm nhỏ để người trợ giúp làm việc hiệu Các nhóm nhỏ: i Nguyễn Tiến Thành, Nguyễn Công Bình: bạn phụ trách việc mô tả toán xây dựng biểu đồ IPO cho toán Hạn nộp tuần bạn hoàn thành thời hạn ii Cát Huy Thành: bạn thực nhiệm vụ thiết kế chương trình Hạn nộp tuần bạn hoàn thành thời hạn iii Nguyễn Phúc Quang, Lê Anh Tiến: bạn phụ trách việc thiết kế giải thuật cài đặt chương trình Hạn nộp tuần bạn hoàn thành hạn Nhóm PE01 - 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ả yêu cầu toán Hệ thống thang máy cho tòa nhà D6 áp dụng cho tầng 2, 3, 4, Trong trình thang máy hoạt động, buồng thang vị trí khác với tầng mà hành khách vừa gọi, thang di chuyển đến tầng theo thứ tự ưu tiên sau :    Nếu thang di chuyển chiều với lệnh gọi thang di chuyển ngang qua tầng mà hành khách khách đứng gọi, đến tầng dược gọi, thang dừng lại đón khách Nếu thang di chuyển theo chiều ngược với chiều hành khách muốn đi, chiều không ngang qua, sau đáp ứng hết nhu cầu chiều đó, thang quay trở lại đón khách Nếu buồng thang tầng mà hành khách vừa gọi, buồng thang mở cửa đón khách Khi vào bên buồng thang, muốn đến tầng nào, khách ấn nút định tầng đó, thang máy di chuyển dừng tầng mà qua Cửa buồng thang cửa tầng thiết kế đóng mở tự động Khi buồng thang di chuyển đến tầng đó, sau ngừng hẳn, cửa buồng thang cửa tầng tự động mở để khách (vào) buồng thang, sau vài giây cửa tự động đóng lại Sau thang máy thực lệnh Nhóm PE01 - Lớp KSCLC-K54 Kỹ thuật lập trình 1.2 Biểu đồ IPO 1.2.1 Chức Nhận lệnh người dùng từ thang INPUT Vị trí tầng có yêu cầu gọi thang hướng mà người dùng muốn di chuyển PROCESS OUTPUT Đọc lưu trữ vào mảng Mảng gồm tầng yêu len[] hay mảng xuong[] cầu phân riêng theo hướng mà người dùng muốn di chuyển 1.2.2 Chức Nhận lệnh người dùng từ thang INPUT Vị trí tầng mà người dùng muốn đến PROCESS OUTPUT Đọc vị trí tầng mà người Mảng trong[] thỏa điều dùng muốn đến dùng kiện: hàm để so sánh điều • trong[i] = kiện đưa có người muốn mảng trong[] phù hợp tầng i với yêu cầu người dùng • trong[i] = người muốn tầng i 1.2.3 Chức Di chuyển thang máy INPUT Vị trí tầng điểm đến thang máy PROCESS Thay đổi liên tục vị trí tầng để tiến dần đến điểm đến thang máy Nhóm PE01 - Lớp KSCLC-K54 OUTPUT Vị trí tầng với điểm đến Kỹ thuật lập trình 1.3 Thiết kế chương trình Người dùng gọi thang từ tầng i Thang có độ ưu tiên cao Đúng Sai Thang đến đón khách Thang đến đón khách Thang đưa khách đến điểm khách muốn, đường đón thêm khách khác muốn theo chiều di chuyển thang Thang đưa khách đến điểm khách muốn, đường đón thêm khách khác muốn theo chiều di chuyển thang 1.4 Có người gọi thang Sai Thang đứng yên đợi lệnh gọi Nhóm PE01 - Lớp KSCLC-K54 Đúng Kỹ thuật lập trình Thiết kế liệu Mô tả liệu: Các liệu thang máy sử dụng theo cấu trúc mảng Cụ thể: Thang máy nhận tín hiệu vào từ file text: - BenNgoaiThang.txt - BenTrongThang1.txt - BenTrongThang2.txt Các tín hiệu lưu mảng: Hai mảng lưu tín hiệu gọi từ bên ngoài: - Mảng len[i] với i vị trí tầng Giá trị len[i] thể trạng thái tầng - Mảng xuong[i] với i vị trí tầng Giá trị xuong[i] thể trạng thái tầng Hai mảng lưu tín hiệu từ thang máy: - Mảng trong1[i] với i vị trí tầng, lưu tín hiệu thang máy 1: trong[i] = có người muốn tầng i; trong[i] = người muốn tầng i; - Mảng trong2[i] tương tự với thang máy thứ Nhóm PE01 - Lớp KSCLC-K54 Kỹ thuật lập trình 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 ưu tiên cho thang chọn điểm đến trước theo qui tắc: • Khi thang máy lên, thang duyệt theo mảng len[], trong1[] Nếu điểm đến chọn từ mảng len[], sau chọn, toàn phần tử có yêu cầu nằm quãng đường chuyển động mảng len[] gán giá trị (thể tầng nằm trách nhiệm thang1) Giá trị mảng trong1[] không thay đổi • Khi thang máy xuống, thang duyệt theo mảng xuong[] trong1[] Giá trị mảng sau duyệt xong đặt tương tự Khi thang máy đứng yên Thang máy quét mảng len[], xuong[], trong[] Giá trị mảng sau duyệt đặt Thang máy duyệt thang 1, khác chỗ: Thang máy duyệt phần tử len[], xuong[] mà giá trị Sau nhận điểm đến, giá trị phần tử đặt lại Ví dụ: Tần g 3 3 L X Bảng 1 2 Bảng Nếu tín hiệu váo bảng Thang máy lên, chọn L X tầng 2, 5,6 Giá trị sau chọn vẽ bảng Thang máy chọn giá trị lại cho phù hợp Ở bảng trên, thang biến đổi toàn giá trị bên cột xuống sang giá trị Nhờ cách phân biệt giá trị này, tín hiệu lặp lại cách hệ thống, không bị lặp lại Nhóm PE01 - Lớp KSCLC-K54 Kỹ thuật lập trình 1.5.2 Giải thuật 2: Cách thang máy đón khách Dựa vào tín giá trị mảng: Đối với thang 1, lên, dừng tầng mà len[] có giá trị Sau lần dừng, giá trị len[]=0; dừng tầng có tín hiệu trong1[] = 1, trả lại giá trị sau dừng Thang xuống xét tương tự với mảng giá trị xuong[] Đối với thang 2, xet điểm đón khách tương tự thang Khác chỗ: Giá trị len[], xuong[] mà thang phải dừng Sau dừng đặt lại giá trị phần tử Nhờ cách đặt giá trị này, hai thang kết hợp với để đó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 chuỗi hiển thị vị trí tầng thông qua hàm tienden(vị trí, điểm đến) Hàm tienden trả lại giá trị vị trí cho thang 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 lộ trình cho thang máy Ưu điểm Cách chuyển động giúp ta dễ dàng mở rộng giao diện cho thang máy, tăng chất lượng phần mềm 10 Nhóm PE01 - Lớp KSCLC-K54 Kỹ thuật lập trình CHƯƠNG 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 Các kỹ thuật làm việc với biến Các kỹ thuật viết mã chương trình hiệu Các kỹ thuật thiết kế chương trình Mô tả đối tượng áp dụng (hàm, biến, biểu thức, câu lệnh) phạm vi áp dụng Khai báo biến với tên gọi Biến địa phương biến mang tính chất dễ nhớ toàn cục chương trình Sử dụng biến trung gian Áp dụng cho biến đếm dùng để lưu trữ lại giá trị biến khác mà ta không muốn thao tác trực tiếp biến Sử dụng biến trỏ Áp dụng để lưu trữ giá trị mảng Gióng hàng hợp lý, thống Áp dụng toàn chương trình Dùng đoạn trống để Áp dụng toàn đánh dấu phân cấp chương trình chương trình Sử dụng () biểu Áp dụng toàn thức dạng nguyên chương trình cấu trúc rẽ nhánh Sử dụng chương trình Các chương trình chủ yếu gọi trình xử lý hàm main() số hàm cần thiết khác Thiết kế chương trình theo kiểu: top – down Chia toán thang máy thành nhiều toán nhỏ : xử lí bên thang, thang 1, thang Tìm giải pháp cho toán nhỏ gộp lại để xử lý toán thang máy … 11 Nhóm PE01 - Lớp KSCLC-K54 Kỹ thuật lập trình Các kỹ thuật xây dựng hàm/thủ tục Tên hàm mang tính chất gợi nhớ bắt đầu chữ in thường Sử dụng liệu có cấu trúc để tăng tốc độ chương trình … Các kỹ thuật bẫy lỗi lập trình phòng ngừa Dùng hàm bao gói Dùng liệu có cấu trúc để đơn giản hóa tham số đầu vào Các hàm quán với Kiểm tra điều kiện biên tham số đầu vào Viết đầy đủ thích cho phần chương trình Gióng hàng cặp mở đóng ngoặc cấp Phong cách lập trình … 12 Nhóm PE01 - Lớp KSCLC-K54 Áp dụng toàn chương trình Áp dụng toàn chương trình Kỹ thuật lập trình 2.2 Kết chương trình Chức (đán h số theo men u từ 114) Chữ ký (Khai báo chức năng) Nhận yêu cầu từ thang Nhận yêu cầu từ thang Cho thang chạy theo chiều lên Cho thang chạy theo chiều xuống Xử lý tình cần xét đến ưu tiên có nhiều lệnh gọi lúc 13 Nhóm PE01 - Lớp KSCLC-K54 Tình trạng nộp Người thực ( : chưa làm : làm : chưa chạy : chạy thông chưa bắt (X: cài đặt hết ngoại lệ Y: kiểm 3: chạy thông có bắt hết thử) ngoại lệ) 3 3 Kỹ thuật lập trình 2.3 Giao diện chương trình Ví dụ trường hợp: thang chạy từ lên đến tầng có người tàng muốn lên, vào thang, người xuống tầng 14 Nhóm PE01 - Lớp KSCLC-K54 Kỹ thuật lập trình 15 Nhóm PE01 - Lớp KSCLC-K54 Kỹ thuật lập trình KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Trong trình làm tập lớn Chúng em rút điều tốt cho thân đồng thời giúp ích cho môn học nhiều Sau vài điều mà chúng em tự đánh giá trình làm tập lớn 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 người dùng thang thang iii Có thể phát triển với số tầng tùy ý Nhược điểm: i Chương trình chạy console, chưa tích hợp đồ họa để thân thiện với người dùng ii Vẫn số chức phụ trợ chưa thiết kế Hướng phát triển thêm 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 • Thiết kế thêm số tính phụ trợ như: đóng, mở cửa khẩn cấp, giới hạn số người dùng đồng thời,… 16 Nhóm PE01 - Lớp KSCLC-K54 Kỹ thuật lập trình TÀI LIỆU THAM KHẢO [1] [2] [3] Slide môn Kỹ thuật lập trình cô Vũ Thị Hương Giang http://www.thegioithangmay.vn/ http://congtythangmay.info/ 17 Nhóm PE01 - Lớp KSCLC-K54 Kỹ thuật lập trình PHỤ LỤC Chương trình chưa hoàn thiện ý Chúng em cố gắng hoàn thiện thêm số chi tiết vào buổi thuyết trình 18 Nhóm PE01 - Lớp KSCLC-K54 [...].. .Kỹ thuật lập trình 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 Các kỹ thuật làm việc với biến 1 2 3 Các kỹ thuật viết mã chương trình hiệu quả 1 2 3 Các kỹ thuật thiết kế chương trình 1 2 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... KSCLC-K54 Kỹ thuật lập trình 15 Nhóm PE01 - Lớp KSCLC-K54 Kỹ thuật lập trình 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... thời,… 16 Nhóm PE01 - Lớp KSCLC-K54 Kỹ thuật lập trình TÀI LIỆU THAM KHẢO [1] [2] [3] Slide môn Kỹ thuật lập trình của cô Vũ Thị Hương Giang http://www.thegioithangmay.vn/ http://congtythangmay.info/ 17 Nhóm PE01 - Lớp KSCLC-K54 Kỹ thuật lập trình 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 18 Nhóm PE01 - Lớp KSCLC-K54 ... cho từng bài toán nhỏ đó rồi gộp lại để xử lý bài toán thang máy … 11 Nhóm PE01 - Lớp KSCLC-K54 Kỹ thuật lập trình 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 2 Sử dụng dữ liệu có cấu trúc để tăng tốc độ của chương trình … 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... Kiểm tra điều kiện biên của các tham số đầu vào 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 Phong cách lập trình … 12 Nhóm PE01 - Lớp KSCLC-K54 Áp dụng trong toàn bộ chương trình Áp dụng trong toàn bộ chương trình Kỹ thuật lập trình 2.2 Kết quả chương trình Chức năng (đán h số theo men u từ 114) 1 2 3 4 5 Chữ ký (Khai báo chức năng) Nhận yêu cầu... trạng khi nộp bài Người thực ( 0 : chưa làm hiện : ai làm 1 : chưa chạy gì 2 : chạy thông và chưa bắt (X: cài đặt hết ngoại lệ Y: kiểm 3: chạy thông và có bắt hết thử) ngoại lệ) 3 3 3 3 3 Kỹ thuật lập trình 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 14 Nhóm PE01 - Lớp KSCLC-K54 Kỹ thuật lập trình 15 Nhóm... nguyên bản chương trình trong cấu trúc rẽ nhánh Sử dụng các chương trình Các chương trình con chủ con 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 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 thang... 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,… 16 Nhóm PE01 - Lớp KSCLC-K54 Kỹ thuật. .. cục trong chương trình 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 đó Sử dụng biến con trỏ Áp dụng để lưu trữ giá trị như trên một mảng Gióng hàng hợp lý, thống Áp dụng trong toàn bộ nhất chương trình Dùng các đoạn trống để Áp dụng trong toàn bộ đánh dấu phân cấp chương trình chương trình Sử dụng ()

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

TỪ KHÓA LIÊN QUAN

w