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 0,75 điểm

dãy khóa theo chiều giảm dần.

procedure sxthemdan(a,n)

0,25 điểm 1. a[0] := -∞;

2. for i:=2 to n do

0,25 điểm

begin X:=a[i]; j:=i-1;

while(X

begin

a[j+1]=a[j];

0,25 điểm j:=j-1;

end;

a[j+1] = X;

end; 3. return;

2

Hãy đưa ra một dãy khoá gồm 10 phần tử bất kỳ, sau đó đưa

0,75 điểm

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.

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

Trang:1/ 5

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

công ty. Hãy viết chương trình thực hiện các yêu cầu sau:

a 0,75 điểm

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%

{ cout<<"ma dai ly:";gets(madaily); cout<<"ten dai ly:";gets(tendaily); cout<<"so nam hop tac:";cin>>sonamhoptac; }

#include #include #include class DAILY { char madaily[10]; char tendaily[30]; public: int sonamhoptac; void nhap()

"<

{ cout <<" "<

0,25 điểm 0,25 điểm 0,25 điểm

float tinhtienCK() { return(500000*sonamhoptac*0.1); } void hienthi() };

b

1,5 điểm

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

Trang:2/ 5

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 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ố.

float doanhso;

{ cout<<"doanh so:";cin>>doanhso; } void nhapbanle()

class DAILYBANLE: public DAILY { public: public: float tienthuong() { float tongtien; if(doanhso>=50000000) else tongtien=tinhtienCK()+15*doanhso/100;

if((doanhso>=20000000)&&(doanhso<50000000)) else tongtien=tinhtienCK()+10*doanhso/100;

tongtien=tinhtienCK()+5*doanhso/100;

0,25 điểm 1 điểm 0,25 điểm

return tongtien; }

void hienthibanle()

{ hienthi(); cout<<" "<

c

1,25 điểm

}; 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.

Trang:3/ 5

void main() { clrscr(); DAILYBANLE *ds; int n,i,j; 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 "

<

{

ds[i]. hienthibanle();

0,5 điểm 0,25 điểm 0,5 điểm

{

if((doanhso>50000000)&&(sonamhoptac<3)) }

ds[i].nhap(); ds[i].nhapbanle(); } for (i = 1; i <=n; i++) cout<

}

Câu 3

2 điểm

a

0,5 điểm

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

Trang:4/ 5

FROM

b

0,5 điểm

c

0,5 điểm

JOIN Lophoc ON INNER

GROUP BY Lophoc.Magv, Hoten

d

0,5 điểm

WHERE Bienlai.Makh= “PT297” AND (Bienlai.Diem IN Bienlai WHERE (SELECT Max(Diem) Bienlai.Makh= “PT297”)) 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. 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 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 Giaovien.Magv = Lophoc.Magv 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

II. Phần tự chọn, do trường biên soạn 3 điểm

1

Tổng cộng (I + II) 2

……….., Ngày…………Tháng………..Năm…………..

Trang:5/ 5