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

Viết chương trình quản lý nhân viên trong một công ty phần mềm

22 27 0

Đ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 đề Viết Chương Trình Quản Lý Nhân Viên Trong Một Công Ty Phần Mềm
Tác giả Trần Thị Ngọc Anh, Lê Quang Trường, Bùi Thị Huyền
Người hướng dẫn ThS. Trần Xuân Thanh
Trường học Trường Đại Học Công Nghệ Đông Á
Chuyên ngành Công Nghệ Thông Tin
Thể loại bài tập lớn
Năm xuất bản 2021
Thành phố Bắc Ninh
Định dạng
Số trang 22
Dung lượng 1,11 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Viết chương trình quản lý nhân viên trong một công ty phần mềm | Học phần lập trình hướng đối tượng với Java giúp sinh viên năm được phương pháp lập trình hướng đối tượng (OOP) và ngôn ngữ lập trình Java cơ bản. Bài tập lớn môn học là tổng hợp kiến thức, kỹ năng về phương pháp lập trình hướng đối tượng và ngôn ngữ lập trình Java. Nội dung bài tập lớn gồm: Phân tích bài toán, giới thiệu tông quan về phương pháp lập trình hướng đối tượng, đặc trưng của ngôn ngữ lập trình Java, cài đặt phần mềm với ngôn ngữ Java trong đó sử dụng các lớp kế thừa, lớp trừu tượng vào giao diện (interface) của lập trình hướng đối tượng. Bài tập lớn là tài liệu tham khảo hữu ích cho SV ngành CNTT.

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á

BÀI TẬP LỚN

HỌC PHẦN: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

VIÊN TRONG MỘT CÔNG TY PHẦN MỀM

Nhóm thực hiên : Nhóm 8 Lớp: CNTT1 Khóa: K11 Khoa : Công nghệ Thông tin Giáo viên : ThS Trần Xuân Thanh

Bắc Ninh, tháng 10 năm 2021

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á

Trang 3

DANH MỤC THÀNH VIÊN

Giáo viên hướng dẫn xác nhận

Trang 4

MỤC LỤC

MỞ ĐẦU 1- 2

NỘI DUNG 3- 16

Chương 1- TỔNG QUAN VỀ MÔN HỌC LẬP TRÌNH HƯỚNG ĐỐI

TƯỢNG VÀ NGÔN NGỮ JAVA 3- 8

1.1: Môn học lập trình hướng đối tượng 3- 6

1.2: Ngôn ngữ lập trình Java 6- 8

Chương 2- VIẾT CHƯƠNG TRÌNH QUẢN LÝ NHÂN VIÊN TRONG

MỘT CÔNG TY PHẦN MỀM BẰNG NGÔN NGỮ JAVA 8- 15

2.1: Yêu cầu đề bài 8- 9

Trang 5

MỞ ĐẦU

Hiện nay, số lượng ngôn ngữ lập trình được đưa vào sử dụng là vô cùng lớn, hàng chục

những ngôn ngữ khác nhau mà chúng ta có thể cân nhắc sử dụng Với quá nhiều ngôn

ngữ lập trình khác nhau được ứng dụng khiến người dùng đặt ra câu hỏi vì sao cần sử

dụng nhiều, và nó có thực sự cần thiết hay không Có thể lý giải được điều đó thì ứng

dụng theo nhu cầu mới diễn ra thuận lợi, mới có được hiệu quả cao, khả năng ứng dụng

lý tưởng như mong đợi

Thực tế hiện nay trong ngành công nghệ thông tin, đặc biệt là trong lĩnh vực lập trình thì

tốc độ phát triển vô cùng nhanh chóng, mỗi công ty lại có những thế mạnh riêng ở từng

mảng, từng lĩnh vực nhất định Lúc này, việc tiến hành lập trình có những định hướng,

những yêu cầu riêng cần được đảm bảo Việc sử dụng ngôn ngữ hỗ trợ phù hợp là điều

cần được chú ý thực hiện Qua đó, việc có thể có được hiệu quả lập trình cao như ý, đảm

bảo mức độ tối ưu tới mức tối đa được đảm bảo tốt nhất

Mỗi một ngôn ngữ lập trình khi được đưa vào sử dụng sở hữu những thế mạnh riêng, có

khả năng đem tới sự phù hợp cho một mảng nhất định, cũng đảm bảo có thể đạt hiệu suất tốt nhất nhưng không thể đảm bảo được mức độ hoàn thiện toàn diện Vì thế, với nhiều

ngôn ngữ lập trình được cung cấp, được đưa vào sử dụng có khả năng đảm bảo giúp khai thác triệt để, tận dụng thích hợp trong từng hoàn cảnh, từng điều kiện thực tế có sự chủ

động, đạt được hiệu quả cao như mỗi người mong muốn

Java được phát triển bởi Sun Microsystems qua thời gian dài phát triển, dần trở thành một trong những ngôn ngữ lập trình thông dụng nhất Đây là ngôn ngữ lập trình được ứng

dụng phổ biến, rộng khắp trên nhiều nền tảng khác nhau, tiêu biểu như Mac, Windows,

Unix,… Được biết tới là ngôn ngữ đa nền tảng tốt nhất, chất lượng cao và ứng dụng đa

dạng giúp Java góp mặt trong nhiều phần mềm, nhiều ứng dụng nổi tiếng, được đánh giá cao như Citigroup, Standard Charted, Goldman Sachs, …

Xét về cộng đồng người dùng Java vô cùng lớn, không thua kém bất kỳ ngôn ngữ nào

khác hiện được sử dụng Bản chất là một mã nguồn mở với sự đóng góp, hoàn thiện của

nhiều lập trình viên khác nhau giúp Java ngày càng được đánh giá cao, chất lượng được

Trang 6

khẳng định với tính ứng dụng cao Chính điều đó giúp Java dần trở thành ngôn ngữ được nhiều người dùng, trở nên phổ biến

Theo yêu cầu của thầy giáo, trong bài tập lớn này nhóm chúng em sẽ viết chương trình

quản lý nhân viên trong một công ty phần mềm bằng ngôn ngữ java để có thể biết sâu

hơn về vai trò của ngôn ngữ đối với ngành Công nghệ Thông tin chúng em đang theo

học Trong chương trình, nhóm chúng em cần phải:

+) Sử dụng ngôn ngữ lập trình Java và công cụ Netbean + SQL Server

+)Yêu cầu của dự án:

• Chức năng: Nhập / xuất, tính toán, thống kế, báo cáo

• Phi chức năng: Giao diện GUI (giao diện đồ hoạ - form), đơn giản, dễ sử dụng

• Yêu cầu khác: Sử dụng kế thừa, đã hình, lớp trừu tượng, phương thức trừu tượng

và linh hoạt trong tận dụng đặc điểm modifier cho thuộc tính và phương thức

• Lưu trữ dữ liệu trong database

• Báo cáo: Bản PDF: Tóm tắt về Java, Phát biểu bài toán, cài đặt ứng dụng

• Code bằng phương pháp OOP (Class, Object, Method )

Vì thời gian và kiến thức của nhóm chúng em không nhiều nên bài tập lớn sẽ có thiếu sót mong thầy giáo chỉ bảo thêm ạ!

Trang 7

NỘI DUNG Chương 1- TỔNG QUAN VỀ MÔN HỌC LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG VÀ

NGÔN NGỮ JAVA

1.1: Môn học lập trình hướng đối tượng:

1.1.1: Sự tiến hoá của các phương pháp lập trình:

Đầu tiên là lập trình không có cấu trúc:

+) Là phương pháp xuất hiện đầu tiên Phương pháp này đơn giản chỉ là viết tất cả mã

lệnh vào 1 hàm main duy nhất và chạy

+) Ngôn ngữ sử dụng phương pháp này là Assembly (hợp ngữ)

+) Nhược điểm của phương pháp này:

• Chỉ sử dụng biến toàn cục dẫn đến rất tốn bộ nhớ

• Vì có những đoạn chương trình cần sử dụng lại nhiều lần nên dẫn đến lạm dụng

lệnh goto

• Khó hiểu, khó bảo trì, không thể tái sử dụng

• Khó phát triển các ứng dụng lớn

Tiếp theo là lập trình có cấu trúc (lập trình thủ tục):

+) Sau 1 thời gian tồn tại người ta dần nhận ra những nhược điểm của phương pháp trên

và đưa ra giải pháp đó là chia chương trình lớn ra thành các chức năng, mỗi chức năng

được đưa vào 1 hàm Khi cần dùng đến chức năng nào thì ta sẽ gọi hàm tương ứng

+) Mỗi chương trình con lại có thể chia nhỏ ra nữa

+) Hầu hết các ngôn ngữ lập trình đều hỗ trợ phương pháp này

+) Ưu điểm:

• Chương trình được module hoá, dễ hiểu, dễ bảo trì

• Dễ dàng tạo ra các thư viện phần mềm

+) Nhược điểm:

• Dữ liệu và xử lý tách rời

• Khi cấu trúc dữ liệu thay đổi sẽ dẫn đến thuật toán bị thay đổi

• Không tự động khởi tạo, giải phóng dữ liệu động

• Không mô tả được đầy đủ, trung thực hệ thống trong thực tế

Trang 8

Tiếp theo là lập trình hướng đối tượng

1.1.2: Một số khái niệm cơ bản trong lập trình hướng đối tượng:

1.1.2.1: Đối tượng:

+) Trong lập trình hướng đối tượng, đối tượng được hiểu như là một thực thể: người, vật

hoặc một bảng dữ liệu,

+) Một đối tượng bao gồm hai thông tin: Thuộc tính và phương thức:

• Thuộc tính chính là những thông tin, đặc điểm của đối tượng Ví dụ: một người sẽ

có họ tên, ngày sinh, màu da, kiểu tóc,

• Phương thức là những thao tác, hành động mà đối tượng đó có thể thực hiện Ví

dụ: một người sẽ có thể thực hiện hành động nói, đi, ăn, uống,

1.1.2.2: Lớp:

+) Các đối tượng có các đặc tính tương tự nhau được gom lại thành một lớp đối tượng

+) Bên trong lớp cũng có hai thành phần chính đó là thuộc tính và phương thức

+) Ngoài ra, lớp còn được dùng để định nghĩa ra kiểu dữ liệu mới

1.1.2.3: Sự khác nhau giữa đối tượng và lớp:

+) Lớp là một khuôn mẫu còn đối tượng là một thể hiện cụ thể dựa trên khuôn mẫu đó

+) Để dễ hiểu hơn mình sẽ lấy một ví dụ thực tế: Nói về con mèo thì lớp chính là loài

mèo Loài mèo có:

• Các thông tin, đặc điểm như 4 chân, 2 mắt, có đuôi, có chiều cao, có cân nặng,

màu lô,

• Các hành động như: kêu meo meo, đi, ăn, ngủ,

Như vậy mọi động vật thuộc loài mèo sẽ có những đặc điểm như trên Đối tượng chính là một con mèo cụ thể nào đó như con mèo con đang nằm dưới chân mình

Trang 9

+) Một ví dụ khác Ví dụ này sẽ dùng hình ảnh để minh hoạ:

Có thể thấy, khi nói đến xe oto thì lớp chính khuôn mẫu của cái xe với các đặc trưng như

có bốn bánh và có thiết kế tương tự như hình vẽ Đối tượng chính là các chiếc xe oto cụ

thể như Toyota camry, Honda city, Ford ranger

+) Sự xuất hiện của hai khái niệm mới là lớp và đối tượng chính là đặc trưng của phương pháp lập trình hướng đối tượng Nó đã giải quyết được các khuyết điểm của phương pháp lập trình hướng cấu trúc để lại Ngoài ra 2 khái niệm này đã giúp biểu diễn tốt hơn thế

giới thực trên máy tính

1.1.3: Các đặc điểm của lập trình hướng đối tượng:

Lập trình hướng đối tượng có 4 đặc điểm chính:

+) Tính đóng gói:

• Các dữ liệu và phương thức có liên quan với nhau được đóng gói thành các lớp để tiện cho việc quản lý và sử dụng

Trang 10

• Ngoài ra, đóng gói còn để che giấu một số thông tin và chi tiết cài đặt nội bộ để

bên ngoài không thể nhìn thấy

+) Tính trừu tượng: Khi viết chương trình theo phong cách hướng đối tượng, việc thiết kế các đối tượng ta cần rút tỉa ra những đặc trưng chung của chúng rồi trừu tượng thành các interface và thiết kế xem chúng sẽ tương tác với nhau như thế nào

