Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 13

TRƯỜNG ĐẠI HỌC BÁCH KHOA

KHOA CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN LẬP TRÌNH TÍNH TOÁN


XÂY DỰNG ỨNG DỤNG ĐẶT CHỖ NGỒI
TRÊN MÁY BAY CỦA HÃNG HÀNG KHÔNG IFT-
AIWAY

Người hướng dẫn: ThS. Trần Hồ Thủy Tiên


Sinh viên thực hiện:
Lê Bá Nguyên Long: Lớp: 23T_DT4 NHÓM:03
Lê Trần Tuấn Hùng: Lớp: 23T_DT4 NHÓM:03

1
Đà Nẵng, tháng 5, năm 2024
MỞ ĐẦU

 Mục đích thực hiện đề tài “Xây dựng úng dụng đặt chỗ ngồi trên máy bay của hãng
hàng không IFT-Aiway” là ứng dụng đặt chỗ ngồi trên máy bay. Thuộc một phần
quan trọng trong hệ thống quản lý hành khách của các hãng hàng không. Việc xây
dựng ứng dụng này không chỉ giúp tối ưu hóa việc sắp xếp chỗ ngồi mà còn cải thiện
trải nghiệm của khách hàng khi đặt vé. Chính vì vậy, mục đích của chương trình mà
đề tài nêu ra là phát triển một chương trình có khả năng quản lý chỗ ngồi một cách
hiệu quả, đảm bảo tính chính xác và tiện lợi cho cả hãng hàng không và hành khách.
 Mục tiêu của đề tài "Ứng dụng quản lý danh sách sinh viên" là tạo ra một phần mềm
quản lý thông tin sinh viên hiệu quả và tiện lợi hơn. Cụ thể bao gồm:
+)Xây dựng ứng dụng đặt chỗ ngồi trên máy bay sử dụng ngôn ngữ lập trình C.
+) Ứng dụng các thuật toán
+) Ứng dụng các kỹ thuật xử lý file và chuỗi để quản lý và sắp xếp chỗ ngồi.
+) Tạo ra một giao diện đơn giản cho phép nhân viên hãng hàng không dễ dàng nhập
và quản lý dữ liệu chỗ ngồi.

 Phạm vi: Ứng dụng sẽ tập trung vào việc quản lý chỗ ngồi trên máy bay, bao gồm
việc kiểm tra chỗ trống, đặt chỗ và cập nhật trạng thái chỗ ngồi.
 Đối tượng nghiên cứu: Nhân viên hãng hàng không và hệ thống quản lý chỗ ngồi của
ITF-Airway.
 Phương pháp nghiên cứu:
+) Nghiên cứu và áp dụng các kỹ thuật lập trình C.
+) Sử dụng các hàm làm việc với file để đọc và ghi dữ liệu chỗ ngồi.
+) Sử dụng các hàm xử lý chuỗi để quản lý mã vé và thông tin hành khách.

 Cấu trúc của đồ án:


+) Tổng quan đề tài: Giới thiệu chung về hệ thống đặt chỗ ngồi.
+) Cơ sở lý thuyết: Trình bày các lý thuyết và kỹ thuật liên quan.

2
+) Tổ chức cấu trúc dữ liệu và thuật toán: Mô tả chi tiết các cấu trúc dữ liệu và
thuật toán sử dụng.
+) Chương trình và kết quả: Mô tả chương trình, kết quả và giao diện.
+) Kết luận và hướng phát triển: Tổng kết và đề xuất hướng phát triển trong tương
lai.
+) Tài liệu tham khảo: Danh sách các tài liệu và nguồn tham khảo sử dụng trong
quá trình thực hiện đồ án.
1. Tổng quan đề tài:
Đề tài "Xây dựng ứng dụng đặt chỗ ngồi trên máy bay của hãng hàng không ITF-
Airway" là một đề tài thuộc chuyên ngành công nghệ thông tin và phát triển phần mềm.
Đề tài này tập trung vào việc xây dựng một ứng dụng đặt chỗ ngồi trên máy bay với các
chức năng cơ bản như: xác định ghế trống, đặt chỗ cho hành khách, cập nhật tình trạng
ghế, và lưu giữ thông tin mã vé tương ứng với số lượng ghế đã đặt.

 Ngôn ngữ lập trình: Chúng tôi sử dụng ngôn ngữ lập trình C/C + + để xây dựng
