1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo cuối kỳ môn lập trình hướng đối tượng quản lý cửa hàng bán sách

30 15 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Quản lý cửa hàng bán sách
Tác giả Phạm Văn Quốc Vĩnh
Người hướng dẫn Võ Hoàng Quân
Trường học Trường Đại học Tôn Đức Thắng
Chuyên ngành Lập trình hướng đối tượng
Thể loại Báo cáo cuối kỳ
Năm xuất bản 2021
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 30
Dung lượng 1,45 MB

Nội dung

Định nghĩa lớp Test và phương thức main để khởi tạo các đối tượng của lớp trên và in ra màn hình các thuộc tính bằng phương thức get.. Các thuộc tính và phương thức xử lý ở lớp sách sinh

Trang 1

TONG LIEN DOAN LAO ĐỘNG VIỆT NAM

TRUONG DAI HQC TON DUC THANG

KHOA CONG NGHE THONG TIN

DAI HOC TON BUC THANG

BAO CAO CUOI KY MON LAP TRÌNH HƯỚNG ĐÓI TƯỢNG

QUAN LY CUA HANG BAN SACH

Người hướng dân: VÕ HOÀNG QUẦN

Người thực hiện PHAM VAN QUOC VINH — 52000166

Lớp : 20050201

Khoá : 24

THÀNH PHÓ HÒ CHÍ MINH, NĂM 2021

Trang 2

TONG LIEN DOAN LAO ĐỘNG VIỆT NAM

TRUONG DAI HQC TON DUC THANG

KHOA CONG NGHE THONG TIN

DAI HOC TON BUC THANG

BAO CAO CUOI KY MON LAP TRÌNH HƯỚNG ĐÓI TƯỢNG

QUAN LY CUA HANG BAN SACH

Người hướng dân: VÕ HOÀNG QUẦN

Người thực hiện PHAM VAN QUOC VĨNH - 52000166

Lớp : 20050201

Khoá : 24

THÀNH PHÓ HÒ CHÍ MINH, NĂM 2021

Trang 3

LỜI CẢM ƠN

Để hoàn thành bài tiêu luận này, không thể không kế đến sự hướng dẫn của

Giáng viên Võ Hoảng Quân đã đứng lớp và hướng dẫn cho sinh viên chúng em đi từ những cái cơ bản nhất của môn Lập trình hướng Đôi tượng, đồng thời cũng có một phần rất lớn của Thầy Dung Cẩm Quang phụ trách phần thực hành Và giờ chúng em

có thê có đủ kiến thức đề hoàn thành bài cáo cáo cuối kỳ này, em xin cảm ơn!

Do đây cũng là lần đầu tiên em làm một bài báo cáo cuôỗi kỳ nên không thé tránh khỏi những sai sót không đáng có, mặc dù em đã hạn chế đến mức tối đa những sai sót

Em rất mong nhận được những góp ý cũng như nhận xét của thầy dé bài báo cáo của

em có thê hoàn thiện hơn Cuôỗi cùng em xin chân thành cảm ơn!

Trang 4

Ngoài ra, trong đồ án còn sử dụng một số nhận xét, đánh giá cũng như số liệu của các tác giá khác, cơ quan tô chức khác đều có trích dẫn và chú thích nguồn gốc

Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm

về nội dung đồ án của mình Trường đại học Tôn Đức Thắng không liên quan đến những vi phạm tác quyền, bản quyền do tôi gây ra trong quá trình thực hiện (nếu có)

TP Hồ Chí Minh, ngày 24 tháng 07 năm 2021

Tác giả (ký tên và ghỉ rõ họ tên)

Phạm Văn Quốc Vĩnh

Trang 5

1H

PHAN XAC NHAN VA DANH GIA CUA GIANG VIEN

Phần xác nhận của GV hướng dẫn

Tp Hồ Chí Minh ngày tháng năm

(kí và phi họ tên)

Phần đánh giá của GV chấm bài

Tp Hồ Chí Minh ngày tháng năm

(kí và phi họ tên)

Trang 6

TÓM TAT

Trong bài báo cáo này có 2 phân, phần I sẽ đi tìm hiểu chung về OOP bao gồm

những kiến thức cơ bản và một số phần code đề minh họa cho phân lý thuyết Phần 2 là câu hỏi lập trình mở, đòi hỏi vận dụng những kiến thức đã học để giải thích các vẫn đề

của đề bài, vẽ sơ đồ UML cũng như viết code hoàn chính

Trang 7

