Quản lý sinh viên trong các trường Đại học từ trước đến nay đều thực hiện thủ công. Các thông tin của sinh viên đều phải ghi chép trên giấy nên rất khó để quản lý, ghi chép, lưu trữ, … bên cạnh đó còn có rất nhiều vấn đề xảy ra như : mất sổ sách, sổ để lâu ngày có thể bị hư, việc tìm kiếm thông tin sinh viên cũng gặp rất nhiều khó khăn. Mặc dù vậy trên thị trường đã xuất hiện nhiều phần mềm quản lý sinh viên nhưng chưa đáp ứng được hầu hết nhu cầu của người dùng cũng như người dùng phải trả chi phí khá cao để mua những phần mềm đó. Từ những lý do trên, chúng em chọn đề tài này với mong muốn giúp một phần nào để cho việc quản lý sinh viên ở các trường Đại học được dễ dàng hơn và cũng có thể sử dụng code này để nâng cấp thành phần mềm đáp ứng được nhu cầu của người dùng trong việc quản lý thông tin sinh viên được hoàn chỉnh hơn.
Trang 1Chương 1 : TỔNG QUAN
1.1 Lời mở đầu
Ngày nay, công nghệ thông tin là một ngành rất được chú tâm Sự phát triển của nó ngày càng một đa dạng, nó được ứng dụng trong nhiều lĩnh vực như kinh tế, giáo dục, góp phần vào sự phát triển của một xã hội tiên tiến Sự phát triển của nó đi trước mọi ngành nghề khác Trong đó ngành học của nó là một ngành được giới trẻ quan tâm Một trong những ngành đang có xu hướng đi lên rất mạnh Các môn học của nó đã nói lên một điều, xã hội không có ứng dụng công nghệ thông tin đó là một xã hội lạc hậu Nó đáp ứng mọi nhu cầu của người tiêu dùng Môn học “Cấu trúc dữ liệu” là một môn học nền tảng của ngành học Công Nghệ Thông Tin Nó được ứng dụng thực tế trong mọi thời đại hiện nay
Là một ngành kĩ thuật, việc làm niên luận giúp cho sinh viên hiểu biết rõ hơn, sâu hơn về lĩnh vực mà mình đang học Để từ đó làm nền tảng cho việc phát triển sau này Vì vậy, khi được giao đề tài “Quản lý sinh viên” đã giúp chúng em hiểu rõ hơn về danh sách liên kết Nó được xây dựng một cách rất khoa học và được ứng dụng rất nhiều trong thực tế hiện nay
1.2 Lý do chọn đề tài
Quản lý sinh viên trong các trường Đại học từ trước đến nay đều thực hiện thủ công Các thông tin của sinh viên đều phải ghi chép trên giấy nên rất khó để quản lý, ghi chép, lưu trữ, … bên cạnh đó còn có rất nhiều vấn đề xảy ra như : mất
sổ sách, sổ để lâu ngày có thể bị hư, việc tìm kiếm thông tin sinh viên cũng gặp rất nhiều khó khăn
Mặc dù vậy trên thị trường đã xuất hiện nhiều phần mềm quản lý sinh viên nhưng chưa đáp ứng được hầu hết nhu cầu của người dùng cũng như người dùng phải trả chi phí khá cao để mua nhũng phần mềm đó
SVTH : Nguyễn Ngọc Tuấn Trang 1
Trang 2Từ những lý do trên, chúng em chọn đề tài này với mong muốn giúp một phần nào để cho việc quản lý sinh viên ở các trường Đại học được dễ dàng hơn và cũng có thể sử dụng code này để nâng cấp thành phần mềm đáp ứng được nhu cầu của người dùng trong việc quản lý thông tin sinh viên được hoàn chỉnh hơn.
1.3 Đối tượng nghiên cứu
Danh sách liên kết
Các giải thuật sắp xếp, tìm kiếm
Cấu trúc dữ liệu (lập trình C)
1.4 Giới hạn đề tài
Do điều kiện thời gian nên nhóm chúng em chỉ có thể thực hiện nghiên cứu
và viết ứng dụng quản lý thông tin sinh viên khoa Công Nghệ Thông Tin trường Đại học Trà Vinh
1.5 Mục đích nghiên cứu
Xây dựng ứng dụng quản lý thông tin sinh viên dễ sử dụng, giao diện thân thiện với người dùng
1.6 Mục tiêu của đề tài
Trong danh sách liên kết này, nhóm chúng em đã sử dụng ngôn ngữ lập trình C với trình biên dịch Visual Studio 6.0 và dựa vào các kiến thức của môn Cấu trúc định luật và giải thuật 1 chủ yếu là phần danh sách liên kết và các giải thuật sắp xếp, tìm kiếm từ đó viết ứng dụng cài đặt chương trình quản lý thông tin sinh viên thỏa mãn mục đích của đề tài
Trong giới hạn đề tài, nhóm chúng em sẽ vận dụng các kiến thức cơ bản về danh sách liên kết, khai báo một struct sinh viên trong việc mô tả thông tin của sinh viên
Trang 31.7 Giải quyết đề tài
Về lý thuyết : tìm hiểu các kiến thức về danh sách liên kết , các giải thuật sắp xếp, tìm kiếm và các kiến thức về ngôn ngữ lập trình để giải quyết yêu cầu đề tài
Về chương trình : sử dụng ngôn ngữ lập trình C để viết chương trình, cài đặt chương trình thực hiện các yêu cầu của đề tài
15->20/10/2010 Giáo viên kiểm thử đề tài
20->21/10/2010 Chỉnh sửa nội dung cần thiết
23/10/2010 Hoàn tất niên luận, nộp về BM Công nghệ thông tin
SVTH : Nguyễn Ngọc Tuấn Trang 3
Trang 4Chương 2 : NỘI DUNG
2.1 Mô tả bài toán
Khai báo một struct lưu trữ thông tin sinh viên bao gồm : Mã số, họ tên, năm sinh, giới tính, địa chỉ, mã lớp, ngành học, khóa học, điểm môn 1, môn 2, môn 3, điểm trung bình, kết quả, xếp loại
Dùng danh sách liên kết để lưu trữ thông tin của một sinh viên với cấu trúc
đã cho
Sử dụng menu với nhiều lựa chọn cho người dùng
2.2 Giải quyết bài toán
2.2.1 Phương pháp
Ta sử dụng phương pháp mô tả thông tin một sinh viên là một struct
Giả sử mỗi struct của chương trình là một node trong danh sách liên kết, mỗi node gồm phần data lưu trữ thông tin sinh viên và phần link lưu trũ địa chỉ của phần tử kế tiếp hay phần tử trước đó Từ đó ta sử dụng phương pháp chèn thêm node, tìm node và xóa node…
Trang 52.2.2.2 Định nghĩa về danh sách liên kết
Các phần tử của danh sách gọi là node, nằm rải rát trong bộ nhớ.Mỗi node ngoài vùng dữ liệu thông thường còn có vùng liên kết chứa địa chỉ của node kế tiếp hay node trước đó
Mỗi node gồm hai phần : + Phần data, information : lưu trữ các thông tin về bản thân phần tử.+ Phần link hay con trỏ : lưu trũ địa chỉ của phần tử kế tiếp trong danh sách, hoặc lưu trữ giá trị NULL nếu là phần tử cuối danh sách
Danh sách liên kết là cấu trúc dữ liệu động, có thể thêm hay hủy node của danh sách trong khi chạy chương trình Với cách cài đặt các thao tác thêm hay hủy node ta chỉ cần thay đổi vùng liên kết lại cho phù hợp
Hình : ví dụ danh sách liên kết
2.3 Ứng Dụng
SVTH : Nguyễn Ngọc Tuấn Trang 5
Trang 62.3.1 Lưu đồ
- Lưu đồ nhập mới sinh viên
- Lưu đồ hiển thị thông tin
Trang 8DừngHoán vị
Trang 11- Lưu đồ chỉnh sửa thông tin sinh viên
Đúng Sai
SVTH : Nguyễn Ngọc Tuấn Trang 11
Bắt đầu
Nhập mã số sinh vienDuyệt danh sách
Trang 122.3.2 Giới thiệu chương trình
Chương trình quản lý sinh viên gồm có các chức năng :
+ Nhập mới một sinh viên
+ Xem danh sách sinh viên
+ Sắp xếp danh sách : sắp xếp theo mã số sinh viên, sắp xếp theo tên và sắp xếp theo điểm trung bình theo giải thuật Interchange Sort
+ Thay đổi thông tin một sinh viên : thay đổi tất cả các trường của sinh viên ngoại trừ mã số sinh viên
+ Xóa sinh viên ra khỏi danh sách gồm : xóa sinh viên theo MSSV hoặc xóa toàn bộ danh sách
+ Tìm kiếm thông tin sinh viên gồm : tìm kiếm theo MSSV, tìm kiếm theo tên sinh viên, tìm kiếm theo địa chỉ với giải thuật tìm kiếm tuần tự
+ Thống kê gồm : thống kê theo giới tính, thống kê theo kết quả đậu rớt, thống kê theo mã lớp, thống kê theo địa chỉ và thống kê theo xếp loại học lực
+ Chức năng lưu dữ liệu ta có thể ghi mới hoặc ghi đè lên file đã có sẵn.+ Chức năng mở file đã có sẵn
+ Thoát khỏi chương trình
Trang 13Chương 3 : CHƯƠNG TRÌNH DEMO
3.1.Hướng dẫn cài đặt chương trình
Copy thư mục nienluan 1 từ CD vào ổ đĩa C
Cài đặt chương trình Microsoft Visual C++ 6.0 vào ổ đĩa C Sau khi cài xong, khởi động chương trình (Start -> Microsoft Visual Studio 6.0 -> Microsoft Visual C++ 6.0) chọn File -> Open -> chọn đường dẫn đến file
nienluan 1 (QLSV.cpp) Ctrl F5 để chạy chương trình.
3.2 Hướng dẫn sử dụng
Giao diện chính của chương trình
SVTH : Nguyễn Ngọc Tuấn Trang 13
Trang 14Nhấn phím 3 và nhập vào đường dẫn để mở file đã có trong ổ đĩa
Nhấn phím 1 để bắt đầu sử dụng các chức năng của chương trình
- Nhấn phím 1 để nhập sinh viên vào danh sách
Đầu tiên chương trình yêu cầu bạn nhập vào số lượng sinh viên Chương trình xuất ra thông báo nhập thông tin sinh viên với mã số, năm sinh, khóa học
Trang 15kiểu unsigned int Họ và tên, địa chỉ, mã lớp, ngành học kiểu chuỗi ký tự Giới tính bắt buộc phải nhập nam hoặc nữ
Để xem lại danh sách sinh viên, nhấn phím 2
SVTH : Nguyễn Ngọc Tuấn Trang 15
Trang 17Nếu bạn muốn sắp xếp sinh viên theo mã số, tên và theo điểm trung bình thì nhấn phím 3 Chương trình sẽ hiển thị menu cho bạn lựa chọn chứ năng theo yêu cầu sắp xếp Sau đó ấn phím 2 để xem lại danh sách sau khi sắp xếp
Thay đổi thông tin sinh viên chọn phím 4
SVTH : Nguyễn Ngọc Tuấn Trang 17
Trang 18Sau đó nhập mã số sinh viên cần thay đổi Chương trình sẽ hiển thị thông tin sinh viên và menu cho bạn lựa chọn thay đổi những thông tin cần thiết
Trang 19Sau khi cập nhật thông tin sinh viên, chương trình sẽ hiển thị thông tin sinh viên vừa mới cập nhật và bạn có thể tiếp tục thay đổi cập nhật hoặc nhấn 12 nếu
đã thay đổi xong và chương trình sẽ trở về menu thực hiện
Ta có lựa chọn xóa một hay toàn bộ danh sách sinh viên sau khi nhấn phím 5
SVTH : Nguyễn Ngọc Tuấn Trang 19
Trang 21Chương trình sẽ hiển thị menu cho bạn lựa chọn 1 trong 2 chức năng là xóa theo MSSV nhập vào hoặc xóa toàn bộ danh sách.
SVTH : Nguyễn Ngọc Tuấn Trang 21
Trang 22Muốn biết thông tin một sinh viên nào đó đã có trong danh sách ta nhấn phím 6 và thực hiện tìm kiếm theo các chức năng mà chương trình hiển thị cho bạn lựa chọn.
Ví dụ sau đây là tìm kiếm sinh viên với MSSV là 138
Trang 23Để thống kê danh sách sinh viên nhấn phím 7 Ta có thể thống kê theo cá chức năng mà chương trình đã có.
Dưới đây là ví dụ thống kê sinh viên theo mã lớp
Sau khi đã cập nhật xong danh sách, nếu bạn muốn lưu file lên ổ đĩa, vui lòng nhấn phím 0 để quay lại menu chính
SVTH : Nguyễn Ngọc Tuấn Trang 23
Trang 24Nhấn phím 2 để lưu file Bạn phải đặt đường dẩn đến ổ đĩa cần lưu với phần mở rộng là *.dat hoặc *.txt và bạn có thể lựa chọn lưu với một file mới hoặc lưu đè lên file đã có sẳn.
Trang 25SVTH : Nguyễn Ngọc Tuấn Trang 25
Trang 26Nhấn phím 0 để thoát chương trình Để chắc chắn thoát chương trình nhấn
“ Y”, nhấn “N” để trở về menu chính
Trang 27Chương 4 : KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
4.1 Kết quả đạt được
Sau bảy tuần nghiên cứu và tìm hiểu đề tài, cùng với sự hướng dẫn tận tình của thầy cô và sự giúp đỡ của bạn bè Hôm nay, Niên Luận cơ bản đã được hoàn thành và đạt được một số kết quả như sau:
Hiểu và cài đặt được các thuật toán đã được học bằng ngôn ngữ C, biết cách sử dụng các thao tác sắp xếp, tìm kiếm… và các hàm trong C
Chương trình chạy ổn định, giao diện thân thiện với người dùng và dễ sử dụng, có thể nhập dữ liệu trực tiếp từ bàn phím
Chương trình được thiết kế dưới dạng các chương trình con độc lập nhau nên
dễ dàng kiểm tra và sửa chữa khi yêu cầu chỉnh sửa
Chương trình sử dụng danh sách liên kết để lưu trữ thông tin sinh viên nên không hạn chế số lượng sinh viên khi nhập vào
4.2 Hạn chế của chương trình
Mặc dù có cố gắng để hoàn thành Niên Luận 1, nhưng đây là lần đầu tiên viết một chương trình hoàn chỉnh nên vẫn còn thiếu nhiều kinh nghiệm trong kỹ thuật lập trình cũng như trong cách tổ chức dữ liệu Mặt khác, do thời gian hạn chế nên chương trình vẫn còn nhiều sai xót ngoài ý muốn như:
Khi dùng danh sách liên kết để lưu trữ thông tin sinh viên sẽ tốn bộ nhớ vì mỗi node ngoài chứa vùng dữ liệu thông thường còn có vùng liên kết chứa địa chỉ của node kế tiếp hay node trước đó
Chưa kiểm tra được mã số sinh viên đã tồn tại trong danh sách
Chưa kiểm tra được dữ liệu khi người dùng nhập vào như mã số sinh viên, năm sinh, khóa học, điểm nếu nhập kí tự thì chương trình sẽ chạy không đúng và
có thể bị treo máy
Có thể giao diện còn chưa đáp đầy đủ các chức năng người sử dụng yêu cầu.SVTH : Nguyễn Ngọc Tuấn Trang 27
Trang 28Chỉ thống kê được sinh viên các tỉnh ở Miền Tây…
4.3 Hướng phát triển
Thiết kế giao diện thân thiện với người sử dụng
Cải tiến chương trình đầy đủ và hoàn thiện hơn
Phát triển chương trình sang các ngôn ngữ khác như C#, visual Basic, Java,…
để được hỗ trợ đầy đủ hơn
4.4 Tài liệu tham khảo
- Giáo trình cấu trúc dữ liệu và giải thuật do ths.Dương Trần Đức biên soạn
- Ngôn ngữ lập trình C – Quách Tuấn Ngọc Nhà xuất bản giáo dục, 1998
- Kỹ thuật lập trình C cơ sở và nâng cao – Phạm Văn Ất NXB KH – KT – 2006
- Giáo trình lập trình C ( Tập 1 & 2 ) – Trần Đan Thư NXB ĐH QG TPHCM – 2003