ứng dụng này.
 Cơ sở dữ liệu: Là lưu trữ thông tin, ứng dụng sẽ dùng file để lưu trữ thông tin về
sơ đồ chỗ ngồi và mã số vé của hành khách. Các file này sẽ được phân tích và xử
lý bởi các thuật toán phù hợp để quản lý và cập nhật thông tin chỗ ngồi.
 Thuật toán xử lý:
+) Xác định ghế trống: Ứng dụng sẽ triển khai thuật toán để kiểm tra và xác định
các ghế trống dựa trên dữ liệu từ file.
+) Cập nhật chỗ ngồi: Khi nhận được mã vé của hành khách, chương trình sẽ kiểm
tra và đúng thì sẽ cập nhật thông tin chỗ ngồi và khánh hành tương ứng trong file.

 Mục tiêu và phương pháp:


+) Mục tiêu: Tạo ra một ứng dụng có khả năng quản lý chỗ ngồi một cách chính
xác và hiệu quả, hỗ trợ tốt cho quy trình đặt chỗ của hãng hàng không ITF-
Airway.
+) Phương pháp: Sử dụng các kỹ thuật lập trình và xử lý file tiên tiến, kết hợp với
các thuật toán sắp xếp và xử lý chuỗi để đảm bảo hiệu quả hoạt động của ứng
dụng.

3
- Kết quả mong đợi:
+) Hiển thị thông tin chuyến bay: Ứng dụng sẽ hiển thị thông tin chuyến bay và sơ
đồ chỗ ngồi một cách rõ ràng.
+) Đặt chỗ: Hỗ trợ nhân viên nhập mã vé để kiểm tra và chọn ghế trống cho khách
hàng.
+) Lưu trữ thông tin: Lưu trữ thông tin mã vé và chỗ ngồi vào file ánh xạ, đảm bảo
dữ liệu được cập nhật chính xác và đầy đủ.

 Đề tài này giúp tối ưu hóa việc quản lý chỗ ngồi trên máy bay và giúp nhân viên dễ
dàng quản lý các hành khách hơn khi đặt vé máy bay.
Để việc xử lý thông tin trở nên đơn giản và nhanh chóng; bằng những kiến thức đã học từ
môn Kỹ thuật lập trình, Cấu trúc dữ liệu, Phương pháp tính, Toán rời rạc để chúng tôi đã
thực hiện dự án lập trình này.

Để hoàn thành dự án này, chúng tôi đã nhận sự hướng dẫn, giúp đỡ tận tình của cô Trần
Hồ Thủy Tiên. Chúng tôi xin bày tỏ lòng biết ơn sâu sắc tới cô, người đã quan tâm,
hướng dẫn và đóng góp nhiều ý kiến trong suốt quá trình hoàn thiện dự án của chúng em.

Kết quả đạt được của dự án này chắc hẳn không thể tránh khỏi những thiếu sót. Vì vậy,
chúng tôi rất mong được thầy cô chỉ ra những sai sót để dự án này được hoàn thiện hơn.

Chúng tôi xin chân thành cảm ơn!

2. Cở sở lý thuyết:
2.1. Ý tưởng:
- Mục tiêu của chương trình: Xây dựng một hệ thống quản lý ghế ngồi trên máy
bay, giúp quản lý việc đặt và hủy ghế ngồi, cũng như hiển thị trạng thái ghế ngồi
một cách hiệu quả.
- Các chức năng chính của chương trình:
+) Nhập mã máy bay: Người dùng có thể nhập mã chuyến bay để chọn máy bay
cần quản lý.
+) Nhập thông tin ghế ngồi: Người dùng nhập mã khách hàng và số lượng ghế
muốn đặt, xác định hạng ghế và lưu thông tin vào tệp.