+) Tính kế thừa: Lớp cha có thể chia sẽ dữ liệu và phương thức cho các lớp con, các lớp

con khỏi phải định nghĩa lại, giúp chương trình ngắn gọn

+) Tính đa hình: Là hiện tượng các đối tượng thuộc các lớp khác nhau có thể hiểu cùng

một thông điệp theo các cách khác nhau

1.2: Ngôn ngữ lập trình Java:

Ban đầu được phát triển bởi Sun Microsystems do James Gosling khởi xướng và phát hành vào năm 1995 (Java 1.0 [J2SE]) Tính đến thời điểm này (tháng 2 năm 2015) phiên bản mới nhất của Java Standard Edition (JSE) là 8 Với ưu thế về đa nền tảng (multi platform) Java càng lúc càng được ứng dụng rộng rãi trên nhiều thiết bị từ máy tính đến mobile và nhiều thiết bị phần cứng khác

Java là ngôn ngữ lập trình hướng đối tượng nên nó cũng có 4 đặc điểm chung của các ngôn ngữ hướng đối tượng:

• Tính trừu tượng (Abstraction): là tiến trình xác định và nhóm các thuộc tính, các

hành động liên quan đến một thực thể đặc thù, xét trong mối tương quan với ứng dụng đang phát triển

• Tính đa hình (Polymorphism): cho phép một phương thức có các tác động khác nhau

trên nhiều loại đối tượng khác nhau Với tính đa hình, nếu cùng một phương thức ứng dụng cho các đối tượng thuộc các lớp khác nhau thì nó đưa đến những kết quả khác nhau Bản chất của sự việc chính là phương thức này bao gồm cùng một số lượng các tham số

• Tính kế thừa (Inheritance): Điều này cho phép các đối tượng chia sẻ hay mở rộng

các đặc tính sẵn có mà không phải tiến hành định nghĩa lại

• Tính đóng gói (Encapsulation): là tiến trình che giấu việc thực thi những chi tiết

của một đối tượng đối với người sử dụng đối tượng ấy

Bên cạnh đó Java còn có một số đặc tính khác:

Trang 11

• Độc lập nền (Write Once, Run Anywhere): Không giống như nhiều ngôn ngữ lập

trình khác như C và C ++, khi Java được biên dịch, nó không được biên dịch sang mã máy cụ thể, mà thay vào đó là mã byte code chạy trên máy ảo Java (JVM) Điều này đồng nghĩa với việc bất cứ thiết bị nào có cài đặt JVM sẽ có thể thực thi được các chương trình Java

• Đơn giản: Học Java thật sự dễ hơn nhiều so với C/C++, nếu bạn đã quen với các

ngôn ngữ lập trình hướng đối tượng thì việc học Java sẽ dễ dàng hơn Java trở nên đơn giản hơn so với C/C++ do đã loại bỏ tính đa kế thừa và phép toán con trỏ từ C/C++

• Bảo mật: Java hỗ trợ bảo mật rất tốt bởi các thuật toán mã hóa như mã hóa một

chiều (one way hashing) hoặc mã hóa công cộng (public key)

• Đa luồng: Với tính năng đa luồng Java có thể viết chương trình có thể thực thi nhiều

task cùng một lúc Tính năng này thường được xử dụng rất nhiều trong lập trình game

• Hiệu suất cao: Nhờ vào trình thu gom rác (garbage collection), giải phóng bộ nhớ

đối với các đối tượng không được dùng đến

• Linh hoạt: Java được xem là linh hoạt hơn C/C ++ vì nó được thiết kế để thích ứng

với nhiều môi trường phát triển

1.2.1: Java được sử dụng để làm gì?

• Viết ứng dụng web (J2EE): Java thường được sử dụng để xây dựng các hệ thống

web lớn đòi hỏi độ bảo mật cao, số lượng người dùng lớn như ngân hàng, phần mềm

Trang 12

quản lý bệnh viện, CRM, HRM Đối với các website nhỏ thông thường rất ít viết bằng Java

• Viết ứng dụng mobile (J2ME): Trước đây nền tảng J2ME thường được sử dụng để

viết game và app cho di động feature phone (file jar) và giờ đây khi smartphone Android lên ngôi Java lại tiếp tục được sử dụng để viết app và game cho nền tảng Android (file apk)

