CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
ĐÁP ÁN
ĐỀ THI TỐT NGHIỆP CAO ĐẲNG NGHỀ KHOÁ II (2008 - 2011)
NGHỀ: LẬP TRÌNH MÁY TÍNH
MÔN THI: LÝ THUYẾT CHUYÊN MÔN NGHỀ
Mã đề số: DA LTMT - LT01
Câu Nội dung Điểm
I. Phần bắt buộc 7 điểm
Câu 1 1,5 điểm
1 Trình bày giải thuật sắp xếp kiểu lựa chọn để thực hiện sắp
xếp một dãy khóa theo thứ tự tăng dần.
0,75 điểm
procedure sxluachon(a,n)
1. for i:=1 to n-1 do
begin
0,25 điểm
m:=i;
for j:= i+1 to n do
begin if(a[j]<a[m]) then m:=j;
if(m <> i) then
begin
X:=a[i];
a[i]:=a[m];
a[m]:=X;
end;
end;
end;
2. return;
0.5 điểm
2 Hãy đưa ra một dãy khoá gồm 10 phần tử bất kỳ, sau đó đưa
ra kết quả thực hiện 3 bước đầu tiên để sắp xếp dãy khoá đó
theo thứ tự tăng dần bằng giải thuật sắp xếp kiểu lựa chọn.
0,75 điểm
Cho một dãy khoá gồm 10 phần tử, chẳng hạn:
40 23 17 55 22 45 15 60 30 20.
Bước 1: 15 23 17 55 22 45 40 60 30 20
0,25 điểm
Bước 2: 15 17 23 55 22 45 40 60 30 20 0,25 điểm
Trang:1/ 6
Bước 3: 15 17 20 55 22 45 40 60 30 23 0,25 điểm
Câu 2 Một nhà xuất bản nhận xuất bản sách. Sách có hình ảnh
ở trang bìa thì phải thuê họa sĩ vẽ bìa. Viết chương trình thực
hiện các yêu cầu.
3,5 điểm
a Tạo lớp BIA để lưu các thông tin : Mã hình ảnh, tiền vẽ và
định nghĩa hàm thành phần cho phép nhập và hiển thị dữ liệu
cho các đối tượng của lớp BIA.
0,5 điểm
#include <iostream.h>
#include <conio.h>
#include<stdio.h>
class BIA
{ char mahinhanh[10];
float tienve;
public: void nhap()
{
cout<<"ma hinh anh:";gets(mahinhanh);
cout<<"tien ve:";cin>>tienve;
}
void hienthi()
{ cout <<" "<<mahinhanh<< " "<<tienve;
}
};
b Tạo lớp HOASY để lưu các thông tin họ tên, địa chỉ của họa
sỹ và định nghĩa hàm thành phần cho phép nhập và hiển thị
dữ liệu cho các đối tượng của lớp HOASY
0,5 điểm
class HOASY
{ char hoten[30];
char diachi[30];
public: void nhaphs()
{
cout<<"ten hoa sy:";gets(hoten);
cout<<"dia chi:";gets(diachi);
}
void hienthihs()
{ cout << " "<<hoten<<" " << diachi;
Trang:2/ 6
}
};
c Tạo lớp SACHVEBIA kế thừa từ lớp BIA và lớp HOASY
thông tin về tên sách, tác giả, số trang, giá bán và định nghĩa
hàm thành phần cho phép nhập và hiển thị dữ liệu cho các đối
tượng của lớp SACHVEBIA
0,75 điểm
class SACHVEBIA: public BIA, public HOASY
{ char tensach[30];
char tacgia[30];
int sotrang;
float giaban;
public: void nhapsach()
{
cout<<"ten sach:";gets(tensach);
cout<<"tac gia:";gets(tacgia);
cout<<"so trang:";cin>>sotrang;
cout<<"gia ban:";cin>>giaban;
nhap();
nhaphs();
}
void hienthisach()
{ cout << tensach<<" " << tacgia
<<" "<<sotrang<<" "<<giaban;
hienthi();
hienthihs();
cout<<"\n";
}
};
d Xây dựng hàm main() thực hiện:
+ Nhập vào danh sách n cuốn sách
+ Sắp xếp giá bán tăng dần bằng phương pháp sắp xếp chọn
và hiển thị kết quả sắp xếp.
+ Hiển thị ra màn hình danh dách n cuốn sách có vẽ bìa.
1,25 điểm
void main()
{ clrscr();
SACHVEBIA *ds,temp;
int n,x,i,j;
cout<<"\nNhap vao so cuon sach co ve bia:";
0,25 điểm
Trang:3/ 6
cin>>n;
ds=new SACHVEBIA[n];
for (i = 0; i <n; i++)
{ cout <<"\nNhap thong tin cho cuon sach thu "
<<i+1<<endl;
ds[i].nhapsach();
}
cout<<"Thong tin ve cac cuon sach co ve bia da nhap:"
<<endl;
for (i = 0; i <n; i++)
{
ds[i].hienthisach();cout<<endl;
}
int jmin;
for(i=0;i<n-1;i++)
{jmin=i;
for(j=i+1;j<n;j++)
if(ds[jmin].giaban>ds[j].giaban)
jmin=j;
{
temp=ds[i];
ds[i]=ds[jmin];
ds[jmin]=temp;
}
}
cout<<endl;
for (i = 0; i <n; i++)
{
ds[i].hienthisach();cout<<endl;
}
getch();
}
0,75 điểm
0,25 điểm
Câu 3 Cho lược đồ cơ sở dữ liệu sau:
Docgia(MADG, HOTEN, NGAYSINH, DIACHI,
NGHENGHIEP)
Phieumuon(SOPM, NGAYMUON, MADG)
Chitietmuon(SOPM, MADAUSACH, NGAYTRA)
2 điểm
Trang:4/ 6
Dausach(MADAUSACH, BAN, TAP, MASH)
Sach(MASH, TENSACH, TACGIA, NHAXB,
NAMXB)
Hãy thực hiện các câu hỏi sau đây bằng SQL
a Danh sách các đọc giả đã đăng ký mượn sách trong ngày d.
Yêu cầu các thông tin: MADG, HOTEN, DIACHI:
Các quyển sách của phiếu mượn có SOPM là x. Yêu cầu các
thông tin MASH, TENSACH, TACGIA, NGAYMUON,
NGAYTRA.
0,5 điểm
b Các quyển sách của phiếu mượn có SOPM là x. Yêu
cầu các thông tin MASH, TENSACH, TACGIA,
NGAYMUON, NGAYTRA:
SELECT Mash, Tensach, Tacgia, Ngaymuon, Ngaytra
FROM ((Sach INNER JOIN Dausach ON
Sach.Mash=Dausach.Mash)
INNER JOIN Chitietmuon ON
Chitietmuon.Madausach = Dausach.Madausach)
INNER JOIN Phieumuon On Phieumuon.Sopm
= Chitietmuon.Sopm
WHERE Phieumuon.Sopm = x;
0,5 điểm
c Tổng số lượt mà mỗi đọc giả đến mượn sách trong năm 2001.
Thông tin kết xuất MADG, HOTEN, SOLANMUON
(SOLANMUON là thuộc tính tự đặt)
SELECT Madg, Hoten, Count(*) As Solanmuon
FROM Phieumuon INNER JOIN Docgia ON
Docgia.Madg=Phieumuon.Madg
WHERE YEAR(Ngaymuon)=2001
GROUP BY Phieumuon.Madg, Docgia.Hoten
0,5 điểm
d Danh sách các đọc giả cao tuổi nhất đã mượn sách trong ngày
d. Thông tin kết xuất MAĐG, HOTEN, NGAYSINH,
DIACHI, NGHENGHIEP:
SELECT Madg, Hoten, Ngaysinh, Diachi, Nghenghiep
FROM Phieumuon INNER JOIN Docgia ON
Docgia.Madg=Phieumuon.Madg
WHERE (Ngaymuon=d)
AND (Ngaysinh IN (SELECT MIN(Ngaysinh) FROM
Docgia))
0, 5 điểm
Trang:5/ 6
II. Phần tự chọn, do trường biên soạn 3 điểm
1
2
Tổng cộng (I + II)
……… , Ngày…………Tháng……… Năm…………
Trang:6/ 6