Đề Bài Quản Lý Sinh Viên

Lập trình hướng đối tượng vẫn rất không còn xa lạ với nhiều người, tuy vậy với những bạn mới học tập code thì lập trình hướng đối tượng có thể vẫn là định nghĩa xa lạ. Thậm chí nhiều bạn đã học qua rồi mà lại vẫn chưa biết rõ bạn dạng chất, chưa hiểu nuốm nào là “Hướng đối tượng“. Thì với nội dung bài viết này, bản thân sẽ trình diễn một biện pháp ngắn gọn gàng về lập trình hướng đối tượng, để các bạn hiểu rõ cái bản chất của nó, hiểu loại “ý đồ” của nó trong lập trình.

Bạn đang xem: Đề bài quản lý sinh viên

Lập trình hướng đối tượng còn được viết tắt là OOP – Object OrientedProgramming, với nó là một kiểu lập trình.

I. đối chiếu từng nguyên tố của “Lập trình hướng đối tượng”

Cụm trường đoản cú “Lập trình phía đối tượng” hoàn toàn có thể được chia thành 2 phần như sau:

Lập trình: Ám chỉ bài toán viết code, xây dựng viên sử dụng phương pháp lập trình hướng đối tượng người tiêu dùng vẫn cần viết code như thường, thậm chí còn viết code lâu năm hơn.Hướng đối tượng: thể hiện cách giải quyết bài toán của hình dáng lập trình này. Đây là các từ quan trọng nhất trong quan niệm OOP, và cả nội dung bài viết này cũng chỉ nhằm tới mục giải thích cho chính mình thế làm sao là “Hướng đối tượng“.

Vậy OOP là 1 trong kiểu xây dựng (hay một kiểu dáng viết code), cố vì hướng tới điều gì đó, thì phướng pháp này hướng tới đối tượng.

II. Nuốm nào là “Hướng đối tượng”

Để hiểu cố nào là “hướng đối tượng” cùng làm rất nổi bật “hướng đối tượng”, mình vẫn đi so sánh lập trình hướng đối tượng người sử dụng với thiết kế hướng kết cấu thông qua việc đối chiếu cách giải của thuộc một bài toán.

– nếu bạn đã biết code, cơ mà chưa khi nào code theo kiểu OOP thì khả năng cao số đông gì chúng ta code đều theo kiểu “hướng cấu trúc” (hay phía thủ tục).– lập trình sẵn hướng cấu trúc sẽ tập trung vào triển khai các function (các hàm)

Xét việc như sau:

Viết một chương trình cai quản sinh viên, có những tính năng:– Nhập thông tin sinh viên: tên, năm sinh, lớp– Liệt kê sv với các thông tin: tên, năm sinh, tuổi (tính theo cách làm 2020 – năm sinh), lớp

Ví dụ được tiến hành trên ngôn từ lập trình JavaScript

2.1 Giải theo phương pháp hướng cấu trúc


