Đồ án C++ Chủ đề: Quản lý sinh viên | Trường đại học kinh doanh và công nghệ Hà Nội
Dev-C++ là một công cụ lập trình C++ miễn phí và mã nguồn mởcho hệ điều hành Windows. Nó được phát triển bởi Bloodshed Software
và có thể được sử dụng để phát triển các ứng dụng máy tính và trò chơi. Dev-C++ có giao diện đơn giản và dễ sử dụng, với các tính năng. 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!
Môn: Công nghệ thông tin (HUBT)
Trường: Đại học Kinh Doanh và Công Nghệ Hà Nội
Thông tin:
Tác giả:
Preview text:
lOMoAR cPSD| 45469857
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC KINH DOANH VÀ CÔNG NGHỆ HÀ NỘI
----- . . ---- ĐỒ ÁN C++
Chủ đề: Quản lý sinh viên
Sinh viên thực hiện : Nguyễn Chí Thanh
Mã sinh viên : 2722245477
Lớp : TH 27.43 PAGE \* MERGEFORMAT 1 lOMoAR cPSD| 45469857 CHƯƠNG 1
TỔNG QUAN VỀ CÔNG CỤ LẬP TRÌNH C++
1 . TỔNG QUAN VỀ CÔNG CỤ LẬP TRÌNH C++ ( DEV -C++)
Dev-C++ là một công cụ lập trình C++ miễn phí và mã nguồn mở cho
hệ điều hành Windows. Nó được phát triển bởi Bloodshed Software và có
thể được sử dụng để phát triển các ứng dụng máy tính và trò chơi.
Dev-C++ có giao diện đơn giản và dễ sử dụng, với các tính năng như
biên dịch, gỡ lỗi, kiểm tra cú pháp và tạo tệp tin thực thi. Nó cũng có tính
năng auto-complete, cho phép người dùng nhanh chóng và dễ dàng hoàn thành mã nguồn.
Dev-C++ hỗ trợ nhiều trình biên dịch C++ như MinGW, GCC và
Visual C++. Nó cũng hỗ trợ nhiều thư viện C++ phổ biến như STL, Boost và wxWidgets.
Một trong những ưu điểm của Dev-C++ là khả năng tùy chỉnh giao
diện và phím tắt cho phù hợp với nhu cầu sử dụng của người dùng. Ngoài
ra, Dev-C++ cũng có khả năng tạo các ứng dụng Windows GUI và tương
thích với các phiên bản Windows khác nhau.
Tuy nhiên, nhược điểm của Dev-C++ là nó không được cập nhật
thường xuyên và hỗ trợ hạn chế cho các tính năng mới nhất của ngôn ngữ
C++. Ngoài ra, Dev-C++ cũng có thể không hoạt động tốt trên các phiên bản Windows mới hơn. PAGE \* MERGEFORMAT 1 lOMoAR cPSD| 45469857
Tóm lại, Dev-C++ là một công cụ lập trình C++ miễn phí và dễ sử
dụng, với các tính năng cơ bản cho phép người dùng phát triển các ứng
dụng máy tính và trò chơi. Tuy nhiên, nếu bạn đang tìm kiếm một công cụ
lập trình C++ nâng cao hơn và được hỗ trợ tốt hơn, có thể nên tìm kiếm các công cụ khác.
2 . CÁC KIẾN THỨC CƠ SỞ CỦA NGÔN NGỮ LẬP TRÌNH C ++
C++ là một ngôn ngữ lập trình đa năng, mạnh mẽ và phổ biến được
sử dụng cho nhiều mục đích khác nhau, từ phát triển ứng dụng máy tính
đến phát triển trò chơi và các hệ thống nhúng. Dưới đây là một số kiến thức cơ sở của C++:
Cú pháp C++: C++ sử dụng cú pháp tương tự như C, với các khai báo
biến, câu lệnh điều khiển và hàm được định nghĩa bằng các dấu
ngoặc nhọn {}. Các dòng lệnh trong C++ kết thúc bằng dấu chấm phẩy ;.
Kiểu dữ liệu: C++ hỗ trợ nhiều kiểu dữ liệu khác nhau, bao gồm số
nguyên, số thực, ký tự và logic. Một số kiểu dữ liệu cơ bản trong C++
bao gồm int, float, char, bool, double.
Biến: Trong C++, biến được sử dụng để lưu trữ giá trị dữ liệu và có thể
được khai báo bằng các từ khóa như int, float, char,... Biến có thể được
khởi tạo giá trị ban đầu hoặc gán giá trị sau đó.
Hàm: C++ cho phép định nghĩa và sử dụng các hàm để thực hiện các tác
vụ cụ thể trong chương trình. Hàm có thể trả về giá trị hoặc không trả
về giá trị. Các hàm có thể được định nghĩa bên trong một lớp, trong đó
các phương thức được sử dụng để thao tác trên các thuộc tính của lớp.
Các toán tử: C++ hỗ trợ nhiều toán tử để thực hiện các phép tính, so sánh
và các phép toán khác. Các toán tử có thể được sử dụng trên các biến
và giá trị dữ liệu khác nhau. PAGE \* MERGEFORMAT 1 lOMoAR cPSD| 45469857
Câu lệnh điều khiển: C++ hỗ trợ các câu lệnh điều khiển như if, else, for,
while, do-while để kiểm soát luồng thực hiện của chương trình.
Con trỏ: C++ hỗ trợ con trỏ, là một biến chứa địa chỉ bộ nhớ của một biến k
3 . GIAO DIỆN CỦA DEV-C ++ PAGE \* MERGEFORMAT 1 lOMoAR cPSD| 45469857 PAGE \* MERGEFORMAT 1 lOMoAR cPSD| 45469857 CHƯƠNG 2
THIẾT KẾ CHƯƠNG TRÌNH I. GIỚI THIỆU
Trong đời sống hiện đại, quản lý sinh viên là một trong những vấn đề quan trọng
trong các trường học, đặc biệt là các trường đại học và cao đẳng. Với sự phát triển
của công nghệ thông tin, việc sử dụng phần mềm quản lý sinh viên đã trở thành một
phương tiện hữu hiệu giúp cho quản lý sinh viên trở nên dễ dàng hơn. Trong bài báo
cáo này, chúng tôi xin trình bày chi tiết về các chức năng của phần mềm quản lý sinh
viên mà chúng tôi đã thực hiện bằng ngôn ngữ lập trình C++.
II. LƯU ĐỒ THUẬT TOÁN
Trước khi trình bày về các chức năng của phần mềm, chúng tôi xin trình bày
lược đồ thuật toán của phần mềm quản lý sinh viên như sau: PAGE \* MERGEFORMAT 1 lOMoAR cPSD| 45469857
Khởi động chương trình
Hiển thị menu chức năng
Người dùng chọn chức năng
Thực hiện chức năng được chọn
Quay lại menu chức năng hoặc thoát chương trình
III. CHI TIẾT CHỨC NĂNG * Thêm sinh viên
Chức năng thêm sinh viên cho phép người dùng thêm thông tin của một sinh viên
vào hệ thống. Khi thêm sinh viên, người dùng cần cung cấp thông tin như họ và tên,
ngày tháng năm sinh, giới tính, lớp học, số điện thoại và email. Sau khi nhập thông
tin, phần mềm sẽ lưu trữ thông tin của sinh viên trong cơ sở dữ liệu. * Sửa sinh viên
Chức năng sửa sinh viên cho phép người dùng sửa thông tin của một sinh viên đã có
trong hệ thống. Người dùng cần chọn sinh viên cần sửa, sau đó cung cấp thông tin PAGE \* MERGEFORMAT 1 lOMoAR cPSD| 45469857
mới của sinh viên đó. Sau khi sửa thông tin, phần mềm sẽ cập nhật lại thông tin của
sinh viên trong cơ sở dữ liệu. * Xóa sinh viên
Chức năng xóa sinh viên cho phép người dùng xóa thông tin của một sinh viên
trong hệ thống. Người dùng cần chọn sinh viên cần xóa, sau đó xác nhận việc xóa.
Sau khi xóa, phần mềm sẽ xóa thông tin của sinh viên đó khỏi cơ sở dữ liệu. IV. ANHR MINH HỌA PAGE \* MERGEFORMAT 1 lOMoAR cPSD| 45469857
V. MỘT SỐ ĐOẠN CODE TRONG BÀI #include #include #include using namespace std; class SinhVien { public: PAGE \* MERGEFORMAT 1 lOMoAR cPSD| 45469857
SinhVien(string Ten, string Diachi, float DTb) :
m_Ten(Ten), m_Diachi(Diachi), m_DTb(DTb) {}
string getTen() const { return m_Ten; }
string getDiachi() const { return m_Diachi; } float
getDTb() const { return m_DTb; } void
setTen(string Ten) { m_Ten = Ten; } void
setDiachi(string Diachi) { m_Diachi = Diachi; } void
setDTb(float DTb) { m_DTb = DTb; } private: string m_Ten; string m_Diachi; float m_DTb; } ; class QuanLySinhVien { public:
void themSinhVien(SinhVien sv) {
m_danhSachSinhVien.push_back(sv); }
void suaSinhVien(int index, SinhVien sv) {
m_danhSachSinhVien[index] = sv; } PAGE \* MERGEFORMAT 1 lOMoAR cPSD| 45469857
void xoaSinhVien(int index) {
m_danhSachSinhVien.erase(m_danhSachSinhVien.begin() + index); }
void inDanhSachSinhVien() const {
cout << "Danh sach sinh vien:\n"; for
(int i = 0; i < m_danhSachSinhVien.size();
++i) { cout << " " << i + 1 << ". "
<< m_danhSachSinhVien[i].getTen() << " - "
<< m_danhSachSinhVien[i].getDiachi() << " - " <<
m_danhSachSinhVien[i].getDTb() << endl; } }
int soLuongSinhVien() const {
return m_danhSachSinhVien.size(); }
void themSinhVienTuBanPhim() {
string Ten, Diachi; float DTb;
cout << "Nhap Ten sinh vien: ";
cin.ignore(); getline(cin, Ten); PAGE \* MERGEFORMAT 1 lOMoAR cPSD| 45469857
cout << "Nhap dia chi sinh vien: "; getline(cin, Diachi);
cout << "Nhap DTb sinh vien: "; cin >> DTb;
SinhVien sv(Ten, Diachi, DTb); themSinhVien(sv); } private: vector m_danhSachSinhVien; } ; int main() { QuanLySinhVien qlsv;
// Thêm m?t s? sinh viên m?u vào danh sách
qlsv.themSinhVien(SinhVien("Nguyen Van A", "Ha Noi", 8));
qlsv.themSinhVien(SinhVien("Le Thi B", "Hai Phong", 7));
// L?p l?i cho d?n khi ngu?i dùng ch?n thoát
int choice = 0; while (choice != 4) {
cout << "\n==========QUAN LY SINH VIEN===========\n";
cout << "\n=== Chon chuc nang ===\n"
<< "*** 1. Them sinh vien ***\n"
<< "*** 2. Sua thong tin sinh vien ***\n"
<< "*** 3. Xoa sinh vien ***\n" PAGE \* MERGEFORMAT 1 lOMoAR cPSD| 45469857
<< "*** 4. Thoat ***\n"
<< "======================================\n"
<< "*** Nhap lua chon: "; cin >> choice; switch (choice) { case 1:
qlsv.themSinhVienTuBanPhim(); break; case 2: { int index;
cout << "Nhap vi tri sinh vien can sua: "; cin >> index;
if (index < 1 || index > qlsv.soLuongSinhVien()) {
cout << "Vi tri khong hop le!\n"; break; } string Ten, Diachi; float DTb;
cout << "Nhap thong tin moi cho sinh vien:\n"; PAGE \* MERGEFORMAT 1 lOMoAR cPSD| 45469857
cout << "Nhap Ten sinh vien: ";
cin.ignore(); getline(cin, Ten);
cout << "Nhap dia chi sinh vien: "; getline(cin, Diachi);
cout << "Nhap DTb sinh vien: "; cin >> DTb;
qlsv.suaSinhVien(index - 1, SinhVien(Ten, Diachi, DTb)); break; } case 3: { int index; cout
<< "Nhap vi tri sinh vien can xoa: "; cin >> index;
if (index < 1 || index > qlsv.soLuongSinhVien()) {
cout << "Vi tri khong hop le!\n"; break; } qlsv.xoaSinhVien(index - 1); break; } CHƯƠNG 3 KẾT LUẬN PAGE \* MERGEFORMAT 1 lOMoAR cPSD| 45469857 -
Sau khi học xong em đã được hiểu biết thêm về lập trình C++ và bắt
đầu thấy thích thú trong bộ môn này. -
Em đã có những kinh nghiệm bước đầu cho việc làm bai đồ án. Đó
là em biết sử dụng công cụ lập trình, các cấu trúc, cú pháp, kiểu dữ liệu,
biến,… của ngôn ngữ C++ -
Ngoài ra em cũng hiểu hơn về khái niệm danh sách, vòng lặp. -
Trong phần trình bài code thì vẫn còn khác rắc rối và khó hiểu cho người xem. PAGE \* MERGEFORMAT 1