Trường Dại Học Kinh Doanh Và Cơng Nghệ Ha Noi Khoa Cơng Nghệ Thơng Tin ¬.—— a Hoe
KINH DOANH VÀ CƠNG NGHỆ
HÀ NỘI
=Sơẻ£#Ã DO AN LAP TRINH C++
QUAN LY SINH VIEN
Sinh viên : Phùng Thị Diễm Hằng Lớp : TH27.61
MSV : 2722161267
Trang
Trang 2Mở đầ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 nhụ cầu của người tiêu dùng
^
Mơn học “Cầu trúc đữ liệu” là một mơn học nền tảng của ngành học Cơng Nghệ
Thơng Tim 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
Trang 3
CHUONG 1 CO SO LY THUYET VE NGON NGU LAP TRINH C++
1.1 Giới thiệu
C ++ là một ngơn ngữ lập trình được phát triển bởi Bjarne Stroustrup vào năm 1979 tai Bell Labs C ++ được coi là ngơn ngữ bậc trung (middle-level) như một phân mở rộng của ngơn ngữ lập trình C, hoặc “C với các lớp Class” vì nĩ bao gom sự ket hop của cả các tính năng của ngơn ngữ cấp cao và cap thâp
C ++ chạy trên nhiều nền tảng khác nhau, chẳng hạn như Windows, Mac OS và các phiên bản khác nhau của UNIX
- Ngơn ngữ đã được mở rộng đáng kể theo thời gian và C ++ hiện nay cĩ nhiêu tính năng như:
Lập trình tơng quát Lập trình hướng đối tượng Lập trình thủ tục
Ngơn ngữ đa mẫu hình tự do cĩ kiểu tĩnh Dữ liệu trừu tượng
Lập trình đa hình
Tính phố biến: C++ là một trong những ngơn ngữ lập trình phố biến nhất trên thê giới
Tính thực thi nhanh: Nếu bạn đã sảnh sỏi về C++ thì bạn cĩ thể lập trình rất
nhanh Một trong những mục tiêu của C*-t chính là khả năng thực thi Và nêu bạn cần thêm các tính năng cho chương trình, C++ cho phép bạn sử dụng ngơn ngữ Assembly (Hợp ngữ) - Ngơn ngữ lập trình bậc thấp nhất dùng để giao tiếp trực tiếp với phần cứng của máy tính
Thư viện day đủ: Cĩ rất nhiều tài nguyên sử dụng cho người lập trình bằng C++, bao gồm ca dé hoa API, 2D, 3D, vat ly các thiết bị âm thanh hỗ trợ giúp cho
lập trình viên dễ đàng thực thị
Đa mơ hình: C++ cũng cho phép bạn lập trình theo cầu trúc tuyến tính, hướng chức năng, hướng đơi tượng đa dạng tuy theo yêu cầu của người lập trình 1.2 Ung dụng ngơn ngữ lập trình C++
Games: Ngơn ngữ C-! cũng được sử dụng đề phát triển trị chơi Nĩ ghi dé
lên sự phức tạp của game 3D, giúp tối ưu hĩa các nguơn tài nguyên, hỗ trợ tùy chọn cho nhiều người chơi với mạng Việc sử dụng C ++ cung cấp quyền kiểm sốt phần cứng và cho phép lập trình thủ tục các chức năng chuyên sâu của CPU
Hoạt hình: Phần mềm hoạt hình được phát triển với sự hỗ trợ của ngơn ngữ
C ++ Phân mêm hoạt hình 3D, mơ phỏng, mơ hình hĩa, kết xuât, v.v được coI là
Trang 4
dụng thời gian thực, xử lý hình ảnh và cảm biến di động, hiệu ứng hình ảnh, mơ hình hĩa
Phần mềm này được sử dụng cho các hoạt ảnh, mơi trường thực tế ảo, đồ
họa chuyên động và tạo nhân vật Thiết bị thực ảo đang rât phơ biên nhat trong thê giới giải trí hiện nay, nĩ đem lại những trải nghiệm vơ cùng chân thi va thu vi
Ứng dụng: C++ được sử dụng để phát triển ứng dụng mới, các ứng dụng này dựa trên giao diện người dùng đồ họa và những ứng dụng được sử dụng nhiều chăng hạn như Adobe Photoshop
Nhiều ứng dụng của hệ thống Adobe đều được phát triển bằng C ++ như Adobe Launcher, Illustrator, va Image Ready
Trinh duyệt web: C ++ được sử dung để tạo ra Google Chrome và cả trình
duyệt Mozilla Firefox Một số ứng dụng được viết bằng C ++, trình duyệt Chrome là một trong số đĩ, các ứng dụng khác giống như một hệ thơng tệp, bản đồ giảm
xử lý dữ liệu cụm lớn
Mozilla cũng cĩ một ứng dụng khác được viết bằng C ++, khơng đâu khác
chính là ứng dụng email khach Mozilla Thunderbird C ++ la mét céng cu két xuat các dự án nguồn mở cho Google và Mozilla
Trình biên dịch: Hầu như các trình biên dịch chủ yếu được viết bằng ngơn ngữ C ++ Các trình biên dịch mà được sử dụng đê biên dịch băng các ngơn ngữ như C #, Java, v.v cling duoc viet bang C ++
No cting được dùng dé phat triển các ngơn ngữ này và C ++ độc lập với nền tảng, nĩ cĩ thể tạo ra nhiều loại phần mềm khác
Phần mềm cơ sở dữ liệu: Ngơn ngữ C+~+ cũng được sử dụng để phát triển phan mềm cơ sở dữ liệu và phần mềm cơ sở dữ liệu mã nguồn mở Một ví dụ điển hình đĩ là MySQL, đây là một trong những phần mềm quản lý cơ sở dữ liệu được sử dụng rộng rãi trong các tơ chức hoặc các nha phat trién, giúp tiết kiệm tiền bạc, thời gian, hệ thống kinh doanh và phần mềm đĩng gĩi
Một số ứng dụng dựa trên phần mềm truy cập cơ sở dữ liệu được sử dụng như là Wikipedia, Youtube, Yahoo, v.v
Trang 5
Chương 2 : PHAN TICH VA THIET KE
2.1 M6 ta bai toan
Khai báo một struct lưu trữ thơng tin sinh viên bao gồm : Mã sinh viên, họ
tên, năm sinh, giới tính, 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, xếp loại
Dùng danh sách liên kết đề lưu trữ thơng tim 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 tố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 chi 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
2.2.2 Lý thuyết
2.2.2.1 Định nghĩa về danh sách
Một danh sách (1ist) là một tập hợp gồm số hữu hạn phần tử cùng
kiểu, cĩ thứ tự
Cĩ hai cách cài đặt danh sách là :
+ Cài đặt theo kiêu kế tiếp : ta cĩ danh sách kề hay danh sách đặt + Cài đặt theo kiểu liên kết : ta cĩ danh sách liên kết
Trang 6Các phần tử của danh sách gọi là node, nam rai rat trong b6 nhớ Mỗi node ngồ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
@- a}- B fe X |e Z 1® Y |j+
Trang 7
2.3.1 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 danh sách sinh viên
+Hiền thị danh sách sinh viên +Thêm thơng tin l sinh viên
+Cập nhật thơng tin l sinh viên
+Xĩa thơng tin | sinh vién
+Hién thị thơng tin sinh viên cĩ điểm trung bình cao nhất
+Hiễn thị thơng tin sinh viên cĩ điểm trung bình thấp nhất
Trang 8+Tim sinh vien bang mssv
+Sắp xếp sinh viên theo mssv tăng dân + Sắp xếp sinh vién theo tén alphabet +Thốt chương trình
Trang 9Nhap Nhap oi Nhap Nhap
eee es Nhap danh sach Hien thả danh
thong tin 1 sinh vien lì TK nh s6
Hien thi thong tỉn nhung sinh vien co dien trung bỉnh cao nhat Hien thi thong tỉn nhung sinh vien co dien trung binh t' _ Tim sinh vien boi ma so sinh vi
Sap xep danh sach sinh vien theo ma so sinh vien tan: theo ten aLphabet a so sinh viei
theng tỉn sinh vien thu 1 ni 2 Lop:th27.61
p ho ten sinh vien: phung thi diem hang TU,
diem mon quan tri co so du Lieu: 9
eee ee eC)
Nhan enter va chon Y dé tiếp tục, N để thốt
*Đề xem lại danh sách sinh viên, Nhắn phím 2
Rt ae eC Tố 6 06 s7)
na MS lì ornr)
Trang 10io Ret eee Coed
diem trung dinh cao nhat diem trung binh thap nhat st ma so sinh vien tang dan Sap xep danh sach sinh vien theo ten aLphabet Moi ban nhap tua chon: 3
Nhà theng tin sinh vien can then Nhap 2
nguyen phueng 1L DU CN CĨ)
Nhap diem men tap trính ++: 7 Nhap diem mon quan tri co so du Lieu: 8
xeet,power point: 6 any key to continue Nhan enter va chon Y dé tiếp tục N đề thốt *Nhan phím 4 để cập nhật thơng tin 1 sinh viên trong danh sách -Nhập đúng mssv cần cập nhật thơng tin sau đĩ điền lại thơng tin E417 anh sach sinh \ Tora r ud tem thong tin 1 sinh Cap nhat thong tin 1 sinh
Hien thi thong tin nhung sinh vien co diem trung binh cao nhat Hien thi thong tin nhung sinh vien co diem trung binh thap nha Tim sinh vien boi ma so sinh vien
ee Cee nh, "1x cost CẬU MS DE
ed Ban da nhap ma so sinh v
[3 any key to continue
Trang 11*Nhan phim 5 dé x6a théng tin | sinh vién bat ky -nhập đúng MSSV cần xĩa nhân enter đề xĩa E] Cadeenc++.quanlyinhvie r Ban co suon tua chon tiep khong(y/n): FT TC QQẨNNNẢẢAAAA (4 eceterrtrertveteterterercercesesssy thi danh s ori sunt ap nhat thong tỉn 1 sinh vien xoa thong tin 3 sinh vien
n thi thong tin nhung sinh vien co diem trung binh cao nhat Hien thi thong tin nhung sinh vien ca diem trung bình thạp nhat L Sap + Ì ma so s ø sinh vien tang dan
xep danh sach sinh Ti Hoi ban nhap tua chon: 5
h vien cua sinh vien can xoa: 1
-Nếu nhập sai chương trình sẽ hiển thị bạn đã nhập sai thơng tin, dé quay lai Menu
nhân enter sau đĩ chọn Y nêu muơn nhập lại, N dé thoat CT
Ệ CAdoancs+ quanydnhdeng X + x Ban cơ nuon Lua chon tiep khong(y/
vien co diem trung bỉnh cao nhat vien co diem trung bình thap nhai Tim sinh vien boi ma a
Trang 12*Nhan phím 6 để in ra sinh viên cĩ điểm trung bình cao nhất
E3 Cadoanc++ quanlysinhvicn g
CPU Cr chon tiep khong(y/n): y
eT TC ttt TTT TT ttt itt 00000000000 202120) 0 000000 0 0 0 000 0 (0 0 0 0 0 00T 0 (00 000 0Ơ 0 Ơ¡ Nhap danh sach sinh vien
Hien thi danh sach sinh vien Them thong tỉn 1 sinh vien
Cap nhat thong tin 1 sinh vien
Umer
Hien thi thong tin nhung sinh vien co diem trung binh cao nhat
Hien thi thong tin nhung sinh vien co diem trung bỉnh thap nhat so sinh vien
xep danh sach sinh vien theo ma so sinh vien tang dan
xep danh sach sinh vien theo ten aLphabet
Otrtrttttttttitittitrtrtrt rrr rte ertrtrtettttrttt tt ti trrr rte rier ror
Hoi ban nhap tua chon: 6
Thong tin nhui sinh vien co dien cao nhat:
ma lop Ho va Ten Gioi Ti Hoc
123 tle phung hang Lr) bộ
Press any key to continue
-Nhan phim 7 dé in ra sinh viên cĩ điểm trung bình thấp nhất
Y1 uon tua chen tiep khong(y/n): Nhap da
Hien thi danh sinh vien
sinh vien Xoa thong tin 1 sinh vien
Hien thi thong tin nhung sinh vien co dien trung bảnh cao nhạt Hien thi thong tin nhung sinh vien co diem trung binh thap nhat
Ẻ so
Ù sinh vien ta
en aLphabet
Hoi ban nhap tua chon: 7
Thong tin nhưng sinh vien co dien thap nhat
` M en Gioi Tinh clr Trung binh thø1 phung thi dien hang nu
tinue
Trang 13
Nhan enter va chon Y dé tiếp tục, N để thốt *Nhan phim 8 dé tim sinh viên bằng MSSV
-Nhập đúng MSSV cần tìm sau đĩ CT sẽ hiển thị thong tin Sinh viên tương ứng
“nh”
diem trung binh cao nhat cree ae oi ban nhap tua chon
nh vien can tin kiem
Trang 14-bé nhập lại nhan enter chon Y dé quay lại menu sau đĩ lựa chọn và nhập lại
théng tin
Nhan enter va chon Y dé tiếp tục, N để thốt
*Nhan phim 9 dé sap xếp sinh viên theo MSSV tăng dân *Nhan phim 10 dé sap xép sinh viên theo tén alphabet
*Nhan phim 0 dé thoat khéi Chuong trinh Chươ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, báo cáo cơ bản đã được hồ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 tốn đã được học bằng ngơn ngữ C++, biết
cách sử dụng các thao tac sap xép, tim kiém va cac ham trong C++
Chuong trinh chay é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 để hồn thành, nhưng đây là lần đầu tiên viết một chương trình hồ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, đo thời gian hạn chế nên chương trình vẫn
cịn nhiêu sai xĩt ngồi ý muơn như:
Trang 15
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 ngồ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ử đụng yêu cầu 4.3 Hướng phát triển
Thiết kế giao điện thân thiện với người sử dụng
Cải tiền chương trình đầy đủ và hồ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, C++
- _ Ngơn ngữ lập trình C — Quách Tuấn Ngọc Nhà xuất bản giáo dục - _ Kỹ thuật lập trình C cơ sở và nâng cao —- Pham Van At NXB KH - KT
- Giáo trình lập trình C ( Tập 1 & 2 ) — Tran Dan Thu NXB DH QG