// Tạo cái mảng nhằm lưu thông tin của tất cả sinh viênvar danhSachSinhVien = <>// Tạo dòng hàm nhằm thêm sinh viên vào mẫu mảng làm việc trênfunction themSinhVien (ten, namSinh, lop) danhSachSinhVien.push( ten: ten, namSinh: namSinh, lop: lop );// Tạo loại hàm tính tuổi của sinh viênfunction tinhTuoi (namSinh) let namHienTai = 2020; return namHienTai - namSinh;// Tạo cái hàm đọc thị tin tức của một sinh viênfunction hienThiThongTin (sinhVien) console.log("Ten:" + sinhVien.ten) console.log("Tuoi:" + tinhTuoi(sinhVien.namSinh)) console.log("Nam Sinh:" + sinhVien.namSinh) console.log("Lop:" + sinhVien.lop) console.log("---")// Tạo chiếc hàm liệt kê toàn cục sinh viênfunction lietKeDanhSach () for (let sinhVien of danhSachSinhVien) hienThiThongTin(sinhVien); // thêm một sinh viên vào danh sáchthemSinhVien("Binh", 1996, "PHP");// thêm một sinh viên nữathemSinhVien("Minh", 2000, "PHP");// Thêm một sinh viên nữa nàythemSinhVien("Trang", 2005, "JS");// Liệt kê cục bộ sinh viênlietKeDanhSach();/*Output:Ten:BinhTuoi:24Nam Sinh:1996Lop:PHP---Ten:MinhTuoi:20Nam Sinh:2000Lop:PHP---Ten:TrangTuoi:15Nam Sinh:2005Lop:JS---*/
// Định nghĩa thay nào là một sinh viênclass SinhVien // sv là đối tượng người tiêu dùng có những thông tin tên, năm sinh, lớp // trong OOP, những thông tin này được hotline là thuộc tính // các thuộc tính khai báo tại đây hoàn toàn có thể sử dụng như một thay đổi global trong các hành động constructor (ten, namSinh, lop) this.ten = ten; this.namSinh = namSinh; this.lop = lop; // Tính tuổi của một sinh viên // vào OOP, trên đây được call là một hành vi tinhTuoi () let namHienTai = 2020; // áp dụng thuộc tính năm sinh return namHienTai - this.namSinh; // Hiển thị tin tức của một sinh viên hienThiThongTin () console.log("Ten: " + this.ten) console.log("Tuoi: " + this.tinhTuoi()) console.log("Nam Sinh: " + this.namSinh) console.log("Lop: " + this.lop) console.log("---") // Định nghĩa cố nào là 1 người quản lý sinh viênclass NguoiQuanLy constructor () // Người thống trị sinh viên sẽ cai quản một danh sách những sinh viên this.danhSachSinhVien = <> // Thêm một sv vào list themSinhVien (sinhVien) this.danhSachSinhVien.push(sinhVien) // Liệt kê tất cả các sinh viên gồm trong danh sách lietKeDanhSachSinhVien () for (let sinhVien of this.danhSachSinhVien) sinhVien.hienThiThongTin() // Khởi chế tạo sinh viên vật dụng 1let sinhVien1 = new SinhVien("Binh", 1996, "PHP");// Khởi sinh sản sinh viên thiết bị 2let sinhVien2 = new SinhVien("Minh", 2000, "PHP"); // Khởi chế tạo sinh viên trang bị 3let sinhVien3 = new SinhVien("Trang", 2005, "JS"); // Khởi chế tạo một người quản lý sinh viênlet coGiaoChuNhiem = new NguoiQuanLy(); // Thêm sinhVien1 vào list của coGiaoChuNhiemcoGiaoChuNhiem.themSinhVien(sinhVien1);// Thêm sinhVien2 vào danh sách của coGiaoChuNhiemcoGiaoChuNhiem.themSinhVien(sinhVien2);// Thêm sinhVien3 vào danh sách của coGiaoChuNhiemcoGiaoChuNhiem.themSinhVien(sinhVien3);// Hiển thị danh sách sinh viên của coGiaoChuNhiemcoGiaoChuNhiem.lietKeDanhSachSinhVien();/*OutputTen: BinhTuoi: 24Nam Sinh: 1996Lop: PHP---Ten: MinhTuoi: 20Nam Sinh: 2000Lop: PHP---Ten: TrangTuoi: 15Nam Sinh: 2005Lop: JS---*/

2.3 nhận xét

Hãy đọc cẩn trọng 2 đoạn code bên trên nhé, đừng phát âm lướt qua, mình cần bạn đọc cẩn thận.

Xét về tác dụng (Output)

Về đầu ra của bài xích toán, cả 2 cách làm đều có output như nhau

Xét về cách tiếp cận

Lập trình hướng cấu trúc tiếp cận vấn đề theo tính năng. Từ bỏ yêu cầu bài bác toán, ta khẳng định các kỹ năng cần triển khai, tiếp đến triển khai cục bộ chương trình theo những tính năng sẽ phân tích được

