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 7C với các lớp Class” vì nó bao gồm sự kết hợp của cả các tính năng của ngôn ngữ cấp
Trang 1
BO GIAO DUC VA DAO TAO TRUONG DAI HOC KINH DOANH VA CONG NGHE HA NOI
BAO CAO DO AN C++
Chu dé: Quan Ly Sinh Vién
Ho va tén:BUI ANH DUNG
Mã sinh vién:2722246155 Lớp:TH27.02
Hà Nội
Trang |
Trang 2MỤC LỤC
Chương 1: CƠ SỞ LÝ THUYÉT VỀ NGÔN NGỮ LẬP TRÌNH C++
1.1:Giới thiệu về C+T -: 1: 12221222221.22221.0.2.0.0.2.2 2 2eeed
1.2: Ứng dụng ngôn ngữ lập trình C-+-1 s5 tt SE 121221211 E1 prrrrrei
Chương 2: PHÂN TÍCH VÀ THIẾT KẺ
PN lá nề
2.2:Giải quyết bài toán ng t1 HH 2n 1 tr rưyu
2.2.1:Phương pháp L0 2212121212111 111121112211 11811121 tk se
2.2.2:Lý thuyẾt - cn tT2T2 21121121 111211 1n trêu
2.2.2.1:Định nghĩa về danh sách - s cnS T121 11 1151551551151 5 1E tren
2.2.2.2:Định nghĩa về danh sách liên kẾt -5- 5 SE xe ryey
2.3:Ứng dụng c c1 HH1 n1 ng tra
2.3.2:Giới thiệu chương trình c2 2222221112111 1213 12111 1111811181201 1x1 ky
Chương 3: CHƯƠNG TRÌNH ĐÈ MÔ
3.1:Hướng dẫn cài đặt chương trình - 5 SE 2121112111101 Et re 3.2:Hướng dẫn sử dụng St TT E111 1111211121112 1 HH HH rig
Chương 4: KÉT LUẬN VÀ HUONG PHAT TRIEN
4.1:Kết quả đạt ẨƯỢC 0 2.10 n 12112 n1 1H15 H111 8111 k1 rớy 4.2:Hạn chế của chương trình - - ¿+ c1 221 121121111151 152115 1115111512511 1111 x se
4.3:Hướng dẫn phát - 5: s ST 12111151211112111121211 211 11 11tr
4.4: Tài liệu tham khiảo ccccceeeesseeeescscececeecececsesesensnstssceceeeseeecetesececeveeeaea
Trang 2
Trang 3Mở đầu
CHƯƠNG 1 CƠ SỞ LÝ 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 7C với các lớp Class” vì nó bao gồm sự kết hợp của cả các tính năng của ngôn ngữ cấp cao và cấp 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++ 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 đầy đủ: Có rất nhiều tài nguyên sử dụng cho người lập trình bằng C++, bao gom ca do hoa API, 2D, 3D, vat ly cac thiét bi âm thanh hồ trợ giúp cho
lập trình viên dê dàng thực thị
Da 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 tuỷ theo yêu câu của người lập trình 1.2 Ứng 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 đè 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 chon cho nhiều người chơi với mạng Việc sử dụng C ++ cung câp quyên kiêm soát phan 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
Trang 3
Trang 4Hoạ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à
bộ công cụ mạnh mẽ C++ được sử dụng nhiều trong việc xây dựng những ứng 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 pho bién nhat trong thé
giới giải trí hiện nay, nó dem lại những trải nghiệm vô cùng chân thực và 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
Trỉnh duyệt web: C ++ được sử dụng để tạo ra Google Chrome và ca trinh
duyét Mozilla Firefox Một số ứng dụng được viết bằng C ++, trinh 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 khách Mozilla Thunderbird C ++ là một công cụ kết xuất
các dự án nguồn mo cho Google va 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 cũng được viết băng C ++
Nó cũng được dùng đề phát trê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 nhà phát 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 nhu la Wikipedia, Youtube, Yahoo, v.v
Trang 4
Trang 5Chươ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ã 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 cau tric
da 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 sfruct 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
2.2.2 Lý thuyết
2.2.2.1 Định nghĩa về danh sách
Một danh sách (list) 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à :
+ Cai dat 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 5
Trang 62.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 la node, nam rai rat 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
@ a|- B se X |e Z sie Y \-+
Hình : ví dụ danh sách liên kết
Tran 6
Trang 7
2.3 Ứng Dụng
2.3.1 Lưu đồ
- Lưu đỗ nhập mới sinh viên
Nhập thông tin
| Lưu thông tin vào danh sách |
- Lưu đồ hiền thị thông tin
Đọc thông tin
Hiển thị danh sách
Trang 7
Trang 8
- - Lưu đồ tìm kiếm :
Đọc thông tin
Duyệt danh sách
sal
N ì
Hiền thị thông tin Không tìm thấy
Trang 8
Trang 9- - Lưu đồ sắp xếp
Đọc thông tin
Duyệt danhhsách |g
đúng
sal
Hoan vi
Trang 9
Trang 10
- Lưu đồ xóa sinh viên
Đọc thông tin
Duyệt danh sách
Trang 10
Trang 11
- Lưu đô thống kê :
Duyệt danh sách
Tăng biến đếm
Trang II
Trang 12
- Lưu đồ chinh sửa thông tin sinh viên
Nhập mã sô sinh vien
'
| Duyệt danh sách
Đúng Sal
⁄ Không tìm thấy L
————" Cập nhật vào danh sách |
Nhập thông trn cân thay đôi
Trang 12
Trang 132.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 giai thuat 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 dé 1én file đã có sẵn + Chức năng mở file đã có sẵn
+ Thoát khỏi chương trình
Trang 13
Trang 14Chươ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 dé 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
Dung-LT\Debug\QLsv_TH27-¢
Trang 14
Trang 15
- Nhân phím I đề nhập sinh viên vào danh sách
Remai x13 = A A Aav Me (ii lý €3 Ê Í đaBbCci AaBbC AaBbCc AaBbCc AaapccD AaBbC AaBbCc 4a
Đề xem lại danh sách sinh viên, nhân phím 2
øo ma sinh vien
-o diem GPA cao nhat
vien theo GPA tu cao der
Trang 16
1
Nhap thong tin sinh vier
Hien thi toan bo sinh vien
Tim kiem sinh vien theo ma sinh viet
Danh ST l0i sinh V ien co diem GPA cao nhat
Sap xep danh sach sinh vien theo GPA tu cao de
Sua thong tin sinh vier
Xoa thong tin sinh vien
Thoat chuo! s4 trinh
hap lua chon: 4
1 sinh vie ‘o diem GPA cao nhat:
' may r b
vien: b
20/2/2000
sinh:
Jiem GPA:
Ma sinh vien:
Ten sinh vien:
iy sinh: 6/8/2000
` me) abe
ae oy 0 gUuy€rï
7 02
sinh: 03/03/2000
1 GPA: 3.5
Trang 17
Trang 17
Trang 18
Chương 4 : KET LUAN VA HUONG PHAT TRIEN
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 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é dang 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
Trang 18
Trang 19Mặc dù có cố gắng đề hoàn thành, 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 điện còn chưa đáp đầy đú các chức năng người sử dụng yêu cau 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à 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, 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 — Phạm Văn At NXB KH —KT
- Gido trinh lap trinh C ( Tap 1 & 2 ) — Tran Dan Thu NXB DH QG
TPHCM
Trang 19
Trang 20
Trang 20