• Viết ứng dụng desktop (J2SE): Các ứng dụng desktop viết bằng Java thật sự không

nhiều có thể kể đến một số phần mềm như JMeter hoặc Designer Vista Lợi thế lớn nhất của ứng dụng Java là bạn chỉ viết một lần và sau đó có thể đem chương trình lên Windows, Linux hay Mac để chạy mà không cần phải viết lại Tuy nhiên do chạy trên JVM nên performance của ứng dụng thấp hơn một chút so với các ngôn ngữ như C/C++, C#

1.2.2: Sử dụng gì để lập trình Java?

Để lập trình Java bạn cần đến:

• JDK (Java Development KIT): Bao gồm JRE (Java Runtime Enviroment) và thư

viện để phát triển

• IDE (Integrated Development Environment): Là ứng dụng giúp lập trình viên phát

triển dễ dàng và nhanh chóng hơn Bạn có thể sử dụng Netbeans, Eclipse hoặc IntellịIDEA để phát triển

Chương 2- VIẾT CHƯƠNG TRÌNH QUẢN LÝ NHÂN VIÊN TRONG MỘT CÔNG TY

PHẦN MỀM BẰNG NGÔN NGỮ JAVA.

2.1: Yêu cầu đề bài:

Công ty phần mềm Hoàn Cầu được thành lập từ năm 2007, chuyên nhận thực hiện các dự

án phần mềm từ các đơn vị khác, cũng như phát triển các phần mềm do chính công ty đề

xuất Giả sử công ty có 2 loại nhân viên: Lập trình viên là những người sẽ viết mã nguồn cho các ứng dụng, Kiểm chứng viên có nhiệm vụ kiểm tra mã nguồn và chương trình mà lập trình viên viết ra để tìm các lỗi trước khi giao sản phẩm cho khách hàng

Hiện tại, công ty lưu trữ thông tin của các loại nhân viên như sau:

Trang 13

• Lập trình viên: Mã nhân viên, họ tên, tuổi, số điện thoại, email, lương cơ bản, số

giờ overtime

• Kiểm chứng viên: Mã nhân viên, họ tên, tuổi, số điện thoại, email, lương cơ bản,

số lỗi phát hiện được

Do tính chất công việc khác nhau nên lương cơ bản của lập trình viên và kiểm chứng viên cũng khác nhau Cụ thể:

• Lương (lập trình viên) = lương cơ bản + số giờ làm thêm * 200.000

• Lương (kiểm chứng viên) = lương cơ bản + số lỗi * 50.000

Bạn hãy đề xuất thiết kế các lớp đối tượng cần thiết để quản lý danh sách các nhân viên

của công ty và hỗ trợ tính lương cho nhân viên theo tiêu chí đặt ra như trên

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

• Nhập vào danh sách nhân viên

• Tính lương cho nhân viên

• In kết quả và thiết kế form đề nhập/xuất

2.2 Bài làm:

2.2.1: Phát biểu bài toán:

Input: Nhân viên (bao gồm lập trình viên và kiểm chứng viên)

Output: Lương của nhân viên

Trang 14

2.2.3: Code:

2.2.3.1: Nhanvien.java:

Trang 15

2.2.3.2: Laptrinhvien.java:

Trang 16

2.2.3.3: Kiemchungvien.java:

Trang 17

2.2.3.4: Main.java:

2.2.3.5: Show.java:

Trang 18

2.2.3: Kết quả:

2.2.3.1: Lương lập trình viên:

2.2.3.2: Lương kiểm chứng viên:

Trang 19

Chương 3- TỰ ĐÁNH GIÁ:

3.1: Những điều đạt được:

+) Đã hoàn thành được các yêu cầu của dự án thầy đề ra

+) Hiểu là làm việc được với môi trường phát triển ngôn ngữ Java

+) Cơ hội tìm hiểu thực tế bài toán

+) Xây dựng được một chương trình cụ thể

3.2: Những điều chưa đạt được:

+) Chưa thực hiện tính lương được rõ ràng giữa hai loại nhân viên

+) Chưa có chức năng thông báo lỗi một cách rõ ràng

Ngày đăng: 06/12/2023, 15:37

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w