1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO CÁO BÀI TẬP LỚN ĐỀ TÀI QUẢN LÍ SINH VIÊN

30 9 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 30
Dung lượng 486,21 KB

Nội dung

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI PHÂN HIỆU TẠI TP HỒ CHÍ MINH BỘ MƠN CƠNG NGHỆ THƠNG TIN BÁO CÁO BÀI TẬP LỚN ĐỀ TÀI: QUẢN LÍ SINH VIÊN Giảng viên hướng dẫn: TRẦN THỊ DUNG Sinh viên thực hiện: TRẦN ĐÌNH AN MSSV:6251020031 Lớp : CQ.62.KTDTVT Khố : 62 Tp Hồ Chí Minh, năm 2022 TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI PHÂN HIỆU TẠI TP HỒ CHÍ MINH BỘ MƠN CƠNG NGHỆ THƠNG TIN BÁO CÁO BÀI TẬP LỚN ĐỀ TÀI: QUẢN LÍ SINH VIÊN Giảng viên hướng dẫn: TRẦN THỊ DUNG Sinh viên thực hiện: TRẦN ĐÌNH AN MSSV:6251020031 Lớp : CQ.62.KTDTVT Khố : 62 Tp Hồ Chí Minh, năm 2022 MỤC LỤC Phần Lí Thuyết Danh sách liên kết đơn gì? 1.1 Khái niệm: 1.2 Cách tạo danh sách liên kết đơn: .1 Cấu trúc liệu ngăn xếp (Stack ): .2 2.1 Ngăn xếp (stack ) ? 2.2 Biểu diễn cấu trúc liệu (Stack ): 2.3 Các hoạt động cấu trúc liệu ngăn xếp: .4 2.4 Ứng dụng ngăn xếp: Cấu trúc liệu hàng đợi (Queue ) gì? 3.1 Khái niệm: 3.2 Biễu diễn cấu trúc hàng đợi: 3.3 Các hoạt động cấu trúc hàng đợi: Véc tơ C++ gì? 4.1 Khái niệm: 4.2 Vì nên dùng véc tơ? 4.3 Véc tơ có thứ tự C++ không ? 4.4 Các hàm C++: Cấu trúc liệu 5.1 Cấu trúc liệu gì? 5.2 Các khái niệm nhị phân: .9 5.3 Biễu diễn tìm kiếm nhị phân: .10 5.4 Hoạt động tìm kiếm nhị phân: .10 Thuật toán C++ 11 6.1 Khái niệm: 11 6.2 Các phẩm chất thuật toán: .11 6.3 Ví dụ thuật tốn C++ .11 Danh sách liên kết đơn gì? 1.1 Khái niệm: - Danh sách liên kết đơn (Single Linked List) cấu trúc liệu động, danh sách mà phần tử liên kết với phần tử sau danh sách Mỗi phần tử (được gọi node hay nút) danh sách liên kết đơn cấu trúc có hai thành phần: - Thành phần liệu: lưu thông tin thân phần tử - Thành phần liên kết: lưu địa phần tử đứng sau danh sách, phần tử phần tử cuối thành phần NULL - Đặc điểm danh sách liên kết đơn: Do danh sách liên kết đơn cấu trúc liệu động, tạo nên nhờ việc cấp phát động nên có số đặc điểm sau đây: - Được cấp phát nhớ chạy chương trình - Có thể thay đổi kích thước qua việc thêm, xóa phần tử - Kích thước tối đa phụ thuộc vào nhớ khả dụng RAM - Các phần tử lưu trữ ngẫu nhiên (khơng liên tiếp) RAM Và tính liên kết phần tử đầu phần tử đứng sau danh sách liên kết đơn, có đặc điểm sau: - Chỉ cần nắm phần tử đầu cuối quản lý danh sách - Truy cập tới phần tử ngẫu nhiên phải duyệt từ đầu đến vị trí - Chỉ tìm kiếm tuyến tính phần tử 1.2 Cách tạo danh sách liên kết đơn: - Ta có thành phần tạo nên danh sách liên kết đơn node, cần quản lý chúng cách biết phần tử đầu cuối Vì phần tử liên kết với phần tử kế nên tả cần biết phần tử đầu cuối quản lý danh sách Vậy đơn giản ta cần tạo cấu trúc lưu trữ địa phần tử đầu (head) phần tử cuối (hay phần tử đuôi tail) - struct LinkedList - { - Node* head; - Node* tail - }; - void CreateList(LinkedList& l) - { - Khi tạo danh sách, danh sách khơng có phần tử nào, head tail khơng trỏ vào đâu cả, ta gán chúng NULL Ta xây dựng hàm tạo danh sách sau: - l.head = NULL; - l.tail = NULL; - } - LinkedList list; - CreateList(list); // Gán head tail NULL - Bây để tạo danh sách, ta làm sau: Cấu trúc liệu ngăn xếp (Stack ): 2.1 Ngăn xếp (stack ) ? - Một ngăn xếp là cấu trúc liệu trừu tượng (Abstract Data Type – viết tắt ADT), sử dụng hầu hết ngơn ngữ lập trình Đặc điểm ngăn xếp là LIFO (last in first out) - có nghĩa vào sau trước Đặt tên ngăn xếp hoạt động ngăn xếp đời sống thực, ví dụ cỗ hay chồng đĩa, … - - Trong đời sống thực, ngăn xếp cho phép hoạt động vị trí ngăn xếp Ví dụ, đặt thêm hay đĩa vào ngăn xếp Do đó, cấu trúc liệu trừu tượng ngăn xếp cho phép thao tác liệu vị trí Tại thời điểm nào, truy cập phần tử ngăn xếp - Đặc điểm làm cho ngăn xếp trở thành cấu trúc liệu dạng LIFO LIFO viết tắt Last-In-First-Out Ở đây, phần tử đặt vào (được chèn, thêm vào) cuối truy cập Trong thuật ngữ ngăn xếp, hoạt động chèn gọi hoạt động PUSH và hoạt động xóa gọi hoạt động POP 2.2 Biểu diễn cấu trúc liệu (Stack ): Dưới sơ đồ minh họa ngăn xếp hoạt động diễn ngăn xếp Một ngăn xếp triển khai theo phương thức Mảng (Array), Cấu trúc (Struct), Con trỏ (Pointer) Danh sách liên kết (Linked List) Ngăn xếp dạng kích cỡ cố định ngăn xếp thay đổi kích cỡ Phần triển khai ngăn xếp sử dụng mảng với việc triển khai ngăn xếp cố định 2.3 Các hoạt động cấu trúc liệu ngăn xếp: Các hoạt động ngăn xếp liên quan tới việc khởi tạo ngăn xếp, sử dụng sau xóa Ngồi hoạt động này, ngăn xếp có hai hoạt động nguyên sơ liên quan tới khái niệm, là: - Hoạt động push(): lưu giữ phần tử ngăn xếp - Hoạt động pop(): xóa phần tử từ ngăn xếp Khi liệu PUSH lên ngăn xếp: Để sử dụng ngăn xếp cách hiệu quả, cần kiểm tra trạng thái ngăn xếp Để phục vụ cho mục đích này, số tính hỗ trợ khác ngăn xếp: - Hoạt động peek(): lấy phần tử liệu ngăn xếp, mà khơng xóa phần tử - Hoạt động isFull(): kiểm tra xem ngăn xếp đầy hay chưa - Hoạt động isEmpty(): kiểm tra xem ngăn xếp trống hay không Tại thời điểm, trì trỏ tới phần tử liệu vừa PUSH cuối vào ngăn xếp Vì trỏ ln biểu diễn vị trí ngăn xếp đặt tên là top. Con trỏ top cung cấp cho giá trị phần tử ngăn xếp mà không cần phải thực hoạt động xóa (hoạt động pop) 2.4 Ứng dụng ngăn xếp: - Xử lý gọi hàm C/C++ - Trong máy tính, sử dụng để tính giá trị biểu thức, xử lý ngắt - Trong chương trình biên dịch - Trong trình duyệt web, trình soạn thảo văn - Định giá biểu thức + Biểu thức trung tố: toán tử hai ngơi đứng giưã hai tốn hạng, tốn tử ngơi đứng trước toán hạng + Biểu thức hậu tố : toán tử đứng sau toán hạng + Biểu thức tiền tố : toán tử đứng trước toán hạng VD định giá biểu thức A = b + c * d /e – f Trung tố a*(b-c)/d Hậu tố abc-*d/ Tiền tố /*a-bcd Cấu trúc liệu hàng đợi (Queue ) gì? 3.1 Khái niệm: - Hàng đợi (Queue) cấu trúc liệu trừu tượng Đặc điểm hàng đợi là FIFO (first in first out) - có nghĩa vào trước trước Đặt tên hàng đợi tương tự hàng đợi đời sống hàng ngày (xếp hàng) - Khác với ngăn xếp, hàng đợi mở hai đầu Một đầu luôn sử dụng để chèn liệu vào (hay gọi vào hàng) đầu sử dụng để xóa liệu (rời hàng) Cấu trúc liệu hàng đợi tuân theo phương pháp First-In-First-Out, tức liệu nhập vào truy cập - Trong đời sống thực có nhiều ví dụ hàng đợi, chẳng hạn hàng xe ô tô đường chiều (đặc biệt tắc xe), xe vào Một vài ví dụ khác xếp hàng học sinh, xếp hàng mua vé, … 3.2 Biễu diễn cấu trúc hàng đợi: - Giờ có lẽ bạn tưởng tượng hàng đợi Chúng ta truy cập hai đầu hàng đợi Dưới biểu diễn hàng đợi dạng cấu trúc liệu: Tương tự cấu trúc liệu ngăn xếp, cấu trúc liệu hàng đợi triển khai sử dụng Mảng (Array), Danh sách liên kết (Linked List), Con trỏ (Pointer) Cấu trúc (Struct) Để đơn giản, phần tìm hiểu tiếp hàng đợi triển khai sử dụng mảng chiều 3.3 Các hoạt động cấu trúc hàng đợi: Các hoạt động cấu trúc liệu hàng đợi liên quan tới việc khởi tạo hàng đợi, sử dụng liệu hàng đợi sau xóa liệu khỏi nhớ Danh sách số hoạt động thực cấu trúc liệu hàng đợi: - Hoạt động enqueue(): thêm (hay lưu trữ) phần tử vào hàng đợi - Hoạt động dequeue(): xóa phần tử từ hàng đợi Để sử dụng hàng đợi cách hiệu quả, cần kiểm tra trạng thái hàng đợi Để phục vụ cho mục đích này, số tính hỗ trợ khác hàng đợi: - Phương thức peek(): lấy phần tử đầu hàng đợi, mà khơng xóa phần tử - Phương thức isFull(): kiểm tra xem hàng đợi đầy hay không - Phương thức isEmpty(): kiểm tra xem hàng đợi trống hay hay không Trong cấu trúc liệu hàng đợi, ln ln: (1) dequeue (xóa) liệu trỏ trỏ front và (2) enqueue (nhập) liệu vào hàng đợi giúp đỡ trỏ rear Véc tơ C++ gì? 4.1 Khái niệm: - Không giống như array (mảng), số giá trị định lưu trữ tên biến Vector C++ giống dynamic array (mảng động) có khả tự động thay đổi kích thước phần tử chèn xóa tùy thuộc vào nhu cầu tác vụ thực thi, với việc lưu trữ chúng vùng chứa tự động xử lý Các phần tử vector đặt contiguous storage (bộ nhớ liền kề) để chúng truy cập duyệt qua cách sử dụng iterator Bước 1: Khởi động Bước 2: Khai báo biến num1, num2 sum Bước 3: Đọc giá trị num1 num2 Bước 4: Thêm num1 num2 gán kết thành tổng sum ← num1 + num2 Bước 5: Hiển thị tổng Bước 6: Dừng VD2: Tìm số lớn số: Bước 1: Khởi động Bước 2: Khai báo biến a, b c Bước 3: Đọc biến a, b c Bước 4: Nếu a> b Nếu a> c Hiển thị a số lớn Khác Hiển thị c số lớn Khác Nếu b> c Hiển thị b số lớn Hiển thị khác c số lớn Bước 5: Dừng lại PHẦN 2: CHƯƠNG TRÌNH ỨNG DỤNG ( NHĨM ): Lý chọn đề tài: Trong phát triển khoa học cuối kỉ XX đầu kỉ XXI, công nghệ thơng tin ngành có tốc độ phát triển nhanh Công nghệ thông tin nước ta cịn mới, song tốc độ phát triển nhanh mạnh, chiếm vị trí quan trọng ngành khoa học công nghệ Một lĩnh vực ứng dụng tin học phổ biến nước ta lĩnh vực quản lý 12 Tin học hóa quản lý giúp cho nhà quản lý điểu hành công việc cách khoa học, xác hiệu Việc ứng dụng cơng nghệ thông tin vào công tác quản lý sinh viên cần thiết Vì vật nhóm chúng em chon đề tài “Xây dựng chương trình quản lý sinh viên C++” làm nghiên cứu Mơ tả tốn: -Xây dựng chương trình “Quản lý sinh viên” nhằm hỗ trợ cho cơng tác quản lý thơng tin sính viên, điểm,…Bài tốn đặt phân tích thiết kế hệ thống thơng tin, vấn đề đặt phải quản lý ? Và quản lý để cơng việc có hiệu quả, tiết kiệm thời gian cho cán bộ, nhân viên -Trong toán “Quản lý sinh viên” này, sính viên có thuộc tính sau: mã số sinh viên, tên, lớp, giới tính, ngày sinh, điểm rèn luyện có mơn học : Anten, tín hiệu, tin học, lập trình, tiếng anh, sau tính trung bình cộng mơn -Khi xuất hình có đầy đủ thông tin cần thiết theo yêu cầu đề cho sinh viên -Bảng menu gồm có: +Nhập sinh viên +In danh sách sinh viên +Xuất tổng sinh viên +Xóa tất sinh viên +Chỉnh sửa sinh viên( chỉnh sửa thuộc tính có) +Tìm kiếm sinh viên theo mã số +Xóa sinh viên theo mã số +Sắp xếp sinh viên theo điểm rèn luyện ( tăng giảm) Nội dung lý thuyết:(Tính chất hướng đối tượng, cấu trúc liệu toán, đồ họa - đưa số đoạn code ví dụ) (1) Tính chất hướng đối tượng tốn tính chất kế thừa -Là kỹ thuật cho phép kế thừa lại tính mà đối tượng khác có, giúp tránh việc code lặp dư thừa mà xử lý công việc tương tự -Một số ví dụ tốn có tính kế thừa: 13 +Trước hết ta có hàm bỗ trợ cho hàm nhập điểm, ngày, tháng, năm,…: } double stringToDouble(string s) { stringstream geek(s); int diem; geek >> diem; return diem; }(*) int stringToInt(string s) { stringstream geek(s); int diem; geek >> diem; return diem; }(*) bool kiemTraNhapSo(string s) { std::string::const_iterator it = s.begin(); while (it != s.end() && std::isdigit(*it)) ++it; return !s.empty() && it == s.end(); +Sau hàm kiểm tra nhập điểm kế thừa tính hàm trên: } bool kiemTraNhapDiem(string s) { bool check = kiemTraNhapSo(s); if (!check) { return false; } int diem = stringToInt(s); if (diem >= && diem 10 -Về hàm nhập tháng: bool kiemTraNhapThang(string s) { bool check = kiemTraNhapSo(s); if (!check) { return false; } int thang = stringToInt(s); if (thang >= && thang 12 -Tương tự cho hàm nhập ngày nhập năm +Đối với nhập ngày thì: • Khi nhập vào tháng 1,3,5,8,10,12: cho phép nhập số nằm khoảng từ -> 31 •Khi nhập vào tháng 4,6,7,9,11: cho phép nhập số nằm khồng từ -> 30 •Khi nhập vào tháng 2: cho phép nhập số nằm khoảng từ -> 28 29 (2) Cấu trúc liệu toán: -Cấu trúc liệu sử dụng toán quản lý danh sách liên kết đơn - Được thể dòng code sau: 15 -Đây khai báo Node danh sách liên kết đơn    int data: là liệu Node (ở liệu mang kiểu int, ta hồn tồn thay đổi thành float hay kiểu SinhVien tùy vào mục đích khác nhau) Node *next: Là trỏ mang kiểu liệu Node và có chức trỏ đến địa của Node tiếp theo danh sách Từ khóa typedef struct để dễ dàng việc gọi sử dụng NODE sau này! -Đây khai báo cấu trúc danh sách liên kết đơn -Trong đó:   NODE* pHead; là node danh sách NODE* pTail; là node cuối danh sách -Đây hàm khởi tạo danh sách liên kết đơn -Mặc định ban đầu danh sách khởi tạo, thành phần NODE* pHead và NODE* pTail của danh sách coi rỗng (NULL) Vì vậy, hàm 16 ... +Nhập sinh viên +In danh sách sinh viên +Xuất tổng sinh viên +Xóa tất sinh viên +Chỉnh sửa sinh viên( chỉnh sửa thuộc tính có) +Tìm kiếm sinh viên theo mã số +Xóa sinh viên theo mã số +Sắp xếp sinh. .. PHÂN HIỆU TẠI TP HỒ CHÍ MINH BỘ MƠN CƠNG NGHỆ THƠNG TIN BÁO CÁO BÀI TẬP LỚN ĐỀ TÀI: QUẢN LÍ SINH VIÊN Giảng viên hướng dẫn: TRẦN THỊ DUNG Sinh viên thực hiện: TRẦN ĐÌNH AN MSSV:6251020031 Lớp : CQ.62.KTDTVT... chon đề tài “Xây dựng chương trình quản lý sinh viên C++” làm nghiên cứu Mơ tả tốn: -Xây dựng chương trình ? ?Quản lý sinh viên? ?? nhằm hỗ trợ cho cơng tác quản lý thơng tin sính viên, điểm,? ?Bài tốn

Ngày đăng: 30/11/2022, 08:57

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w