4
+) Hiển thị trạng thái ghế ngồi: Hiển thị danh sách ghế ngồi với trạng thái (trống,
đã đặt) và hạng ghế (thương gia, phổ thông).
+) Xóa thông tin khách hàng: Người dùng nhập số thứ tự khách hàng muốn xóa,
cập nhật trạng thái ghế ngồi và xóa thông tin khách hàng từ tệp.
+) Cập nhật tệp dữ liệu: Cập nhật tệp dữ liệu với thông tin ghế ngồi và khách hàng
mới nhất.
- Cơ sở lý thuyết áp dụng:
+) Cấu trúc dữ liệu: Sử dụng các cấu trúc dữ liệu (struct) để lưu trữ thông tin
khách hàng và ghế ngồi.
+) Đọc và ghi tệp (File I/O): Sử dụng các thao tác đọc và ghi tệp để lưu trữ và cập
nhật thông tin.
+) Xử lý chuỗi (String Handling): Sử dụng các hàm xử lý chuỗi để thao tác và
quản lý dữ liệu chuỗi ký tự.
+) Sắp xếp (Sorting): Sử dụng các thuật toán sắp xếp để quản lý danh sách các chỉ
số cần xóa theo thứ tự tăng dần.
+) Quản lý trạng thái ghế ngồi (Seat Management): Theo dõi và cập nhật trạng thái
của từng ghế ngồi.
- Quy trình thực hiện:
+) Người dùng nhập mã chuyến bay để chọn máy bay cần quản lý.
+)Người dùng nhập thông tin khách hàng và ghế ngồi.
+) Chương trình hiển thị trạng thái ghế ngồi hiện tại.
+) Người dùng có thể xóa thông tin khách hàng và cập nhật trạng thái ghế.
+) Chương trình cập nhật thông tin vào các tệp dữ liệu tương ứng.
- Lợi ích của chương trình:
+) Giúp quản lý hiệu quả thông tin ghế ngồi và khách hàng.
+) Hỗ trợ việc đặt và hủy ghế ngồi dễ dàng.
+) Cải thiện trải nghiệm của người dùng với giao diện trực quan và thao tác đơn
giản.
5
2.2. Cơ sở lý thuyết:
 Cơ sở lý thuyết cho đề tài "Xây dựng ứng dụng đặt chỗ ngồi trên máy bay của hãng
hàng không ITF-Airway" bao gồm các thành phần chính sau:
+) File I/O: Thao tác đọc và ghi tệp trong lập trình cho phép lưu trữ và truy xuất
dữ liệu từ các tệp trên đĩa cứng. Các hàm thư viện chuẩn C như fopen(), fgets(), fscanf(),
fprintf(), và fclose() được sử dụng để làm việc với tệp. Chương trình sử dụng các hàm
này để đọc dữ liệu khách hàng từ tệp, ghi thông tin ghế ngồi vào tệp và cập nhật trạng
thái ghế.
+) Cấu trúc dữ liệu: Cấu trúc dữ liệu (struct) trong ngôn ngữ lập trình C cho phép
nhóm các biến liên quan thành một kiểu dữ liệu duy nhất. Điều này giúp quản lý và truy
cập dữ liệu một cách có tổ chức và hiệu quả. Chương trình sử dụng nhiều cấu trúc để lưu
trữ thông tin về khách hàng và ghế ngồi.
+) Xử lý chuỗi: Các hàm xử lý chuỗi trong C như strcmp(), strcpy(), strlen(), và
sscanf() giúp thao tác và quản lý dữ liệu chuỗi. Chương trình sử dụng các hàm này để so
sánh mã khách hàng, sao chép và xử lý dữ liệu chuỗi trong quá trình đọc và ghi tệp.
+) Vòng lặp và điều kiện:Vòng lặp (for, while) và câu lệnh điều kiện (if, else) cho
phép thực hiện các thao tác lặp lại và kiểm tra điều kiện để điều khiển luồng chương
trình. Chương trình sử dụng các vòng lặp để đọc dữ liệu từ tệp, duyệt qua danh sách ghế
ngồi, và kiểm tra điều kiện để xác định và cập nhật trạng thái ghế dựa trên các thao tác
đặt và hủy ghế, đảm bảo luôn chính xác và kịp thời.
+) Thuật toán sắp xếp: Thuật toán sắp xếp cho phép sắp xếp các phần tử trong
danh sách theo một thứ tự xác định (tăng dần hoặc giảm dần). Chương trình sử dụng
thuật toán sắp xếp để sắp xếp danh sách các chỉ số ghế cần xóa theo thứ tự tăng dần, giúp
quản lý và cập nhật trạng thái ghế dễ dàng hơn.
+) Thiết kế giao diện: Thiết kế giao diện đơn giản sử dụng màn hình console để
hiển thị thông tin và nhận lệnh từ người dùng.

 Cơ sở lý thuyết của đề tài bao gồm việc sử dụng các thao tác File I/O, mảng song
