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

Báo cáo chuyên Đề học phần nguyên lí lập trình hướng Đối tượng Đề t i quản lí sinh viên

19 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 đề Quản Lí Sinh Viên
Người hướng dẫn Nguyễn Văn A
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
Năm xuất bản 2021
Thành phố Hà Nội
Định dạng
Số trang 19
Dung lượng 2,92 MB

Nội dung

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 NGUYÊN LÍ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG ĐỀ T I: QUẢN LÍ SINH VIÊN Sinh viên thực hiện : Giảng viên hướng dẫn :

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 NGUYÊN LÍ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

ĐỀ T I:

QUẢN LÍ SINH VIÊN

Sinh viên thực hiện :

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

Chuyên ngành : CÔNG NGHỆ PHẦN MỀM

Hà Nội, tháng 6 năm 2021.

Trang 2

PHIẾU CHẤM ĐIỂM

ST

T

Họ và tên sinh

viên

Nội dung thực hiện Điểm Chữ

1

2

Họ và tên giảng

viên

Giảng viên chấm 1:

Giảng viên chấm 2:

Trang 3

PHỤ LỤC

Phụ lục

Lời nói đầu 2 Chương I: Tổng quan về lập trình hướng đối tượng 3

1.1.Khái niệm về lập trình hướng đối tượng – OPP 3

1.2.Nguyên lý cơ bản của OPP 3

1.2.1 Tính đóng gói (Encapsulation) 3

1.2.2 Tính kế thừa (Inheritance) 4

1.2.3 Tính đa hình (Polymorphism)4

1.2.4 Tính trừu tượng (Abstraction) 4

1.3 Các ưu điểm và ứng dụng của lập trình hướng đối tượng 4

1.3.1.Ưu điểm chính của OPP 4

1.3.2.Ứng dụng và 1 số ngôn ngữ của OPP 4

Chương : Lập trình II 5

2.1 Yêu cầu 5

Chương III : Thực hành 10

3.1 Code mẫu 10

3.2 Kết quả 15

Kết luận 17

1

Trang 4

LỜI NÓI ĐẦU

Ngày nay, Công nghệ thông tin đã và đang đóng vai trò rất quan trọng trong đời sống kinh tế - xã hội của rất nhiều quốc gia trên thế giới Việc nhanh chóng đưa ứng dụng công nghệ thông tin vào quá trình tự động hoá trong sản xuất kinh doanh là vấn đề đang luôn được quan tâm bởi lẽ công nghệ thông tin có vai trò rất lớn trong các hoạt động kinh tế, sản xuất kinh doanh, bán hàng, xúc tiến thương mại, quản trị doanh nghiệp

Cùng với tốc độ phát triển của thế giới, ngành công nghệ thông tin ở Việt Nam cũng đang được chú trọng và phát triển Nó nhanh chóng trở thành một trong những ngành mũi nhọn và là tiền đề cho sự phát triển của đất nước Mặc dù còn đang trong thời kỳ non trẻ, nhưng ngành công nghệ thông tin đã được ứng dụng và phát triển khá mạnh mẽ, trong các lĩnh vực về quảng bá thương hiệu và quản lý sản xuất

Quản lý sinh viên trường đại học Điện Lực được nghiên cứu

và thực hiện Nhằm mục đích tin học hóa vào việc quản lý, góp phần nâng cao độ chính xác về thông tin cá nhân sinh viên: đồng thời làm giảm khối lượng công việc, giảm bớt chi phí về in ấn tài liệu, hồ sơ quản lí sinh viên và diện tích lưu trữ hồ sơ giấy tờ Trong thời gian tìm hiểu hệ thống đang hoạt động, cách thức xây dựng, các nghiệp vụ làm việc của phần mềm quản lý sinh viên trường đại học Điện Lực đã phân tích hệ thống đang hoạt động và đưa ra hệ thống mới tốt hơn; đồng thời xây dựng một chương trình quản lý được thông tin cá nhân sinh viên , áp dụng Công nghệ thông tin là lập trình hướng đối tượng vào bài toán quản lí sinh viên

