Vì thư viện chuẩn được thiết kế bởi những chuyện gia hàng đầu và đã được chứng minh trong toàn bộ lịch sử kĩ nghệ, các thành phần của thư viện này được khuyến cáo sử dụng thay vì dùng những phần viết tay bên ngoài hay những phương tiện cấp thấp khác. Thí dụ, dùng std:vector hay std::string thay vì dùng kiểu mảng đơn thuần sẽ không những là cho đời sống dễ thở hơn, mà còn là một cách hữu hiệu để viết phần mềm được an toàn và linh hoạt hơn. STL nguyên là một thư viện của hãng HP và sau đó là của SGI, trước khi nó được nhận vào thành chuẩn C++. Tiêu chuẩn thì không tham chiếu nó bằng cái tên STL, khi đa phần nó chỉ là bộ phận tiêu chuẩn. Tuy vậy, nhiều người vẩn dùng khái niệm STL này để phân biệt nó với phần còn lại của thư viện C++ như là IOstream, quốc tế hóa (kí tự và ngôn ngữ trình bày), chẩn đoán, thư viện C, v.v..
ÔN THI T T NGHI P( T 1)Ố Ệ ĐỢ Bu i 6: Ki m traổ ể 1. Ki u d li u c b n g m: …?ể ữ ệ ơ ả ồ 2. Nêu t khóa ki u c b n trong C# có mà C/C++ không?ừ ể ơ ả 3. Tên nào sai: ho ten, user-name, pass, main, 12a1? 4. Phân lo i i u ki n c a m nh Where?ạ đ ề ệ ủ ệ đề 5. Cho m ng có 10 ph n t 1 2 3 4 5 6 7 8 9 10. N u tìm giá tr 20 b ng thu t toán nh phân thì s ả ầ ử ế ị ằ ậ ị ố phép toán so sánh là bao nhiêu? 6. Gi i thu t s p x p cho k t qu ch y nh sau:ả ậ ắ ế ế ả ạ ư B0: 6 8 5 9 4 B1: 4 | 8 5 9 6 B2: 4 5 | 8 9 6 B3: 4 5 6 | 9 8 B4: 4 5 6 8 | 9 Tên gi i thu t? Ý t ng?ả ậ ưở Cho l c CSDLượ đồ SAN_PHAM (MaSP, TenSP, NSX, MaNhom, SL, Gia, DVT) NHOM_SP (MaNhom, TenNhom) NHA_SAN_XUAT (MaNSX, TenNSX, Thongtin) HOA_DON (MaHD, MaNV, MaKH, NgayDat, NgayGiao, DiachiGiao, SDT, XacNhan) CTHD (MaHD, MaSP, SLban) 7. Cho bi t quan h gi a các b ng? (Tr l i d ng: A – B – C …)ế ệ ữ ả ả ờ ạ 8. L p danh sách các s n ph m (MaSP, TenSP, Gia) c a nhà s n xu t “ABC”ậ ả ẩ ủ ả ấ 9. L p chi ti t hóa n c a khách hàng có mã “001” g m các thông tin: Tên hàng, S l ng, n ậ ế đơ ủ ồ ố ượ Đơ giá, Thành ti nề 10. L p danh sách các hóa n ã giao trong ngày 12/3/2014 có s m t hàng mua ít h n 3 g m cácậ đơ đ ố ặ ơ ồ thông tin: Mã HD, Mã KH, Ngày t, a ch giao, SDTđặ Đị ỉ T nh c các b n t làm bài, ng nhìn l i tài li u n a xem th nh ng ngày qua mình h c ntn? ắ ạ ự đừ ạ ệ ữ để ử ữ ọ Làm bài b ng Word và g i mail sv2thanh@gmail.com.ằ ử C g ng và chúc thành công.\ố ắ Bu i 7:ổ Cho l c CSDL qu n lí nh p qu n áo th i trang.ượ đồ ả ậ ầ ờ SAN_PHAM (MASP, TENSP, DGBAN, SIZE, MOTA, HINH, MANHOM) Mô t : S n ph m qu n áo th i trang c l u tr thông tin trong b ng SAN_PHAM, m i s n ph m có 1 ả ả ẩ ầ ờ đượ ư ữ ả ỗ ả ẩ mã s n ph m (MASP) duy nh t, tên s n ph m (TENSP), n giá bán (DGBAN), kích th c (SIZE) có ả ẩ ấ ả ẩ đơ ướ size s (26 n 32), size ch (S, M, L, XL, XXL), mô t (MOTA) s n ph m v ch t li u, ki u dáng …, hìnhố đế ữ ả ả ẩ ề ấ ệ ể nh minh ho cho s n ph m (HINH), m i s n ph m thu c m t nhóm (MANHOM)ả ạ ả ẩ ỗ ả ẩ ộ ộ s n ph m.ả ẩ KHO_HANG (MAKHO, TENKHO, DIACHI) Mô t : Doanh nghi p có nhi u kho hàng (KHO_HANG), thông tin kho hàng g m mã kho (MAKHO) có th ả ệ ề ồ ể giúp phân bi t các kho, tên kho (TENKHO) và a ch kho (DIACHI).ệ đị ỉ CHI_TIET_KHO (MAKHO, MASP, SOLUONG, CHIPHI) Mô t : M i kho có th ch a nhi u s n ph m, m i s n ph m có th có nhi u kho, thông tin s n ph m ả ỗ ể ứ ề ả ẩ ỗ ả ẩ ể ở ề ả ẩ l u tr trong kho ngoài mã kho và mã s n ph m còn có s l ng (SOLUONG) t ng ng s n ph m l u ư ữ ả ẩ ố ượ ươ ứ ả ẩ ư trong kho và chi phí (CHIPHI) n v (VN /SP) khi l u khođơ ị Đ ư PHIEU_NHAP (MAPN, NGAYLAP, MANV) Mô t : Khi nh p kho s n ph m, thông tin nh p s c l u tr trong phi u nh p g m mã phi u nh p ả ậ ả ẩ ậ ẽđượ ư ữ ế ậ ồ ế ậ (MAPN), ngày l p phi u (NGAY) và ng i l p phi u (MANV).ậ ế ườ ậ ế CHITIET_PN(MAPN, MASP, SL, DGNHAP, GHICHU) Mô t : Chi ti t phi u nh p có mã phi u nh p, mã s n ph m, s l ng (SL), n giá nh p (DGNHAP) cho ả ế ế ậ ế ậ ả ẩ ố ượ đơ ậ t ng s n ph m ( n giá nh p ph i bé h n n giá bán ít nh t 10%), ghi chú (GHICHU) thêm cho quá ừ ả ẩ đơ ậ ả ơ đơ ấ trình nh p hàng (n u có).ậ ế 1. Xác nh khóađị 2. Ngoài các ràng bu c v khóa, nêu 1 ràng bu c toàn v n (b i c nh, bi u di n, b ng t m nh h ng) ộ ề ộ ẹ ố ả ể ễ ả ầ ả ưở (câu này m nên có th có nhi u áp án)ở ể ề đ 3. Vi t truy v n:ế ấ a. L p chi ti t các phi u nh p trong ngày 4/1/2014 bao g m: MaPN, MaSP, SL, DGNHAP, GHICHUậ ế ế ậ ồ b. Li t kê các m t hàng trong kho có mã K01 g m: MaSP, TenSP, SOLUONG, DONGIA, ệ ặ ồ CHIPHILUUKHO. Trong ó DONGIA = DGNHAP + CHIPHIđ c. Cho bi t l ng t n c a các s n ph m: MaSP, TenSP, LUONGTONế ượ ồ ủ ả ẩ T nh c l i thôi, làm t ng câu riêng các b n d cmt nhé.ắ ạ ừ để ạ ễ Tr l i:ả ờ c1: SANPHAM: MASP KHO: MAKHO CHI_TIET_KHO: MAKHO,MASP PHIEU_NHAP: MAPN CHITIET_PN :MAPN,MASP. Câu 2, nh n d ng ràng bu c toàn v n úng, Tu n vàậ ạ ộ ẹ đ ấ Tina Do Ngoài ra (theo mô t ), còn có ràng bu c v sizeả ộ ề Yêu c u ghi: B i c nh, bi u di n, b ng thì các b n xem l i cách ghi nhé. Ph n này ánh trên ây không c, hôm ầ ố ả ể ễ ả ạ ạ ầ đ đ đượ nào r nh T ánh r i ch p hình l i cho các b n góp ý.ả đ ồ ụ ạ ạ ( Tham kh o: ả -Tu n: ấ câu 2: RBTV v SL. V i SL>0ề ớ -tina do: câu 2: Ràng bu c liên thu c tính liên quan h .ộ ộ ệ B i c nh: SAN_PhAM, CHITIET_PNố ả Di n bi n: n giá nh p ph i bé h n n giá bán ít nh t 10%ễ ế Đơ ậ ả ơ đơ ấ T m nh h ng: thêm , xóa , s aầ ả ưở ử SAN_PHAM không không có CHITIET_PN có không có) Câu 3a (sao chép t Trang Thái, có ch nh s a chút xíu)ừ ỉ ử Select pn.MaPN, MaSP, SL, DGNHAP, GHICHU From PHIEU_NHAP pn, CHITIET_PN ct Where pn.MAPN=ct.MAPN AND NGAYLAP='04/01/2014' Các b n chú ý cách t l i tên b ng, t o c thói quen này thì vi t truy v n nhanh h n c vài giây óạ đặ ạ ả ạ đượ ế ấ ơ đượ đ Câu 3b (t ng t )ươ ự Select ctk.MaSP, TenSP, SOLUONG,( DGNHAP+CHIPHI) As DONGIA, CHIPHI*SL As CHIPHILUUKHO From SAN_PHAM sp, CHI_TIET_KHO ctk, CHITIET_PN ctpn Where sp.MASP=ctk.MASP And sp.MASP=ctpn.MASP And MAKHO='K01' Câu 3c (t ng t là i l y c a hàng xóm v s a l i)ươ ự đ ấ ủ ề ử ạ Select sp.MaSP, TenSP, SUM(SOLUONG) As LUONGTON From SAN_PHAM sp, CHI_TIET_KHO stk Where sp,MASP=ctk. MASP Group By sp.MaSP, TenSP Bu i 8:ổ 1. Các b n xem l i cú pháp c a if (cái này ch c không c n) và switch caseạ ạ ủ ắ ầ 2. Xây d ng các ch ng trình con sau: (chú ý là ctc ch không ph i ch ng trình)ự ươ ứ ả ươ a/ Gi i ptb1ả b/ Cho bi t s ngày c a thángế ố ủ c/ Cho bi t Quý (1, 2, 3 hay 4) c a tháng. VD tháng 8 thì thu c quý 3ế ủ ộ d/ Gi i ptb2ả Tr l i:ả ờ C u trúc l a ch nấ ự ọ -If hay If else: cái này không c n, vì e th y ai c ng bi t r, Th y c ng nói không c nầ ấ ũ ế ầ ũ ầ -Switch Case: switch ( i n ki n so sánh) {Đ ề ệ case (h ng s 1): thao tác 1; [break;]ằ ố case (h ng s 2): thao tác 2; [break;]ằ ố case (h ng s 3): thao tác 3; [break;]ằ ố default: (thao tác khi không có k t qu nào th a i u ki n so sánh); [break;]ế ả ỏ đ ề ệ Câu 2: -Ý t ng: xây d ng và s d ng các l p tr u t ng ( h ng i t ng) cho t ng ctc t ng ng v i t ng câu h i a b ưở ự ử ụ ớ ừ ượ ướ đố ượ ừ ươ ứ ớ ừ ỏ c d. khi ch y tr ng trình chính, tùy theo yêu c u s g i các l p con ó ra (có th s d ng if else, swith case, ho cạ ươ ầ ẽ ọ ớ đ ể ử ụ ặ cho ch y h t 4 ctc)ạ ế Câu 2b: int songay(int thang) { switch (thang){ case 1,3,5,7,8,10,12: return 31; case 4,6,9,11: return 30; case 2: return 29; //ch này b qua 28 do ph i bi t thông tin n mỗ ỏ ả ế ă } return 0; } Câu 2c: int songay(int thang) { switch (thang){ case 1,2,3: return 1; case 4,5,6: return 2; case 7,8,9: return 3; case 10,11,12: return 4; } return 0; } void gaiPTbac1(float a1, float b1) { float x1; if(a1==0) { if(b1==0) { cout<<"Phuong trinh vo nghiem"; } else { cout<<"Phuong trinh vo nghiem"; } } else { x1=b1/a1; cout<<"Nghiem cua phuong trinh la: "; cout<< x1; } } Bu i 9:ổ 1. Xem l i nh ngh a danh sách liên k t. Các b n t xem l i n m c DSLK là cái gì thôi, t i sao l i ạ đị ĩ ế ạ ự ạ để ắ đượ ạ ạ có khái ni m này? R i sao ó xem các yêu c u d i.ệ ồ đ ầ ướ 2. Khai báo DSLK? (Cái này m i sách vi t m i khác (b n ch t gi ng nhau), nh ng các b n xem nhi u thì ỗ ế ỗ ả ấ ố ư ạ ề d t u h a l m, xem l i úng t p h c c a các b n thôi, T s theo ó h ng d n cho các b n)ễ ẩ ỏ ắ ạ đ ậ ọ ủ ạ ẽ đ để ướ ẫ ạ 3. Vi t ctc m s ph n t DSLK?ế đế ố ầ ử 4. Vi t ctc thêm ph n t x vào v trí y c a DSLK?ế ầ ử ị ủ 5. Vi t ctc xóa ph n t x trong DSLK?ế ầ ử Tr l i:ả ờ 2. Khai báo DSLK // Khai báo m t "nút" trong DSLK g m 2 thành ph n: ph n thông tin (mà c n gi n hóa b ng m t s nguyên i ộ ồ ầ ầ đượ đơ ả ằ ộ ố đạ di n) và ph n tr vào "nút" sauệ ầ ỏ struct node { int info; node *next; }; //Khai báo DSLK là m t con tr có tên là head tr n m t nútộ ỏ ỏ đế ộ node *head; Kh i t o ban u (n u có) là head = NULL;ở ạ đầ ế 3. m s pt trong DSLKĐế ố ử int sopt(node *head) { node *q; q = head; int kq = 0; while (q!=NULL) { kq++; q = q->next; } return kq; } 4. Thêm ph n t có giá tr x vào v trí y c a DSLKầ ử ị ị ủ //Ctc h tr t o "nút" có giá tr xỗ ợ ạ ị node *makenode(int x) { node *p = new node; p ->info = x; p ->next = NULL; return p; } void them(node *head, int x, int y) { node *q, *p, *node_x; q = head; //T o nút m iạ ớ node_x = makenode(x); //D i q n i m c n thêm nút m iờ đế đ ể ầ ớ while(y > 0) { q = q->next; y ; } //Chèn nút m i vàoớ node_x ->next = q; q = node_x; } 5. Xóa ph n t x trong DSLKầ ử i v i DSLK, x ây th ng c hi u nh là khóa c a t p d li u nên s xu t hi n c a x trong DSLK (n u có) thìĐố ớ ở đ ườ đượ ể ư ủ ậ ữ ệ ự ấ ệ ủ ế ch 1 l nỉ ầ K t qu c a thao tác xóa c ng có th c tr l i: 1 = ã tìm th y x và ã xóa, 0 = không tìm th y xế ả ủ ũ ể đượ ả ờ đ ấ đ ấ xóa. Nên ctc để c vi t:đượ ế int xoa(node *head, int x) { node *p, *q; q = head; while (q!=null) { if (q->info = x) { p = q; q = q->next; delete p; return 1; }//k t thúc ifế q = q->next; }//k t thúc whileế return 0; } Bu i 10ổ Cho l c c s d li u qu n lý l ng t i m t n v c mô t nh sau:ượ đồ ơ ở ữ ệ ả ươ ạ ộ đơ ị đượ ả ư CHUC_VU(MACV, TENCV, LUONGCB, LUONGTC) Mô t : M i ch c v có 1 mã ch c v (MACV) riêng, i kèm các thông tin tên ch c v (TENCV), l ng c ả ỗ ứ ụ ứ ụ đ ứ ụ ươ ơ b n (LUONGCB), l ng t ng ca (LUONGTC) c tính theo ngày.ả ươ ă đượ NHAN_VIEN(MANV, HONV, TENNV, GIOITINH, NGAYSINH, NGAYVAOLAM, DIACHI, SODT, CMND, HOKHAU, MACV). Mô t : Nhân viên (NHAN_VIEN) c l u tr các thông tin: mã nhân viên (MANV), H (HONV), Tên ả đượ ư ữ ọ (TENNV), Gi i tính (GIOITINH), Ngày sinh (NGAYSINH), Ngày vào làm (NGAYVAOLAM), a ch th ngớ Đị ỉ ườ trú (DIACHI), s i n tho i (SODT), ch ng minh nhân dân (CMND). M i nhân viên ch m nh n m t ố đ ệ ạ ứ ỗ ỉ đả ậ ộ ch c v . Hai nhân viên khác nhau s có mã khác nhau.ứ ụ ẽ TAM_UNG(MATU, NGAYTU, SOTIEN, MANV) Mô t : B ng t m ng s l u tr thông tin t m ng c a nhân viên, các thông tin l u tr g m: mã t m ng ả ả ạ ứ ẽ ư ữ ạ ứ ủ ư ữ ồ ạ ứ (MATU) c ánh s th t t ng, ngày t m ng (NGAYTU), s ti n t m ng (SOTIEN) và Mã nhân đượ đ ố ứ ự ă ạ ứ ố ề ạ ứ viên xin t m ng.ạ ứ CHAM_CONG(MACC, THANG, NAM, SONGAYCONG, SONGAYTC, MANV). Mô t : B ng ch m công (CHAM_CONG) có mã ch m công (MACC), tháng (THANG), n m(NAM) tính ả ả ấ ấ ă công, s ngày công (SONGAYCONG), s ngày t ng ca (SONGAYTC) trong tháng và thông tin nhân viên ố ố ă c tính công.đượ Th c hi n các truy v n sau:ự ệ ấ 1. L p danh sách nhân viên có sinh nh t trong tháng hi n t i và tháng sau g m các thông tin: Mã NV, H ậ ậ ệ ạ ồ ọ tên NV, Ngày tháng sinh (không trình bày n m sinh), S Tă ố Đ 2. L p b ng tính l ng tháng 5/2014 c a nhân viên v i các thông tin: Mã NV, H , Tên, L ng, T ng ca, ậ ả ươ ủ ớ ọ ươ ă T m ng, Th c lãnh. Trong ó:ạ ứ ự đ L ng = L ng CB * S ngày côngươ ươ ố T ng ca = S ngày t ng ca * L ng t ng caă ố ă ươ ă Th c lãnh = L ng + t ng ca – t m ngự ươ ă ạ ứ 3. Cho bi t l ng bình quân c a nhân viên giao hàng (tên ch c v là nhân viên giao hàng)ế ươ ủ ứ ụ Câu 2 h i r i ó các b n, xem xét k các i u ki n.ơ ố đ ạ ỹ đ ề ệ . m công (CHAM_CONG) có mã ch m công (MACC), tháng (THANG), n m(NAM) tính ả ả ấ ấ ă công, s ngày công (SONGAYCONG), s ngày t ng ca (SONGAYTC) trong tháng và thông tin nhân viên ố ố ă c tính công.đượ. bán ít nh t 10%ễ ế Đơ ậ ả ơ đơ ấ T m nh h ng: thêm , xóa , s aầ ả ưở ử SAN_PHAM không không có CHITIET_PN có không có) Câu 3a (sao chép t Trang Thái, có ch nh s a chút xíu)ừ ỉ ử Select pn.MaPN,. ÔN THI T T NGHI P( T 1)Ố Ệ ĐỢ Bu i 6: Ki m traổ ể 1. Ki u d li u c b n g m: …?ể ữ ệ ơ ả ồ 2. Nêu t khóa ki u c b n trong C# có mà C/C++ không?ừ ể ơ ả 3. Tên nào sai: