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

Báo cáo bài tập lớn môn lập trình hướng Đối tượng Đề tài xây dựng phần mềm quản lý sinh viên

31 0 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 đề Xây dựng phần mềm quản lý sinh viên
Tác giả Phạm Như Linh, Vũ Ngọc Linh, Trịnh Diệu Linh
Người hướng dẫn TS. Đỗ Thị Liên
Trường học Học Viện Công Nghệ Bưu Chính Viễn Thông
Chuyên ngành Lập trình hướng đối tượng
Thể loại Báo cáo bài tập lớn
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 31
Dung lượng 3,24 MB

Nội dung

IL.Xác định yêu cầu Xây dựng một ứng dụng để quản lý học viên của Trung tâm tiếng Anh BaL nhằm lưu trữ và quản lý các thông tin về học viên đang theo học tại các lớp của các khóa học và

Trang 1

BO THONG TIN VA TRUYEN THONG

HOC VIEN CONG NGHE BUU CHINH VIEN THONG

ext

—mỪy——

BAO CÁO BÀI TẬP LỚN MÔN LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

Đề tài: Xây dựng phần mềm Quản lý sinh viên

Nhóm 1

Giáo viên hướng dẫn: TS Đỗ Thị Liên

Thành viên: 1 B22DCD T178 Phạm Như Linh

2 B22DCD T179 Vũ Ngọc Linh

34 B22DCVT310 Trịnh Diệu Linh

HÀ NỘI -— 2024

Trang 2

IL.Xác định yêu cầu

Xây dựng một ứng dụng để quản lý học viên của Trung tâm tiếng Anh BaL nhằm lưu trữ

và quản lý các thông tin về học viên đang theo học tại các lớp của các khóa học và giáo viên giảng đạy

Ứng dụng được sử dụng bởi nhân viên ở bộ phận quản lý, đăng nhập vào hệ thống sử dụng tài khoản admin được cấp sẵn trong cơ sở dữ liệu Những nhân viên có quyền truy

cập vào hệ thống có thê:

nhận

Quản lý khóa học: Ghi lại thông tin các khóa học, và danh sách lớp của khóa học Quản lý lớp học: Theo đõi danh sách lớp học, giáo viên phụ trách, và học viên tham gia

e© Quản lý điểm số: Lưu trữ và quản lý điểm số của học viên theo các môn học hoặc

II.Yêu cầu chức năng chỉ tiết

Sau khi đăng nhập vào hệ thống bằng tài khoản admin, người dùng có thể:

thống

° Tổng số lớp học: Thống kê số lượng lớp học hiện có

2 _ Quản lý giáo viên

2.1 Chức năng: Thêm mới giáo viên

e Người dùng nhập thông tin giáo viên:

o Ngay sinh (dob): Chuỗi ký tự không rong

sách

© _ Tự động tạo mã giáo viên (ID giáo viên) theo quy tắc:

Trang 3

m Mã giáo viên là "TC" + số thứ tự tăng dần (VD: TC001,

TC002)

m Nếu hiện tại có 10 giáo viên, mã tiếp theo sẽ là "TCOIL"

© _ Tự động viết hoa mã giáo viên đề đảm bảo tính nhất quán (VD: tc012 — TC012)

m Xóa khoảng trắng thừa

m Viết hoa chữ cái đầu của từng từ (VD: "ngUYễn vAn A " >

"Nguyễn Văn A")

o_ Kiểm tra và thêm số "0" vào đầu số điện thoại nếu thiểu (VD:

"987654321" — "0987654321")

m Hệ thống đọc dữ liệu từ file và tự động chuẩn hóa thông tin

như trên trước khi lưu vào cơ sở đữ liệu

2.2 Chức năng: Hiển thị thông tin của tat cả giáo viên: Danh sách bao gồm thông

tin cơ bản và các lớp học mà họ đảm nhận

e_ Hiển thị danh sách giáo viên:

2.3 Chức năng: Xóa giáo viên:

Quan ly hoc vién

3.1 Chức năng: Thêm mới học viên

e Nhập thông tin sinh viên:

o Ngay sinh (dob): Chuỗi ký tự không rong

o Kiém tra và thêm số "0" vào đầu số điện thoại nếu thiếu

o Cho phép tải fñle đữ liệu danh sách học viên lên:

m Hệ thống đọc dữ liệu từ file và tự động chuẩn hóa thông tin

như trên trước khi lưu vào cơ sở đữ liệu

3.2 Chức năng: Hiền thị đanh sách học viên: Bao gồm thông tin cá nhân và đanh sách lớp học đang tham gia

e_ Nhập mã sinh vién (studentld)

e Hiển thị:

Trang 4

3.3 Chức năng: Xóa học viên:

Quản lý khóa học

4.1 Chức năng: Thêm mới khóa học

e_ Người dùng nhập thông tin lớp học:

o_ Tự động viết hoa mã khóa học đê đảm bảo tính nhất quán

Ielts Preparation)

o_ Kiểm tra ID khóa học đã tồn tại hay chưa trước khi thêm

m Dữ liệu sẽ được kiểm tra và thêm vào cơ sở dữ liệu nêu hợp

lệ

4.2 Chức năng: Hiển thị danh sách khóa học:

o Makhoa hoc, tén khéa hoc, s6 budi học

4.3 Chức năng: Xóa khóa hoc:

© Ngày bắt đầu và ngày kết thúc (startDate, endDate): Ngày hợp

lệ

e _ Hệ thống tự động gán giáo viên và học viên vào lớp dựa trên thông tin trong file

@ Cho phép luu danh sach Iép hoc ra file dtr ligu

5.2 Chức năng: Hiển thị danh sách lớp học:

gia, ngày bắt đầu và ngày kết thúc lớp học

Trang 5

7 Diém chuyên cần (attendance): Số thập phân

m Điểm bài tập (homework): Số thập phân

" Điểm giữa khóa (midTerm): Số thập phân

m Điểm cuối khóa (endTerm): Số thập phân

finalScore = attendance x 9.1 + homework x 9.2 + midTerm x @.2 + endTerm x 0.5

Điểm hiển thị làm tròn 2 chữ số thập phân

e Nếu điểm chuyên cần lớn hơn 5 thì kết quả sẽ hién thi “Passed” con néu

ngược lại thì kết qua sé 1a “Failed”

II Phân tích thiết kế ra lớp:

Gồm 7 lép: Person, Teacher, Student, Course, Class, Score, Users

1 Lớp Person (Lớp cha trừu tượng)

Biến

e name (String): Tên cá nhân, được chuẩn hóa

® phoneNum (9g): Số điện thoại, được chuẩn hóa đề đám bảo luôn bắt

đầu bằng 0

Hàm khởi tạo

e© Không tham số: Tạo một đối tượng mặc định

Phương thức

e Chuẩn hóa dữ liệu:

đầu và các chữ cái còn lại viết thường

từ nhiều định đạng khác

dau bang 0

Trang 6

©_ getldQ), getName(Q), getDob(), getPhoneNumQ) trả về các giá trị tương ứng

liệu vào file

©_ toStringQ: Trả vẻ chuỗi biểu diễn thông tin cơ bản của cá nhân

2 Lớp Student (Kế thừa Person)

Biến

® cnt (static int): B6 đếm đề tạo ID tự động cho học viên

tham gia, lưu theo dang classId -> Score

theo ID

Hàm khởi tạo

e© Không tham số: Tạo đối tượng mặc định