Em xin chân thành cảm ơn thầy: đã tận tình hướng dẫn

em, giúp em hoàn thành tốt bài báo cáo tổng hợp này

Trang 5

Chương I: Tổng quan về lập trình hướng đối tượng 1.1.Khái niệm về lập trình hướng đối tượng – OPP

- Lập trình hướng đối tượng (OOP) là một kỹ thuật lập trình cho phép lập trình viên tạo ra các đối tượng trong code trừu tượng hóa các đối tượng Khi phát triển ứng dụng sử dụng OOP, chúng ta

sẽ định nghĩa các lớp (class) để mô hình các đối tượng thực tế Trong ứng dụng các lớp này sẽ được khởi tạo thành các đối tượng

và trong suốt thời gian ứng dụng chạy, các phương thức (method) của đối tượng này sẽ được gọi

- Lập trình hướng đối tượng (Object Oriented Programming – OOP) là một trong những kỹ thuật lập trình rất quan trọng và sử dụng nhiều hiện nay Hầu hết các ngôn ngữ lập trình hiện nay như Java, PHP, NET, Ruby, Python… đều hỗ trợ OOP

1.2.Nguyên lý cơ bản của OPP

1.2.1 Tính đóng gói (Encapsulation)

- 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 Tức là mỗi lớp được xây dựng để thực hiện một nhóm chức năng đặc trưng của riêng lớp đó 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 Nói chung trạng thái đối tượng không hợp lệ thường do: chưa được kiểm tra tính hợp lệ, các bước thực hiện không đúng trình tự hoặc bị bỏ qua nên trong OOP có một quy tắc quan trọng cần nhớ đó là phải luôn khai báo các trạng thái bên trong của đối tượng là private và chỉ cho truy cập qua các public/protected, method/property

1.2.2 Tính kế thừa (Inheritance)

Nó cho phép xây dựng một lớp mới dựa trên các định nghĩa của lớp đã có Có nghĩa là 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, ngoài ra có thể mở rộng các thành phần kế thừa và bổ sung thêm các thành phần mới Tái sử dụng mã nguồn 1 cách tối ưu, tận dụng được mã nguồn Một số loại kế loại kế thừa thường gặp: đơn

kế thừa, đa kế thừa, kế thừa đa cấp, kế thừa thứ bậc

4

Trang 6

Khi bắt đầu xây dựng ứng dụng chúng ta sẽ bắt đầu thiết kế định nghĩa các lớp trước Thông thường một số lớp có quan hệ với những lớp khác, chúng có những đặc tính giống nhau

1.2.3 Tính đa hình (Polymorphism)

Tính đa hình là một hành động có thể được thực hiện bằng nhiều cách khác nhau Đây lại là một tính chất có thể nói là chứa đựng hầu hết sức mạnh của lập trình hướng đối tượng

Hiểu một cách đơn giản hơn: Đa hình là khái niệm mà hai hoặc nhiều lớp có những phương thức giống nhau nhưng có thể thực thi theo những cách thức khác nhau

1.2.4 Tính trừu tượng (Abstraction)

Trừu tượng có nghĩ là tổng quát hóa một cái gì đó lên, không cần chú ý chi tiết bên trong Nó không màng đến chi tiết bên trong là gì và người ta vẫn hiểu nó mỗi khi nghe về nó

Ví dụ: Bạn chạy xe tay ga thì có hành động là tăng ga để tăng tốc, thì chức năng tăng ga là đại diện cho trừu tượng (abstraction) Người dùng chỉ cần biết là tăng ga thì xe tăng tốc, không cần biết bên trong nó làm thế nào

