BO TAI CHINH TRUONG DAI HOC TAI CHINH -MARKETING KHOA CONG NGHE THONG TIN TRƯỜNG ĐẠI HỌC TÀI CHÍNH - MARKETING BÀI TẬP ĐỎ ÁN BÁO CÁO NỘI DUNG GIỮA KÌ NỘI DUNG_CHỦ ĐÈ: CAU TRU
Trang 1BO TAI CHINH TRUONG DAI HOC TAI CHINH -MARKETING KHOA CONG NGHE THONG TIN
TRƯỜNG ĐẠI HỌC TÀI CHÍNH - MARKETING
BÀI TẬP ĐỎ ÁN BÁO CÁO NỘI DUNG GIỮA KÌ
NỘI DUNG_CHỦ ĐÈ:
CAU TRUC THE HIEN THONG TIN CỦA DANH SÁCH
SINH VIEN NHAN DUOC HOC BONG
GVHD: Th.S Nguyén Quéc Thanh
SVTH: Nguyễn Doan Trường
MSSV: 2221004344
Lé6p: 22DHTO01
Trang 2Lời cảm ơn
Lời đầu tiên em xin chân thành cảm ơn nhà trường đã hỗ trợ em hết mình trong công cuộc dạy và học cũng như Thầy, Cô của khoa Công Nghệ Thông Tin thuộc trường Đại học Tài Chính- Marketing đã hướng dẫn và truyền đạt đề giúp em có được môi trường
học tập tốt nhất
Em xin chân thành cảm ơn đến Giảng viên Nguyễn Quốc Thanh, người đã giúp đỡ em giải đáp những thắc mắc trong quá trình học tập và làm đỗ án
Chỉ mới vào đại học kông lâu nên những kiến thức về tiêu luận của em còn hạn chế nên khó tránh khỏi những sai sót Kính mong nhận được sự nhận xét cũng như góp ý, phê bình từ phía Thầy để em có thê hoàn thiện bài tiêu luận hơn những lần tiếp theo
Lời cuối cũng em xin chân thành cảm ơn và kính chúc Thầy một ngày mới thật là tốt lành, nhiêu niêm vui và sức khỏe trong cuộc sông Em xin trân trọng cảm ơn
Trang 3Báo Cáo CTDL>- Nguyễn Đoan Trường
MỤC LỤC
CHƯƠNG l1: GIỚI THIỆU 2 + E2 12E157122111102110 11212121 1212 n ng Hán re ng He no 4
(ch 4
"cố ố ốố cố cố ốc 4
a) _ Thông tin sinh viên cân quản Ìí; - c5 12 1211211111211 1121 1022121 12t no 4
b) _ Cấu trúc dữ liệu hỗ trợ quản lí thông tin sinh viên - 5 SE E1 n2 212tr yeu 4
e) _ Định nghĩa câu trúc sinh viên s22 E2 HH HE t1 221 g2 HH re rau 4
3 Dữ liệu mẫu - ¿22 221221 1112211 nà Hành HH ngu ke 6
4, Cac chite ni nên ((4ăăăăăăăă
CHƯƠNG 2 : CHỨC NĂNG TRÊN DANH SÁCH
1 _ Nhập danh sách thông tin sinh vIÊH - c2 2211223121121 321 1211 11111111015111 012011 111221162811 vky 7 a) Chương trinh €OI L1 c1 21121 112112111111111 111101101515 T15 111 HH TH HH HH Hà he, 7 6 8 Ẽn 10
» ‹ Tra a 11
3 RGGI ccc ceecseseeessssescsssnscesssnecsnssesessesccssssecsnnseesnineesssseeseareseecurcteaneeaniieseuteeesnecen 12
a) Các chức năng d& thare W161 cece C201 21 1211213111111 1151151 19151111111 111 8111151111 1 1111k key 12 b) Các chức năng chưa thực hiện ( không ) 5 - 1022211211 251251 1921111111 11111 811115 t1 tre 12
Trang 4DANH MUC BANG
DANH MỤC HÌNH
HÌnh 2 1 Kết quả test chương trình con nhập/xuẤt ó5 6266 926213421111121112111212111121121 11 2e 12
HÌnh 2 2 Kết quả test chương trình con tìm kiếm 13
Trang 5Báo Cáo CTDL>- Nguyễn Đoan Trường
CHUONG 1: GIOI THIEU
1 Giới thiệu chủ đề
Cấu trúc thể hiện thông tin của danh sách sinh viên được nhận học bồng : Mã số sinh viên, Họ, Tên SV; Khéa hoc; Điểm trung binh và mức học bồng (triệu đồng)
2 Cấu trúc : ( mô tả cầu trúc được yêu cầu, chọn CTDL đề thể hiện, khai báo/định nghĩa câu trúc)
a)
b —
c)
Thông tin sinh viên cân quản lí;
MSSV : mã số sinh viên, là các kí tự số có chiều đài tối đa 5 ký tự
Ho : họ sinh viên, là các kí tự chữ có chiều dài tối đa 10 kí tự
Ten : tên sinh viên, là các kí tự chữ có chiều dải tối đa L0 kí tự
Khoa: là khoá học của sinh viên, là chuỗi các kí tự chữ hoặc chuỗi ký tự SỐ,
tối đa 4 kí tự
DTB : là điểm trung bình của sinh viên, có thể là số nguyên hoặc số thập phân
Hocbong : la số tiền sinh viên nhận được khi đạt học bồng, là chuỗi các ký
tự so
Cấu trúc đữ liệu hỗ trợ quản lí thông tin sinh viên
MSSV : chuỗi tối đa 4 kí tự Ho: chuỗi tối đa 10 kí tự Ten: chuỗi tối đa 10 ký tự Khoa : chuỗi tối đa 4 ký tự DIB : số thực
Hocbong : chuỗi tối đa 10 ký tự Định nghĩa câu trúc sinh viên
struct Sinh_ Vien
{
char MSSV[5], Ho[10], Ten[10], Khoa[4];
char Hocbong [10];
float DTB;
Trang 63 Dữ liệu mẫu ( >= I0 thông tin đối tượng cần quản lý)
Bang 1 1 DU LIEU MAU
4 Các chức năng sẽ xây dựng
Các chức năng trên mảng cấu trúc:
- _ Nhập thông tin sinh viên
- _ Xuất thông tin sinh viên
- Tim th6ng tin sinh vién theo MSSV ( dung Linear Search và Binary Search)
Trang 7CHUONG 2 : CHUC NANG TREN DANH SACH
1 Nhập danh sách thông tín sinh viên
a) Chương trình con
- void nhap_o(Sinh Vien& a): hé trợ nhập thông tin một sinh viên gồm mã số sinh viên, „ họ sinh viên, tên sinh viên, khoá học, điểm trung bình và mức học bồng
- void nhap mang(Sinh Vien af], int n): hé trọ nhập danh sách thông tin sinh vién
Trang 8/ CTC Nhập ô cầu trúc
void nhap o(Sinh Vien&š a)
{
}
cout << "Nhap ma so sinh vien : " << endl;
cin.getline(a.MSSV, 5);
cout << "Nhap ho sinh vien : " << endl;
cin.getline(a.Ho, 10);
cout << "Nhap ten sinh vien : " << endl;
cin.getline(a.Ten, 10);
cout << "Nhap khoa hoc : " << endl;
cin.ignore();
cin.getline(a.Khoa, 4);
cout << "Nhap diem trung binh : " << endl;
cin >> a.DTB;
cout << "Nhap muc hoe bong : " << endl;
cin.ignore();
cin.getline(a.Hocbong, 12);
/ICTC nhap mảng cấu trúc
void nhap mang(Sinh Vien a{[], int n)
{
for (inti =0;1<n; i++)
{
cout << "Nhap sinh vien thu : " <<1 + 1 << endl;
nhap_o(ali]);
cout << endl;
Đề xuất danh sách sinh viên nhận học bông, cần xây dựng 2 chương trình con gồm:
- void xuat_o(Sinh Vien a): hỗ trợ xuất ra màn hình thông tin | sinh viên đã
nhập gồm mã số sinh viên, , họ sinh viên, tên sinh viên, khoá học, điểm trung binh và mức học bông
void xuat_mang(Sinh Vien af], int n): h6 trợ xuất ra màn hình danh sách các
sinh viên nhận học bông đã nhập gôm mã số sinh viên, , họ sinh viên,
- _ tên sinh viên, khoá học, điểm trung binh và mức học bồng
/ICTC xuat 6 cau trúc
void xuat_o(Sinh Vien a)
{
Trang 9Báo Cáo CTDL>- Nguyễn Đoan Trường
cout << "Ma so sinh vien : " << a.MSSV << endl;
cout << "Ho sinh vien : " << a.Ho << endl;
cout << "Ten sinh vien : " << a,Ten << endl;
cout << "Khoa hoe : " << a.Khoa << endl;
cout << "Diem trung binh : " << a.DTB << endl;
cout << "Muc hoc bong : " << a.Hoebong << endl;
}
/CTC xuât mảng câu trúc ( danh sách sinh viên )
void xuat_mang(Sinh Vien af], int n)
{
Cout << ”====~=================== " << endl;
cout << "Danh sach sinh vien : " << endl;
for (inti =0;1<n; i++)
{
cout << "\nThong tin sinh vien thu "<<1i+ 1 << endl;
xuat_o(afi]);
}
cout << endl;
}
Đề thực hiện chức năng tìm kiếm sinh viên nhận được hồng bồng cần xây dựng các chương trình con, cụ thê là LinearySearch và BinarySearch, gồm
- intLinearSearch(Sinh Vien ar[].int n, char x[J): Hỗ trợ tìm kiếm I phần tử
trong mảng theo cách tìm kiếm tuyến tính, cự thê là so sánh phần tử cần tìm với phần tử thứ nhất, thứ 2 của danh sách đến khi tìm được phần tử cần tìm
- int LinearSearchl(Sinh Vien ar[], int n, char x[]): Hỗ trợ tương tự như
LinearSearch nhưng được cải tiến
- int binarySearchString(Sinh Vien an[], char x[] int n): Hỗ trợ tìm kiếm I
phần tử trong mảng sắp xếp theo thứ tự tang băng cách tìm kiếm nhị phân, cụ thé là so sánh phần tử cần tìm với phần tử ở giữa của mảng ( mảng được chia rah ai phan bên trái và phải của phần tử đó ) Nếu chúng không bang nhau, một nửa không chứa mục tiêu sẽ bị bỏ đi Và việc tìm kiếm sẽ tiếp tục ở phần còn lại, một lần nữa lấy phần tử ở giữa được chọn đề so sánh với phần tử cần tìm và
lap lại điều này cho đến khi tìm thấy phần tử cần tìm
// tìm kiếm tuyến tính thông qua MSSV
int LinearSearch(Sinh Vien arr[], int n, char x[])
{
for (int i =0;1<n; i++)
if (stremp(arr[i] MSSV, x) == 0)
Trang 10return 1;
}
return -1;
}
/tảm kiếm tuyến tính cải tiên
int LinearSearch1(Sinh Vien arr[], int n, char x[])
{
inti =0;
while (stremp(arr[i] MSSV, x) !=0 && stremp(arr[n - 1 - 1] MSSV,x ) !
=0 &&i<n/2)
i++;
if (stremp(arr[i] MSSV, x) == 0) return 1;
if (stremp(arr[n - 1 - 1].MSSV, x) == 0) return n- 1-1;
return -1;
}
/ủm kiểm nhị phân thong qua MSSV
int binarySearchString(Sinh Vien arr[], char x[], int n)
t
int lower = 0;
int upper = n - 1;
while (lower <= upper) { int mid = (upper + lower) / 2;
if (stremp(arr[mid].MSSV, x) == 0) return mid;
if (stremp(arr[mid].MSSV, x) < 0) lower = mid + 1;
else upper = mid - 1;
}
return -1;
}
b)Kiếm tra ( hàm main kiêm tra chương trình con )
int main()
t
const int sopt = 3;
Sinh_ Vien dssv[sopt];
nhap mang(dssv, sopt);
xuat_mang(dssv, sopt);
char x[5];
cout << "nhap MSSV can tim: " << endl;
cin.getline(x, 5);
int kq = LinearSearch(dssv, sopt, x);
if (kq !=-1)
cout << "\t\t -KET QUA TIM KIEM -" << endl:
xuat_o(dssv[kq]);
10
Trang 11Báo Cáo CTDL>- Nguyễn Đoan Trường
else cout << "KHONG CO THONG TIN!!";
2 Két qua chay
Hinh 2 1 Kết quả test chương trình con nhập/xuất
sinh v1
tin sinh vì sinh
11
Trang 12HÌnh 2.2 Kết quả test chương trình con tìm kiếm
QUA TIM KIEM -
sinh
a hoc Diem trung
¬ luc hoc
3 Kết luận
a) Các chức năng đã thực hiện
- _ Nhập/xuất đữ liệu trong mảng
- Tim kiém phan tir bang ham LinearSearch va BinarySearch b) Các chức nang chưa thực hiện ( không )
KET THUC NOI DUNG BAO CAO
12