Professional Documents
Culture Documents
TRƯỜNG ĐẠI HỌC BÁCH KHOA
TRƯỜNG ĐẠI HỌC BÁCH KHOA
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.
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.
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.
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.
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ụ:
7
Số thứ tự mã vé cần xóa: Nhập số thứ tự mã vé để xóa thông tin.
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):
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.
(ả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ể:
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.
(ảnh)
(ả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)
(ả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