Ở đây trong lập trình OOP, tính trừu tượng nghĩa là chọn ra các thuộc tính, phương thức của đối tượng cần cho việc giải quyết bài toán đang lập trình Vì một đối tượng có rất nhiều thuộc tính phương thức, nhưng với bài toán cụ thể không nhất thiết phải chọn tất cả

1.3 Các ưu điểm và ứng dụng của lập trình hướng đối tượng

1.3.1.Ưu điểm chính của OPP

- Dựa trên nguyên lý kế thừa, trong quá trình mô tả các lớp

có thể loại bỏ những chương trình bị lặp, dư Và có thể mở rộng khả năng sử dụng các lớp mà không cần thực hiện lại Tối ưu và tái sử dụng code hiệu quả

- Đảm bảo rút ngắn thời gian xây dựng hệ thống và tăng năng suất thực hiện

- Tạo ra các chương trình an toàn, bảo mật

Trang 7

- Dễ dàng mở rộng và nâng cấp.

- Rút ngắn thời gian xây dựng hệ thống, tăng năng suất và hiệu quả hơn

- Sự xuất hiện của 2 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.3.2.Ứng dụng và 1 số ngôn ngữ của OPP

- Dùng để phát triển phần mềm trong nhiều lĩnh vực khác nhau :

+ Hệ thống thời gian thực

+ Cơ sở dữ liệu hướng đối tượng

+ Hệ siêu văn bản, đa phương tiện

+ Trí tuệ nhân tạo

+ Lập trình song song, mạng nơron …

- Hầu hết các ngôn ngữ lập trình đều hỗ trợ OPP, có thể chia làm 2 loại:

+ Ngôn ngữ hỗ trợ hướng đối tượng: Object C, Pascal, C++, Delphi…

+ Ngôn ngữ hướng đối tượng: SmallTalk, JAVA, C#…

- Những ngôn ngữ OPP thịnh hành nhất hiện nay:

+ Visual C++

+VB.NET, C#

Chương : Lập trình II 2.1 Yêu cầu:

- Ngôn ngữ lập trình: sử dụng ngôn ngữ lập trình c++

6

Trang 8

- Lý do chọn ngôn ngữ lập trình:

 Hạn chế chi phí và rủi ro Khi có sự cố thì chỉ ảnh hưởng đến một hoặc một số bộ phận của tổ chức mà thôi

 Đơn giản đối với người sử dụng

 Khi cài đặt bộ phận sau có kinh nghiệm hơn, tránh được các sai sót đã mắc phải khi cài đặt các bộ phận trước

- Công cụ hỗ trợ: Dev C++

- Kết quả: demo 1 số hình ảnh về code

Hình 1: code tạo đối tượng truy vấn và không truy vấn ngoài

class

Trang 9

Hình 2: code hàm khởi tạo và hàm hủy

8

Trang 10

Hình 4: code hàm nhập và hàm xuất

Hình 5: code xây dựng class sinh viên thương mại điện tử kế thừa lớp sinh viên

Trang 11

Hình 6: code hàm nạp chồng và toán tử so sánh < cho toán tử 2 ngôi

10

Trang 12

Hình 7: code hàm main tạo con trỏ cho class , các điều kiện : của giá trị và code sắp xếp giảm dần theo điểm

Chương III : Thực hành 3.1 Code mẫu

#include <iostream>

#include<string>

using namespace std;

class SV

{

private:

string MaSV;

string hoten;

public:

SV()

{

this->MaSV="";

this->hoten="";

}

~SV()

Trang 13

this->MaSV="";

this->hoten="";

}

void nhap()

{

cout<<"\nNhap ma sinh vien: ";

fflush(stdin);

getline(cin,this->MaSV);

cout<<"Nhap ho ten:";

fflush(stdin);

getline(cin,this->hoten);

}

void xuat()

{

cout<<"\nMa sinh vien: "<<this->MaSV<<endl; cout<<"Ho ten: "<<this->hoten<<endl; }

};