– trường đoản cú yêu cầu “Nhập tin tức sinh viên”, tôi biết mình phải làm một khả năng “Nhập tin tức sinh viên”.– trường đoản cú yêu cầu “Liệt kê thông tin về tuổi của sinh viên”, tôi biết mình bắt buộc làm một kĩ năng “Tính tuổi”

Lập trình OOP tiếp cận bài bác toán bằng phương pháp xác định những đối tượng rất có thể xuất hiện trong bài toán, xác minh thuộc tính và hành động cho các đối tượng, xác minh mối quan hệ giữa các đối tượng.

– Tôi tưởng tượng tới việc thống trị sinh viên vào thực tế, bởi vậy tôi xác định bài toán sẽ sở hữu được 2 đối tượng: SinhVien và NguoiQuanLy, NguoiQuanLy sẽ quản lý nhiều SinhVien– SinhVien sẽ có các thuộc tính ten, namSinh, lop; NguoiQuanLy sẽ có thuộc tính danhSachSinhVien– SinhVien đã có hành động “tự tính tuổi của mình” và “tự hiển thị tin tức của mình”– NguoiQuanLy vẫn có hành vi liệt kê hết tin tức sinh viên bản thân quản lý

Lập trình hướng cấu tạo khiến developer thuận tiện tưởng tượng ra kết cấu chương trình mình định viết

Đọc yêu thương cầu bài xích toán, tôi xác minh được ngay cấu tạo chương trình định viết bao gồm những function gì

Lập trình OOP yên cầu một bước phân tích, xác định các đối tượng người tiêu dùng tồn tại trong bài toán

May mắn bài bác toán làm chủ sinh viên là một trong bài toán phổ biến, cần tôi tiện lợi xác định được những đối tượng. Chứ nếu là một bài toán mới, thì tôi sẽ yêu cầu nhiều thời gian hơn.

Xét về phía giải quyết

Lập trình hướng cấu tạo giải quyết bài toán theo phong cách “làm mịn”, một tính năng phức hợp sẽ được chia bé dại thành những hàm, những hàm lại có thể chia nhỏ dại thành những hàm bé dại hơn, phân tách đến khi nào bạn cảm xúc hàm đang đủ solo giản.

Bạn có lưu ý chỗ hiển thị tuổi không, về cơ bạn dạng tôi có thể hiển thị tuổi trực tiếp vào lệnh console.log() (dòng 22), nhưng tôi nghĩ điều ấy khó hiểu, buộc phải tôi đã tách bóc thành một hàm tinhTuoi() riêng

Lập trình OOP giải quyết và xử lý bài toán bằng phương pháp cho các đối tượng tương tác cùng với nhau.

Tôi khai báo hành động tính tuổi cho mỗi sinh viên, người làm chủ muốn biết tuổi thì rất có thể gọi tới hành động sinhVien.tinhTuoi() để tìm hiểu tuổi của sv đó

Lập trình hướng cấu tạo giải quyết trực tiếp bài toán. Trong những lúc lập trình OOP giải quyết bài toán gián tiếp qua hành vi của những đối tượng.

Xem thêm: Dầu Cọ Có Tác Dụng Của Dầu Cọ : Tốt Cho Sức Khỏe, Hại Môi Trường

Bạn thấy đấy, lập trình sẵn hướng đối tượng người sử dụng thật sự nhắm đến các đối tượng.


*

III. Ưu và Nhược điểm của OOP

3.1 Ưu điểm

Có tính gói gọn cao

Vì tổ chức dưới dạng đối tượng, phải các hành vi và nằm trong tính sẽ tiến hành đóng gói trong các đối tượng, vì thế mà bạn dễ dàng cai quản code hơn.

Cách tiếp cận ngay cạnh với thực tế

Mình đến rằng đây là ưu điểm mập nhất. Nếu bạn lưu ý thì các sự vật, hiện tượng ngoài cuộc sống cũng có thể có các hành vi và trực thuộc tính, điều này cũng như với các đối tượng trong OOP. Nên những khi triển khai một phần mềm với những yêu cầu bắt đầu từ thực tế, khởi nguồn từ cuộc sống, thì bọn họ sẽ dễ dàng dàng biến đổi thành code.