song, thuật toán sắp xếp và tìm kiếm để xây dựng một hệ thống đặt chỗ ngồi hiệu quả.
Thiết kế giao diện đơn giản bằng console, file giúp nhân viên hãng hàng không quản
lý và cập nhật thông tin chỗ ngồi, đảm bảo sự chính xác và thuận tiện trong quá trình
vận hành.

6
3. Tổ chức cấu trúc dữ liệu và thuật toán:
3.1.Phát biểu bài toán:
 Bài toán đề tài "Xây dựng ứng dụng đặt chỗ ngồi trên máy bay của hãng hàng
không ITF-Airway" bao gồm các chức năng sau:
1. Nhập mã máy bay: Cho phép người dùng nhập mã máy bay để xác định file ánh
xạ tương ứng với sơ đồ chỗ ngồi của chuyến bay.
2. Hiển thị sơ đồ chỗ ngồi: Hiển thị sơ đồ chỗ ngồi của máy bay, phân biệt ghế
trống và ghế đã được đặt.
3. Đặt chỗ cho khách hàng: Cho phép người dùng nhập mã vé của khách hàng và
số ghế muốn đặt. Chương trình sẽ kiểm tra ghế trống và lưu thông tin mã vé tương ứng
với số ghế đã đặt vào file.
4. Xóa thông tin mã vé: Cho phép người dùng xóa thông tin mã vé của hành khách
bằng cách nhập số thứ tự mã vé muốn xóa.
5. Hiển thị danh sách mã vé: Hiển thị danh sách các mã vé và thông tin ghế ngồi
hiện tại của chuyến bay.

 Đầu vào (Input) của chương trình bao gồm:


 Danh sách khách hàng: Tệp dữ liệu chứa thông tin về khách hàng bao gồm mã
khách hàng, họ và tên, ngày sinh, giới tính và số điện thoại. Ví dụ:

 Danh sách chuyến bay: Tệp dữ liệu chứa thông tin về các chuyến bay, bao gồm
mã chuyến bay, hành trình, thời gian khởi hành và mã máy bay. Ví dụ:

 Số ghế muốn đặt: Nhập số ghế mà khách hàng muốn đặt.

7
Số thứ tự mã vé cần xóa: Nhập số thứ tự mã vé để xóa thông tin.

 Đầu ra (Output) của chương trình bao gồm:


 Sơ đồ chỗ ngồi: Hiển thị trạng thái chỗ ngồi hiện tại của máy bay, bao
gồm ghế trống và ghế đã đặt.
 Danh sách mã vé: Hiển thị danh sách mã vé và thông tin ghế ngồi sau
khi cập nhật, bao gồm mã vé, hạng ghế, và vị trí ghế.
3.2.Cấu trúc dữ liệu:
Trong chương trình quản lý ghế ngồi trên máy bay, chúng ta sử dụng các cấu trúc dữ liệu
để lưu trữ và quản lý thông tin về khách hàng và ghế ngồi. Các cấu trúc dữ liệu này bao
gồm các cấu trúc (struct) trong ngôn ngữ lập trình C:
1. Cấu trúc bienchar: Cấu trúc bienchar dùng để lưu trữ các từ hoặc chuỗi ký tự, chủ yếu
được sử dụng để đọc và lưu trữ dữ liệu từ tệp.

2. Cấu trúc makhachhang: Cấu trúc makhachhang dùng để


lưu trữ thông tin về khách hàng, bao gồm mã khách hàng, hạng ghế và vị trí ghế:

ma: Mã khách hàng.


hangghe: Hạng ghế của khách hàng (thương gia hoặc phổ thông).
vitri: Vị trí ghế ngồi của khách hàng.

8
3.Cấu trúc ghengoi: Cấu trúc ghengoi dùng để lưu trữ thông tin về ghế ngồi, bao gồm số
ghế, hạng ghế, số thứ tự và mã khách hàng (nếu ghế đã được đặt):

number: Trạng thái của ghế.


+ 0: Ghế trống.
+ 1: Ghế đã đặt.
+ 2: Đánh dấu xuống dòng
+ 3: Ghế không khả dụng.
hang: Hạng ghế (được biểu diễn bằng mã ASCII).
stt: Số thứ tự của ghế trong hàng.
code: Mã khách hàng đã đặt ghế (nếu ghế đã được đặt).
4.Mảng ghengoi: Mảng ghengoi chứa danh sách các ghế ngồi trên máy bay. Mỗi phần tử
của mảng là một cấu trúc ghengoi, đại diện cho một ghế ngồi cụ thể:

5. Các biến toàn cục: Một số biến toàn cục được sử dụng để lưu trữ thông tin về máy bay
và các tệp dữ liệu:

9
6.Các hàm liên quan đến cấu trúc dữ liệu:
readcode(struct bienchar line[]): Đọc mã khách hàng từ tệp.
docdulieu(): Đọc dữ liệu ghế ngồi từ tệp.
doibien(char D[3]): Thay đổi trạng thái ghế ngồi dựa trên vị trí ghế.
updatefile1(): Cập nhật tệp dữ liệu ghế ngồi.
updatefile2(): Cập nhật tệp dữ liệu vị trí ghế ngồi.
3.3.Thuật toán:
Trong chương trình quản lý ghế ngồi trên máy bay, chúng ta sử dụng nhiều thuật toán để
thực hiện các chức năng chính như nhập dữ liệu, hiển thị thông tin, thêm hoặc xóa khách
hàng, và cập nhật trạng thái ghế ngồi. Dưới đây là mô tả chi tiết các thuật toán chính
được sử dụng trong chương trình:
1. Thuật toán nhập mã chuyến bay (nhapmamaybay):
Thuật toán này cho phép người dùng nhập mã chuyến bay và xác định các tệp dữ
liệu tương ứng với chuyến bay đó. Cụ thể, thuật toán kiểm tra tính hợp lệ của mã
chuyến bay và gán tên tệp dữ liệu tương ứng với mã chuyến bay được nhập.

10
4. Chương trình và kết quả:

Chương trình "Xây dựng ứng dụng đặt chỗ ngồi trên máy bay của hãng hàng không ITF-
Airway" được thiết kế để quản lý chỗ ngồi hiệu quả, cho phép thực hiện các chức năng
chính như nhập mã vé, đặt và xóa chỗ, và hiển thị sơ đồ chỗ ngồi. Dưới đây là mô tả chi
tiết về cách thức tổ chức chương trình và kết quả thu được từ các thao tác của người
dùng.

4.1.Tổ chức chương trình:

(ảnh)

4.2.Kết quả:

Kết quả của chương trình bao gồm việc hiển thị sơ đồ chỗ ngồi cập nhật, danh sách mã vé
và thông tin chỗ ngồi sau khi người dùng thực hiện các thao tác đặt hoặc xóa chỗ. Cụ thể:

4.2.1.Giao diện vào chương trình và chọn chuyến bay:

11
- Người dùng nhập mã của máy bay mà họ muốn quản lý chỗ ngồi.

- Chức năng này khởi tạo hoặc tải dữ liệu chỗ ngồi liên quan đến mã máy bay đã nhập.

4.2.2.Giao diện chính của chương trình:

4.2.3.Kết quả thực thi chương trình:

1. Chức năng đầu tiên là thêm thông tin khách hành:

Ghế trống sẽ hiển thị:

(ảnh)

Người dùng nhập mã vé và số lượng ghế muốn đặt:

(ảnh)

Chương trình kiểm tra xem mã vé có tồn tại trong hệ thống hay không.Nếu không,
chương trình sẽ thông báo và yêu cầu kiểm tra lại:

(ảnh)

Người dùng chọn ghế từ danh sách ghế trống hiển thị:

(ảnh)

12
Nếu ghế đã được chọn trước đó hoặc sai, chương trình sẽ thông báo ghế không khả dụng
và yêu cầu chọn ghế khác:

(ảnh)

Thông tin đặt chỗ được lưu vào hệ thống và cập nhật trạng thái ghế:

(ảnh)

2.Chức năng tiếp theo là xóa thông tin khách hành:

Người dùng nhập mã vé và số ghế cần hủy:

(ảnh)

Chương trình tìm kiếm và xác minh thông tin. Nếu thông tin không tồn tại, thông báo lỗi
và yêu cầu nhập lại:

(ảnh)

Nếu hợp lệ, thông tin đặt chỗ được xóa khỏi hệ thống và ghế được đánh dấu là trống và
thông tin vé liên quan được loại bỏ khỏi danh sách:

(ảnh)

13

You might also like