Lời cam đoanĐồ án được chúng em tự tìm hiểu, học tập ở trường lớp cũng và các nguồn sách, báotrên mạng và không có các hành vi đạo văn tác giả trong quá trình hoàn thiện đồ án.Danh mục c
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM
ĐỒ ÁN TỔNG HỢP NGÀNH
Quản Lý Điểm Học Sinh
Khoa: Tài Chính – Thương Mại
Chuyên ngành: Thương mại điện tử
Giảng viên hướng dẫn: Nguyễn Minh Trường
Sinh viên thực hiện:
Nguyễn Trường Thiên Quý - 2188901328
Trương Anh Khôi - 2188900105
Lớp: 21DTMA2
TP Hồ Chí Minh, 2022
Trang 2Lời cam đoan
Đồ án được chúng em tự tìm hiểu, học tập ở trường lớp cũng và các nguồn sách, báotrên mạng và không có các hành vi đạo văn tác giả trong quá trình hoàn thiện đồ án.Danh mục các kí hiệu và chữ viết tắt
lí điểm sinh viên bằng chương trình để giáo viên có thể quản lí điểm học sinh một cáchchi tiết và ít sai xót trong quá trình nhập dữ liệu điểm học sinh nhiều hơn
1.2.Nhiệm vụ đồ án
1.2.1.Nội dung
-Trong công cuộc cách mạng công nghệ số hiện nay, các ngành tin học, côngnghệ thông tin ngày càng càng được chú trọng nhờ những công nghệ, ứng dụng ngàycàng có ích trong quá trình hoạt động sống của con người, nên cũng chính vì vậy, việcđược công nghệ vào phục vụ cho công việc quản lí là điều tất yếu với các ưu điểm sau:+Xử lí và quản lí một tệp thông tin lớn
+Xử lý chính xác, nhanh chóng các cột điểm với các hệ số khác nhau
+Đảm bảo việc an toàn bảo mật cho người dùng
Trang 3+Quản lí điểm học sinh thuận tiện, nhanh chóng.
-Đồ án chương trình quản lý điểm học sinh mục đích chính hướng đến đốitượng quản lí học sinh tại các trường học có số lượng học sinh lớn Với các nhiệm vụnhư thêm thông tin, sửa thông tin, xóa thông tin, do thông tin học sinh, quản lí thôngtin học sinh, điểm số của mỗi học sinh qua các bài kiểm tra, thi và tổng kết kết quả họctập cả năm cho học sinh
-Nội dung của đồ án là tạo một phần mềm để thực hiện các thao tác quản lí trên.Trợ giúp giáo viên trong việc quản lí điểm số học sinh tại các lớp, khối, được dễ dàng
và giảm bớt khó khăn cũng như sai xót hơn
1.2.2.Mục tiêu đồ án
Phần mềm dễ sử dụng cho các giáo viên ở mọi độ tuổi, có tính thiết thực, cung cấp đầy
đủ thông tin học sinh
-Hỗ trợ cho công việc quản lí học sinh một cách thuận tiện nhất
-Hỗ trợ cho công tác quản lí trong việc cập nhật, thêm, sửa, xóa, tra cứu thông tin liênquan đến sinh viên về điểm của học sinh
-Tiết kiệm thời gian, thay thế các công việc làm bằng giấy tờ
Chương trình thực hiện những yêu cầu sau:
-Quản lí thông tin về lý lịch học sinh
-Xây dựng các chức năng cập nhập, thêm, xóa về thông tin học sinh, thông tin lớp,khối, thông tin từng môn học và các loại điểm của học sinh và tổng kết quá trình họccủa học sinh và chức năng dò thông tin học sinh theo học kì, khối, xếp loại,…1.2.3.Đối tượng và phạm vi đồ án
Đối tượng đồ án: Phần mềm quản lí điểm học sinh
Phạm vi đồ án: các trường học
1.2.4.Ý nghĩa khoa học và ý nghĩa thực tiễn
-Trong thời đại công nghệ thông tin ngày càng được chú trọng, việc ứng dụngcông nghệ vào hoạt động con người không chỉ riêng đời sống mà còn có thể ứng dụnghoạt động vào hoạt động “Quản lí điểm học sinh bằng C#” mang lại ý nghĩa như sau:+Giúp tiết kiệm thời gian cho giáo viên
+Giúp lưu trữ dữ liệu 1 cách chính xác
+Giúp quản lí điểm một cách thống kê
1.3.Phương pháp và công cụ thực hiện đồ án
Trang 4-Để xây dựng hệ thống quản lí điểm học sinh cần sử dụng các công cụ như:+SQL Sever để tạo các bảng hồ sơ dữ liệu tạo sự liên kết giữa các bảng.
+WinformApp của Microsoft Visual Studio để thiết lập giao diện cho chương trình vàliên kết với chương trình SQL để hiện thị cơ sở dữ liệu điểm học sinh và các chứcnăng như thêm, sửa, xóa dữ liệu
Công cụ ngoài:
-Dùng Exel của microsoft để thực hiện các phép toán và thêm dữ liệu vào SQL.1.4.Nội dung đồ án
-Chương 1: Tổng quan
-Chương 2: Cơ sở lý thuyết
-Chương 3:Phân tích và thiết kế
-Chương 4:Kết quả và kiến nghị
-Github được xem là trang cung cấp dịch vụ mã nguồn mở và là mạng xã hội của các lập trình viên lớn nhất hiện nay Dựa vào dữ liệu những trao đổi của người dùng, GitHub thường xuyên thực hiện các bảng xếp hạng các ngôn ngữ lập trình được yêu thích nhất định kì, đây được xem như là một nguồn tham khảo chất lượng về xu hướngnghề nghiệp chuyên ngành CNTT Theo trang https://octoverse.github.com/ thì thứ tự thống kê đến 2020 là JavaScript, Python, Java [2],[3]
-PYPL Index là chỉ số thống kê dựa trên số lượng các câu truy vấn về ngôn ngữ lập trình được tìm thấy trên Google PYPL cho rằng càng nhiều câu truy vấn được tìm
Trang 5thấy, có thể xem ngôn ngữ đó là phổ biến Theo thống kê của PYPL Index, vào tháng 9/2021, Python dẫn đầu trong phổ dụng nhất, tiếp theo là JavaScript và Java [3].-Website Stack Overflow, nơi các lập trình viên trên khắp thế giới có thể đặt câu hỏi vềcác lỗi hoặc những khó khăn mà họ chưa giải quyết được Theo thống kê đến năm
2020 của Stack Overflow thì Javascript được xem là được sử dụng nhiều nhất trong các năm gần đây, tiếp theo là Python, Java, TypeScript Trong khi đó Rust được xem làđược yêu thích nhất của giới lập trình viên, tiếp theo là TypeScript và Python Ngôn ngữ mà các lập trình viên thích học nhất cho trong tương lai theo thứ tự là Python, JavaScript, Go và TypeScript [2], [3]
-HackerRank là website cho phép các lập trình viên trau dồi, học hỏi và rèn luyện kỹ năng của bản thân Website yêu cầu những người tham gia đưa ra lời giải cho những
“thử thách lập trình” hay những bài toán lập trình Qua đó những kết quả và tốc độ giảiđáp vấn đề sẽ được HackerRank sử dụng để đánh giá và xếp hạng các lập trình viên tham gia Theo thống kê của website này thì JavaScript là ngôn ngữ phổ biến nhất năm
2018 Go, Kotlin và Python là các ngôn ngữ được các lập trình viên thích học nhất vàonăm 2019 Điều thú vị là sự quan tâm của các nhà phát triển đối với Scala đã giảm xuống, trong khi sự quan tâm của họ đối với TypeScript lại tăng lên TypeScript đã từ
vị trí thứ 5 là ngôn ngữ phổ biến nhất để học, lên vị trí thứ 4 [4]
-Theo trang Wikipedia thì các ngôn ngữ lập trình được sử dụng để phát triển các thành phần liên quan đến lập trình back-end server-side, và front-end client-side coding trongcác trang web phổ biến như Google, Facebook, Bing, Twitter, Amazon… là C, C++,
Go, C#, Java, Python, Node, PHP, Erlang, D, Haskell, Perl [5]
2.2.Các khái niệm cơ bản
2.2.1.Hệ thống:
-Tiếp cận hệ thống là một phương pháp khoa học và biện chứng trong nghiên cứu
và giải quyết các vấn đề kinh tế, xã hội Yêu cầu chủ yếu nhất của phương pháp này làphải xem xét hệ thống trong tổng thể vốn có của nó cùng với các mối liên hệ của cácphần trong hệ thống cũng như mối liên hệ với các hệ thống bên ngoài.[1]
2.2.2.Hệ thống thông tin:
-Hệ thống thông tin là nền tảng của mỗi hệ thống quản lý dù ở cấp vĩ mô hay vi
mô Do đó, khi phân tích HTTT, chúng ta cần sử dụng các tiếp cận hệ thống, tức làphải xem xét một cách toàn diện các vấn đề Trong một hệ thống phức tạp nhiều phân
Trang 6hệ mà bỏ qua các phân hệ khác, việc tối ưu hóa một số bộ phận mà không tính đến mốiliên hệ ràng buộc với các bộ phận khác sẽ không mang lại hiệu quả tối ưu chung chotoàn bộ hệ thống.Thông tin có các đặc điểm nổi trội sau :
+ Tồn tại khách quan
+ Có thể tạo ra, truyền đi, lưu trữ, chọn lọc
+ Được định lượng bằng cách đo độ bất định của hành vi, trạng thái.Xác suất xuất hiệncủa một tin càng thấp thì lượng thông tin càng cao vì độ bất ngờ của nó càng lớn.-Ứng dụng phương pháp tiếp cận hệ thống trong phân tích HTTT đòi hỏi trướchết phải xem xét hệ thống thống nhất, sau đó mới đi vào các vấn đề cụ thể trong cáclĩnh vực Trong mỗi lĩnh vực lại phân chia thành các vấn đề cụ thể hơn nữa, ngày càngchi tiết hơn.Đó chính là cách tiếp cận đi từ tổng quát đến cụ thể[7]
-Liên quan đến hệ HTTT nhiều khái niệm đề cấp tới như giao diện, xử lý thôngtin, hoạt động thông tin, thông tin, dữ liệu:
Môi trường (Enviroment) là một phần của thế giới không thuộc hệ thống mà cómối liên hệ với hệ thống thông qua các giao diện của hệ thống
Giao diện (Interface) là nơi mà tại đó hệ thống trao đổi dữ liệu với hệ thống khác
Ví dụ, giao diện của HTTT thường là loa, micro, chuột, màn hình, màn phím,
Xử lí (Processing) dữ liệu được hiểu là các hoạt động tác động vào dữ liệu nhưtính toán, sắp xếp, so sánh, phân loại, tổng hợp,… làm cho nó thay đổi về nộidung, vị trí hay cách thể hiện
Các hoạt động thông tin (Information Activitives) là các hoạt động xảy ra trongmột HTTT, bao gồm các việc như nắm bắt, xử lí, lưu trữ, phân phối, trình diễn dữliệu và kiểm tra các hoạt động của HTTT
Thông tin (Information) là dữ liệu được đặt vào một ngữ cảnh với một hình thứcthích hợp và có lợi cho người sử dụng cuối cùng
Dữ liệu (Data) là những mô tả về con người, sự kiện trong thế giới mà ta gặp bằngnhiều cách thể hiện khác nhau như bằng chữ viết, biểu tượng, hình ảnh, âm thanh,
…
2.2.3.Hệ thống thông tin quản lí
-Trong các HTTT, HTTT quản lý (Management Information System - MIS)được biết đến sớm và phổ biến nhất Đối tượng phục vụ của HTTT quản lý thực sự
Trang 7rộng hơn rất nhiều so với ý nghĩa bản thân tên gọi của nó HTTT quản lý là sự pháttriển và sử dụng HTTT có hiệu quả trong một tổ chức (Keen, Peter G.W).[8]
Hình.Các yếu tố cấu thành của HTTT-Năm yếu tố cấu thành của HTTT quản lý xét ở trạng thái tĩnh là: Các đườngtruyền, các thiết bị, thiết bị tin học máy tính,…(phần cứng), các chương trình (phầnmềm), dữ liệu, thủ tục- quy trình và con người (hình 1.1) Các định nghĩa về HTTTtrên đây giúp cho việc định hướng quá trình phân tích, thiết kế hệ thống Tuy vậy, sự
mô tả này là chưa đủ, cần đi sâu phân tích cụ thể mới có được sự hiểu biết đầy đủ vềmột hệ thống thực và cho phép ta xây dựng cơ sở dữ liệu các chương trình và việc bốtrí các thành phần bên trong nó
2.2.4.Các giai đoạn phân tích thiết kế hệ thống
2.2.4.1.Khảo sát hiện trạng xác định yêu cầu hệ thống
-Xác định yêu cầu là bước đầu tiên và quan trọng của một hệ thống thông tin,
nó quyết định đến chất lượng hệ thống thông tin được xây dựng ở các bước sau này.Việc thu thập các thông tin của hệ thống chính là việc tiến hành khảo sát hệ thống, việckhảo sát hệ thống được chia làm hai giai đoạn:
+Giai đoạn khảo sát sơ bộ: nhằm hình thành dự án phát triển hệ thống thông tin.+Giai đoạn khảo sát chi tiết: nhằm thu thập các thông tin chi tiết của hệ thốngphục vụ phân tích yêu cầu thông tin làm cơ sở cho các bước sau này
2.2.4.2.Phân tích hệ thống
Trang 8-Phân tích hệ thống về chức năng, nói một cách đơn giản là xác định cácchức năng nghiệp vụ cần được tiến hành thực hiện của hệ thống và sau khi đã khảo sátthực tế và đi sâu vào các thành phần của hệ thống Các bước tiến hành:
+Diễn tả chức năng từ mức vật lý về mức logic, từ mức tổng thể về mức chi tiết.+Xây dựng sơ đồ phân cấp chức năng
+Xây dựng dòng dữ liệu
-Phân tích hệ thống về dữ liệu là phân tích về cấu trúc thông tin được dùng
và được một tổ chức bên trong hệ thống khảo sát, xác định được mối liên hệ tự nhiêngiữa các thành phần thông tin, hay nói cách khác, đây là quá trình lập lược đồ kháiniệm về dữ liệu, làm căn cứ cho việc thiết kế cơ sở dữ liệu sau này Việc phân tích dữliệu thường thực hiện qua hai giai đoạn:
Đầu tiên lập lược đồ dữ liệu theo mô hình thực thể liên kết, nhằm phát huyđiểm mạnh về tính trực quan và dễ vận dụng của mô hình này, bao gồm:
+ Xác định các kiểu thực thể cùng với các kiểu thuộc tính của nó
+ Xác định các mối quan hệ giữa các kiểu thực thể
Tiếp đó hoàn thiện lược đồ dữ liệu theo mô hình quan hệ nhằm lợi dụng cơ
sở lý luận chặt chẽ của mô hình này trong việc chuẩn hóa lược đồ, bao gồm:
+ Xác định các kiểu thuộc tính của các kiểu thực thể
+ Chuẩn hóa danh sách các thuộc tính, từ đó xác định các kiểu thực thể đã được2.2.4.3.Thiết kế hệ thống
-Trong khi giai đoạn phân tích nghiệp vụ đơn giản xử lý cho quan điểm logic
về hệ thống, thì giai đoạn thiết kế hệ thống bao gồm việc xem xét lập tức các khả năngcài đặt các yêu cầu nghiệp vụ này bằng cách sử dụng máy tính Tùy theo quy mô của
hệ thống mà các giai đoạn thiết kế có thể áp dụng không được giống nhau Sau đây làcác tiến trình đơn giản nhất trong thiết kế hệ thống:
+Thiết kế được xem xét bắt đầu từ màn hình tương tác, các dữ liệu vào và ra đến cơ
sở dữ liệu và các tiến trình xử lý chi tiết bên trong
+Thiết kế vật lý: là quá trình chuyển mô hình logic trừu tượng thành bản thiết kế vật
lý hay các đặc tả kỹ thuật Trong thiết kế vật lý cần phải quyết định chọn ngôn ngữlập trình, hệ cơ sở dữ liệu, cấu trúc file tổ chức dữ liệu, phần cứng, hệ điều hành vàmôi trường mạng cần xây dựng
+Hoàn thiện chương trình
Trang 9mô hình client/server là sự mở rộng tự nhiên và tiện lợi cho việc truyền thông liên tiếntrình trên các máy tính cá nhân Mô hình này cho phép xây dựng các chương trìnhclient/server một cách dễ dàng và sử dụng chúng để liên tác với nhau để đạt hiệu quảhơn.
-Mô hình chuẩn cho các ứng dụng trên mạng là mô hình client-server.Trong môhình này máy tính có vai trò là một client và máy tính có nhu cầu cần phục vụ dịch vụ
và máy tính đóng vai trò là một server là máy tính có thể đáp ứng được các yêu cầu vềdịch vụ đó từ các client Khái niệm client-server chỉ mang tính chất tương đối, điềunày có nghĩa là một máy có thể lúc này đóng vai trò là client và lúc khác lại đóng vaitrò là server Nhìn chung, client là một máy tính cá nhân, còn các Server là các máytính có cấu hình mạnh có chứa các cơ sở dữ liệu và các chương trình ứng dụng để phục
vụ một dịch vụ nào đấy từ các yêu cầu của client
Trang 10-Cách thức hoạt động của mô hình client-server như sau: một server khởi tạoluôn ở trạng thái chờ yêu cầu từ các tiến trình client, tiến trình tại client được khởi tạo
có thể trên cùng hệ thống hoặc trên các hệ thống khác được kết nối thông qua mạng,tiến trình client thường được khởi tạo bởi các lệnh từ người dùng Tiến trình client rayêu cầu và gửi chúng qua mạng tới server để yêu cầu được phục vụ các dịch vụ Tiếntrình trên server thực hiện việc xác định yêu cầu hợp lệ từ lient sau đó phục vụ và trảkết quả tới client và tiếp tục chờ đợi các yêu cầu khác Một số kiểu mà server có thểcung cấp như: dịch vụ về thời gian, dịch vụ in ấn, dịch vụ file, thi hành các lệnh từclient trên server
2.3.Cơ sở tạo dựng đề tài
2.3.1.Tổng quan về C#
-C# (hay C sharp) là một dạng ngôn ngữ lập trình hiện đại được sử dụng hầu hếtmọi người và được phát triển bởi đội ngũ kỹ sư Microsoft vào năm 2000 C# được xâydựng trên hai nền tảng của hai ngôn ngữ C++ và Java
-C#, theo một hướng nào đó, là ngôn ngữ lập trình phản ánh trực tiếp nhấtđến NET Framework mà tất cả các chương trình NET chạy, và nó phụ thuộc mạnh
mẽ vào Framework này Mọi dữ liệu cơ sở đều là đối tượng, được cấp phát và hủy bỏbởi trình dọn rác Garbage-Collector (GC), và nhiều kiểu trừu tượng khác chẳng hạnnhư class, delegate, interface, exception, v.v, phản ánh rõ ràng những đặc trưng của.NET runtime
-Là một ngôn ngữ trực quan 80 từ khóa và hơn mười kiểu dữ liệu được dựng sẵn.Đồng thời C# cung cấp những đặc tính hướng thành phần (componentoriented) như làProperty, Event
-C# không khuyến khích người dùng sử dụng con trỏ như C++ hay C# có bộGarbage Collector sẽ tự động thu gom vùng nhớ khi người dùng không sử dụng nữa
Và C# đã loại bỏ đa kế thừa trong C++ mà thay vào đó C# sẽ hỗ trợ thực thi giao diệninterface
So sánh với C và C++, ngôn ngữ này bị giới hạn và được nâng cao ở mộtvài đặc điểm nào đó, nhưng không bao gồm các giới hạn sau đây: [6]
-Các con trỏ chỉ có thể được sử dụng trong chế độ không an toàn Hầu hết các đốitượng được tham chiếu an toàn, và các phép tính đều được kiểm tra tràn bộ đệm.-Các đối tượng không thể được giải phóng tường minh
Trang 11-Chỉ có đơn kế thừa, nhưng có thể cài đặt nhiều interface trừu tượng (abstractinterfaces) Chức năng này làm đơn giản hóa sự thực thi của thời gian thực thi.-C# thì an-toàn-kiểu (typesafe) hơn C++.
-Kiểu thứ tự được thay thế bằng tên miền không gian (namespace)
-Có Properties, các phương pháp có thể gọi các Properties để truy cập dữ liệu.-Có reflection
-Trong các ứng dụng Windows truyền thống, mã nguồn ở các chương trình đượcphiên dịch trực tiếp thành các mã thực thi của hệ điều hành
-Các ứng dụng đang sử dụng .NET Framework, mã nguồn chương trình(C#,VB.NET) được phiên dịch thành mã nguồn ngôn ngữ trung gian MSIL (Microsoftintermediate language)
-Sau đó đoạn mã được phiên dịch bởi Common Language Runtime (CLR) đểthành đoạn mẫ thực thi của hệ điều hành
Hình 2.1 Quá trình chuyển đổi MSIL code thành native code -C Sharp với việc được NET Framework hỗ trợ mạnh mẽ đã giúp cho việc tạomột ứng dụng Windows Form hay WPS (Windows Presentation Foundation), pháttriển game, ứng dụng Wed trở nên không còn là một chuyện khó khăn
Trang 122.3.2.Ứng dụng của C#
-C# là một dạng ngôn ngữ lập trình có mục đích chung là để xây dựng cácchương trình và ứng dụng với các mục đích khác nhau C# có đặc điểm rất linh hoạtcao, trong đó có ba lĩnh vực nó thường được sử dụng là:
2.3.3 Đặc điểm của ngôn ngữ lập trình C#
C# là một ngôn ngữ đơn giản
-C# đã loại bỏ một vài chức năng phức tạp và khó chịu của những ngôn ngữ như Java
và C++, bao gồm như: loại bỏ macro, template, và lớp cơ sở ảo (Virual base class).-C# đơn giản vì nó dựa trên hai ngôn ngữ lập trình C và C++ C# khá tương đối giống
về giao diện, cú pháp, biểu thức, các phép toán và những chức năng được lấy từ ngônngữ C và C++, nhưng nó đã được cải tiến hơn để làm cho ngôn ngữ C# trở nên đơngiản hơn đối với người dùng
C# là một ngôn ngữ hiện đại
-Những đặc tính của C# như là bảo mật mã nguồn, kiểu dữ liệu mở, thu gom bộ nhớ tựđộng, xử lí ngoại lệ là những tính năng có trong một ngôn ngữ hiện đại
C#, ngôn ngữ lập trình thuần hướng đối tượng
-Lập trình hướng đối tượng(OOP:Object-oriented programming) là phươngpháp lập trình gồm 4 đối tượng: tính kế thừa, tính đa hình, tính đóng
gói và tính trừu tượng
C# là ngôn ngữ ít từ khóa
-Ngôn ngữ lập trình C# sử dụng giới hạn những từ khóa Đa số các từ khóa được sửdụng để mô tả thông tin, tuy nhiên đối với C# là một trường hợp ngoại lệ và có thểthấy ngôn ngữ lập trình này được sử dụng ở bất kỳ vị trí nào
Ưu điểm của ngôn ngữ lập trình C#
-Thân thiện với các ngôn ngữ lập trình khác (Java, C++, Pascal)