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

Bài tập nhóm giải thuật Ứng dụng trong kinh doanh

12 0 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

Tiêu đề Bài Tập Nhóm Giải Thuật Ứng Dụng Trong Kinh Doanh
Tác giả Cao Thanh Long, Trương Nguyễn Như Quỳnh, Phạm Hồng Dương
Người hướng dẫn Giảng Viên: Nguyễn Phương Nam
Trường học Trường Đại Học Ngân Hàng Thành Phố Hồ Chí Minh
Chuyên ngành Giải Thuật Ứng Dụng Trong Kinh Doanh
Thể loại Bài Tập Nhóm
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 12
Dung lượng 372,57 KB

Nội dung

ĐỀ BÀIViết chương trình quản lý sinh viên sử dụng danh sách liên kết đơn, thông tin mỗi sv gồm: Mã SV – kiểu số nguyên, Họ tên – kiểu chuỗi tối đa 40 kí tự, Điểm trung bình – kiểu số thự

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO NGÂN HÀNG NHÀ NƯỚC VIỆT NAM

TRƯỜNG ĐẠI HỌC NGÂN HÀNG THÀNH PHỐ HỒ CHI MINH

BÀI TẬP NHÓM GIẢI THUẬT ỨNG DỤNG TRONG KINH DOANH

GIẢNG VIÊN: NGUYỄN PHƯƠNG NAM

Mã lớp học phần: ITS724_2221_1_D07

1 | P a g e

Trang 2

Mục Lục

ĐỀ BÀI 4

Màn hình chạy chương trình danh sách sinh viên: 5

Diễn giải và trình bày 9

Chức năng 3: Xuất thông tin các sv có điểm TB>=5 9

Chức năng 4: Đếm có số sinh viên có điểm trung bình <5 và in danh sách này 9

Chức năng 5: Sắp xếp danh sách tăng dần theo điểm trung bình 10

Chức năng 6: Xóa toàn bộ danh sách (có hỏi trước khi xóa) 11

2 | P a g e

Trang 3

3 | P a g e

BẢNG PHÂN CÔNG

HOÀN THÀNH

1 Cao Thanh

Long 030238220116

 Tổng hợp code và phần giải thích của nhóm

 Phụ trách tác vụ sắp xếp theo điểm trung bình, tác vụ xóa toàn bộ danh sách

100%

2 Nguyễn NhưTrương

Quỳnh

03023822021 7

 Phụ trách tác vụ tạo danh sách, xuất danh sách sinh viên, xuất thông tin sv có điểm tb >=5

100%

3 Phạm HồngDương 030238220032

 Giải thích các tác vụ 100%

Trang 4

ĐỀ BÀI

Viết chương trình quản lý sinh viên (sử dụng danh sách liên kết đơn), thông tin mỗi sv gồm:

Mã SV – kiểu số nguyên, Họ tên – kiểu chuỗi tối đa 40 kí tự, Điểm trung bình – kiểu số

thực Chương trình có thiết kế menu chọn lựa gồm các chức năng sau:

1 Tạo 1 danh sách gồm n sinh viên (n nhập từ bàn phím, thông tin của mỗi sv nhập từ bàn phím)

2 Xuất danh sách sinh viên

3 Xuất thông tin các sv có điểm TB>=5

4 Đếm có số sinh viên có điểm trung bình <5 và in danh sách này

5 Sắp xếp danh sách tăng dần theo điểm trung bình

6 Xóa toàn bộ danh sách (có hỏi trước khi xóa) Yêu cầu:

- Đại diện nhóm nộp trên Classroom các file sau: File chương trình cpp, file báo cáo docx  Tên file chương trình đặt theo quy tắc: Lớp_BTN_Họ tên sinh viên đại diện.cpp

- Lưu ý: Không gõ dấu tiếng Việt

Ví dụ: GE16_BTN_Nguyen_Van_Anh.cpp

• Tên báo cáo đặt là: Baocao.docx, SV ghi thông tin các thành viên trong nhóm:

Họ tên, MSSV và bảng phân công công việc, tỷ lệ đóng góp của từng thành viên

• Nội dung báo cáo: Diễn giải và trình bày mục đích, ý nghĩa của các chức năng

3, 4, 5, 6

- Có chú thích, diễn giải cho các câu lệnh (nếu có)

- Cú pháp rõ ràng, dễ đọc, không có lỗi cú pháp

- Kết quả chính xác

- Không sao chép bài của các nhóm

-Hết -4 | P a g e

Trang 5

Màn hình chạy chương trình danh sách sinh viên:

5 | P a g e

Trang 6

6 | P a g e

Trang 7

7 | P a g e

Trang 8

8 | P a g e

Trang 9

Diễn giải và trình bày

Chức năng 3: Xuất thông tin các sv có điểm TB>=5

void GreaterThan5(NodeSV phead)

{

NodeSV p=phead;

if(p==NULL)

printf("\n Danh sach bi rong\n");

for(p=phead;p!=NULL;p=p->next) {

if (p->info.dtb>=5){

printf("\n Sinh vien %s co diem trung binh >=5\n",p->info.hoten);

Xuat1SV(p->info);

} }

}

