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 - LT04
TT 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 thêm dần để sắp xếp một
dãy khóa theo chiều giảm dần.
0,75 điểm
procedure sxthemdan(a,n)
1. a[0] := -∞;
2. for i:=2 to n do
0,25 điểm
begin
X:=a[i]; j:=i-1;
while(X<a[j])
begin
a[j+1]=a[j];
0,25 điểm
j:=j-1;
end;
a[j+1] = X;
end;
3. return;
0,25 đ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ự giảm dần bằng giải thuật sắp xếp kiểu thêm dần.
0,75 điểm
Cho dãy khoá gồm 10 phần tử, chẳng hạn:
36 18 19 52 53 72 39 61 70 90.
Bước 1: 36 18 19 52 53 72 39 61 70 90
0,25 điểm
Bước 2: 36 19 18 52 53 72 39 61 70 90 0,25 điểm
Bước 3: 52 36 19 18 53 72 39 61 70 90 0,25 điểm
Câu 2 Để phục vụ cho việc quản lý các đại lý bán hàng của một 3,5 điểm
Trang:1/ 5
công ty. Hãy viết chương trình thực hiện các yêu cầu sau:
a Xây dựng lớp để quản lý đại lý bao gồm mã đại lý, tên đại lý,
số năm hợp tác, chiết khấu cơ bản có giá trị là 500.000 đồng
và định nghĩa hàm thành phần cho phép nhập thông tin cho
đại lý, hiển thị thông tin của một đại lý, tính tiền chiết khấu.
tiền chiết khấu=chiết khấu cơ bản*số năm hợp tác*10%
0,75 điểm
#include <iostream.h>
#include <conio.h>
#include<stdio.h>
class DAILY
{ char madaily[10];
char tendaily[30];
public:
int sonamhoptac;
void nhap()
{
cout<<"ma dai ly:";gets(madaily);
cout<<"ten dai ly:";gets(tendaily);
cout<<"so nam hop tac:";cin>>sonamhoptac;
}
float tinhtienCK()
{
return(500000*sonamhoptac*0.1);
}
void hienthi()
{ cout <<" "<<madaily<< " "<<tendaily<<"
"<<sonamhoptac;
}
};
0,25 điểm
0,25 điểm
0,25 điểm
b Xây dựng lớp đại lý bán lẻ thừa kế từ lớp đại lý có thêm
thuộc tính doanh số và định nghĩa hàm thành phần cho phép
nhập thông tin cho một đại lý bán lẻ, hàm hiển thị thông tin
của một đại lý bán lẻ (với các thông tin tên đại lý, số năm hợp
tác, doanh số, tổng tiền thưởng), hàm tính tổng tiền thưởng
cho đại lý bán lẻ bằng tiền chiết khấu + tiền hưởng hoa hồng.
Tiền hưởng hoa hồng cho đại lý bán lẻ dựa vào doanh số bán
hàng như sau: nếu doanh số >= 50.000.000 thì tiền hoa hồng
1,5 điểm
Trang:2/ 5
bằng 15% doanh số, nếu 20.000.000 <= doanh số <
50.000.000 thì tiền hoa hồng bằng 10% doanh số, còn lại thì
tiền hoa hồng bằng 5% doanh số.
class DAILYBANLE: public DAILY
{ public:
float doanhso;
public:
void nhapbanle()
{
cout<<"doanh so:";cin>>doanhso;
}
float tienthuong()
{
float tongtien;
if(doanhso>=50000000)
tongtien=tinhtienCK()+15*doanhso/100;
else
if((doanhso>=20000000)&&(doanhso<50000000))
tongtien=tinhtienCK()+10*doanhso/100;
else
tongtien=tinhtienCK()+5*doanhso/100;
return tongtien;
}
void hienthibanle()
{
hienthi();
cout<<" "<<doanhso<<" "<<tienthuong();
}
};
0,25 điểm
1 điểm
0,25 điểm
c Viết hàm main() nhập danh sách gồm n đại lý bán lẻ và hiển
hị ra màn hình danh sách đại lý bán lẻ có doanh số
>50.000.000 và số năm hợp tác nhỏ hơn 3 năm.
1,25 điểm
void main()
{ clrscr();
DAILYBANLE *ds;
int n,i,j;
0,5 điểm
Trang:3/ 5
cout<<"\nNhap vao so dai ly ban le:";
cin>>n;
ds=new DAILYBANLE[n];
for (i = 1; i <=n; i++)
{ cout <<"\nNhap thong tin cho dai ly ban le thu "
<<i<<endl;
ds[i].nhap();
ds[i].nhapbanle();
}
for (i = 1; i <=n; i++)
{
ds[i]. hienthibanle();
cout<<endl;
}
cout<<"Danh sach cac dai ly ban le co doanh so lon
hon 50.000.000 va so nam hop tac nho hon 3
nam:" <<endl;
for (i = 1; i <=n; i++)
{
if((doanhso>50000000)&&(sonamhoptac<3))
}
ds[i]. hienthibanle();
}
getch();
}
0,25 điểm
0,5 điểm
Câu 3 2 điểm
a Cho biết họ tên, NTNS, địa chỉ của học viên có điểm cao nhất
trong khoá có mã số “PT297”
SELECT Ho, Ten, Ntns, Dchi, Diem
FROM Hocvien INNER JOIN Bienlai ON Hocvien.Mahv =
Bienlai.Mahv
WHERE Bienlai.Makh= “PT297” AND (Bienlai.Diem IN
(SELECT Max(Diem) FROM Bienlai WHERE
Bienlai.Makh= “PT297”))
0,5 điểm
b Cho biết tên các lớp học và điểm trung bình, điểm cao nhất
của tất cả các học viên trong lớp.
0,5 điểm
Trang:4/ 5
SELECT Tenlop, AVG(Diem) AS DiemTB, MAX(Diem) AS
DiemMax FROM Lophoc INNER JOIN Bienlai ON
Lophoc.Malop = Bienlai.Malh GROUP BY Bienlai.Malh,
Tenlop
c Cho họ tên giáo viên và số lượng lớp mà giáo viên đó đã dạy
SELECT Hoten, Count(*) AS Soluong
FROM Giaovien INNER JOIN Lophoc ON
Giaovien.Magv = Lophoc.Magv
GROUP BY Lophoc.Magv, Hoten
0,5 điểm
d Cho biết họ tên và kết quả học tập (điểm, xếp loại, kết quả )
cuả những học viên được miễn học phí.
SELECT Ho, Ten, Diem, Xeploai, Kqua
FROM Bienlai INNER JOIN Hocvien ON Bienlai.Mahv =
Hocvien.Mahv WHERE Bienlai.Tiennop = 0
0,5 điểm
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:5/ 5