class SVTMDT:public SV

{

private:

float toan;

float ly;

float anh;

public:

SVTMDT()

{

12

Trang 14

this->toan = 0;

this->ly = 0;

this->anh = 0;

}

~SVTMDT()

{

this->toan = 0;

this->ly = 0;

this->anh = 0;

}

void nhap()

{

SV::nhap();

cout<<"Nhap diem toan:";

cin>>this->toan;

cout<<"Nhap diem ly:";

cin>>this->ly;

cout<<"Nhap diem anh:";

cin>>this->anh;

}

void xuat()

{

SV::xuat();

cout<<"Diem toan: "<<this->toan <<endl; cout<<"Diem ly: "<<this->ly <<endl; cout<<"Diem anh: "<<this->anh <<endl; }

friend int operator < (SVTMDT &a, SVTMDT &b) {

Trang 15

if (a.dtb() < b.dtb()) return 1;

else

return 0;

}

float dtb()

{

return (toan + ly + anh);

}

};

int main()

{

SV sv;

cout<<"Nhap thong tin cho sinh vien:";

sv.nhap();

cout<<"\nThong tin sinh vien:";

sv.xuat();

int n,i;

SVTMDT *svtmdt;

cout<<"\n Nhap so sinh vien:";

cin>>n;

svtmdt=new SVTMDT[n];

cout<<"Nhap thong tin sinh vien:";

for (i=0;i<n;i++)

{

cout << "\n==========> Nhap sinh vien [" << i+1

<< "]:" << endl;

svtmdt[i].nhap();

14

Trang 16

cout<<"\nThong tin sinh vien:";

for (i=0;i<n;i++)

{

cout << "\n==========> Sinh vien [" << i+1 <<

"]:" << endl;

svtmdt[i].xuat();

cout<<"Diem trung binh: "<<svtmdt[i].dtb()<<endl; }

SVTMDT tg;

for (i=0;i<n-1;i++)

for (int j=i+1;j<n;j++)

if (svtmdt[i] < svtmdt[j])

{

tg = svtmdt[i];

svtmdt[i] = svtmdt[j];

svtmdt[j] = tg;

}

cout<<"\nThong tin sinh vien sau khi sap xep giam dan theo diem: ";

for (i=0;i<n;i++)

{

svtmdt[i].xuat();

cout<<"Diem trung binh:

"<<svtmdt[i].dtb()<<endl;

}

}

Trang 17

3.2 Kết quả:

17

Trang 19

KẾT LUẬN

Kết quả đạt được Sau một thời gian nghiên cứu và bắt tay vào thực hiện, với sự mong muốn xây dựng một hệ thống quản lý sinh viên và những người có nhu cầu, được sự quan tâm và hướng dẫn tận tình của thầy Nguyễn Văn Đoàn, em đã bước đầu hoàn thành đề tài: Quản lý sinh viên bằng lập trình hướng đối tượng Kết quả đạt được:

• Tìm hiểu hoạt động của một phần mềm quản lý sinh viên

• Xây dựng được hệ thống quản lý class sinh viên và class kế thừa của lớp sinh viên

Vì thời gian triển khai có hạn, và việc tìm hiểu công nghệ mới còn gặp nhiều khó khăn do không có nhiều tài liệu nên không tránh được những sai sót Chúng em rất mong nhận được sự đóng góp ý kiến và những hướng dẫn của thầy cô để đồ án thêm hoàn chỉnh Chúng em xin chân thành cảm ơn!

Hướng phát triển Với mục đích ngày càng hoàn thiện để đáp ứng tốt cho việc tin học hóa quản lý danh sách thông tin người đùng, trong tương lai chúng em sẽ cố gắng tìm hiểu kỹ hơn, đi sâu hơn, và cố gắng hoàn thành tốt đề tài hơn

19

Ngày đăng: 22/01/2025, 14:49