1. Trang chủ
  2. » Luận Văn - Báo Cáo

bài tập đồ án cấu trúc dữ liệu và giải thuật

61 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
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

Nội dung

Trang 1

IY’ WE

S BO GIAO DUC VA DAO TAO

l TRƯỜNG ĐẠI HỌC TÀI CHÍNH - MARKETING

KHOA CÔNG NGHỆ THÔNG TIN BAI TAP DO AN ~ wv ~ ^ ` CAU TRUC DU LIEU VA GIAI THUAT TRUONG DAI HOC TAICHINH MARKETING

> Gidne vier Inebng din: Newyén Quie Thanh

>> À4ầm học thực hiểm: Nguyễn Xuân TíHi

> Ma sé mém hoe: 2121001038

» Mai lov hoc phan: 2121112901202

Trang 2

LOI CAM ON

Đầu tiên, em xin chân thành cảm ơn va tri ân sâu sắc đến qúy thầy cô Trường Đại học Tài Chính - Marketing „ đặc biệt là quý thầy cô khoa Công nghệ thông tin và thầy Nguyễn Quốc Thanh đã dạy dỗ tận tình cho chúng em những tháng ngày vừa qua khi mới là sinh viên năm nhất còn bỡ ngỡ về một môi trường học tập mới , thay cô luôn quan tâm chúng em hỏi chúng em không hiểu chỗ nao thi chia sẻ màn hình thầy cô chỉ cho chúng em

Thầy đã truyền đạt cho chúng em rất nhiều kiến thức bé ích, giúp chúng em ngày càng hoàn thiện bản thân mình hơn Cũng là đồ án môn cấu trúc đữ liệu và giải thuật thì cũng một lần nữa em xinh chúc tất cả các quý thầy cô giáo và Ths.Nguyễn Quốc Thanh ngày càng mạnh khỏe

Trang 3

MUC LUC

CHUONG I: GIỚI THIỆU - -2- 2 22212251225112211221112211211111111211211121211211 2 re 1

L.1 GiGi thi@U GE Dai ceccccccccccceeceeseeeeeeeeeessseesseeneeesessnneeeeeeeseeeegneed 1

1.2 Cấu trúc (khai báo/định nghĩa cấu truc) ccccceeecceesessessseeeeeeeees 1

1.3 DữỮ liệu mẫu HH SH HH HH nen hen vu 2

1.4 Các chức năng trên mảng cấu trÚc c cv: 2

CHƯƠNG II: TIM KIEM VA SAP XEP TREN MANG CAU TRÚC - <2 4

2.1 Nhap danh Sach MON NOC cccccseceeecseeeeceeeeeeeeeeseeeetsaeeaeeeesseraneeees 4 A) CHUONG CHINN CONL cc eeccceeeeeeseeeeseeeeesesaesaeseeeaeneeesaeeseersnsseraneere 4

b) Kiém tra (haM Main kiểm tra CC) (chen 5

C) KẾt QUả Chạy TT n n1 nn nh He n 5

2.2 Xuất danh sách môn học c1 n nghe 5

A) Chương trÌnh CON tu nh K non nano 5

b)_ Kiểm tra (hàm Main kiểm tra CC) (chen 6

C) KẾt QUả Chạy TT n n1 nn nh He n 7

2.3 Tìm kiếm thông tin môn học theo mã môn học dùng Liner

151121 I NI EI I EI EIU EI I EI EE EE EI EE EEE nnn Eeias 7

A) CHUONG CHINN CONL cc eeccceeeeeeseeeeseeeeesesaesaeseeeaeneeesaeeseersnsseraneere 7

a) Ki€mtra (ham Main ki€m tra Ct) .ccccccccceccscececeeceueeeueeeeeaeeuans 8

'o) <1 0K6 [U- Ike] a= ) Ae 9

2.4 Tim kiém théng tin m6n hoc theo ma mén hoc dung Binary

SEQICN I NI EI I EI EIU EI I EI EE EE EI EE EEE nnn Eeias 9

A) Chương trÌnh CON tu nh K non nano 9

b)_ Kiểm tra (hàm Main kiểm tra CC) con nhe 10

c) Kết QUả Chạy nnnnn TT TT Tnhh Huy 11

2.5 Tìm kiếm thông tin môn học theo Tên dùng Liner Search 11

a) Chương trình COn cuc nnn ng n TH HT Hong 11

b)_ Kiểm tra (hàm Main kiểm tra CC) con nhe 11

c) Kết QUả Chạy nnnnn TT TT Tnhh Huy 12

2.6 Tìm kiếm thông tin môn học theo Tên dùng Binary Search 12

a) Chương trình COn cuc nnn ng n TH HT Hong 12

Trang 4

C) KOt QUA CHAY ce eeececcesccccceceeeececeeeceeeeeeeeeeeeeeeeeeeeeeeeeeeseeeeeeeeneess 14

2.7 Hàm hoán VỊ cu uc ng ng nh ng TH nen kế HE Đế kết 14

2.8 Sắp xếp danh sách theo MaMH dùng hàm Shaker Sort 15

a) Chương trình COn cuc nnn ng n TH HT Hong 15

b)_ Kiểm tra (hàm Main kiểm tra CC) con nhe 16

c) Kết QUả Chạy nnnnn TT TT Tnhh Huy 16

2.9 Sắp xếp danh sách theo MaMH dùng hàm Selection Sort 16

a) Chương trình COn cuc nnn ng n TH HT Hong 16

b)_ Kiểm tra (hàm Main kiểm tra CC) con nhe 17

c) Kết QUả Chạy nnnnn TT TT Tnhh Huy 18

2.10 Sắp xếp danh sách theo Tên dùng hàm Interchange Sort 18

a) Chương trình COn cuc nnn ng n TH HT Hong 18

b)_ Kiểm tra (hàm Main kiểm tra CC) con nhe 18

c) Kết QUả Chạy nnnnn TT TT Tnhh Huy 19

2.11 Sắp xếp danh sách theo Khóa học dùng hàm Bubble Sort 19

a) Chương trình COn cuc nnn ng n TH HT Hong 20

b)_ Kiểm tra (hàm Main kiểm tra CC) con nhe 20

c) Kết QUả Chạy nnnnn TT TT Tnhh Huy 21

2.12_ Sắp xếp danh sách theo ĐTB dùng hàm Insertion Sort 21

a) Chương trình COn cuc nnn ng n TH HT Hong 21

b)_ Kiểm tra (hàm Main kiểm tra CC) con nhe 22

c) Kết QUả Chạy nnnnn TT TT Tnhh Huy 23

2.13 Sắp xếp danh sách theo Tín chỉ dùng hàm Quick Sort 23

a) Chương trình COn cuc nnn ng n TH HT Hong 23

b)_ Kiểm tra (hàm Main kiểm tra CC) con nhe 24

c) Kết QUả Chạy nnnnn TT TT Tnhh Huy 25

2.14_ Sắp xếp danh sách theo MAMH dùng hàm Merge Sort 25

a) Chương trình COn cuc nnn ng n TH HT Hong 25

b)_ Kiểm tra (hàm Main kiểm tra CC) con nhe 29

c) Kết QUả Chạy nnnnn TT TT Tnhh Huy 30

CHƯƠNG III: TÌM KIÊM VÀ SẮP XÉP TRÊN DSLK 2252222222212 31

3.1 Khởi tạo danh sách liên kết và các chương trình con hỗ trợ 31

3.2_ Nhập thông tin môn hỌọc ccccnn nn nh n Tnhh heo 33

Trang 5

b)_ Kiểm tra (hàm Main kiểm tra CC) con nhe 33

c) Kết QUả Chạy nnnnn TT TT Tnhh Huy 35

3.3 Xuất thông tin môn hỌc cnn ng ng Hee 35

A) Chương trÌnh COn tt kg nnn nha kho 35

b)_ Kiểm tra (hàm Main kiểm tra CC) con nhe 36

c) Kết QUả Chạy nnnnn TT TT Tnhh Huy 38

3.4 Đếm số phần tử có trong danh sách thông tin môn học 38

A) Chuong trÌnh COn tt kg nnn nh kho 38

b)_ Kiểm tra (hàm Main kiểm tra CC) con nhe 38

c) Kết QUả Chạy nnnnn TT TT Tnhh Huy 40

3.5 Tìm kiếm thông tin môn học theo mã môn học bằng Liner

11121 IEE I I EE I EI EEE EEL EE Enea 40

a) Chương trình COn cuc nnn ng n TH HT Hong 40

b)_ Kiểm tra (hàm Main kiểm tra CC) con nhe 41

c) Kết QUả Chạy nnnnn TT TT Tnhh Huy 43

3.6 Tìm kiếm thông tin môn học theo tên bằng Liner Search 43

a) Chương trình COn cuc nnn ng n TH HT Hong 43

b)_ Kiểm tra (hàm Main kiểm tra CC) con nhe 43

c) Kết QUả Chạy nnnnn TT TT Tnhh Huy 45

3.7 Hàm hoán vị hỗ trợ cho một số hàm sắp xếp :: :‹: 45

3.8 Sắp xếp thông tin môn học theo MaMH bằng Selection Sort 46

a) Chương trình COn cuc nnn ng n TH HT Hong 46

b)_ Kiểm tra (hàm Main kiểm tra CC) con nhe 47

c) Kết QUả Chạy nnnnn TT TT Tnhh Huy 48

3.9 Sắp xếp thông tin môn học theo mã môn hoc bang

lnterchang€ SOFẨ nen nền nh nh TH Thế BH Kế TT ben TK bến tà th 48

a) Chương trình COn cuc nnn ng n TH HT Hong 48

b)_ Kiểm tra (hàm Main kiểm tra CC) con nhe 49

c) Kết QUả Chạy nnnnn TT TT Tnhh Huy 51

3.10 Sắp xếp thông tin môn học theo mã môn học bằng Bubble

Sort 51

A) Chương trÌnh COn tt kg nnn nha kho 51

b)_ Kiểm tra (hàm Main kiểm tra CC) con nhe 52

Trang 6

3.11 Sort

a)

b)

C) 3.12 Sort a) b) C) Sắp xếp thông tin môn học theo mã môn học bằng Insertion 4

Chương trình COn ccc cnnnnnn ng n nghe rro 54

Kiểm tra (hàm Main kiểm tra CC) che 55

J4{-i0ei0.Near PP 56 Sắp xếp thông tin môn học theo mã môn học bằng Quick

56

Chương trình COn ccc cnnnnnn ng n nghe rro 56

Kiểm tra (hàm Main kiểm tra CC) che 58

Trang 7

DANH MUC BANG, HINH A

Bang 1.1 DU QU MAU cccccceceecsceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeereeeeeeeeesaaaaas 2

Y

Hinh 2 1 K@t qua thdng tin MON NOC ccccceesteeeeeeessesseeeeeessesesesseeeeaaeeeaas 5

Hình 2 2 Xuất thông tin môn học uc HS vn ng nghe hàn 7

Hình 2 3 Tìm kiếm mã môn học bằng Liner Search c cv cssiiksserervsrxes 9

Hình 2 4 Tìm kiếm mã môn học bằng Binary Search ccc ch viyrses 11

Hình 2 5 Tìm kiếm tên môn học bằng Liner Search cv cksssisiivrres 12

Hình 2 6 Tìm kiếm tên môn học bằng Binary Search ccc ch riyrsea 14

Hình 2 7 Sắp xếp mã môn học bằng Shaker SOFẨ cà nh nh nh nh khen 16

Hình 2 8 Sắp xếp mã môn học băng SeleCtiOn SOF cu ST nh nh kh 18

Hình 2 9 Sắp xếp tên môn học bằng Interchange SOT - nh nen nhe 19

Hình 2 10 Sắp xếp mã môn học băng Bubble Sort che 21 Hình 2 11 Sắp xếp theo tên môn học bằng Insertion SOFẨ che reo 23 Hình 2 12 Sắp xep tin chi bang Ợ gHơ7ơở7„„7Ừ7Ừýy,d 25 Hình 2 13 Sắp xếp mã môn học bằng Merge SOF ch xe 30

Hình 3 1 Kết quả nhập thông tin môn học vào DSLK ‹ccccccccc‡cc+‡‡ccs+c: 35 Hình 3 2 Kết quả xuất danh sách môn học ra mản hình :++:c++++:::: 38 Hình 3 3 Đém số lượng môn học có trong danh sách ‹cccccc‡‡‡ccxx‡+++: 40 Hình 3 4 Tìm kiếm mã môn học có tron danh sách đã nhập ở trên - - 43 Hình 3 5 Tìm kiếm tên môn học có trong danh sách đã nhập ở trên 45

Hình 3 6 Sắp xếp mã môn học bằng S€l€CEIOH SOẨ cu cu nh nh kh bế 48

Hình 3 7 Sắp xếp mã môn học bằng Interchange Sort eerie 51

Hinh 3.8 Sap xếp mã môn học bằng Bubble SOY cu nh nền kh nhe kéo 54

Trang 8

CHUONG I: GIOI THIEU 11 Giới thiệu đề bài

Xây dựng chức năng tìm kiếm và sắp xếp trên các câu trúc hỗ trợ quản lý thông tin các môn học bao gồm các thông tin: Mã môn học (MaMH), Tên

môn học (TenMH), Số tín chỉ (SoTC), Số giờ lý thuyết (GioLT), Số giờ thực hành (GioTH), Số giờ tự học (TuHoc)

1.2 Cấm trúc (khai báo/định nghĩa cấu trúc) Thông tin môn học cần quản lý gồm:

Ũ MaMH: Mã số môn học, gồm một chuỗi ký tự số có chiều dài 10 ký tự

l TenMH: Tên môn học, chỉ quản lý các tên Tiếng Việt với chiều dài 15

ký tự

Ũ SoTC: Số tín chỉ, cho biết số lượng tín chỉ của môn học

l GioLT: Giờ lí thuyết, số giờ học lí thuyết của môn học

Ũ GioTH: Giờ thực hành, số giờ học thực hành của môn học

Trang 9

float GioTH;

float Tuhoc;

};

1.3 Dữ liệu mẫu

Mã Tên Số tín Giờ lý Giờ Tự

môn môn chỉ thuyết thực học học học hành 1 Toán 12 5 5 2 2 Van 11 4 3 1 3 Anh 10 6 2 6 4 Sw 9 4 3 4 5 Dia 7 5 4 3 6 Tin 15 3 1 5 7 Lí 6 6 2 6 8 Hóa 8 4 5 2 9 Sinh 13 5 4 4 10 Thé 4 7 2 1 duc Bảng 1 1 Dữ liệu mẫu 1.4 Các chức năng trén mang cau tric Nhập danh sách môn học Xuất danh sách môn học

Trang 10

Các chức năng trên danh sách liên kết U

U U

Nhập danh sách môn học Xuất danh sách môn học

Trang 11

CHUONG II: TIM KIEM VA SAP XEP TREN MANG CAU TRUC

2.1 Nhập danh sách môn học

a) — Chương trình con

Đề nhập danh sách môn học, cần xây dựng hai chương trình con gồm:

0 void nhap_o(MONHOC& a);: hễ trợ nhập thông tin một môn học

gồm mã môn học, tên môn học, tín chỉ, giờ lý thuyết, giờ thực hành, tự học

1 void nhap_Mang(MONHOC a[], int n);: hỗ trợ nhập danh sách môn học //Nhập ô cho thông tin môn học void nhap_o(MONHOC& a) { Cout << " Ma mon hoc:"; cin.getline(a.MaMH, 10); Cout << " Ten mon hoc:"; cin.getline(a IlenMH, 10); cout << " So tin chi:"; cin >> a.SoTC; cout << " Gio li thuyet:"; cin >> a.GioLT; cout << " Gio thuc hanh:"; cin >> a.GioTH; cout << "Tu hoc:"; cin >> a.Tuhoc; cin.ignore();

}

//Nhap Théng tin môn học

Trang 12

} b) — Kiểm tra (hàm Main kiểm tra cíc) void Main() { const int spt = 3; MONHOC dsmh[spt]; nhap_Mang(dsmh, spt); return @; c) — Kết quả chạp Hình 2 1 Kết quả thông tin môn „ học 22_ Xuất danh sách môn học a) Chương trình con

0 void xuat_o(MONHOC a);: hỗ trợ xuất một thông tin môn học

gồm: mã môn học, tên môn học, số tín chỉ, giờ lý thuyết, giờ thực hành, tự

học

0 void xuat_Mang(MONHOC af], int n);

Trang 13

cout << " Ma mon hoc:" << a.MaMH << endl; cout << " Ten mon hoc:" << a.TenMH << endl; cout << "So tin chi:" << a.SoTC << endl; cout << " Gio li thuyet:" << a.GioLT << endl; cout << " Gio thuc hanh:" << a.GioTH << endl; cout << " Tu hoc:" << a.Tuhoc << endl;

}

//Xuât thông tin môn học

void xuat_Mang(MIONHOC a[], int n) { cout << " ==========> Danh sach mon hoc: <========-=-' << endl; for (inti = 0; i < n; i++) { xuat_o(a[il); cout << endl;

} }

b) Kiém tra (ham Main kiém tra ctc) void Main()

{

const int spt = 3;

MONHOC dsmh[spt];

nhap_Mang(dsmh, spt); //kiém tra phần xuất

Xuat_Mang(dsmh, spt);

Trang 14

c) Két qua chay

Hình 2.2 Xuất thông tin môn học

2.3 Tìm kiếm thông tin môn học theo mã môn học dùng Liner Search a) Chương trình con

ñ int LinerSearch(MONHOC a[], int n, char x[]): Tim

kiém thông tin môn học theo MaMH

//Dùng LinearSearch để tìm mã môn học int LinearSearch(MONHOC af], int n, char x[])

{

for (inti = 0; i < n; i++)

Trang 15

const int spt = 3;

MONHOC dsmh[spt];

nhap_Mang(dsmh, spt); xuat_Mang(dsmh, spt); char MaMH[10];

cout << "\n Nhap ma mon hoc muon tim: "; cin.getline(MaMH, 11);

/Tìm kiếm MaMH bang linersearch

int i = LinearSearch(dsmh, spt, MaMH); if (i >= 0) { cout << "\n mon hoc bang LinerSearch: < xuat_o(dsmh[i]); > Khong co thong tin < mee ee ee ee LL iW,

„ Hình 2 3 Tìm kiếm mã môn học bằng Lier Search

Trang 16

ñ int BinarySearch(MONHOC a[], int n, char x[]): Tim

kiém thông tin môn học theo MaMH

//Ham tim kiếm BinarySearch theo MAMH

int BinarySearch(MONHOC a[], int n, char x[])

{

int left = 0; int right = ñn - 1;

int mid = (left + right) / 2;

while (left <= right && strcmp(a[mid].MaMH, x) != 0)

{

if (strcemp(x, a[mid].MaMH) < 0) right = mid - 1;

else left = mid + 1; mid = (left + right) / 2; } if (left > right) return (-1); return (mid); } d) Kiémtra (ham Main kiém tra ctc) void Main() { const int spt = 3; MONHOC dsmh[spt]; nhap_Mang(dsmh, spt); xuat_Mang(dsmh, spt); char MaMH[10];

cout << "\n Nhap ma mon hoc muon tim: "; cin.getline(MaMH, 11);

/[Tim Kiém MaMH bang BinarySearch

Ngày đăng: 02/07/2024, 17:27

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w