-Mục đích , ý nghĩa: Tìm kiếm những sinh viên có điểm trung bình >=5 và in ra thông tin

của sinh viên đó

-Giải thích:

+Khởi tạo 1 danh sách liên kết p nhận giá trị phead Kiểm tra xem p có rỗng hay không Nếu rỗng thì in ra màn hình “Danh sách bị rỗng”. 

+Ngược lại chạy vòng lặp for với điểm đầu phead và chạy đến cuối danh sách Điều kiện info.dtb của sinh viên >=5 Thỏa điều kiện sẽ xuất ra thông tin sinh viên đó

Chức năng 4: Đếm có số sinh viên có điểm trung bình <5 và in danh sách này

void LessThan5(NodeSV phead)

{

int i=0;

NodeSV p=phead;

if(p==NULL)

printf("\n Danh sach bi rong\n");

9 | P a g e

Trang 10

for(p=phead;p!=NULL;p=p->next) {

if (p->info.dtb <5) {

Xuat1SV(p->info);

i++;

} }

printf("\nSo sv co diem TB <5 la : %d",i);

}

-Mục đích, ý nghĩa: Đếm số lượng sinh viên có điểm trung bình <5.

-Giải thích:

+ Khởi tạo danh sách liên kết p nhận giá trị của phead ,khai báo biến i kiển integer và gán cho i giá trị đầu = 0

+ Kiểm tra xem p có rỗng hay không Nếu rỗng thì in ra màn hình “Danh sách bị rỗng” + Ngược lại chạy vòng lặp for với điểm đầu phead và chạy đến cuối danh sách Điều kiện info.dtb của sinh viên <5 Thỏa điều kiện sẽ tăng biến đếm i lên 1 đơn vị và in ra thông tin sinh viên đó.Cuối cùng, số lượng sinh viên có điểm trung bình dưới 5 sẽ được in ra màn hình

Chức năng 5: Sắp xếp danh sách tăng dần theo điểm trung bình

void SortingAsc(NodeSV &phead)

{

NodeSV p, q;

for (p = phead ; p->next!=NULL;p=p->next){

for(q=p-> next ; q!=NULL;q=q->next){

if(p->info.dtb>q->info.dtb) {

SV x=p->info;

p->info=q->info;

q->info=x;

} }

}

}

10 | P a g e

Trang 11

-Mục đích, ý nghĩa:Sắp xếp danh sách theo thứ tự tăng dần của điểm trung bình (dtb) của các sinh viên

-Giải thích:

Khởi tạo 1 danh sách liên kết với p nhận giá trị phead và q là p->next của p Chạy vòng lặp for bên ngoài là p=phead và for bên trong là q=p->next để lặp vòng lặp đến cuối danh sách Điều kiện vòng lặp là điểm TB của p > điểm TB của q (tức điểm TB của sinh viên đứng trước lớn hơn điểm TB sinh viên đứng sau), ta sẽ thực hiện phép hoán vị trí của hai sinh viên này Và cứ lặp đi lặp lại như vậy ta sẽ thu được kết quả là một danh sách tăng dần điểm trung bình của sinh viên

Chức năng 6: Xóa toàn bộ danh sách (có hỏi trước khi xóa)

void ClearList(NodeSV &pHead){

NodeSV p;

while (pHead!= NULL){

p = pHead;

pHead = p->next;

delete p;

}

}

int main ()

char kt;

printf("\n Ban co muon xoa toan bo danh sach khong (Y/N):");

scanf(" %c",&kt);

while(kt != 'Y' && kt != 'N' ) {

printf("\n Ban da nhap sai cau lenh, vui long chon (Y/N):"); scanf(" %c",&kt);

}

if (kt == 'Y')

{

11 | P a g e

Trang 12

printf("\n Danh sach da duoc xoa");

XuatDS(phead);

}

else printf( "Tam biet");

break;

-Mục đích, ý nghĩa: Sử dụng để xóa toàn bộ các phần tử trong danh sách liên kết.

-Giải thích:

+Sử dụng một vòng lặp while để duyệt qua từng phần tử của danh sách Tại mỗi vòng lặp, phần tử hiện tại của danh sách (được trỏ đến bởi p) sẽ được lưu trữ vào một biến tạm Sau

đó, con trỏ đến phần tử đầu tiên của danh sách liên kết (pHead) sẽ được cập nhật để trỏ đến phần tử tiếp theo của danh sách (pHead = p->next) Cuối cùng, hàm xóa phần tử đã được lưu trữ trong biến tạm và vòng lặp được tiếp tục cho đến khi danh sách được xóa hoàn toàn +Tạo một biến kí tự ‘kt’ chỉ nhận giá trị “Y” hoặc “N”, tương đương với đồng ý xóa hay không (yes/no)

+Nếu biến ‘kt’ nhận giá trị Y -> đồng ý xóa danh sách -> Gọi đến hàm xóa “ClearList” -> sau đó xuất kết quả là danh sách đã xóa

Nếu biến ‘kt’ nhận giá trị N  chỉ in ra “Tam biet”

12 | P a g e

Ngày đăng: 11/12/2024, 16:00

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

TÀI LIỆU LIÊN QUAN

w