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

Xây dựng chương trình quản lý doanh nghiệp nhận sinh viên thực tập

20 0 0
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 Chương Trình Quản Lý Doanh Nghiệp Nhận Sinh Viên Thực Tập
Tác giả Nguyễn Anh Đức
Người hướng dẫn ThS. Nguyễn Đình Thái
Trường học Trường Đại Học Điện Lực
Chuyên ngành Công Nghệ Thông Tin
Thể loại báo cáo chuyên đề
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 20
Dung lượng 2,05 MB

Nội dung

TRƯỜNG ĐẠI HỌC ĐIỆN LỰCKHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG ĐỀ TÀI : XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝ DOANH NGHIỆP NHẬN SINH VIÊN THỰC TẬP Sinh viê

Trang 1

TRƯỜNG ĐẠI HỌC ĐIỆN LỰC

KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN

LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

ĐỀ TÀI :

XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝ DOANH NGHIỆP

NHẬN SINH VIÊN THỰC TẬP

Sinh viên thực hiện: NGUYỄN ANH ĐỨC

Giảng Viên Hướng Dẫn: ThS NGUYỄN ĐÌNH THÁI

Ngành: CÔNG NGHỆ THÔNG TIN

Môn học: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

Hà Nội, tháng 8 năm 2024

Trang 2

PHIẾU CHẤM ĐIỂM

Sinh viên thực hiện

Họ và tên sinh viên Nội dung thực hiện Chữ ký

lý doanh nghiệp nhận sinh viên thực tập

Giảng viên chấm

Họ và tên giảng viên Điểm Ghi chú

Giảng viên chấm 1

(Ký, ghi rõ họ tên)

Giảng viên chấm 2

(Ký, ghi rõ họ tên)

Ý kiến của GVHD:………

………

………

Trang 3

I Mô tả tóm tắt báo cáo đề tài

- Xây dựng chương trình quản lý doanh nghiệp nhận sinh viên thực tập với các yêu cầu:

 Nhập thông tin doanh nghiệp

 Xây dựng phương thức nhập xuất

 Xây dựng Hàm khởi tạo không có tham số, gán các giá trị thuộc tính mặc định

 Xây dựng Hàm khởi tạo có tham số

 Xây dựng Hàm hủy

 Định dạng lại đầu ra ngày/tháng/năm

 Xuất danh sách doanh nghiệp nhận số lượng sinh viên trong khoảng [a,b]

và sắp xếp theo thứ tự giảm dần

II Nội dung thực hiện

- Chương I: Giới thiệu chung

- Chương II: Phân tích và Lập trình

- Chương III: Kiểm thử và Kết luận

III Kết quả đạt được

- Hoàn thành đề cương chuyên đề học phần môn Lập trình hướng đối tượng

- Xây dựng được chương trình hoàn chỉnh, đơn giản phù hợp

Giảng viên hướng dẫn

ThS Nguyễn Đình Thái

Sinh viên thực hiện

Nguyễn Anh Đức

Trang 4

MỤC LỤC

LỜI NÓI ĐẦU 2

CHƯƠNG I: GIỚI THIỆU CHUNG 3

I LÝ DO VÀ MỤC ĐÍCH 3

II ĐỊNH NGHĨA BÀI TOÁN: 3

CHƯƠNG II: PHÂN TÍCH VÀ LẬP TRÌNH 4

I PHÂN TÍCH 4

II LẬP TRÌNH 4

1 Lập cơ sở dữ liệu doanh nghiệp 4

2 Phương thức nhập dữ liệu đầu vào 6

3 Phương thức xuất dữ liệu 8

CHƯƠNG III: KIỂM THỬ VÀ KẾT LUẬN 13

I KIỂM THỬ CHƯƠNG TRÌNH 13

1.Tạo cơ sở dữ liệu doanh nghiệp và hiển thị 13

2 Hiển thị danh sách doanh nghiệp nhận sinh viên thực tập trong khoảng [a, b] và sắp xếp theo thứ tự giảm dần 13

II KẾT LUẬN 14

1 Kết quả 14

2 Bài học rút ra 14

TÀI LIỆU THAM KHẢO 16

Trang 5

LỜI CẢM ƠN

Đề tài “ Xây dựng chương trình quản lý doanh nghiệp nhận sinh viên thực tập” là kết quả của qua trình nghiên cứu và thực hiện của em trong suốt

tin, Trường Đại học Điện lực Để hoàn thành đề tài này, em đã nhận được sự quan tâm, giúp đỡ quý báu từ Quý thầy cô cùng các bạn đồng học

Trước hết, em xin cám ơn Khoa Công nghệ thông tin, Trường Đại học Điện lực đã tạo môi trường học tập và rèn luyện thuận lợi, trang bị cho em những kiến thức và kỹ năng bổ ích, giúp em có thể áp dụng và hoàn thành tốt báo cáo này

Đặc biệt, em xin gửi lời cám ơn sâu sắc tới thầy Nguyễn Đình Thái, người

đã trực tiếp hướng dẫn và chỉ bảo em trong suốt quá trình học tập và nghiên cứu Với sự tận tâm và nhiệt huyết trong công việc, cô đã trao đổi và hỗ trợ góp

ý kịp thời, đúng đắn, giúp em vượt qua khó khăn và hoàn thiện báo cáo đề tài một cách tốt nhất

Em cũng xin trân trọng cảm ơn Ban giám hiệu cùng toàn thể thầy cô giáo Trường đại học Điện lực đã tạo cơ hội cho em được học tập, nghiên cứu tại trường, giúp em có thêm những kiến thức và kinh nghiệm thực tế để phục vụ cho quá trình thực hiện báo cáo

Em xin chân thành cảm ơn !

Hà Nội, ngày 04 tháng 8 năm 2024

Sinh viên thực hiện

Nguyễn Anh Đức

Trang 6

LỜI NÓI ĐẦU

Hiện nay, Công nghệ thông tin (CNTT) đã được ứng dụng rộng khắp trên mọi lĩnh vực, từ các cơ quan chính phủ tới các tổ chức, doanh nghiệp Tin học hóa đã trở thành yếu tố quyết định trong hoạt động của các đơn vị này, tạo ra những bước đột phá mạnh mẽ và mang tính then chốt Nhờ ứng dụng CNTT, chúng ta có thể nâng cao hiệu suất công việc mà vẫn giảm thiểu chi phí và công sức so với phương pháp truyền thống

Một ví dụ cụ thể là việc sử dụng CNTT trong quản lý thông tin về các các doanh nghiệp có thể nhận được một số lượng sinh viên thực tập theo yêu cầu nhất định Để thực hiện điều đó một cách hiệu quả, việc xây dựng một chương trình hệ thống và quản lý thông tin các doanh nghiệp là cần thiết Với lý do này,

em đã thực hiện đề tài “Xây dựng chương trình quản lý doanh nghiệp nhận sinh viên thực tập” nhằm cung cấp giải pháp cho vấn đề trên Chương trình này

sẽ giúp người quản lý và sinh viên dễ dàng xem, tìm kiếm và kiểm tra thông tin

về các doanh nghiệp phù hợp với những yêu cầu đặt ra

Mặc dù đã nỗ lực hết mình trong quá trình tìm hiểu, phân tích và thiết kế chương trình nhưng chắc chắn không tránh khỏi những thiếu sót Em rất mong nhận được sự thông cảm và góp ý của quý thầy cô để hoàn thiện chương trình hơn nữa

Em xin chân thành cảm ơn

Trang 7

CHƯƠNG I: GIỚI THIỆU CHUNG

I LÝ DO VÀ MỤC ĐÍCH

- Để đáp ứng yêu cầu môn học cũng như mong muốn tìm hiểu, mở rộng kiến thức về ngôn ngữ lập trình nói chung và môn lập trình hướng đối tượng nói riêng Em đã hướng tới xây dựng một chương trình có những tiêu chí như:

 Chương trình đơn giản, hiệu quả

 Có tính thực tế, khả khi

 Áp dụng được kiến thức đã học

- Với những tiêu chí trên, em đã chọn chủ đề “Xây dựng chương trình quản lý doanh nghiệp nhận sinh viên thực tập” để thực hiện.

- Đây là một chủ đề có nhiều hướng đi và ý tưởng có thể phát triển thêm nếu cần

II ĐỊNH NGHĨA BÀI TOÁN:

- Đầu vào: Nhập dữ liệu về doanh nghiệp bao gồm:

 Số lượng doanh nghiệp

 Mã doanh nghiệp

 Tên doanh nghiệp

 Ngày thành lập định dạng (d/m/yyy)

 Số lượng sinh viên có thể nhận thực tập

- Đầu ra bao gồm:

 Ngày thành lập định dạng (dd/mm/yyyy)

 Xuất danh sách sinh viên có thể nhận thực tập trong đoạn [a,b] theo thứ tự giảm dần

Trang 8

CHƯƠNG II: PHÂN TÍCH VÀ LẬP TRÌNH

I PHÂN TÍCH

Để có thể tạo ra một chương trình có thể đạt được các yếu tố đã nêu ra ở

là môi trường phát triển tích hợp (IDE) phổ biến cho lập trình C và C++

thiện với người dùng, đơn giản và dễ học cho cả người mới bắt đầu cũng như với những lập trình viên có kinh nghiệm Hơn nữa, ngôn ngữ lập trình Dev C++

là một IDE rất nhẹ, không yêu cầu tài nguyên hệ thống lớn, có thể chạy tốt trên hầu hết tất cả các máy tính văn phòng và yếu hiện nay tại Việt Nam

Mặt khác, ngôn ngữ lập trình Dev C++ có tích hợp rất nhiều công cụ, tiện ích và quan trọng nhất là nó miễn phí, ai cũng có thể tiếp cận và sử dụng dễ dàng

II LẬP TRÌNH

1 Lập cơ sở dữ liệu doanh nghiệp

- Để lập được cở sở dữ liệu về các doanh nghiệp nhận sinh viên thực tập cho việc quản lý, ta có thể làm từng bước như sau:

 Thêm vào thư viện và không gian tên:

- #include <bits/stdc++.h>: Thư viện này bao gồm hầu hết các thư viện chuẩn của C++ Sử dụng thư viện này giúp đơn giản hóa việc include các thư viện khác, nhưng nó không phải là cách tối ưu về mặt hiệu suất và không nên dùng trong các dự án lớn

- using namespace std;: Điều này cho phép bạn sử dụng các thành phần trong không gian tên std (như string, cout, endl, v.v.) mà không cần phải ghi std:: trước mỗi thành phần đó

Trang 9

 Khai báo thông tin liên quan tới doanh nghiệp

- Company là một lớp có các thuộc tính riêng tư (private) và đây là các

thông tin liên quan tới công ty, cụ thể như sau:

 maCongTy: Mã doanh nghiệp

 tenCongTy: Tên doanh nghiệp

 ngayThanhLap: Ngày thành lập doanh nghiệp

 soLuong: Số lượng sinh viên có thể nhận

 Định dạng lại đầu ra của ngày tháng

một định dạng nhất quán, đảm bảo ngày, tháng, và năm luôn có đúng số chữ

số cần thiết (2 chữ số cho ngày và tháng, 4 chữ số cho năm)

- Cách hoạt động cụ thể như sau:

 Kiểm tra rỗng: Nếu date là chuỗi rỗng, phương thức trả về chuỗi

rỗng

Trang 10

 Tách ngày, tháng, năm: Phương thức sử dụng sscanf để tách chuỗi

thành công, nó trả về chuỗi rỗng

 Định dạng lại ngày: Phương thức sử dụng ostringstream và các hàm

tháng, và năm được định dạng đúng với 2 chữ số cho ngày, tháng và 4 chữ số cho năm

Trả về chuỗi đã định dạng: Phương thức trả về chuỗi ngày đã được

 Các Contructors và Destructor

- Company(): Constructor mặc định, khởi tạo các thuộc tính của Company với

giá trị rỗng hoặc 0

- Company(const string& id, const string& name, const string& date, int capacity): Constructor có tham số, khởi tạo các thuộc tính của Company với các

giá trị được cung cấp Ngày thành lập được định dạng qua phương thức formatDate

- ~Company(): Destructor, được gọi khi đối tượng Company bị hủy Destructor này không làm gì cụ thể nhưng được định nghĩa để tuân theo quy ước lập trình tốt

2 Phương thức nhập dữ liệu đầu vào

 Nhập mã doanh nghiệp

Trang 11

- Đoạn code này yêu cầu người dùng nhập mã doanh nghiệp và kiểm tra xem

mã này có chứa khoảng trắng hay không

- getline(cin, maCongTy): Nhập một dòng từ bàn phím và lưu vào biến

maCongTy.

- maCongTy.find(' ') != string::npos: Kiểm tra xem chuỗi maCongTy có chứa

ký tự khoảng trắng (' ') hay không Nếu có, yêu cầu người dùng nhập lại

không chứa khoảng trắng

 Nhập tên doanh nghiệp

- Người dùng được yêu cầu nhập tên doanh nghiệp và giá trị này được lưu vào biến tenCongTy

 Nhập ngày thành lập

(ngày/tháng/năm), người dùng có thể để trống nếu không có thông tin này

- ngayThanhLap = formatDate(ngayThanhLap): Ngày thành lập được định dạng lại thông qua phương thức formatDate

 Nhập số lượng sinh viên có thể nhận

Trang 12

- Người dùng được yêu cầu nhập số lượng sinh viên có thể nhận, với giá trị nằm trong khoảng từ 0 đến 100

- getline(cin, input): Nhập giá trị từ người dùng dưới dạng chuỗi và lưu vào

- if (input.empty()): Nếu người dùng không nhập gì (input rỗng), giá trị

soLuong sẽ được gán là 0 và kết thúc vòng lặp.

- stringstream ss(input): Chuyển đổi chuỗi input thành một luồng chuỗi (stringstream) để chuyển đổi từ chuỗi sang số nguyên

- if (ss >> temp && temp >= 0 && temp <= 100): Kiểm tra nếu giá trị nhập vào là một số nguyên hợp lệ và nằm trong khoảng 0-100, gán giá trị đó cho

soLuong và kết thúc vòng lặp.

- Nếu giá trị nhập không hợp lệ, người dùng sẽ được yêu cầu nhập lại cho đến khi nhập đúng

3 Phương thức xuất dữ liệu

 Hiển thị danh sách doanh nghiệp

Trang 13

- Hàm static bool return : Đây là một hàm tĩnh (static) dùng để so sánh hai

b, ngược lại trả về false Điều này có nghĩa là khi sắp xếp các công ty theo thứ

- cin.ignore (): dùng để xóa ký tự newline còn lại trong bộ đệm sau khi nhập n

Trang 14

- Vòng lặp for chạy từ đến 0 n-1, mỗi lần lặp sẽ nhập thông tin cho một công ty

mới và thêm nó vào vector companies

- Phần này dùng để in tiêu đề các cột trong bảng danh sách bao gồm mã doanh nghiệp, tên doanh nghiệp, ngày thành lập và số lượng sinh viên

- setw(): để thiết lập độ rộng của cột, left để căn lề trái văn bản trong các cột

- string(71, '-'): tạo ra một chuỗi gồm 71 ký tự '-' để làm dòng phân cách

 Hiển thị danh sách doanh nghiệp nhận số sinh viên trong đoạn [a,b] và sắp xếp theo thứ tự giảm dần

- Đoạn mã này thực hiện theo các bước sau: hiển thị danh sách các công ty, lọc

Trang 15

- Đoạn code này lặp qua từng công ty trong danh sách companies và gọi

- companies.size(): Trả về số lượng phần tử trong vector companies

- companies[i]: Truy cập từng công ty trong danh sách theo chỉ số i

dựa trên số lượng sinh viên mà công ty có thể nhận

- cin >> a >> b;: Lấy giá trị và từ người dùnga b

- vector<Company> filteredCompanies: Tạo một vector filteredCompanies

để lưu trữ các công ty thỏa mãn điều kiện lọc

danh sách filteredCompanies

- filteredCompanies.push_back(companies[i]): Thêm công ty companies[i] vào cuối vector filteredCompanies

- Sau khi lọc, các công ty trong filteredCompanies được sắp xếp theo số lượng sinh viên có thể nhận (Capacity)

- sort(filteredCompanies.begin(), filteredCompanies.end(),

Company::compareByCapacity): Hàm sort sắp xếp các phần tử trong vector

filteredCompanies từ begin() đến end() sử dụng hàm so sánh

Company::compareByCapacity

Trang 16

- Đoạn code này in tiêu đề bảng và một dòng phân cách trước khi in danh sách công ty đã lọc và sắp xếp

- setw(15), setw(20), setw(14): Định nghĩa độ rộng cột khi in ra bảng

- string(71, '-'): Tạo ra một chuỗi 71 ký tự dấu gạch ngang ( ) để làm đường

-phân cách giữa tiêu đề bảng và dữ liệu

tin chi tiết của từng công ty bằng cách gọi phương thức output()

Trang 17

CHƯƠNG III: KIỂM THỬ VÀ KẾT LUẬN

I KIỂM THỬ CHƯƠNG TRÌNH

1.Tạo cơ sở dữ liệu doanh nghiệp và hiển thị

 Nhập thông tin doanh nghiệp

 Kết quả hiển thị

2 Hiển thị danh sách doanh nghiệp nhận sinh viên thực tập trong khoảng [a, b] và sắp xếp theo thứ tự giảm dần:

 Nhập khoảng [a, b]: 60 80

Trang 18

 Kết quả trả về là có

 Nhập khoảng [a, b]: 30 60

 Kết quả trả về là không có doanh nghiệp nào

II KẾT LUẬN

1 Kết quả

 Chương trình đã xây dựng hoàn thành, đáp ứng tương đối tốt với yêu cầu bài toán đặt ra

 Đã ứng dụng được một phần kiến thức đã học để thực hiện một chương trình đơn giản

2 Bài học rút ra

 Môn Lập trình hướng đối tượng là một môn rất quan trọng với khối lượng kiến thức tương đối lớn và tính ứng dụng đa dạng Do đó, chương trình chưa thể ứng dụng hết các kiến thức, thuật toán vào chương trình

 Chương trình vẫn còn nhiều thiếu sót, có thể tiếp tục hoàn thiện và nâng cấp thêm trong tương lai

Tóm lại, qua việc thực hiện nghiên cứu đề tài “Xây dựng chương trình quản lý doanh nghiệp nhận sinh viên thực tập” Em đã học hỏi được rất nhiều

kĩ năng hay cũng như kiến thức bổ ích Bên cạnh đó, việc làm nghiên cứu giúp

em được trau dồi kiến thức, nâng cao khả năng làm việc

Trang 19

thực hiện được những ý tưởng đó Mặc dù em đã cố gắng để xây dựng một chương trình hoàn chỉnh nhất, đẹp nhất nhưng trong quá trình xây dựng chương trình em khó tránh khỏi những thiếu sót Vì vậy em rất mong rằng thầy cô đóng góp ý kiến để em có thể hoàn thành bài báo cáo một cách hoàn chỉnh và chỉnh chu nhất

quá trình thực hiện đề tài

Một lần nữa em xin chân thành cảm ơn !

Trang 20

TÀI LIỆU THAM KHẢO

1 Lê Minh Hoàng (2012) Lập trình C++ cơ bản và nâng cao NXB Giáo dục Việt Nam, Hà Nội

2 Nguyễn Hữu Tuấn (2014) Giáo trình Lập trình hướng đối tượng C++ NXB Khoa học và Kỹ thuật, Hà Nội

3 Nguyễn Văn Ba (2015), Lập trình hướng đối tượng với C++ NXB Đại học Quốc gia Hà Nội, Hà Nội

Ngày đăng: 26/12/2024, 17:04

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

TÀI LIỆU LIÊN QUAN