LOI MO DAU
"Dau tiên, em xin gửi lời cảm ơn chân thành đến Trường Đại học Tài chính Marketing dd dua mén hoc Tin học đại cương vào trương trình giảng dạy Đặc biệt, em xin gửi lời cảm ơn sâu sắc đến giảng viên bộ môn - Cô Nguyễn Thanh Bình đã day dé, truyền đạt những kiến thức quỷ báu cho em trong suốt thời gian học tập vừa qua Trong thời gian tham gia lớp học Cơ sở lập trình của cô, em đã có thêm cho mình nhiều kiến thức bồ ích, tình thân học tập hiệu quả, nghiêm túc Đây chắc chắn sẽ là những kiến thức quỹ báu, là hành trang đề em có thê vững bước sau này
Bộ môn Cơ sở lập trình là môn học thủ vị, vô cùng bồ ích và có tính thực tễ cao Đảm bảo cung cấp đủ kiến thức, gắn liền với nhu cầu thực tiễn của sinh viên Tuy nhiên, do vốn kiến thức còn nhiều hạn chế và khả năng tiếp thu thực tỄ còn nhiều bỡ ngỡ Mặc dù chúng em đã cô gắng hết sức nhưng chắc chắn bài tiểu luận khó có thể tránh khỏi những thiếu sót và nhiều chỗ còn chưa chính xác, kính mong cô xem xét và góp ÿ đề bài tiêu luận của em được hoàn thiện hơn
Trang 3MỤC LỤC
00006.000.758 ` 2 PHAN 1 5
1 Liệt kê các hàm có trong bài 5
2 Chức năng và nhiệm vụ của các hàm wd
0W: 1 nh ED ES Ente en neeen ees 5
b) — HồồM XUỔI In HH HH trai 6
206/12 nh aăăăăă đ 7
6z n n nh he cu 9
e) — Hàm tìm kIẾm ăà nh HH HH HH gu te 10 ƒ) — Hàm tính điểm trung bÌHh nh ra Il 8) — Hàằm sắp XẾp cà nh HH ng ra ll
h) Ham xép Lot HOC Luteo ra Đa 12
PHAN 2 ccsccsssescosscssvscseseessssecessecsavecesveccessccsssecasseessscsesseseaseceaseesseees 14
1 Liệt kê các hàm có trong bài 14
2 Chức năng và nhiệm vụ của hàm 14
JNNri T ;.nẠaa a 14 b) — HồằMm XUỔI ọ TT HH HH HH HH na 15 C) Hàm ma trận ta giác HÊH ch nh nh Hà khao 15
JAN:r nh ca 16
"NT 8 .a.ăốăăăă 17
f) Hàm tính tổng các dòng và sắp xếp các tổng theo thứ tự tăng dân IS
Trang 4PHAN 1
1 Liệt kê các hàm có trong bai
- - Hàm nhập
- Hàm xuất - Hàm chèn - - Hàm xóa - Ham tim kiém
Trang 5o_ Năm (kiểu số nguyên) o_ Khoa (kiểu ký tự) o_ Điểm môn | (kiêu sô thực) o_ Điêm môn 2 (kiêu sô thực) - Output: Két qua hién thi trên màn hình - Code ham:
void nhapIsv(SV& s)
{
cout << "ID: "; cin >> s.stt; cout << "Ho va ten: "; fflush(stdin); cin.ignore(); gets s(s.hten); cout << "Nhap ngay sinh: "; cin >> s.ngaysinh.ngay; fflush(stdin); cout << "Nhap thang sinh: "; cin >> s.ngaysinh.thang; cout << "Nhap nam sinh: "; cin >> s.ngaysinh.nam; cin.ignore();
Trang 6g Manh Nha Vy mon b) Ham xudt void xuatlsv(S V& s): Hàm xuất thông tin sinh viên - Input: o_ Số thứ tự (kiểu số nguyên) o_ Họ vả tên (kiêu ký tự) o_ Ngày (kiểu số nguyên) o_ Tháng (kiểu số nguyên) o_ Năm (kiểu số nguyên) o_ Khoa (kiểu ký tự) o_ Điểm môn I (kiểu số thực) o_ Điểm môn 2 (kiểu số thực)
- Output: Xuat thong tin sinh viên ra màn hình - Code ham:
Trang 7cout << "ID: " << s.stf;
cout << "\nHo va ten: " << s.hten;
cout << "\nNegay sinh: " << s.ngaysinh.ngay <<"/"<< sngaysinh.thang <<"/" << s.ngaysinh.nam;
Trang 8o_ Họ và tên (kiêu ký tự)
o_ Ngày (kiểu số nguyên) o_ Tháng (kiểu số nguyên) o_ Năm (kiểu số nguyên) o_ Khoa (kiểu ký tự) o_ Điểm môn I (kiểu số thực) o_ Điểm môn 2 (kiểu số thực) - Output: Két qua hién thi trên màn hình - Code ham:
void insert(S V al], int& n)
{
SVs; int k;
cout << "\n Nhap thong tin Sinh Vien
Trang 9} for (int i=n- 1:i>=k:i-) { afi + 1] = afi]; } a[k] = s;
n++; ,
couf << "\n THONG TIN SINH VIEN
DUOC THEM VAO nh
Trang 10Tình 1: Nhập thông tin sinh viên cần chèn
mon I mon
vì
THONG TTN STNH TEN CAC SINH VIEN DUOC THEM
tin sinh n thu 1
Trang 11int k; cout << "\n Xoa sinh vien "<< endl; cout << "\nNhap ID sinh vien muon xoa: "; cin >> k; while (k <0 || k >n) { cout << "VUI LONG NHAP LAI ID MUON XOA: "; cin >> } for (int i= 0; i <n; i++) { if (a[i].stt =k) {
for (int j =i; j <n; j++)
{
aly] = aly + 1];
couf << "\n THONG TIN SINH VIEN
SÂU KHI XÓA "; ,
xuat(a, n);
Trang 12Xoa sinh vien
Nhap ID sinh vien muon xoa: 2
THình 3: Nhập 1D sinh viên muốn xóa
TIN SINH VIEN SAU KHI XOA sinh vien thu 1 Manh Nha Vy 2003 thong tin Die Die Gioi Thong tin sinh vi Van A 5 / 2003 thong tin Dees mele
Trang 13cout << "\n Tim sinh vien "<< endl; cout << "\nNhap ten sinh vien muon tim: "; cin >> ten; inti=0; while (i<n && _stricmp(a[i]-hten, ten) != 0) i++; if i <n) { cout << "\nCO TRONG DANH SACHin"; xuat | sv(a[i]); } else
cout << "\nKHONG CO TRONG DANH SACH";
Tim sinh vien lhap ten sinh vien muon tim: Nguyen Van B KHONG CO TRONG DANH SACH
/)_ Hàm tính điểm trung bình
void DIB(SV& s): Tính điểm trung bình - _ Input: Điểm của các sinh viên - Output: Két qua hién thị trên màn hình - Code ham:
void DTB(SV& s)
{
Trang 14s.dtb = (s.monl + s.mon2) / 2; cout << "\nDTB: " << s.dtb;
ong Manh Nha Vy
)
he thong tin
8) Hàm sắp xếp
void tangdan(SV af], int na): Sắp xếp điểm trung bình - _ Input: Sắp điểm trung bình đã tính
- Output: Hién thi két qua trén man hinh - Code ham:
void tangdan(SV al], int n)
{
cout << "\n\n Diem trung binh tang
Trang 15if ((a[i].dtb) > (alj].dtb)) {
s = ali]; ali] = aj]; aj] = s;
}
xuat(a, n);
1 cua sinh vie Diem trung binh tang
Thong tin sinh vier
Thong tin sinh vien thu 2
h) Ham xép loại học lực
void rating(SV& s): Xép loại học lực
Trang 16- _ Input: Điểm trung bình đã tính - Output: Hién thi két qua trén man hinh - Code ham: void ratine(SV& s) { cout << "\nXep loai: "; if (s.dtb >= 8.0) cout << "Gioi"; else
if (s.dtb >= 6.5) cout << "Kha"; else
if (s.dtb > 5.0) cout << "Trung Binh"; else
cout << "Yeu";
Trang 17va ten:
)
sinh: 3 Cong nị
mon mon
Trang 18PHẢN 2 1 Liệt kê các hàm có trong bài Hàm nhập Hàm xuất Hàm xuất ma trận tam giác trên Hàm chèn Hàm xóa Hàm tính tổng dòng Hàm sắp xếp dòng
2 Chức năng và nhiệm vụ của hàm
4a) Hàm nhập
void nhapMT(int a[][cot], int n, int m): Ham nhap ma tran - Input:
o Nhap sé dong o_ Nhập số cột o_ Nhập các phần tử vào - Output: Hién thi két qua trén man hinh - Code ham:
void nhapMT(int a[][cot], int n, int m) for (int 1 = 0; 1 <n; i++)
for (int J = 0; 4 <m; j++)
cout <<" a[" <<i<<"]["<<j<<"]:";
cin >> afi] Lj]: }
Trang 19
b)_ Hàm xuất void xuatMT(int a[][cot], int n, int m); Ham xuất ma trận - Input: o Số dòng o Số cột o_ Nhập các phần tir - Output: Hién thi két qua trén man hinh - Code ham: void xuatMT(int a[][cot], int n, int m) for (int 1 = 0; 1 <n; i++) for (int J = 0; 4 <m; j++) cout << afiJ] <<" "; cout << endl;
c) Ham ma trén tam giác trên
void MTT(int a[][cot], int n, int m); Dua vé ma tran tam giác trên - Input: Phai co ma trận vuông
- Output: Hién thi két qua trén man hinh - Code ham:
void MTT(int a[][cot], int n, int m) if (n == m)
cout << "\n Day la ma tran vuong cap: " << n; for (int 1 = 0; 1 <n; i++)
for (int J = 0; 4 <m; j++)
if (j <i) a[]L] =0: cout << endl;
}
Trang 20couf << "###**###### MA TRAN TAM GIAC TREN + #***#% %#Wn": xuatMT(a, n, m); } else cout << "\n Khong phai la ma tran vuong”; cout << "\n => Khong co ma tran tam giac tren\n"; la ma tran vuong **xx*** MA TRAN T d) Ham xóa void xoa(int a[][cot], int& n, int m): X6a | dong trén ma tran - Input: Mot ma trận - Output: Hien thi ket qua trén màn hình - Code ham: void xoa(int a[][cot], int& n, int m) int k; cout << VU fe ae fe oh ae SE fe oh ae fe 2 fe oh ae SE 3 oh ae fe oi ae ie 2 fe 2 ae ie 2 fe oi ae aie oe fe oi ae ie 2 ep tt cout << "\n VI TRI DONG CAN XOA: "; cin >> k; for (int 1 =k; 1 <= n; i++) for (int J = 0; ) <= m; j++) { afi - 1]G) = afb): }
n :
,
Trang 21}
cout << "\n MA TRAN SAU KHI XOA: \n";
xuatMT(a, n, m);
TAM GIAC TREN *********
VI TRI DONG CAN XOA: MA TRAN SAU KHI XOA: e) Hàm chèn void chen(int a[][cot], int& n, int m): Chén them | dong vao ma tran - Input: Mot ma trận - Output: Hién thi két qua trén man hinh - Code ham: void chen(int a[][cot], int& n, int m) int k; 41 ake of ake fe afe afe af af fe afe afe ofc aft fe afe afe aft aft fe afe afe ale afe af aft afc afe afe af aft af afe afe af oft of afe af of ok ok £\ vả cout << \n"; cout << "\n VI] TRI DONG CAN CHEN: "; cin >> k; while (k <0 || k >n) cout << "VUI LONG NHAP LAI VI TRI: "; cin >> k; } for (int1=n; 1 >= k; 1 ) for (int J = 0; 4 <m; j++)
a[]II =alï - 1D): }
n+;
}
for (int J = 0; 4 < 1m; j++)
Trang 22{ cout << "Nhap phan tu cua cot ” << J << "; ": cín >> a[k][]: } cout << "\n MA TRAN SAU KHI CHEN: \n"; xuatMT(a, n, m); MA TRAN TAM GIAC TREN rs YQ VI X ( i X
TRI DONG CAN XOA-
TRAN SAU KHI XOA:
E 2
VI TRI DONG CAN Nhap phan tu cua Nhap phan tu cua Nhap phan tu cua KHI
?)_ Hàm tính tổng các dòng và sắp xếp các tổng theo thứ tự tăng dân void tinhtong(int a[][cot], int m, int n); Tinh tong các dòng và sắp xếp theo thir ty tang dan
- Input:
o_ Là một ma trận
o_ Tính tổng các dòng trên ma trận - Output: Hién thi két qua trén man hinh - Code ham:
void tinhtong(int a[][cot], int m, int n) inti=0;
int tong = 0;
Trang 23int aa[20]; int b = 0; if (n <m || n == m)
while (i <=n && 1 <m)
{
for (int J = 0; 4 <m; j++) tong += a[1][]]: aa[b] = tong;
bt;
tong = 0;
it;
} }
else
while (<n && 1<m)
{
for (int J = 0; 4 <m; j++) tong += a[1][]]: aa[b] = tong;
bt;
tong = 0;
it;
} }
cout << WY ale ofe ake fe afe afe af af fe afe afe afc af fe afe afe aft aft fe afe afe ale afe af aft fe afe afe af aft af afe afe afc aft afc afe afe oft of ak ae tt
cout << "\nTONG CAC DONG LA: "; for (inti =0;1<b; i++)
{
Trang 24aalI] = aall]; aal1] = phu;
} } } cout << 5 cout << 5 for (int 1 = 0; 1 <b; i++) { cout << aa[i] <<"; dong: 3 cot: 3 ư w o> Sh i lt) i}
Day la ma tran vuong cap: 3
xxxxxxx*** MA TRAN TAM GIAC TREN ********%
e 7 2 e @ 6
VI TRI DONG CAN XOA: 2 MA TRAN SAU KHI XOA: 5
VI TRI DONG CAN CHEN: Nhap phan tu cua cot @:
Nhap phan tu cua cot 2: MA TRAN SAU KHI CHEN:
St ttet et et eset ses CS SSeS + See te Ste SSeS eS te ONG CAC DONG LA: 12 6 15
Str tet et ete ser +e +o + oC Se SPS sete SSeS eS eS eS tS ONG CAC DONG SAU KHI SAP XEP LA: 6 12 15
Trang 25TÀI LIỆU THAM KHẢO
Phạm Văn Ất, Ngôn ngữ lập trình C++, NXB Khoa học và kỹ thuật Stroustrup, The C++ Programming Language, 4° Fidition
._ Trần Đan Thư, Lập trình C (tập L và tập 2) NXB đại học quốc gia thành phố Hỗ Chí Minh
Joel Adam & Larry Nyhof, C++ An Introdution to Computing, 3°-Edition