Việc tất cả cách tiếp cận gần cạnh với thực tế, cũng khiến cho code hiểu mạch lạc hơn, dễ hiểu hơn, từ đó mà phần mềm đã dễ bảo trì, dễ tăng cấp hơn.

3.2 Nhược điểm

Nhược điểm nói ra đến vui thôi chứ bạn không tồn tại quyền “nghỉ chơi” cùng với OOP đâu, do nó hiện nay đang là đẳng cấp lập trình thịnh hành nhất trên vắt giới. Nếu như không muốn code OOP, thì các bạn cũng không tương xứng với nghề developer.

Hơn nữa, quyền lựa chọn giữa code OOP và không code OOP cũng hạn chế, vì chưa phải ngôn ngữ như thế nào cũng cung ứng OOP, và bao gồm những ngôn từ chỉ hỗ trợ OOP.

Nhưng may mắn rằng, các nhược điểm của OOP chưa phải là vụ việc lớn. Các developer trên khắp quả đât vẫn yêu thích và thực hiện OOP hằng ngày.

Khó tiếp cận với người mới bắt đầu

Những chúng ta mới code thường xuyên chỉ thân thiện tới output đầu ra của chương trình, chúng ta chẳng quan tâm tới phương thức lập trình theo hướng kết cấu hay phía đối tượng, vày vậy mà người ta thường “Từ chối gọi OOP là gì” trong số những ngày đầu học lập trình.

Mặt khác, phần nhiều (khi không thích nói là tất cả) họ đều tiếp cận với dạng hình lập trình hướng kết cấu trước học OOP. Trong khi những ví dụ về lập trình sẵn hướng kết cấu thường quá đơn giản dễ dàng để họ thấy được hạn chế của nó. Vì thế khi tiếp cận với lập trình phía đối tượng, họ sẽ cảm thấy đó là một phương pháp “thừa”, và thông thường có chung một câu hỏi “Tại sao tôi bắt buộc học OOP trong lúc mọi trang bị vẫn ổn“. Trong trường phù hợp bạn ra quyết định học OOP đi nữa, thì theo sau OOP là một trong những mớ kiến thức khác như tính nhiều hình, tính đóng gói, tình kế thừa, tính trừu tượng,…

Không cân xứng để giải quyết và xử lý các sự việc đơn giản

OOP như một con dao phẫu thuật trâu, trong trường hợp vấn đề của doanh nghiệp chỉ là 1 con con gà thì sử dụng OOP đã được coi là “mang dao phẫu thuật trâu đi thịt gà”.

Hãy tưởng tượng tôi chỉ muốn khám nghiệm một string có đúng định dạng email không, nhưng lại tạo thành một class Email, dĩ nhiên một hành động là validate() thì quả là bự chảng đúng không.

Một số yếu điểm khác

Mình tham khảo một số trong những tài liệu thì bọn họ nói OOP chạy chậm chạp hơn so với kiểu lập trình hướng cấu tạo do phải thực thi nhiều nguyên tố hơn, với code OOP cũng thường dài hơn. Dẫu vậy mình thấy đây chưa phải vấn đề, do sống tới 25 tuổi (2020) nhưng mà mình vẫn chưa chạm mặt trường hòa hợp nào mà vụ việc phát sinh từ các việc số lượng chiếc code nhiều, hay chương trình xúc tiến chậm vị code OOP cả. đề xuất mình cứ đăng vậy cho các bạn tham khảo thôi nhé.

Leave a Reply

Your email address will not be published. Required fields are marked *

  • Bài tập cơ sở dữ liệu quản lý sinh viên

  • Câu hỏi trắc nghiệm vật lý lý sinh y học

  • So sánh và chỉ ra mối quan hệ giữa tư duy và tưởng tượng

  • Sách sinh lý đại học y dược tphcm pdf

  • x

    Welcome Back!

    Login to your account below

    Retrieve your password

    Please enter your username or email address to reset your password.