ĐỀ CƯƠNG ôn THI JAVA

31 4.6K 51
ĐỀ CƯƠNG ôn THI JAVA

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Ôn tập

HB - 20.6.2013 ĐỀ CƯƠNG ÔN THI JAVA (bôi đỏ là k12 thi rồi nhé) Phần 1: Lý thuyết Câu 1: Thế nào là tính đa hình trong lập trình hướng đối tượng? Tính đóng gói là gì, vai trò của tính đóng gói là gì và chúng ta thực hiện bằng cách nào trong quá trình lập trình. • Tính đa hình Khái niệm: Là hiện tượng các đối tượng thuộc các lớp khác nhau có khả năng hiểu cùng một thông điệp theo ý nghĩa khác nhau Ví dụ: Thông điệp: tính chu vi thì lớp hình vuông và lớp hình tròn sẽ hiểu theo nghĩa khác nhau • Tính đóng gói Đóng gói là kết quả của quá trình trừu tượng hóa đối tượng Đóng gói: thông tin và hoạt động bên trong một đối tượng có thể được che khỏi thế giới bên ngoài bằng cách che giấu thông tin và thực hiện ẩn. • Vai trò của tính đóng gói: Cho phép những người sử dụng chỉ được phép truy nhập và sử dụng những gì quy định cho họ. Một phần class sẽ được che giấu và không cho người dùng quyền truy nhập. Cho phép người thiết lế các class có khả năng thay đổi hay định nghĩa lại class mà vẫn chắc chắn rằng không ảnh hưởng tới chương trình của những người sử dụng lại class này • Chúng ta thực hiện bằng cách sử dụng các từ khóa để xác định chức năng truy nhập của cá thông tin dữ liệu bên ngoài lớp: public, private và protected Câu 2: Định nghĩa tính đa hình, ý nghĩa và vai trò của tính đa hình. Đa hình luôn đi kèm với một tính năng gì khác của lập trình hướng đối tượng • Tính đa hình (polymorphism): Thể hiện thông qua việc gửi các thông điệp (message). Việc gửi các thông điệp này có thể so sánh như việc gọi các hàm bên trong của một đối tượng. Các phương thức dùng trả lời cho một thông điệp sẽ tùy theo đối tượng mà thông điệp đó được gửi tới sẽ có phản ứng khác nhau. Người lập trình có thể định nghĩa một đặc tính (chẳng hạn thông qua tên của các phương thức) cho một loạt các đối tượng gần nhau nhưng khi thi hành thì dùng cùng một tên gọi mà sự thi hành của mỗi đối tượng sẽ tự động xảy ra tương ứng theo đặc tính của từng đối tượng mà không bị nhầm lẫn. • Ý nghĩa tính đa hình: Khi xây dựng các lớp kế thừa trong LTHDT có thể xảy ra trườn hợp trong lớp kế thừa và lớp cơ sở cùng định nghĩa một hành vi(hàm) nào đó có giao diện giống nhau. Khi ta gọi hàm này, chương trình dịch không thể xác định là ta gọi hành vi nào, hành vi được định nghĩa trong lớp cơ sở hay lớp kế thừa. LTHDT linh động và mềm dèo trong mỗi trường hợp, dễ dàng mở rộng và sử dụng code. • Vai trò: Nguyên lý chồng hàm: giúp LTV có khả năng xây dựng các hàm có tên giống hệt nhau nhưng có cá đối số khác nhau: khác nhau vầ số lượng và kiểu dữ liệu của các đối số. Nguyên lý chồng toán tử: LTV có khảng năng định nghĩa những toán tử đã tồn tại trong các NNLT tương ứng trên các dữ liệu mới – các dối tượng thuộc các lớp mà người LTV muốn xây dựng. • Đa hình luôn đi kèm với sự kế thừa giữa các lớp. Các phương thức tổng quát hóa nên có mặt ở lớp cơ sở, nhưng nội dung của nó chỉ được xác định ở các lớp dẫn xuất cụ thể HB - 20.6.2013 Câu 4: Tại sao khi thiết kế lớp, thành phần dữ liệu thường được đi kèm với từ khóa private và việc thay đổi dữ liệu thường phải thông qua các phương thức? Khi nào thì các phương thức của một lớp được khai báo là private và vai trò của các phương thức loại này là gi? • Thành phần private là khu vực dành riêng cho lớp, không chia sẻ với bất kì lớp khác từ bên ngoài. Thành phần private chỉ cho phép truy nhập trong phạm vi nội bộ lớp: Từ phương thức vào các thuộc tính hoặc giữa các phương thức của lớp với nhau. Các thành phần private không thể truy nhập từ bên ngoài lớp, cũng như từ đối tượng khác. Các thuộc tính dữ liệu của lớp được đặt vào vùng private nhằm bảo vệ chúng, tránh sự truy nhập tự do từ bên ngoài. • Các phương thức trung gian, được sử dụng như các bước tính toán đệm cho các phương thức khác. Các phương thức trung gian được đặt vào vùng private để thực hiện việc đóng gói trong lập trình hướng đối tượng: Các đối tượng, chương trình bên ngoài không cần, và không thể biết cách tính toán cụ thể bên trong của lớp. Câu 5 Sự khác nhau giữa lớp abtract và lớp thông thường như thế nào, cho ví dụ? Lớp trừu tượng là lớp mà người sử dụng không được phép tạo ra bất kỳ một thể hiện nào của chính lớp đó “ Lớp thông thường là lớp mà người sử dụng được phép tạo ra các thể hiện của lớp đó. Trong lớp trừu tượng được phép khai báo các phương thức trừu tượng (chỉ có định nghĩa của hàm còn nội dung của hàm thì không có) và các phương thức này bắt buộc phải được cài đặt ở lớp dẫn xuất Lớp thông thường không có hàm trừu tượng. Lớp trừu tượng là lớp không có khai báo các thuộc tính thành phần và các phương thức. Các lớp dẫn xuất của nó sẽ khai báo thuộc tính, cài đặt cụ thể các phương thức của lớp trừu tượng.” Abstract Class dùng trong ứng dụng là dùng để sử dụng chung cho các đối tượng có chung các thuộc tính hay các chức năng Normal Class dùng trong ứng dụng để chỉ riêng cho một đối tượng nào đó cụ thể hơn VD: Human (Con người không biết rõ là ai), Animal (Động vật không biết rõ là con thú nào), Vehicle (Phương tiện đi lại không biết rõ là phương tiện gì). + Human: *****Thuộc tính****** Tóc, tai, mũi, lưỡi, mắt, tay, chân, mông, bộ phận sinh dục *****Chức năng******* Nghe, nói, đọc, viết, đi, đứng, nằm, ngồi, đi tiểu (Đó là dành cho tất cả nếu đó là con người) + Đối tượng thể hiện cho Normal Class Male, Female Anh Nguyễn Văn A: Tóc ngắn - Nghe nói đọc viết thì như người bình thường nhưng lúc đi Tiểu thì lại đứng khuỵa đầu gối Anh Nguyễn Văn B: Đầu trọc - Nghe nói đọc viết thì cũng như người bình thường nhưng lúc đi Tiểu thì lại đứng thẳng chân Chị Nguyễn Thị C: Tóc dài thướt tha - Cũng như 2 anh kia nhưng đi Tiểu lại ngồi Bởi thế Human mới được gọi là "TRỪU TƯỢNG" vì mình không thể hình dung đc Human đi Tiểu ra sao? Dáng đẹp thế nào? Và chính vì những điều trên nên trong lúc Code mới thấy là Abstract Class không thể khởi tạo đối tượng cụ thể đc bởi vì nó là Trừu Tượng nên đâu có thuộc tính cụ thể và chức năng cụ thể giống như một Real Object!!! Câu 6 Nêu bản chất của cơ chế kế thừa, nêu sự khác biệt giữa mối quan hệ “has-a” và “is a” • Bản chất của cơ chế kế thừa: Là việc xây dựng một lớp mới dựa trên một lớp có sẵn . Trong lớp mới sẽ sử dụng lại mã code của lớp ban đầu và phát triển them những tính chất mới. • Mối quan hệ has-a: Dùng các đối tượng của các lớp đã có sẵn để xây dựng một lớp mới. Điều đó có nghĩa là lớp mới chứa các đối tượng khác bên trong nó, và nó được quyền sử dụng mọi tài nguyên (phương thức) mà các lớp sẵn có đã cung cấp cho nó qua các đối tượng mà nó đang nắm giữ. • Mối quan hệ is-a: Chúng ta xây dựng một lớp mới từ một lớp cũ bằng quan hệ kế thừa. Lớp mới này được phép coi như là một đối tượng ở cũ và nó được phép kế thừa tất cả những gì mà lớp cha nó đã có HB - 20.6.2013 (kể cả những thành phần private). Tuy nhiên việc được dùng các đối tượng này hay không thì phụ thuộc vào quyền truy nhập mà lớp cha đã cho nó (thông qua các chỉ thị protected và public). Phần 2: Bài tập (cái nào có khả năng “trúng” thì t trình bày trước) CÂU 7: Đề bài: Học viện Ngân hàng muốn xây dựng hệ thống giúp sinh viên đăng ký môn học bao gồm những thông tin sau: - Mỗi sinh viên có: mã sv, tên, năm vào trường - Mỗi môn học bao gồm: mã môn, tên môn, danh sách môn điều kiện. - Sau khi học xong, sinh viên được ghi nhận đã đạt môn đó nếu điểm thi của sinh viên đạt từ 5 điểm trở lên. Khi sinh viên đăng ký môn học, hệ thống sẽ kiểm tra xem sinh viên đã thi đạt tất cả các môn trong điều kiện tiên quyết chưa, nếu điều kiện trên không thỏa mãn in ra thông báo không được phép đăng ký. a) Mô tả các lớp, giao diện cần xây dựng để đáp ứng yêu cầu của bài toán trên b) Cài đặt các lớp đã được mô tả c) Viết chương trình thử thực hiện những chức năng sau: -Yêu cầu người dùng nhập một mảng gồm 5 sinh viên - Yêu cầu người dùng nhập một danh sách môn học (khoảng 5-8 môn) - Yêu cầu người dùng chọn sinh viên muốn đăng ký môn học, chọn môn sinh viên đăng ký, lưu lại thông tin đăng ký nếu thành công còn ngược lại in ra thông báo tương ứng. Bài làm 1. Mô tả các lớp SinhVien - maSV: String - tenSV: String - namVT: int + SinhVien() + SinhVien(String maSV, String tenSV, int namVT) + toString(): String + view(): void + Input(): void MonHoc - maMH: String - tenMH: String - MonHoc[] MHDK; + MonHoc(String MaMH, String TenMH, MonHoc[] MHDK) + toString(): String + view(): void + DangKy(SinhVien sv): void + Input(): void KQHT (extends SinhVien) - mh: MonHoc - Diem: int + KQHT(); + KQHT(SinhVien sv,MonHoc mh, int Diem); HB - 20.6.2013 + checkPass(): boolean 2. Cài đặt Class SinhVien /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package bai7; import java.util.Date; public class SinhVien { protected String MaSV; protected String TenSV; protected int NamVao; public SinhVien(){}; public SinhVien(String MaSV, String TenSV, int NamVao){ this.MaSV=MaSV; this.TenSV=TenSV; this.NamVao=NamVao; } public void view(){ System.out.println("Mã SV: "+this.MaSV); System.out.println("Ten SV: "+this.TenSV); System.out.println("Nam Vao Truong: "+this.NamVao); } @Override public String toString(){ return this.MaSV+" "+this.TenSV+" "+this.NamVao; } public void Input(){ System.out.println("Ma SV:"); MaSV = get.nextLine(); System.out.println("Ten SV:"); TenSV = get.nextLine(); System.out.println("Nam Vao:"); NamVao = get.nextInt(); get.nextLine(); } public boolean checkDSDK(MonHoc mh){ //Lấy dữ liệu từ bảng KQHT của SV //Kiểm tra kết quả đó với danh sách môn học của môn học "mh" cần đăng ký //Nếu ko thỏa mãn //return false; còn không return true; } } Class MonHoc HB - 20.6.2013 /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package bai7; public class MonHoc { private String MaMH; private String TenMH; private MonHoc[] MHDK; public MonHoc(String MaMH, String TenMH, MonHoc[] MHDK){ this.MaMH=MaMH; this.TenMH=TenMH; this.MHDK=MHDK; } @Override public String toString(){ return this.MaMH+" "+this.TenMH; } public void view(){ System.out.println("Ma MH: "+this.MaMH); System.out.println("Ten MH: "+this.TenMH); String DSMH="Danh sách các môn học"; if(this.MHDK.length>0) for(int i=0; i<this.MHDK.length; i++) DSMH = DSMH+"\n"+MHDK[i].MaMH.toString(); else DSMH=""; System.out.println(DSMH); } public void DangKy(SinhVien sv){ if(sv.checkDSDK(this)) System.out.println("Đăng ký thành công");//Lưu dữ liệu vào CSDL else System.out.println("Không thể đăng ký"); } } Class KQHT /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package bai7; public class KQHT extends SinhVien{ private MonHoc mh; private int Diem; public KQHT(){ super(); HB - 20.6.2013 this.Diem=0; } public KQHT(SinhVien sv,MonHoc mh, int Diem){ super(sv.MaSV, sv.TenSV, sv.NamVao); this.mh=mh; this.Diem=Diem; } public void view(){ //Code } public boolean checkPass(){ if(this.Diem<5) return false; else return true; } } 3. Viết chương trình thực nghiệm Class Main /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package bai7; import java.util.Date; import java.util.Scanner; public class Main { /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here //Demo SinhVien[] sv = new SinhVien[100]; MonHoc[] mh = new MonHoc[100]; //Nhập thông tin môn học Scanner get = new Scanner(System.in); for (int i = 0; i < 5; i++) System.out.println(“Nhập thông tin sinh viên thứ : ”+ (i+1)); sv[i].Input(); } for (int i = 0; i < 5; i++) { int countMHDK = 0; System.out.println("Ma MH:"); MaMH = get.nextLine(); System.out.println("Ten MH:"); TenMH = get.nextLine(); System.out.println("Có môn học điều kiện không? 1/0 - Yes/No"); countMHDK = get.nextInt(); HB - 20.6.2013 get.nextLine(); if (countMHDK == 1) { System.out.println("Nhập các môn điều kiện"); //Code demo } mh[i] = new MonHoc(MaMH, TenMH,null); } //In ra DSSV để chọn int chonSV = 0; int chonMH = 0; for (int i = 0; i < 5; i++) { System.out.println("Chọn " + (i + 1) + ":"+sv[i].toString()); } chonSV = get.nextInt(); if (chonSV > 0 && chonSV <= 5) //In ra các môn học { for (int j = 0; j < 5; j++) { System.out.println("Chọn " + (j + 1) + ":" + mh[j].toString()); } chonMH = get.nextInt(); if (chonMH > 0 && chonMH <= 5) { //Đăng ký - Vì trong hàm Đăng ký đã có thao tác kiểm tra nên trong này chúng ta không cần gọi nữa mh[chonMH - 1].DangKy(sv[chonSV - 1]); } } } } Câu 9: Đề bài: Cửa hàng đĩa CD cho thuê băng đĩa muốn xây dựng hệ thống cho thuê băng đĩa: - Mỗi đĩa cd sẽ gồm các thông tin sau: Thể loại, tên, số lượng, giá thuê -Khách hàng đến thuê sẽ cung cấp các thông tin sau: Tên, Địa chỉ, số tiền đặt cọc. - Mỗi lần tới thuê khách hàng sẽ được thuê một hay nhiều đĩa CD, hệ thống sẽ lưu lại ngày thuê, tới khi khách hàng trả đĩa hệ thống sẽ tính số tiền mà khách hàng cần phải đưa thêm sau khi đã trừ đi số tiền mà khách hàng đã đặt cọc. - Hệ thống sẽ lưu lại thông tin tương ứng của nhân viên đã thực hiện việc cho khách hàng thuê đĩa nhằm thực nhằm đối chiếu khi có sai sót. a) Hãy mô tả các lớp cần thực hiện để xây dựng hệ thống b) Cài đặt các lớp đã được mô tả c) Viết chương trình thử nghiệm thực hiện các chức năng sau: - Nhập thông tin khách hàng - Nhập danh sách đĩa CD mà khách hàng muốn thuê - Nhập lượng tiền mà khách hàng đã đặt cọc cho người bán hàng - Nhập tên nhân viên đã thực hiện dịch vụ cho khách hàng - Lưu lại thông tin vào file log.txt Thông tin cho thuê đĩa của khách hàng: (tên kh)…. Thể loại: nhạc thiểu nhi, tên: Con cò bé bé, số lượng: 1, giá thuê: 1000đ/ngày Thể loại: phim truyện, tên: Cánh đồng cát, số lượng:2, giá thuế 2000đ/ngày Số tiền đặt cọc: 100.000đ 1. Mô tả các lớp HB - 20.6.2013 KH - TenKH: String - DiaChi: String - DatCoc: float - KH() - KH(String TenKH, String DiaChi, float DatCoc) - toString(): String - NhapTTKH(): void - Thue(CD[] cd): int - TongTien(CD[] cd, int n): float - TienThieuHoacThua(float TongTien): float CD - TheLoai: String - TenCD: String - SoLuong: int - DonGia: int - CD() - CD(String TheLoai, String TenCD, int SoLuong, int DonGia) - toString(): String - NhapTTCD(): void - TongTien(): float 2. Cài đặt Class CD /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package bai9; import java.util.Scanner; public class CD { private String TheLoai; private String TenCD; private int SoLuong; private int DonGia; public CD(){}; public CD(String TheLoai, String TenCD, int SoLuong, int DonGia){ this.TheLoai=TheLoai; this.TenCD=TenCD; this.SoLuong=SoLuong; this.DonGia=DonGia; } @Override HB - 20.6.2013 public String toString(){ return this.TheLoai+" - "+this.TenCD+" - "+this.SoLuong+" - "+this.DonGia; } public void NhapTTCD(){ Scanner get = new Scanner(System.in); System.out.println("Thể loại: "); this.TheLoai=get.nextLine(); System.out.println("Tên CD: "); this.TenCD=get.nextLine(); System.out.println("Số lượng: "); this.SoLuong=get.nextInt(); System.out.println("Đơn giá: "); this.DonGia=get.nextInt(); get.nextLine(); } public float TongTien(){ return this.SoLuong*this.DonGia; } } Class KH /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package bai9; import java.util.Scanner; public class KH { private String TenKH; private String DiaChi; private float DatCoc; public KH() { } ; public KH(String TenKH, String DiaChi, float DatCoc) { this.TenKH = TenKH; this.DiaChi = DiaChi; this.DatCoc = DatCoc; } @Override public String toString() { return "Ten: " + this.TenKH + "\nDia chi: " + this.DiaChi + "\nDat coc: " + this.DatCoc; } public void NhapTTKH() { Scanner get = new Scanner(System.in); System.out.println("Tên KH: "); this.TenKH = get.nextLine(); System.out.println("Địa chỉ"); this.DiaChi = get.nextLine(); System.out.println("Đặt cọc: "); this.DatCoc = get.nextFloat(); HB - 20.6.2013 get.nextLine(); } public int Thue(CD[] cd) { int checkNhapCD = 1; int i = 0; do { Scanner get = new Scanner(System.in); System.out.println("Nhập đĩa CD 1/0 - Yes/No"); checkNhapCD = get.nextInt(); get.nextLine(); if (checkNhapCD == 0) { break; } else { cd[i]=new CD(); cd[i].NhapTTCD(); i++; } } while (checkNhapCD != 0); return i; } public float TongTien(CD[] cd, int n){ //n là số loại đĩa thuê //Mỗi lần nhập đĩa ko cho phép trùng thể loại float sum=0; while(n>0) { sum=sum+cd[n-1].TongTien(); n ; } return sum; } public float TienThieuHoacThua(float TongTien){ return this.DatCoc-TongTien; } } 3. Viết chương trình thử nghiệm Class Main /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package bai9; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.util.Date; public class Main { /** * @param args the command line arguments */ public static void main(String[] args) throws IOException { [...]... String phone, String address, String email) { this.name = name; this.phone = phone; this.address = address; this.email = email; } public Person() { HB - 20.6.2013 } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getName()... address, email); this.office= office; this.salary= salary; this.time= time; } public String getOffice() { return office; } public String getSalary() { return salary; } public String getTime() HB - 20.6.2013 {  return time; } public void setOffice(String office) { this.office=office; } public void setSalary(String salary) { this.salary=salary; } public void setTime(String time) { this.time=time; }... rút tiền ra khỏi tài khỏa  Tạo lớp khách hàng: import java. io.*; public class KH implements face{ private String MaKH; public void setMa(String ma) { this.MaKH=ma; } private String TenKH; private String CMT; private String Diachi; public KH(){} public KH(String ma,String ten,String cmt,String diachi) { this.MaKH=ma; this.TenKH=ten; this.CMT=cmt; this.Diachi=diachi; } public void viewKH() { System.out.println(MaKH);... protected Date birthday; public Employee(){} public Employee(String firstname,String lastname) { this.FirstName=firstname; this.LastName=lastname; } public Employee(String firstname,String lastname,float earnings,Date birthday) { this.FirstName=firstname; this.LastName=lastname; this.earnings=earnings; this.birthday=birthday; } public String toString() { return LastName + " " + FirstName; }  public... các công việc sau : Nhập thông tin khách hàng Nhập thông tin chuyến bay Số tiền khách hàng phải trả phải trả a) Hãy mô tả các lớp cần xây dựng để thực hiện hệ thống b) Cài đặt các lớp trên c) Viết chương trình thử nghiệm thực hiện các chức năng sau: -Nhập thông tin khách hàng - Tính tổng só tiền khách hàng cần trả - Hiển thị thông tin hóa đơn tham gia mua vé trên màn hình như sau và đồng thời lưu thông... String phone, String object) { this.name = name; this.phone = phone; this.object=object; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public String getObject() { return object; } public void setObject(String object) { this.object = object; } HB - 20.6.2013... { this.flag = flag; this.discount = discount; this.closingPrice = closingPrice; } public Double getDiscount() { return discount; } public void setDiscount(Double discount) { this.discount = discount; } public int getFlag() { return flag; } public void setFlag(int flag) { this.flag = flag; } public double getClosingPrice() { return closingPrice; } public void setClosingPrice(double closingPrice) { this.closingPrice... String landing, double pricet) { this.IDflights = IDflights; this.departure = departure; this.landing = landing; this.price = pricet; } public String getIDflights() { return IDflights; } public void setIDflights(String IDflights) { this.IDflights = IDflights; } public ArrayList getCc() { return cc; } public void setCc(ArrayList cc) { this.cc = cc; } public Customer... UnsupportedOperationException("Not supported yet."); }  } Tạo lớp Tài khoản: import java. util.Scanner; import java. io.*; public class TK implements face{ private String MaTK; private String MaKH; private float Sotien; public TK(){} public TK(String MaTK,String MaKH,float Sotien) { this.MaTK=MaTK; this.MaKH=MaKH; this.Sotien=Sotien; } public TK Create() { Scanner get = new Scanner(System.in); System.out.println("nhập... IOException { float sotienrut; Scanner get = new Scanner(System.in); System.out.println("nhập số tiền muốn rút"); sotienrut=get.nextFloat(); if(this.Sotien>=sotienrut) { this.Sotien=this.Sotien-sotienrut; System.out.println("Rút tiền thành công"); } else { System.out.println("Không đủ tiền để rút"); } File f = new File("Bai8.text"); FileWriter write = new FileWriter(f); PrintWriter out = new PrintWriter(write); . danh sách môn học (khoảng 5-8 môn) - Yêu cầu người dùng chọn sinh viên muốn đăng ký môn học, chọn môn sinh viên đăng ký, lưu lại thông tin đăng ký nếu thành công còn ngược lại in ra thông báo tương. thống giúp sinh viên đăng ký môn học bao gồm những thông tin sau: - Mỗi sinh viên có: mã sv, tên, năm vào trường - Mỗi môn học bao gồm: mã môn, tên môn, danh sách môn điều kiện. - Sau khi học xong,. DonGia){ this.TheLoai=TheLoai; this.TenCD=TenCD; this.SoLuong=SoLuong; this.DonGia=DonGia; } @Override HB - 20.6.2013 public String toString(){ return this.TheLoai+" - "+this.TenCD+"

Ngày đăng: 13/04/2014, 09:58

Từ khóa liên quan

Mục lục

  • Câu 5 Sự khác nhau giữa lớp abtract và lớp thông thường như thế nào, cho ví dụ?

  • Câu 6 Nêu bản chất của cơ chế kế thừa, nêu sự khác biệt giữa mối quan hệ “has-a” và “is a”

  • Đề bài: Học viện Ngân hàng muốn xây dựng hệ thống giúp sinh viên đăng ký môn học bao gồm những thông tin sau:

  • - Mỗi sinh viên có: mã sv, tên, năm vào trường

  • - Mỗi môn học bao gồm: mã môn, tên môn, danh sách môn điều kiện.

  • - Sau khi học xong, sinh viên được ghi nhận đã đạt môn đó nếu điểm thi của sinh viên đạt từ 5 điểm trở lên.

  • Khi sinh viên đăng ký môn học, hệ thống sẽ kiểm tra xem sinh viên đã thi đạt tất cả các môn trong điều kiện tiên quyết chưa, nếu điều kiện trên không thỏa mãn in ra thông báo không được phép đăng ký.

  • a) Mô tả các lớp, giao diện cần xây dựng để đáp ứng yêu cầu của bài toán trên

  • b) Cài đặt các lớp đã được mô tả

  • c) Viết chương trình thử thực hiện những chức năng sau:

  • -Yêu cầu người dùng nhập một mảng gồm 5 sinh viên

  • - Yêu cầu người dùng nhập một danh sách môn học (khoảng 5-8 môn)

  • - Yêu cầu người dùng chọn sinh viên muốn đăng ký môn học, chọn môn sinh viên đăng ký, lưu lại thông tin đăng ký nếu thành công còn ngược lại in ra thông báo tương ứng.

  • Đề bài: Cửa hàng đĩa CD cho thuê băng đĩa muốn xây dựng hệ thống cho thuê băng đĩa:

  • - Mỗi đĩa cd sẽ gồm các thông tin sau: Thể loại, tên, số lượng, giá thuê

  • -Khách hàng đến thuê sẽ cung cấp các thông tin sau: Tên, Địa chỉ, số tiền đặt cọc.

  • - Mỗi lần tới thuê khách hàng sẽ được thuê một hay nhiều đĩa CD, hệ thống sẽ lưu lại ngày thuê, tới khi khách hàng trả đĩa hệ thống sẽ tính số tiền mà khách hàng cần phải đưa thêm sau khi đã trừ đi số tiền mà khách hàng đã đặt cọc.

  • - Hệ thống sẽ lưu lại thông tin tương ứng của nhân viên đã thực hiện việc cho khách hàng thuê đĩa nhằm thực nhằm đối chiếu khi có sai sót.

  • a) Hãy mô tả các lớp cần thực hiện để xây dựng hệ thống

  • b) Cài đặt các lớp đã được mô tả

  • c) Viết chương trình thử nghiệm thực hiện các chức năng sau:

  • - Nhập thông tin khách hàng

  • - Nhập danh sách đĩa CD mà khách hàng muốn thuê

  • - Nhập lượng tiền mà khách hàng đã đặt cọc cho người bán hàng

  • - Nhập tên nhân viên đã thực hiện dịch vụ cho khách hàng

  • - Lưu lại thông tin vào file log.txt

  • --- Thông tin cho thuê đĩa của khách hàng: (tên kh)….

  • Thể loại: nhạc thiểu nhi, tên: Con cò bé bé, số lượng: 1, giá thuê: 1000đ/ngày

  • Thể loại: phim truyện, tên: Cánh đồng cát, số lượng:2, giá thuế 2000đ/ngày

  • Số tiền đặt cọc: 100.000đ

  • ----------------------------------------

    • Câu 4:

  • Đề bài: Một hệ thống ngân hàng xây dựng hệ thống quản lý khách hàng như sau:

  • - Mỗi khách hàng chỉ được phép có một tài khoản

  • - Thông tin mỗi khách hàng bao gồm: Mã KH, tên, số chứng minh thư, địa chỉ

  • - Thông tin mỗi tài khoản bao gồm: Mã TK, khách hàng tương ứng, số tiền

  • - Mỗi điều chỉnh về thông tin tài khoản sẽ do nhân viên ngân hàng thực hiện theo yêu cầu của khách hàng, thông tin nhân viên bao gồm: MaNV, tên, chi nhánh làm việc

  • Ngân hàng có thể thực hiện các giao dịch sau:

  • - Mở một tài khoản mới cho khách hàng, khi tạo mới nếu KH không gửi tiền thì mặc định số tiền là 0.

  • - Gửi tiền vào tài khoản theo yêu cầu của khách hàng rồi cập nhật lại thông tin tài khoản tương ứng

  • - Rút tiền khỏi tài khoản theo yêu cầu: nếu lượng tiền cần rút nhỏ hơn số tiền còn trong tài khoản thì cho phép rút, nêu lớn hơn in ra thông báo.

  • - Sau khi mỗi giao dịch được thực hiện, thông tin thay đổi trên tài khoản sẽ được lưu vào một file log.txt bao gồm các thông tin sau:

  • Tên tài khoản, ngày thực hiện giao dịch, kiểu giao dịch (gửi /rút), số tiền giao dịch, số tiền hiện có trong tài khoản, mã NV thực hiện giao dịch

  • a) Hãy mô tả các lớp, giao diện cần xây dựng để đáp ứng yêu cầu của hệ thống

  • b) Cài đặt các lớp đã được mô tả

  • c) Viết chương trình thử nghiệm các chức năng sau: Tạo mới tài khoản, gửi tiền vào tài khoản đó, rút tiền ra khỏi tài khỏa

    • a) Nhìn vào sơ đồ lớp bạn hãy liệt kê các thuộc tính cần thiết của lớp employee, và hãy cài đặt lớp này sao cho phương thức toSTring() hiển thị cả 3 thông số: firstname, lastname, birthday

    • b) Hãy cài đặt lớp Ajarn (phân h giảng) con của lớp Employee thể hiện thông tin về một nhân viên sẽ được tính tiền công dựa trên sĩ số sinh viên của lớp họ. Lớp Ajarm nê chứa thuộc tính private wage (chứa thống tin về tiền lương của nhận viên / 1 sinh viên) và numberStudents (lưu trữ số sinh viên trong một lớp). Xây dựng phương thức earnings() trong lớp Ajarm. Kiểm tra kết quả lập trình của mình trên lớp EmsTest.java.

    • c) Tạo ra một mảng các “Employees” và sắp xếp lại mảng này theo thứ tự giảm dần của thu nhập rồi hiển thị tên nhân viên và thu nhập tương ứng của họ ra màn hình.

    • Câu 1: Hãy cài đặt lớp Stack làm việc được với tất cả các loại đối tượng

    • Câu 2: Hãy cài đặt lớp Queue làm việc được với tất cả các loại đối tượng

  • Một đại lý bán vé máy bay muốn quản lý hệ thống bán vé của mình như sau:

  • - Mỗi khách hàng có thể đặt vé một chiều hay 2 chiều.

  • + Phần trăm giảm giá : tùy theo loại hành khách. Ví dụ như, giảm 10% giá vé cho sinh viên và người cao tuổi từ 65 trở lên, giảm 25% giá vé cho trẻ em dưới 5 tuổi

  • - Chương trình cho phép thực hiện các công việc sau :

  • Nhập thông tin khách hàng

  • Nhập thông tin chuyến bay

  • Số tiền khách hàng phải trả phải trả

  • a) Hãy mô tả các lớp cần xây dựng để thực hiện hệ thống

  • b) Cài đặt các lớp trên

  • c) Viết chương trình thử nghiệm thực hiện các chức năng sau:

  • -Nhập thông tin khách hàng

  • - Tính tổng só tiền khách hàng cần trả

  • - Hiển thị thông tin hóa đơn tham gia mua vé trên màn hình như sau và đồng thời lưu thông tin đó vào tệp log.txt:

  • ----Thông tin mua vé của khách hàng---

  • ---- Tên khách hàng: Trần Thị Mỹ A

  • ---- Ga đi: Hà Nội, ga đến: Đà Nẵng

  • ---- Tổng vé đã mua: 6

  • Số lượng vé người cao tuổi: 2, số lượng vé trẻ em: 2, số lượng ve thường: 2

  • ----giá vé: 500.000đ/vé thường

  • ----Tổng số tiền cần trả: 2.650.000 đ.

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan