Đồ án quản trị C++ môn Công nghệ thông tin | Trường Đại học Kinh doanh và Công nghệ Hà Nội

Trong thời đại công nghệ 4.0. Công nghệ thông tin có mặt ở khắpmọi nơi, hiện diện trong mọi lĩnh vực của đời sống xã hội. Đây là ngành luôn được đầu tư và chú trọng phát triển ở mọi Quốc Gia. Việt Nam cũng không nằm ngoài xu thế ấy để có thể phát triển trong khu vực và trên thế giới.Tài liệu giúp bạn tham khảo, ôn tập và đạt kết quả cao. Mời đọc đón xem!

lOMoARcPSD| 47270246
BÁO CÁO ĐỒ ÁN C++
M ĐẦU
Trong thời đại công ngh 4.0. Công ngh thông tin có mt khp mọi nơi, hiện din
trong mọi lĩnh vc của đời sng hội. Đây là ngành luôn được đầu chú trọng phát
trin mi Quc Gia. Việt Nam cũng không nằm ngoài xu thế ấy để th phát trin
trong khu vc trên thế gii. S phát trin ca ngày càng một đa dạng, được
ng dng trong nhiều lĩnh vực như kinh tế, giáo dc, ... góp phn vào s phát trin ca
mt xã hi tiên tiến. S phát trin ca nó đi trước mi ngành ngh khác. Trong đó ngành
hc ca một ngành được gii tr quan tâm. Mt trong những ngành đang xu
ớng đi lên rất mnh. Các môn hc của đã nói lên một điều, hi không ng
dng công ngh thông tin đó mt hi lc hậu. Nó đáp ứng mi nhu cu của người
tiêu dùng. Môn học “Cấu trúc d liệu” một môn hc nn tng ca ngành hc Công
Ngh Thông Tin. Nó được ng dng thc tế trong mi thời đại hin nay.
mt nhánh ngành k thut, việc làm đồ án giúp cho sinh viên hiểu hơn, sâu hơn
, t tin hơn với đam mê trong ngành lp trình. 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, chương trình sử dng mng.
Nó được xây dng mt cách rt khoa học được ng dng rt nhiu trong thc tế hin
nay.
lOMoARcPSD| 47270246
CHƯƠNG 1. CƠ SỞ LÝ THUYT V NGÔN NG LP TRÌNH
C++
1.1 Gii thiu v C ++
C++ mt loi ngôn ng lp trình bc trung (middle-level). Đây ngôn ngữ lp
trình đa năng được to ra bi Bjarne Stroustrup vào năm 1979 tại Bell Labs. T thp
niên 1990, C++ đã trở thành mt trong nhng ngôn ng thương mại ưu thích phổ biến
ca lp trình viên c tính cht a c ngôn ng lp trình cp thp(Pascal,C,..)
ngôn ng và lp trình bc cao(C#, Java, Python…). Ngôn ngữ lập trình C++ có đuôi mở
rng là .cpp
pháp ca C++ rt d hiu khá ging tiếng anh. Ta thm chí th dùng C++
để thiết kế nhng ng dụng dù trước đó đã được viết bng hp ngữ. C++ còn được h
tr trên bt k các nn tng , h điu hành nào. Ta có th viết một chương trình C++ trên
Linux, biên dch nó trên trên Windows và chy trên Mac OS.
Ngôn ng đã được m rộng đáng kể theo thi gian C++ hin nay nhiu tính
năng như: Lp trình tng quát, Lập trình hướng đối tượng, Lp trình th tc, ngôn ng
đa mẫu hình t do có kiểu tĩnh, dữ liu trìu ng, lp trình đa hình,..
1.2 Điểm mnh ca ngôn ng C +
Nói đến C++ thì ta không th không nhắc đến những điểm mnh của nó dưới đây:
- Tính ph biến : C++ là mt trong nhng ngôn ng lp trình ph biến nht trên thế
gii.
lOMoARcPSD| 47270246
- Tính thc thi nhanh: nếu bn rành C++ thì bn th lp trình nhanh. Mt trong
nhng mc tiêu ca C++ kh năng thực thi. nếu bn cần thêm tính năng cho
chương trình, C++ cho phép bn ng ngôn ng Assembly (hp ng) Ngôn ng lp
trình bc nht để giao tiếp trc tiếp vi phn cng ca máy tính.
- Thư viện đầy đủ: có rt nhiều tài nguyên cho người lp trình C++, bao gm c đồ
ha API,2D,3D, vt lý các thiết b âm thanh h tr giúp cho lp trình viên d dàng thc
thi.
- Đa mô hình: C++ cho phép bạn lp trình theo cu trúc thuyết tính, hướng chc
năng, hướng đối tượng đa dạng tùy theo yêu cu của người lp trình.
1.3 ng Dng Ca Ngôn Ng C ++
Các d án yêu cu hiệu năng cao, tiếp kim b nh thì C++ mt la chn tuyt
vời. Đồng thi, C++ vn có tính chất hướng đối tượng giúp d dàng bo trì và nâng cp.
Tuy nhiên, so vi các ngôn ng lp trình cp cao thì C++ khó s dụng hơn nhiều. Do đó,
d án không yêu cu hiệu năng, sử dng các ngôn ng lp trình bc cao s đơn gin
hơn mà vẫn đáp ứng được yêu cu.
Sau đây là các ứng dng thc tế s dng C++:
- Games : C++ s la chn tt nhất để phát trin các nn tng game 3D. Cho
phép tối ưu hóa việc quản tài nguyên t trong nn tng nhiều người chơi
lOMoARcPSD| 47270246
trên cùng mng multi-player. C++ cho phép can thiệp sâu vào CPU cũng như phn
cứng. Đó cũng là yếu t quan trng trong vic phát trin các game engines.
- ng dng giao diện người dùng(GUI) : rt nhiu ng dng giao din
phía sau đưc viết bng C++. Mt s ng dng ph biến th k ti là: Image ready,
adobe premier, photoshop và IIIustrator.
- Trình duyt web: tốc đ và độ tin cy yếu t phi có vi các trình duyt web. Khi
đó, C++ sẽ là ngôn ng được ưu tiên sử dng. Mt phn ca trình duyt google chrome
mt s web browsers nguồn như Moliza Firefox, ng dng email Mozilla
Thunderbird có s đóng góp của ngôn ng C++.
- ng dụng toán đồ ha: ngôn ng C++ cho phép và trin khai các ng dụng đòi
hi yếu t thi gian thc. Chng hạn như các ng dng mô phng 3D, x hình nh
hiệu năng cao hay các ng dng cm biến trên thiết b di động. Hay các ng dng cm
biến trên thiết b di động. Hay các ng dng x lý, phng 3D, hiu ng và hot nh
đều được xây dng bng C++.
- Phn mm qun tr cơ sở d liu: C và C++ được s dng cho h qun tr cơ sở
d liệu MySQL. Đây một trong các h qun tr s d liu ph biến nhất. xương
sng cho nhiu phn mm ca các doanh nghip lớn như Google, Yahoo,
Youtube, Wikipedia,…
- H điu hành: C++ là mt phn không th thiếu trong h điu hành ph biến như
lOMoARcPSD| 47270246
Apple OSX và MS windows.
- Phn mm doanh nghiệp: C++ thường được s dng trong các ng dng ln ca
các doanh nghiệp. Nơi mà yêu tố hiệu năng và tốc độ luôn được đặt lên hàng đầu.
- Trình biên dch: Mt lot các trình biên dch bao gm Apple C++, Bloodshed Dev-
C++, Clang C++ và MINGW make đều s dng ngôn ng lp trình C++. Không ch vy,
C và C++ còn ngôn ng nn tng h tr xây dng các ngôn ng lp trình mới như C#,
Java, PHP, Verilog,..
Mt s ng dng da trên phn mn truy cập cơ s d liệu được s dụng như là
Wikipedia, Youtube, Yahoo,…
CHƯƠNG 2. Phân tích và thiết kế.
2.1 Mô t bài toán
Khai báo một struct lưu trữ thông tin sinh viên bao gm : ID, h tên, năm sinh, giới
tính, địa ch, mã lp, ngành hc, 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 loi.
Dùng danh sách liên kết đ lưu trữ thông tin ca mt sinh viên vi cấu trúc đã cho.
S dng menu vi nhiu la chọn cho người dùng.
2.2 Gii 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 mt sinh viên là mt struct.
lOMoARcPSD| 47270246
Gi s mi struct của chương trình mt node trong danh sách liên kết, mi node
gm phần data lưu trữ thông tin sinh viên và phần link lưu trũ địa ch ca phn t kế tiếp
hay phn 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
Mt danh sách (list) là mt tp hp gm s hu hn phn t cùng kiu, có th t.
Có hai cách cài đặt danh sách là :
+ Cài đặt theo kiu kế tiếp : ta có danh sách k hay danh sách đặt
+ Cài đặt theo kiu liên kết : ta có danh sách liên kết
2.2.2.2 . Định nghĩa về danh sách liên kết
Các phn t ca danh sách gi là node, nm ri rát trong b nh.
Mi node ngoài vùng d liệu thông thường còn vùng liên kết chứa đa ch ca
node kế tiếp hay node trước đó.
Mi node gm hai phn :
+ Phn data, information : lưu trữ các thông tin v bn thân phn t.
+ Phn link hay con tr : lưu trũ địa ch ca phn t kế tiếp trong danh sách, hoc
lưu trữ giá tr NULL nếu là phn t cui danh sách.
Danh sách liên kết cu trúc d liệu động, có th thêm hay hy node ca 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 hy node ta ch cn
thay đổi vùng liên kết li cho phù hp.
X
Z
Y
lOMoARcPSD| 47270246
Hình : ví d danh sách liên kêết
2.3 ng Dng
2.3.1 Lưu đồ
- Lưu đồ nhp mi sinh viên
B
A
Bt đu
Nhp thông tin
Lưu thông tin vào danh sách
lOMoARcPSD| 47270246
- Lưu đồ hin th thông tin -
Lưu đồ tìm kiếm :
Bt đu
Đọc thông tin
Hin th danh sách
lOMoARcPSD| 47270246
- Lưu đồ sp xếp sai
đúng
sai
Bt đu
Đọc thông tin
Duyt danh sách
Tìm thy
Hin th thông tin
Không tìm thy
Bt đu
Đọc thông tin
đúng
Duyt danh sách
So sánh
th t
Hoán v
lOMoARcPSD| 47270246
- Lưu đồ xóa sinh viên
Bt đu
Đọc thông tin
Duyt danh sách
Downloaded by Tran Anh (trananh1406@gmail.com)
Đúng
- Lưu đồ chnh sa thông tin sinh viên
sai
Tìm thy
Xóa
lOMoARcPSD| 47270246
Bt đu
Nhp mã s sinh viên
Duyt danh sách
Downloaded by Tran Anh
(trananh1406@gmail.com)
2.3.2 Gii thiệu chương trình
Chương trình quản lý sinh viên gm có các chức năng :
+ Nhp mi mt sinh viên
+ Xem danh sách sinh viên
+ Sp xếp danh sách : sp xếp theo id sinh viên, sp xếp theo tên .
+ Thay đổi thông tin một sinh viên : thay đổi tt c các trưng ca sinh viên ngoi
tr id sinh viên.
+ Xóa sinh viên ra khi danh sách gm : xóa sinh viên theo id .
+ Tìm kiếm thông tin sinh viên gm : tìm kiếm theo id , tìm kiếm theo tên sinh
viên, tìm kiếm theo địa ch .
+ Thng gm : thng theo gii tính, thng theo kết qu , thng theo
mã lp, thống kê theo địa ch và thng kê theo xếp loi hc lc.
+ Chức năng lưu dữ liu ta có th ghi mi 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.
CHƯƠNG 3. CHƯƠNG TRÌNH CHY TH.
Đúng
Sai
Tìm thy
Nhp thông tin
cần thay đổi
Không tìm thy
Cp nht vào danh sách
lOMoARcPSD| 47270246
lOMoARcPSD| 47270246
Downloaded by Tran Anh (trananh1406@gmail.com)
3.1 - Giao din của chương trình.
Đây là giao diện chính của chương trình khi chúng ta khởi tạo chương trình Quản
Lý Sinh Viên.
giao din chính chúng ta 10 s la chọn để thc hin mc đích của bài. Nếu
mun thêm sinh viên thì chn phím 1.Thêm sinh viên.
Đầu tiên chương trình yêu cầu bn nhp vào s ợng sinh viên. Chương trình xuất
ra thông báo nhp thông tin sinh viên với id, năm sinh kiểu int. H dm, tên, gii tính,
địa ch , lp, ngành hc, khoa hc lc kiu chui t char. Điểm triết, điểm tin1 ,
điểm HA và điểm trung bình s dng float.
lOMoARcPSD| 47270246
Downloaded by Tran Anh
(trananh1406@gmail.com)
Để cp nhp thông tin ca sinh viên bi id, nhn phím 2
đây chúng ta nhập id sinh viên cần thay đổi. Chương trình sẽ hin th thông tin
sinh viên như h tên, giới tính, năm sinh đim ca 3 môn học,.. đ bạn thay đổi li
nhng thông tin cn thiết.
Để xóa sinh viên bi id , chn phím 3.
lOMoARcPSD| 47270246
Downloaded by Tran Anh (trananh1406@gmail.com)
đây chúng ta chỉ cn nhp id sinh viên cần xóa và chương trình sẽ t động xóa.
ới đây là ví dụ xóa sinh viên vi id 215.
Để tìm kiếm sinh viên theo tên , chn phím 4
lOMoARcPSD| 47270246
Downloaded by Tran Anh
(trananh1406@gmail.com)
Ví d ới đây là tìm kiếm theo tên vi sinh viên là Hieu.
Để sp xếp sinh theo điểm trung bình , chn phím 5.
Ta được giao diện như dưới và được sp xếp theo th t tăng dần .
lOMoARcPSD| 47270246
Downloaded by Tran Anh (trananh1406@gmail.com)
Để sp xếp sinh viên theo tên , chn phím 6 Ta
đưc giao diện như sau:
Để xem li danh sách sinh viên chúng ta va nhp chnh sa ,
chn phím 7.
lOMoARcPSD| 47270246
Downloaded by Tran Anh
(trananh1406@gmail.com)
Đây giao diện toàn b danh sách sinh viên chúng ta đã nhập
chnh sa.
Mun thng sinh viên tchúng ta th thng theo tên, lớp, địa
ch, hc lực,…dưới đây dụ cho thng theo tên sinh viên, ta chn
phím 8.
Nhp tên sinh viên là Ly chúng ta thy có 2 sinh viên .
Để ghi danh sách sinh viên vào file đã có sẵn ta chn phím 9.
Chúng ta s nhận được kết qu như sau:
lOMoARcPSD| 47270246
Downloaded by Tran Anh (trananh1406@gmail.com)
Sau khi đã hoàn tất các chứng năng của chương trình Quản Lý Sinh
Viên ta chọn phím 0 để thoát chương trình:
CHƯƠNG 4. KẾT LUẬN VÀ HƯNG PHÁT TRIN.
4.1 Kết qu đạt được.
Sau by tun nghiên cu tìm hiu đề tài, cùng vi s ng dn tn tình ca thy
s giúp đỡ ca bạn bè. Hôm nay, báo cáo bản đã được hoàn thành đạt được
mt s kết qu như sau:
lOMoARcPSD| 47270246
Downloaded by Tran Anh
(trananh1406@gmail.com)
Hiểu và cài đặt được các thuật toán đã được hc bng ngôn ng C++, biết cách s
dng các thao tác sp xếp, tìm kiếm… và các hàm trong C++.
Chương trình chạy ổn định, giao din thân thin với người dùng d s dng,
th nhp d liu trc tiếp t bàn phím.
Chương trình được thiết kế i dạng các chương trình con độc lp nhau nên d
dàng kim tra và sa cha khi yêu cu chnh sa.
Chương trình sử dng danh sách liên kết để lưu trữ thông tin sinh viên nên không hn
chế s ng sinh viên khi nhp vào.
4.2 Hn chế của chương trình.
Mc c gắng để hoàn thành, nhưng đây lần đu tiên viết một chương trình
hoàn chnh nên vn còn thiếu nhiu kinh nghim trong k thut lập trình cũng như trong
cách t chc d liu. Mt khác, do thi gian hn chế nên chương trình vẫn còn nhiu 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 tn b nh mi node
ngoài cha vùng d liệu thông thưng còn có vùng liên kết chứa địa ch ca node kế tiếp
hay node trước đó.
Chưa kiểm tra được mã s sinh viên đã tồn ti trong danh sách.
Chưa kiểm tra được d liệu khi người dùng nhập vào như id, năm sinh, điểm nếu nhp
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 dng yêu cu.
4.3 Hướng phát trin.
Thiết kế giao din thân thin với người s dng.
| 1/21

Preview text:

lOMoAR cPSD| 47270246
BÁO CÁO ĐỒ ÁN C++ MỞ ĐẦU
Trong thời đại công nghệ 4.0. Công nghệ thông tin có mặt ở khắp mọi nơi, hiện diện
trong mọi lĩnh vực của đời sống xã hội. Đây là ngành luôn được đầu tư và chú trọng phát
triển ở mọi Quốc Gia. Việt Nam cũng không nằm ngoài xu thế ấy để có thể phát triển
trong khu vực và trên thế giới. 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 nhánh ngành kỹ thuật, việc làm đồ án giúp cho sinh viên hiểu rõ hơn, sâu hơn
, tự tin hơn với đam mê trong ngành lập trình. 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, chương trình sử dụng mảng.
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. lOMoAR cPSD| 47270246
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 ++
C++ là một loại ngôn ngữ lập trình bậc trung (middle-level). Đây là ngôn ngữ lập
trình đa năng được tạo ra bởi Bjarne Stroustrup vào năm 1979 tại Bell Labs. Từ thập
niên 1990, C++ đã trở thành một trong những ngôn ngữ thương mại ưu thích và phổ biến
của lập trình viên vì nó có các tính chất ủa cả ngôn ngữ lập trình cấp thấp(Pascal,C,..)
ngôn ngữ và lập trình bậc cao(C#, Java, Python…). Ngôn ngữ lập trình C++ có đuôi mở rộng là .cpp
Cú pháp của C++ rất dễ hiểu và khá giống tiếng anh. Ta thậm chí có thể dùng C++
để thiết kế những ứng dụng dù trước đó đã được viết bằng hợp ngữ. C++ còn được hỗ
trợ trên bất kỳ các nền tảng , hệ điều hành nào. Ta có thể viết một chương trình C++ trên
Linux, biên dịch nó trên trên Windows và chạy trên Mac OS.
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,..
1.2 Điểm mạnh của ngôn ngữ C +
Nói đến C++ thì ta không thể không nhắc đến những điểm mạnh của nó dưới đây:
- 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. lOMoAR cPSD| 47270246
- Tính thực thi nhanh: nếu bạn rành C++ thì bạn có thể lập trình nhanh. Một trong
những mục tiêu của C++ là khả năng thực thi. Và nếu bạn cần thêm tính năng cho
chương trình, C++ cho phép bạn dùng ngôn ngữ Assembly (hợp ngữ) – Ngôn ngữ lập
trình bậc nhất – để 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 cho người lập trình C++, bao gồm cả đồ
họa API,2D,3D, vật lý các thiết bị âm thanh hỗ trợ giúp cho lập trình viên dễ dàng thực thi.
- Đa mô hình: C++ cho phép bạn lập trình theo cấu trúc thuyết tính, hướng chức
năng, hướng đối tượng đa dạng tùy theo yêu cầu của người lập trình.
1.3 Ứng Dụng Của Ngôn Ngữ C ++
Các dự án yêu cầu hiệu năng cao, tiếp kiệm bộ nhớ thì C++ là một lựa chọn tuyệt
vời. Đồng thời, C++ vẫn có tính chất hướng đối tượng giúp dễ dàng bảo trì và nâng cấp.
Tuy nhiên, so với các ngôn ngữ lập trình cấp cao thì C++ khó sử dụng hơn nhiều. Do đó,
dự án mà không yêu cầu hiệu năng, sử dụng các ngôn ngữ lập trình bậc cao sẽ đơn giản
hơn mà vẫn đáp ứng được yêu cầu.
Sau đây là các ứng dụng thực tế sử dụng C++:
- Games : C++ là sự lựa chọn tốt nhất để phát triển các nền tảng game 3D. Cho
phép tối ưu hóa việc quản lý tài nguyên và mượt mà trong nền tảng nhiều người chơi lOMoAR cPSD| 47270246
trên cùng mạng – multi-player. C++ cho phép can thiệp sâu vào CPU cũng như phần
cứng. Đó cũng là yếu tố quan trọng trong việc phát triển các game engines.
- Ứng dụng có giao diện người dùng(GUI) : có rất nhiều ứng dụng giao diện mà
phía sau nó được viết bằng C++. Một số ứng dụng phổ biến có thể kể tới là: Image ready,
adobe premier, photoshop và IIIustrator.
- Trình duyệt web: tốc độ và độ tin cậy là yếu tố phải có với các trình duyệt web. Khi
đó, C++ sẽ là ngôn ngữ được ưu tiên sử dụng. Một phần của trình duyệt google chrome
và một số web browsers mã nguồn như Moliza Firefox, ứng dụng email Mozilla
Thunderbird có sự đóng góp của ngôn ngữ C++.
- Ứng dụng toán và đồ họa: ngôn ngữ C++ cho phép và triển khai các ứng dụng đòi
hỏi yếu tố thời gian thực. Chẳng hạn như các ứng dụng mô phỏng 3D, xử lý hình ảnh
hiệu năng cao hay các ứng dụng cảm biến trên thiết bị di động. Hay các ứng dụng cảm
biến trên thiết bị di động. Hay các ứng dụng xử lý, mô phỏng 3D, hiệu ứng và hoạt ảnh
đều được xây dựng bằng C++.
- Phần mềm quản trị cơ sở dữ liệu: C và C++ được sử dụng cho hệ quản trị cơ sở
dữ liệu MySQL. Đây là một trong các hệ quản trị cơ sở dữ liệu phổ biến nhất. Nó là xương
sống cho nhiều phần mềm của các doanh nghiệp lớn như Google, Yahoo, Youtube, Wikipedia,…
- Hệ điều hành: C++ là một phần không thể thiếu trong hệ điều hành phổ biến như lOMoAR cPSD| 47270246 Apple OSX và MS windows.
- Phần mềm doanh nghiệp: C++ thường được sử dụng trong các ứng dụng lớn của
các doanh nghiệp. Nơi mà yêu tố hiệu năng và tốc độ luôn được đặt lên hàng đầu.
- Trình biên dịch: Một loạt các trình biên dịch bao gồm Apple C++, Bloodshed Dev-
C++, Clang C++ và MINGW make đều sử dụng ngôn ngữ lập trình C++. Không chỉ vậy,
C và C++ còn là ngôn ngữ nền tảng hỗ trợ xây dựng các ngôn ngữ lập trình mới như C#, Java, PHP, Verilog,..
Một số ứng dụng dựa trên phần mền truy cập cơ sở dữ liệu được sử dụng như là Wikipedia, Youtube, Yahoo,…
CHƯƠNG 2. Phân tích và thiết kế.
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 : ID, 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. lOMoAR cPSD| 47270246
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à :
+ 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
2.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. X Z Y lOMoAR cPSD| 47270246 B A
Hình : ví dụ danh sách liên kêết 2.3 Ứng Dụng 2.3.1 Lưu đồ
- Lưu đồ nhập mới sinh viên Bắt đầu Nhập thông tin
Lưu thông tin vào danh sách Dừng lOMoAR cPSD| 47270246
- Lưu đồ hiển thị thông tin - Bắt đẩu Đọc thông tin Hiển thị danh sách Dừng Lưu đồ tìm kiếm : lOMoAR cPSD| 47270246 Duyệt danh sách So sánh Bắt đầu thứ tự Đọc thông tin Hoán vị đúng Duyệt danh sách đúng D ừ n g sai Tìm thấy Hiển thị thông tin Không tìm thấy Dừng - Lưu đồ sắp xếp sai Bắt đầu Đọc thông tin lOMoAR cPSD| 47270246 - Lưu đồ xóa sinh viên Bắt đầu Đọc thông tin Duyệt danh sách Tìm thấy lOMoAR cPS D|47270246 Xóa D ừ n g sai Đúng
- Lưu đồ chỉnh sửa thông tin sinh viên Bắt đầu Nhập mã số sinh viên Duyệt danh sách
Downloaded by Tran Anh (trananh1406@gmail.com) Tìm thấy lOMoAR cPSD| 47270246 Nhập thông tin Không tìm thấy cần thay đổi Đúng Sai Cập nhật vào danh sách Dừng
2.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 id sinh viên, sắp xếp theo tên .
+ 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ừ id sinh viên.
+ Xóa sinh viên ra khỏi danh sách gồm : xóa sinh viên theo id .
+ Tìm kiếm thông tin sinh viên gồm : tìm kiếm theo id , tìm kiếm theo tên sinh
viên, tìm kiếm theo địa chỉ .
+ Thống kê gồm : thống kê theo giới tính, thống kê theo kết quả , 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.
CHƯƠNG 3. CHƯƠNG TRÌNH CHẠY THỬ. Downloaded by Tran Anh (trananh1406@gmail.com) lOMoAR cPSD| 47270246
3.1 - Giao diện của chương trình.
Đây là giao diện chính của chương trình khi chúng ta khởi tạo chương trình Quản Lý Sinh Viên.
Ở giao diện chính chúng ta có 10 sự lựa chọn để thực hiện mục đích của bài. Nếu
muốn thêm sinh viên thì chọn phím 1.Thêm sinh viên.
Đầ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 id, năm sinh kiểu int. Họ dệm, tên, giới tính,
địa chỉ , lớp, ngành học, khoa và học lực kiểu chuỗi ký tự char. Điểm triết, điểm tin1 ,
điểm HA và điểm trung bình sử dụng float.
Downloaded by Tran Anh (trananh1406@gmail.com) lOMoAR cPSD| 47270246
Để cập nhập thông tin của sinh viên bởi id, nhấn phím 2
Ở đây chúng ta nhập id sinh viên cần thay đổi. Chương trình sẽ hiển thị thông tin
sinh viên như họ tên, giới tính, năm sinh và điểm của 3 môn học,.. để bạn thay đổi lại
những thông tin cần thiết.
Để xóa sinh viên bởi id , chọn phím 3. Downloaded by Tran Anh (trananh1406@gmail.com) lOMoAR cPSD| 47270246
Ở đây chúng ta chỉ cần nhập id sinh viên cần xóa và chương trình sẽ tự động xóa.
Dưới đây là ví dụ xóa sinh viên với id 215.
Để tìm kiếm sinh viên theo tên , chọn phím 4
Downloaded by Tran Anh (trananh1406@gmail.com) lOMoAR cPSD| 47270246
Ví dụ dưới đây là tìm kiếm theo tên với sinh viên là Hieu.
Để sắp xếp sinh theo điểm trung bình , chọn phím 5.
Ta được giao diện như dưới và được sắp xếp theo thứ tự tăng dần . Downloaded by Tran Anh (trananh1406@gmail.com) lOMoAR cPSD| 47270246
Để sắp xếp sinh viên theo tên , chọn phím 6 Ta
được giao diện như sau:
Để xem lại danh sách sinh viên mà chúng ta vừa nhập và chỉnh sửa , chọn phím 7.
Downloaded by Tran Anh (trananh1406@gmail.com) lOMoAR cPSD| 47270246
Đây là giao diện toàn bộ danh sách sinh viên mà chúng ta đã nhập và chỉnh sửa.
Muốn thống kê sinh viên thì chúng ta có thể thống kê theo tên, lớp, địa
chỉ, học lực,…dưới đây là ví dụ cho thống kê theo tên sinh viên, ta chọn phím 8.
Nhập tên sinh viên là Ly chúng ta thấy có 2 sinh viên .
Để ghi danh sách sinh viên vào file đã có sẵn ta chọn phím 9.
Chúng ta sẽ nhận được kết quả như sau: Downloaded by Tran Anh (trananh1406@gmail.com) lOMoAR cPSD| 47270246
Sau khi đã hoàn tất các chứng năng của chương trình Quản Lý Sinh
Viên ta chọn phím 0 để thoát chương trình:
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 hoàn thành và đạt được
một số kết quả như sau:
Downloaded by Tran Anh (trananh1406@gmail.com) lOMoAR cPSD| 47270246
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, 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ư id, năm sinh, đ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.
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. Downloaded by Tran Anh (trananh1406@gmail.com)