01/10/2018, 00:31

Mong nhận được tư vấn cách làm bài tập OOP với C#

Mình có đề bài tập như sau:
We are given a school. In the school there are classes of students. Each class has a set of teachers. Each teacher teaches a set of disciplines. Students have name and unique class number. Classes have unique text identifier. Teachers have name. Disciplines have name, number of lectures and number of exercises. Both teachers and students are people. Students, classes, teachers and disciplines could have optional comments (free text block).
Your task is to identify the classes (in terms of OOP) and their attributes and operations, encapsulate their fields, define the class hierarchy and create a class diagram with Visual Studio.

Nhưng khi mình làm thì có nhiều yêu cầu hơn thế - đề bài chỉ mang tính tương đối: cần thiết kế các class sao cho các trường dữ liệu (field) phải rõ ràng (tránh mã môn học - subjectID lại liên quan đến class học sinh chẳng hạn). Và trả lời các câu hỏi thực tế như “Lớp học có bao nhiêu học sinh? Học sinh học bao nhiêu môn học? Giáo viên dạy toán của lớp A tên gì?”… Ngoài ra, người yêu cầu làm bài tập này muốn mình thiết kế các class sao cho nó thể hiện được các kiểu quan hệ như nhiều nhiều - theo mình hơi giống với thiết kế cơ sở dữ liệu (ví dụ một giáo viên có thể dạy nhiều môn học, giáo viên đó có thể dạy 2 môn học ở lớp này nhưng một môn học ở lớp khác).

Câu hỏi:

  1. Mong nhận được ý tưởng từ các bạn để giải quyết bài toán trên.
  2. Mình thắc mắc rằng thiết kế các class theo OOP với ngôn ngữ lập trình cụ thể có giống với thiết kế cơ sở dữ liệu? (Mình có search trên mạng với tiếng Anh nhưng vẫn chưa hiểu rõ). Ích lợi của việc này nếu thực thi được?
  3. Phân biệt ý nghĩa của design pattern và database design?
  4. Trong lập trình asp.net mvc thì việc xác định model ảnh hưởng như thế nào đến cơ sở dữ liệu lưu trên sql server? Có thể tìm ra mối liên hệ nào giữa việc tạo ra các class thỏa OOP với lập trình web (cụ thể asp.net mvc)

Mong nhận được sự góp ý, giúp đỡ từ mọi người để mở rộng hiểu biết, sửa chữa hiểu sai của mình. Và cảm ơn mọi người rất nhiều!

Đẵng Nguyễn Quốc viết 02:44 ngày 01/10/2018

Câu 1,2,3 thì cứ làm đi, rồi từ từ bạn sẽ tự trả lời được hết 3 câu đấy.
Riêng câu 4, việc xác định model hiện nay mà asp.net mvc thường là EF database first. Vì EF này nó sử dụng cấu trúc linq và ado.net để cấu thành riêng ra một dạng connect chứa nhiều ưu điểm. Nếu bạn từng vọc kết nối và database thì bạn thấy các model là các class để ta connect với database. Vì thế, bạn có thấy một điều là để kết nối cơ sở dữ liệu ta thông qua classes của model

Hong Pham viết 02:36 ngày 01/10/2018

Cảm ơn Đẵng Nguyễn Quốc. Mình cũng ráng tự làm câu 1, 2 nhưng thực sự không chắc chắn và không biết nên làm sao nên muốn nhận được thêm ý tưởng từ mọi người để học hỏi và cải tiến cái mình đã làm rồi! Mình sẽ cố gắng chăm chỉ tìm hiểu và thực hành thêm thay vì hỏi. Và thực sự cảm ơn bạn đã dành thời gian đọc cũng như trả lời để giúp mình mở rộng hiểu biết

Bài liên quan
0