MỤC LỤC LỜI CẢM ƠN 5 2222212211 2122122112112122122 121111 ere i PHAN XAC NHAN VA DANH GIA CUA GIANG VIEN . ccccsserree iii TÓM TẮTT S22 252 112212211221121112111 1121101122111 re iv MỤC LỤC 222 22112211222112211221122 210211221221122121212 2e I CHƯƠNG 1 — BAL LAM PHAN Looieeccecccssscsssesssesssesssessvntssisstesrvesisessicsssteetunetiveseeessses 2

PD Câu Í Q.20 2221222112222 2 222 2 [2 CÂu2 0 2 0122222222 22212 ererre 5 CHƯƠNG 2 - BÀI LÀM PHÂN 2 52-222 221222122112211221221122121121112122 xe 7 2.1 Câu Í 2.22220222222222 12222 ra 7 2.2 CÂU 2 0.0.2 0 2n H222 eo 14

23 Câu Q.0 H222 2121 ee 15 2.4 — CÂU Ả Q.00 0122212 2n H222 21121 ee 21

Trang 8

CHUONG 1 - BAI LAM PHAN 1

1.1 Cau 1: Java

a Trinh bày quy tắc đặt tên biến trong Java và cho ví dụ cụ thê một số tên biến

b Trình bày 03 trong số các kiểu dữ liệu nguyên thủy (primitive type) có trong Java

c Lập trình giải bài toán theo yêu cầu sau:

® Định nghĩa một lớp Calculator

e Định nghĩa phương thức public static boolean checkPrime(int n) dé kiém tra một số n truyền vào có là số nguyên tô hay không? Nếu có thì phương thức tra vé true, nguoc lai tra vé false

e Dinh nghia phuong thirc public static int calSumPrime(int n) dé tinh tông tat cả các số nguyên tô bé hơn hoặc bằng n truyền vào

e Viết phương thức main đề kiểm tra lại các phương thức vừa định nghĩa trên

Bài làm

Trong Java có các quy tắc đặt tên biến như sau:

- _ Ký tự bắt đầu của tên biến phải là chữ cái, dấu gạch dưới ( ) hoặc ký tự dola ($) và không bắt đầu bằng số

Vi du: name, name, $name

=> Các tên biến sai: 5name, (@name, #name

- _ Không được có khoảng trắng giữa các ký tự của biến

Ví dụ: dayOfBirth, day Of Binth

= Các tên biến sai: day Of Birth

- _ Không chứa các ký tự đặt biệt trong tên biến như !, @, #, %, &,

=> Các tên biến sai: n@me, Count#

- _ Không đặt tên biến trùng với các keyword của Java

Vi du: abstract, for, if, do, while, int, float, boolean,

Trang 9

Có nhiều kiêu dữ liệu nguyên thủy trong Java nhưng tôi xin trình bày 03 trong các kiêu dữ liệu đó:

Kiểu dữ liệu int: dùng để biểu diễn các giá trị nguyên 32 bit nằm trong khoảng từ -2,147,483,648 đến 2,147,483,647 Khi mới khởi tạo thì được gán giá trị mặc định là 0 Ví dụ: 0, I, 2, -3, -5,

Kiểu dữ liệu double: dùng để biểu diễn các số thực, tuy nhiên vùng giá trị rộng hơn kiêu float Dùng để biểu diễn số thực 64 bít thay vì chỉ 32 bít như

kiéu float Mac định một số thực trong Java sẽ được hiểu là mang kiểu double

Kiéu dit ligu boolean: day 1a kiéu di liéu logic chira l trong 2 giá trị là

‘true’ hodc ‘false’ Va gia tri mac định của kiểu boolean khi mới được khởi tạo là false

Trang 10

public class Calculator

Trang 11

1.2 Câu 2: Lớp và đối tượng

a Định nghĩa lớp SinhVien với các yêu cầu sau:

e Chứa ít nhất 03 thuộc tính bất kỳ (thuộc tính phải phù hợp với đối tượng là

sinh viên) với access modifier la private

e Chứa ít nhất 02 phương thức khởi tạo bất kỳ

e Chứa các phương thức get, set cho đối tượng

b Định nghĩa lớp Test và phương thức main để khởi tạo các đối tượng của lớp trên

và in ra màn hình các thuộc tính bằng phương thức get

Bài làm

public class SinhVien

{

private String studentID;

private String studentName;

private int birthYear;

Trang 12

public int getBirthYear(){

public void setBirthYear(int birthYear) {

this birthYear = birthYear;

}

public class Test

{

public static void main(String[] args) {

SinhVien sinhVienl = new SinhVien("52000123",

"Nguyen Van A", 2002);

System.out.println("Student ID: " +

sinhVienl.getStudentID());

System.out.println("Student Name: " +

sinhVienl.getStudentName()); System.out.println("Student Birth Year: " +

sinhVienl.getBirthYear());

Trang 13

CHUONG 2 - BAI LAM PHAN 2

2.1 Cau 1

Sinh viên viết đặc tả về đề tài Quản lý cửa hàng bán sách Trong đó, một lớp sách

và hai lớp kế thừa từ sách là sách văn học và tạp chí Các thuộc tính và phương thức xử lý ở lớp sách sinh viên tự định nghĩa, trong đó có 01 thuộc tính là giá gốc của sách, ít nhất 02 thuộc tính bất kỳ (phù hợp đối tượng là sách), 02 phương thức khởi tạo bất kỳ, 01 phương thức abstract dùng để tính giá bán và 02 phương thức xử lý do sinh viên tự định nghĩa thêm (Các phương thức khởi tạo, getter/setter, toString, equals không được tính là phương thức xử ly)

Đối với lớp con sách văn học có ít nhất 02 thuộc tính là Tác giả và Năm xuất bản,

có 02 phương thức khởi tạo, 01 phương thức tính giá bán và 02 phương thức

xử lý khác Phương thức tính bán của sách văn học là giá gốc + 5% thuế Các phương thức xử lý khác do sinh viên tự định nghĩa thêm

Đối với lớp con tạp chí có ít nhất 02 thuộc tính là Ngày xuất bản và Nhà xuất

bản, có 02 phương thức khởi tạo, 01 phương thức tính giá bán và 02 phương thức xử lý khác Phương thức tính bán của tạp chí là giá gốc + 10% thuế Các phương thức xử ly khác sinh viên tự định nghĩa thêm

Trong đặc tả phải giải thích: các thuộc tính trong bài là gì, các phương thức trong bai la gi, overload ở đâu, override ở đầu, tính kế thừa/đa hình/trừu tượng ở đâu,

Bài làm

Theo như đề bài, phải thiết kế 3 lớp, bao gồm l lớp Sach là /ớp cha (và cũng

là lớp abstract do chứa các phương thức abstraet) và 2 lớp con kế thừa từ lớp Sach

là SachVanHoc và TapChi

Giải thích cụ thê các phương thức và thuộc tính của mỗi lớp như sau:

Trang 14

* Lớp Sach:

- Thuộc tính:

© protected String tenSach: tén cua sach

© protected double giaGoe: giá gốc của sách

©_ protected int soLuongConLai: số lượng sách còn lại của cửa hàng

- Phương thức:

©_ Phương thức khởi tạo:

“_ public Sach(): phương thức khởi tạo không có tham số

= public Sach(String tenSach, double giaGoc, int

soLuongConLai): phương thức khởi tạo có đầy đủ tham sô

*Ở đây ta thấy được tính overloading (nạp chồng phương thức) (nằm trong tính đa hình) ở constructor, có 2 consfrucfor đặt tên giống nhau nhưng tham số truyền vào khác nhau

© Phuong thic getter va setter:

" public String getTenSach(): phương thức get tên sách

"public double getGiaGoc(): phuong thức get giá gốc

"public int getSoLuongConLai(): phương thức get số lượng sách còn lại

" publïic void sefTenSach(String tenSach): phương thức set tên sách

" public void setGiaGoc(double giaGoc): phuong thu set gia goc cua sach

Trang 15

public void setSoLuongConLai(int soLuongConLai): phương thức set sô lượng sách còn lại

©_ Phương thức xử lý:

public abstract double tinhGiaBan(): phương thức abstracf

dung dé tinh gia bán, mỗi loại sách có giá tính khác nhau và sẽ được định nghĩa sau

public abstract double giamGia(): phương thic abstract tinh

số tiền giảm giá, mỗi loại sách có cách giảm giá khác nhau và

sẽ được định nghĩa sau

public abstract double soTienPhaiTra(): phương thức abstract tinh tông số tiền phải tra sau khi đã trừ giảm giá

public boolean kiemTra(): phương thức kiêm tra xem quyền sách cần tìm còn trong cửa hàng không, nêu số sách còn lại lớn hơn 0 tức còn sách thì trả về true, ngược lại nếu số sách còn lại bằng 0 tức đã hết sách thì trá về false

©_ Phương thức toStrinng:

public String toString(: phương thức toString để trả về chuỗi đại diện của đối tượng (ở đây là Sách) theo định dạng mình mong muôn

Trang 16

*Lớp SachVanHoc (kế /hừa từ lớp Sach):

- Thuộc tính:

© private String tacGia: tac gia cua sach

© private int namXuatBan: nam xuat ban cua sách

- Phương thức:

©_ Phương thức khởi tạo:

=" public SachVanHoc(String tenSach, double giaGoc, int soLuongConLai, String tacGia, int nam XuatBan): phuong thức khởi tạo có đầy đủ tham số

= public SachVanHoc(String tacGia, int namXuatBan): phương thức khởi tạo chỉ có 2 tham số truyền vào

*Ở đây ta thấy được tính overloading (nạp chồng phương thức) (nằm trong tính đa hình) 6 constructor, cé 2 constructor được đặt tên giống nhau nhưng tham số truyền vào khác nhau

©_ Phương thức gectter và setter:

" public String getTacGia(): phuong thức get tác giả của sách

=" public int getNamXuatBan(): phuong thie get nam xuat ban cua sach

" publïc void sefTacGia(String tacGia): phương thức set tác giả của sách

« public void setNamXuatBan(int namXuatBan): phuong thức set năm xuất bán

Trang 17

*Ở class này ta cĩ 2 thuộc tính private sẽ ẩn di với các lớp khác Muốn truy xuất ta dùng các phương thức public getter

public double giamGia(): overriding (ghi dé) lai phirong

thc abstract giamGia() ở lớp Sach Được định nghĩa là nêu

lượng sách trong kho lớn hơn hoặc bằng 20 quyền thì sẽ giảm giá 5% trên tơng giá bán đã bao gơm thuế

public double soTienPhaiTra(Q): overriding (ghi dé) lại

phương thức abstracf soTienPhạTra() ở lớp Sach Được định nghĩa là trá về sơ tiền cần thanh tốn cuối cùng bao gồm

tơng giá bán (đã tính thuế) trừ đi giảm giá (nếu cĩ)

*7a lại thấy tính đa hình ở việc ghỉ đè phương thức: cùng là phương thức giống tên nhau nhưng ở mỗi class khác nhau lại thực hiện chức năng khác nhau

Trang 18

*Lớp TapChi (kế thừa từ lớp Sach):

- Thuộc tính:

o private String ngayXuatBan: ngay xuat bản của tạp chí

o private String nhaXuatBan: nha xuat ban cua tap chi

- Phương thức:

©_ Phương thức khởi tạo:

=" public TapChi(String tenSach, double giaGoc, int soLuongConLai, String ngayXuatBan, String

nhaXuatBan): phương thức khởi tạo có đầy đủ tham số

"_ public TapChi(String ngayXuatBan, String nhaXuatBan): phương thức khởi tạo chỉ có 2 tham số truyền vào

*Ở đây ta thấy được tính overloading (nạp chồng phương thức) (nằm trong tính đa hình) ở constructor, có 2 construcfor được đặt tên giống nhau nhưng tham số truyền vào khác nhau

©_ Phương thức gectter và setter:

«public String getNgay XuatBan(): phương thức get ngày xuất bản của tạp chí

"public String getNhaXuatBan(): phuong thirc get nha xuat ban cua tap chi

= public void setNgayXuatBan(String ngay XuatBan): phương thức set ngày xuất bản của tap chí

" publïic void se€NhaXuatBan(String nhaXuatBan): phương thức set nhà xuất bản của tạp chí

Trang 19

*Ở class này ta cĩ 2 thuộc tính private sẽ ẩn di với các lớp khác Muốn truy xuất ta dùng các phương thức public getter

public double giamGia(): overriding (ghi de) lai phương

thc abstract giamGia() ở lớp Sach Được định nghĩa là nêu

lượng tạp chí trong kho lớn hơn hoặc bằng 10 quyền thì sẽ giám giá 2.5% trên tổng giá bán đã bao gồm thuế

public double soTienPhaiTra(Q): overriding (ghi dé) lại

phương thức abstracf soTienPhạTra() ở lớp Sach Được định nghĩa là trả về sơ tiền cần thanh tốn cuối cùng bao gồm

tơng giá bán (đã tính thuế) trừ đi giảm giá (nếu cĩ)

*Ta lai thấy tính đa hình ở việc ghi đè phương thức cùng là phương thức giống tên nhau nhưng ở mỗi class khác nhau lại thực hiện chức năng khác nhau

Ngày đăng: 26/09/2024, 16:19

TỪ KHÓA LIÊN QUAN

w