NOI DUNG 3: STRUCT Câu 1: Dịnh nghĩa kiểu dữ liệu sinh viên, thông tin của mỗi sinh viên gồm: mã sinh viên họ tên giới tính x: nữ, y: nam ngày sinh gồm ngày, tháng và năm lớp chuỗi 7 kí
Trang 1BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP HỎ CHÍ MINH
FÀ
J = UNIVERSITY OF
HOCHIMINH CITY LAB REPORT EXERCISES
INDUSTRIAL
KY THUAT LAP TRINH
Trang 2NOI DUNG 3: STRUCT
Câu 1: Dịnh nghĩa kiểu dữ liệu sinh viên, thông tin của mỗi sinh viên gồm: mã sinh viên
họ tên giới tính (x: nữ, y: nam) ngày sinh (gồm ngày, tháng và năm) lớp (chuỗi 7 kí tự với
2 ký tự đầu là năm học, 1 kí tự tiếp theo là bậc học (D: đại học,C: cao đăng), 2 kítự tiếp
theo là ngành học,điềm trung bình
-Viết chương trình gồm các hàm thực hiện:
a Nhập danh sách sinh viên
b Xuất danh sách sinh viên
c Xuất các sinh viên có điểm trung bình >5
d Xuất danh sách sinh viên thuộc ngành công nghệ thông tin
e Đếm số lượng sinh viên nữ
£ Xuất các sinh viên có điểm trung bình cao nhất
ø Thêm một sinh viên mới vào cuối danh sách
h Tìm sinh viên có mã là X Nếu tìm thấy hãy xoá sinh viên đó khỏi đanh sách
i Sắp xếp đanh sách tăng theo điềm trung bình
void nhapIsv(SV &a){
printf("nhap ma so sinh vien: "); scanf("%d",&a.mssv);
printf("nhap ho ten sinh vien: "); fflush(stdin); gets(a.name);
printf("nhap gioi tinh(X: nu/Y: nam): "); fflush(stdin); gets(a.gioitinh);
~9~
Trang 3printf("nhap ngay sinh: ");
scanf("%od/%d/%d",&a.ngaysinh.ngay,&a.ngaysinh.thang,&a.ngaysinh.nam);
printf("nhap lop: "); fflush(stdin); gets(a.lop);
printf("nhap diem trung binh: "); scanf("%of",&a.diemtb);
}
void xuatl sv(SV a){
printf(" Yed\t%os\t%os\tYod/Yod/Yod\t%os\t% 1 f\
n",a.mssv,a.name,a.gioitinh,a ngaysinh.ngay,a.ngaysinh.thang,a.ngaysinh.nam,a.lop,a.die mtb);
Trang 5void hoanvi(SV &a,SV &b){
Trang 6nhap
vao thong tin sinh vien thu 1
ma so sinh vien: 123
ho ten sinh vien: Pham Hoa: Quyen
gioi tinh(X: nu/Y: nam): Y
ngay s
Ley
» diem trung binh: 9
vao thong tin sinh vien thu 2
ma so sinh vien: 345
› ho ten sinh vien Thu Ha
0 gioi tinh(X: nu/ nam)
ngay sinh: 12/3/2065
lop: 24DKT
diem trung binh: 8
danh sach sinh vien
cac sinh vien co diem trung binh ton hon 5
Le Thu Ha 4 12/3/2005 24DKT
danh sach sinh vien thuoc nganh cong nghe thong tin
ong sinh vien nu (X) co trong danh sach la: 1
cac sinh vien co diem trung binh cao nhat la:
thong tin sinh vien can them vao cuoi danh sach
> ma so sinh vien: 789
ho ten sinh vien: Phan Van Quan
Pp gioi tinh(X: nu/Y: nam)
yj
ngay sinh: 3 2005
lop: 24DIT
diem trung binh: 8
danh sach sinh vien sau khi them:
Le Thu Ha X 5 24DKT 8.0
a sinh vien can tim: 345
sach sinh vien sau khi xoa
Pham Hoang Quyen U 3/11/2065
Phan Van Quan Y 3/3/2005 24DIT
Trang 7Câu 2 Viết chương trình quản lý các bưu kiện của bưu điện, sử dụng mảng một chiều đề lưu đanh sách các bưu kiện Thông tin mỗi bưu kiện gồm: mã bưu kiện, tên người gửi, tên người nhận, trọng lượng, ngày gửi (ngày, tháng, năm), nội dung bưu kiện, đơn giá gui
-Chương trình có các chức năng sau:
a Nhập thông tin của các bưu kiện
b Xuất thông tin của các bưu kiện
c Thêm một bưu kiện vào danh sách
d Sắp xếp đanh sách các bưu kiện theo mã bưu kiện
e Tính giá trị của mỗi bưu kiện biết giá trị = trọng lượng x đơn giá gửi
£ Đếm số lượng bưu kiện có trọng lượng lớn nhất
Trang 8DATTE ngaygu1;
char noidung[30];
float dongia;
bs
void nhap|bk(BK &a){
printf("nhap ma buu kien: "); scanf("%d",&a.mbk);
printf("nhap ten nguoi gui: "); fflush(stdin); gets(a.namegui);
printf("nhap ten nguoi nhan: "); fflush(stdin); gets(a.namenhan);
printf("nhap trong luong: "); scanf("%f",&a.trongluong);
printf("nhap ngay gui: ");
scanff"%d/%d/3%d”,&a.ngaygu1.ngay,&a.ngaygu1.thang,&a.ngayguI.nam);
printf("nhap noi dung buu kien: "); fflush(stdin); gets(a.noidung);
printf("nhap don gia: "); scanf("%f",&a.dongia);
}
void xuatl bk(BK a){
printf(" Yed\t%os\t%os\t% 1 f\t%od/Yod/Yod\t%os\t% 1 f\
n",a.mbk,a.namegui,a.namenhan,a.trongluong,a.ngaygui.ngay,a.ngaygui.thang,a.ngay gui.nam,a.noidung,a.dongia);
Trang 12thong tin buu kien 1
ma buu kien: 444
ten nguoi gui: quyen
ten nguoi nhan: nam
quyen nam 8.0 3/3/2061 qua sinh nhat 12.0
vi tri ban can them buu kien moi:
thong tin buu kien moi:
ma buu kien: 666
ten nguoi gui: 3
ten nguoi nhan: nam
i cua buu kien thu 1 la: 96.000000
i cua buu kien thu 2 la: 72.000000
so Luong buu kien lon nhat la: 1 co trong Luong la: 9.0
Trang 13
Câu 3: Viết chương trình quản lý các thuê bao điện thoại, sử dụng màng l chiều đề lưu danh sách các thuê bao Thông tin mỗi thuê bao gồm: mã thuê bao, họ tên chủ thuê bao, ngày đăng ký (ngày tháng năm), số điện thoại, loại thuê bao (TT: thuê bao trả trước, TS: thuê bao trả sau), thời gian gọi nội mạng, thời gian gọi ngoại mạng (đơn vị là phút) -Chương trình có các chức năng sau:
a Nhập thông tin của các thuê bao
b Xuất thông tin của các thuê bao
c Thêm một thuê bao vào danh sách
d Sắp xếp đanh sách các thuê bao theo mã thuê bao
e Tìm thuê bao theo họ tên chủ thuê bao
£ Xuất các thuê bao theo loại (loại nào là do người dùng chọn)
ø Xuất các thuê bao đăng kí sau năm 2020
h Tính cước phí của mỗi thuê bao biết giá cước gọi nội mạng là 1500đ, ngoại mạng là
Trang 14void nhap|Itb(TB &a){
printf("nhap ma thue bao: "); scanf("%d",&a.mtb);
printf("nhap ho ten thue bao: "); fflush(stdin); gets(a.name);
printf("ngay dang ki: ");
scanf("%od/%d/%d" ,&a ngaydk.ngay,&a.ngaydk.thang,&a.ngaydk.nam);
printf("nhap loai thue bao(TT/TS): "); fflush(stdin); gets(a.loaitb);
printf("thoi gian goi noi mang: "); scanf("%f",&a.noimang);
printf("thoi gian goi ngoai mang: "); scanf("%of" ,&a ngoaimang);
}
void xuatltb(TB a){
printf" Yed\t%s\t%od/%od/Y%od \tos\t% Lf\t% 1f\
n",a.mtb,a.name,a.ngaydk ngay,a.ngaydk.thang,a.ngaydk.nam,a.loaitb,a.noimang,a.ngoai mang);
Trang 15void nhap(TB *a,int n){
Trang 20KET QUA:
tho
lu ella)
nhap ma thue bao: 99
nhap ho ten thue bao
ngay dang ki: 4/4
nhap Loai thue
nhap ma thue la)
nhap ho ten thue bao
///thue bao sau khi duoc
xuat thong tin thue bao
nhi 262
thong tin thue ba
quan 4/4/2
thong tin thue ba:
thue bao dang kỉ
quan 4/
phi noi mang cua thue
phi noi mang cua thue
cuoc phi noi mang cua thue
PCr mata + tm set
bao
Trang 21
Câu 4: Việt chương trình quan lý sách cho một cửa hàng sách, sử dụng mảng | chiều
đề lưu các cuôn sách; thông tin của môi cuôn sách gôm: mã sách, tên sách, tên tác giả, loại sách (gôm 2 loại Tự nhiên và Xã hội), năm xuat ban, giá tiên, sô lượng
Chương trình có các chức năng sau:
a Nhập thông tin các cuốn sách
b Xuất thông tin các cuốn sách
c Thêm 1 cuốn sách
d Tính tông thành tiền tất cả cả các cuốn sách
e Sắp xếp các cuốn sách theo mã sách
£ Tìm sách theo tên sách
g Xuất các cuốn sách có năm xuất bản trước năm 2000
h Đếm số lượng sách có giá lớn hơn 50000,
1 Xuất các cuốn sách theo loại (xuất loại nào là đo người dùng chọn)
Trang 22void nhap| book(BOOK &a){
printf("nhap ma sach: "); scanf("%d",&a.masach);
printf("nhap ten sach: "); fflush(stdin); gets(a.namesach);
printf("nhap ten tac gia: "); fflush(stdin); gets(a.nametacgia);
printf("nhap loai sach(tu nhien/xa hoi)): "); fflush(stdin); gets(a.loaisach); printf("nam xuat ban: "); scanf("%d",&a.namxb.nam);
printf("nhap gia tien: "); scanf("%f",&a.giatien);
printf("nhap so luong: "); scanf(”%f',&a.soluong);
Trang 24}
if{timkiem!=-1) {
Trang 25printf("cuon sach can tim la:\n"); }
for(int 1=0;1<n;1+-+){
if(strstr(a[i].namesach, Y)!=NULL){ xuat 1 book(a[i]);
}
int dem(BOOK *a,int n){
int dem=0;
for(int 1=0;1<n;1+-+){
Trang 28nhap thong tin cuon sach
nhap ma sach: 123
nhap ten sach: ac qu
nhap ten tac gia: Pham
nhap loai sach(tu nhien
nhap loai sach(tu nhien
nam xuat ban: 1997
nhap gia tien: 49969
tong thanh tien ta
///thong tin ch sau khi duoc s
cac cuon sach co nam xuat ban truoc
tam Phan van tai xa hoi
Pham Hoang CÓ
co gia hon
nhap cuon sach ban xuat(
nhien
gioi han o Hoai Nam tu nhien
Trang 29
Câu 5 Viết chương trình cài đặt một mảng các cấu trúc lưu trữ thông tin sách
trong thư viện, bao gồm: tựa sách, ISBN, tên tác giả, tên nhà xuất bản, ngày tháng năm nhập sách (là ngày viết phiếu) Sau đó, nhập vào một chuỗi ISBN, tìm và in ra thông tin sách tương ứng nều có
void nhap1book(BOOK &a){
printf("nhap tua sach: "); fflush(stdin); gets(a.tuasach);
printf("ISBN: "); fflush(stdin); gets(a.ISBN);
printf("nhap ten tac gia: "); fflush(stdin); gets(a.nametacgia);
printf("nhap ten nha xuat ban: "); fflush(stdin); gets(a.namenhaxuatban);
~99~
Trang 30printf("nhap ngay thang nam: "); scanf("%d/%d/%d",&a.ngaythangnam.ngay,&a.ngaythangnam.thang,&a.nga
Trang 31KẾT QUẢ:
Trang 32thong tin vao sach thu 1:
tua sach: tham hiem
23713341
ten tac gia: Pham Hoang Quyen
ten nha xuat ban: Truong Van Nam
ngay thang nam: 93/11/2095
thong tin vao sach thu 2:
tua sach: Quy Du
2323441
ten tac gia: Phan Van Quan
ten nha xuat ban: Nguyen Van Chau
ngay thang nam: 03/11/2020
hiem 23713341 Pham Hoang Quyen Truong Van Nam 3/11/2005
Quy Du 2323441 Phan Van Quan Nguyen Van Chau 3/11/2020
Nhap ma ISBN can tim: 23713341
thong tin cuon sach can tim neu co:
tham hiem 23713341 Pham Hoang Quyen Truong Van Nam 3/11/2005
~ 32 ~