e (6 tham sé name, dob, phoneNum: Khởi tạo học viên với ID tự động dạng

STxxx

Phuong thirc

tham gia nếu hợp lệ

e printStudentResult(): In chi tiết kết quả của hoc viên (các lớp tham gia và điểm sô)

thứ tự từ điền

3 Lớp Teacher (Kế thừa Person)

Biến

® cnt (static int): B6 dém tur động tạo ID cho giáo viên

e teachingCourses (7reeSet<String>): Danh sach các lớp mà giáo viên đang

đạy

e email (Sting): Email duoc tu déng sinh dựa trên tên và ID giáo viên

theo ID

Hàm khởi tạo

e© Không tham số: Tạo đối tượng mặc định

và emaIl tự động

Phương thức

Trang 7

e addTeachingClass(Strng class[D): Thêm lớp mà giáo viên dạy vào danh sách

4 Lớp Course

Biến

® cnt (static int): B6 dém tur déng tao ID cho khéa hoc

hoc

id (String): ID cua khéa học

name (String): Tén cua khoa hoe (duge chuan hoa)

totalSessions (int): Téng sé budi hoc

e classes (Set<Class>): Danh sach các lớp thuộc khóa học này

Hàm khởi tạo

e© Không tham số: Tạo đối tượng mặc định

e Có tham số đầy đủ: Khởi tạo khóa học và tự động thêm vào danh sách

chung

Phương thức

©_ toStringQ: Hiền thị thông tin chỉ tiết khóa học (bao gồm các lớp còn trồng)

Š Lớp Class

Biến

MAX STUDENTS (static int): Gidi hạn số sinh viên trong một lớp allClasses (static TreeMap<String, Class>): Danh sach tat cả các lớp classId (String): ID cua lop hoc

courseld (S/ri›g): ID của khóa học mà lớp thuộc vẻ

teacherld (String): ID giao viên dạy lớp

studentList (TreeSet<Student>): Danh sách sinh viên trong lớp

Hàm khởi tạo

e© Không tham số: Tạo đối tượng mặc định

e Có tham số đầy đủ: Khởi tạo lớp học với classld tự động và thêm vào danh

sách chung

Phương thức

addStudent(Student stu): Thêm sinh viên vào lớp nếu chưa đây

@ removeStudent(Student stu): Xoa sinh vién khỏi lớp

e removeExpiredClasses(Class x): Kiểm tra và loại bỏ các lớp đã kết thúc

Trang 8

© save(): Tra vé thong tin lớp dưới đạng chuỗi đề lưu ñle

©_ toStringQ: Hiền thị thông tin chỉ tiết lớp học

6 Lớp Score

Biến

e result (String): Két qua (pass/fail/not graded)

Hàm khởi tạo

e© Không tham số: Tạo điểm với giá trị mặc định

Phương thức

e toString(): Hién thi thông tin chỉ tiết điểm số

IV.Xây dựng biểu đồ lớp(UML)

Trang 9

publ Teacher (String name, String dob, String phoneNum)

super("TC" + 3 format (" ++ont), name, dob, phoneNum) ;

public Student (String name, String dob, String phoneNum) {

super("ST" + String format ("S03d", ++cnt), name, dob,

addStudent ();

phoneNum) ;

2 Da hinh (Polymorphism)

Đa hình cho phép một phương thức được thực hiện theo nhiều cách khác nhau.Chương

trinh da sử dụng phương thức ghi đẻ (overriding) đề thay đôi hành vị của một phương

thức kế thừa từ lớp cha

@Override

public String teString() {

StringBuilder res = new StringBuilder();

for (Class x : this.classes) {

if (x.getStudentList().size() < 20 && x.removeExpiredClasses(x)) { res.append(x.getClassId()).append(" ");

}

return "ID Course: " + this.id

+ "\nCourse name: " + this.name

+ "\nNumber of sessions: " + this.totalSessions

+ "\nAvailable classes: " + res.toString().trim();

3 Dong goi (Encapsulation)

Trang 10

Đóng gói giúp bảo vệ dữ liệu bên trong lớp và chỉ cho phớp truy cập thông qua các phương thức getter và setter Điều này giúp kiểm soát cách dữ liệu được thay đôi và đảm bảo tính nhất quán

lic Class me Comparable<¢

privat nal int # h 20;

it TreeMap<String, Class> ew TreeMap<>();

public String setClassId(String courseID) {

Course course Course getAllCourses().get(courselID);

4 Trừu tượng (Abstraction)

Trừu tượng giúp ân đi chi tiết thực thi và chí hiển thị các chức năng quan trong Diéu nay

có thê được thực hiện qua việc sử dụng lớp trừu tượng

Trang 11

private String id;

private String name;

private String dob;

private String phoneNum;

public Person(String id, String name, String dob, String phoneNum) { this.id = id;

this.name = setName (name);

this.dob = setDob (dob);

this.phoneNum = setPhoneNumber (phoneNum) ;

V.Hướng dẫn sử dụng app Quản lý học viên

1 ĐĂNG NHẬP VÀO GIAO DIỆN CHÍNH

e_ Giao diện chính xuất hiện với tài khoản admin là tài khoản mặc định được lưu

trong khối static của class Users

Vui lòng sử dụng tài khoản

CD Hién thị mật khẫu

Đăng nhập

Trang 12

e_ Click hiển thị mật khẩu đề hiển thị mật khâu

Quan ly hoc vién

Tén dang nhap Chào mừng bạn!

admin Vui lòng sử dụng tài khoản

admin123 (V] Hiễn thị mật khẫu Đăng nhập

e_ Giao diện trang chủ của admin

Quan ly hoc vién

ME

Quản lý giáo viên

& Quản lý học viên

Trang 13

EU ee ID Họ và tôn Ngày sinh Số điện thoại Các lớp đang dạy

e Thông tm nhập vào đã được tự động chuẩn hoa trước khi đưa vào danh sách

(S) Quan ly hoc viên

Quan ly hoc vién

l=} Quản lý khóa học ID Họ và tên Ngày Sinh Số điện thoại Các lớp đang day

- - a

TC001 Vũ Ngọc Linh 02/12/1990 0987654321 Hiện không có lớp

c Quản lý lớp học

TC002 Nguyen Van An 01/03/1980 0901234567 Hiện không có lớp

E Quản lý điểm TC003 Tran Thi Binh 15/07/1975 0912345678 Hiện không có lớp

giáo viên tại trung tâm, các khóa học đang giảng dạy

Trang 14

[Source Hitoy Tei RỆ - - gi H6iý £@$9,

Trang 15

LS) Quan ly hoc viên - x

Quan ly hoc vién

Quản lý giáo viên

=| Quản lý khóa học ID Họ và tên Ngày Sinh Số điện thoại Các lớp đang dạy

TC001 Vũ Ngọc Linh 02/12/1990 0987654321 liện không có lớp

bee Quản lý lớp học

TC002 Nguyen Van An 01/03/1980 0904234587 Hiện không có lớp

E Quản lý điểm TC003 Tran Thi Binh 15/07/1975 0912345678 Hiện không có lớp

=| Quản lý khóa học ID Họ và tên Ngày sinh Số điện thoại Các lớp đang dạy

a

ee Quản lý lớp học TC004 Le Minh Hoang 22/11/1985 0923456789 Hiện không có lớp

TC005 Pham Yan Cuong 09/05/1990 0934587890 Hiện không có lớp

đữ liệu đồng thời sẽ được lưu vào file Teacherlnput.in dé lưu đanh sách cho lần sử dụng sau

Trang 17

e_ Dữ liệu file TeacherOutput.m khi được lưu lại

file” dé hiển thị lên những thông tin đã làm việc trước đó

® Sau khi đữ liệu được ghi lại sẽ có thông báo lưu thành công

VD: Xoá giáo viên Trần Bích Ngọc ấn vào dòng chứa thông tin giáo viên đó rồi click “Xoá giáo viên”

Trang 18

é] Quản lý học viên

Quản lý học viên

rang chủ Tên giáo viên

> Quản lý giáo viên

Sô điện thoại

B4 Quản tý khóa học ID Họ và tên oo, ai Các lớp đang dạy

Đ ido viên thành côn! ———_— „

a

ee Quan ly I6p hoc TC003 Tran Thi Binh ( œ ) Hiện không có lớp

TC004 Le Minh Hoang Hiện không có lớp

Bet] auin ly khéa hee

ID Họ và tên Ngày sinh Số điện thoại Các lớp đang học

Trang 19

e Tương tự như giao điện Quản lý giáo viên đầu tiên ta sẽ phải an “Tải ñle lên” đề hiện thị thông tin những học viên trước đó từ file StudentInput.in

$ Tà T2 =2 ren Ngày sinh

š _ Quản lý giáo viên

Số điện thoại

.— 11 1

ID Họ và tên Ngày sinh Số điện thoại Các lớp đang học

+ fete Nall ait ST001 Trịnh Diệu Linh 24/07/2004 0123456789 Chưa cập nhật

ST002 Hoang Minh Tuan 12/09/2002 0987123458 Chưa cập nhật

3 Quan ly diém

as $T003 Le Thi Hoa 08/03/2001 0988234567 Chưa cập nhật

1) 0Ä 7 xố ST004 Nguyen Van Nam 22/11/2000 0989345678 Chưa cập nhật

e Thêm học viên mới vào danh sách và ân nút “Thêm học viên”

Quan ly hoc vién

Trang chủ Tên học viên : Phạm Nguyên Khôi

Ngày sinh : 08/08/2006

Số điệnthoại = 0941523763|

Quan ly khéa hoc

pelt T Sel CAU

ID Họ và tên Ngày sinh Số điện thoại Các lớp đang học

Quan ly lốp học ST015 Trân Quang Hu/ 22/08/2002 0978456123 Chưa cập nhật

ST018 Lê Thị Thu Hà 05/05/2001 0918567345 Chưa cập nhật

Quản lý điểm |

ST017 Phạm Xuân Hòa 30/07/2004 0906789456 Chưa cập nhật

ST018 Dang Bao Khánh 12/03/2005 0937456123 Chua cap nhat

Thoát

e_ Thông tn sinh viên mới đã được lưu vào cuối danh sách

Trang 20

|S) Quan ly hoc vién _— x

cae Seen (aie en Lumwene [temns-ven,)

Bet] Quản lý khóa học

ID Họ và tên Ngày Sinh Số điện thoại Cac lớp đang học

| ee ee ST018 Lê Thị Thu Hà 05/05/2001 0918567345 Chưa câp nhật

ST017 Pham Xuân Hòa 30/07/2004 0906789456 Chưa cập nhật

2 ST018 Bang Bao Khanh 12/03/2005 0937456123 Chua cap nhat

” ST020 Pham Nguyên Khôi 08/08/2006 0941523703 Chưa cập nhật

v roan Thêm vào lớp

Trang 21

4 GIAO DIEN QUAN LY KHOA HQC

4 Quan ly khéa hoc

ID khóa học Tên khóa học Số buỗi học

ENG002 Toeic Preparation 30

E Quản lý điểm

ENG003 English For Travel 20

khi đưa vào danh sách

click vào “lưu ñle”, sắp xếp theo thứ tự từ điển của từ điện của ID khoá học.Bao gồm các thông tin đã nhập và các lớp đang còn trồng( các lớp chưa kết thúc nên chưa có thông tin cho dòng này)

Xoá khoá học cũng làm tương tự như trên

GIAO DIEN QUAN LY LOP HỌC

Ta cũng làm tương tự như các chức năng trước

Nếu ID khoá học hoặc ID giáo viên nhập vào không có trong dữ liệu thì sẽ hiển thị

thông báo

sách ID lớp học được tạo dựa trên ID khoá họcTstt của lớp trong khóa học

Ngày đăng: 15/02/2025, 22:04

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN