Trong sự phát triển của khoa học cuối thế kỷ 20 đầu thế kỷ 21, công nghệ thông tin hiện nay là ngành có tốc độ phát triển nhanh nhất. Công nghệ thông tin ở nước ta còn mới, song tốc độ phát triển của nó rất nhanh và mạnh, chiếm một vị trí quan trọng trong các ngành khoa học công nghệ. Một trong những lĩnh vực đang được ứng dụng tin học hóa rất phổ biến ở nước ta là lĩnh vực quản lý. Tin học hóa trong quản lý đã giúp cho các nhà quản lý điều hành công việc một cách khoa học, chính xác và hiệu quả. Việc ứng dụng công nghệ thông tin vào công tác quản lý sinh viên là cần thiết. vì vậy tôi chọn đề tài “xây dựng chương trình quản lý điểm của sinh viên bằng ngôn ngữ lập trình C++” làm đề tài nghiên cứu của tôi.
29 trang |
Chia sẻ: oanhnt | Lượt xem: 6046 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Đồ án Xây dựng chương trình quản lý sinh viên bằng ngôn ngữ lập trình c++, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
TRƯỜNG ĐẠI HỌC DUY TÂN
KHOA CÔNG NGHỆ THÔNG TIN
--------------ÐѶÐÑ-------------
ĐỒ ÁN
ĐỀ TÀI: XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝ SINH VIÊN BẰNG NGÔN NGỮ LẬP TRÌNH C++
@
GVHD : TS. PHẠM ANH PHƯƠNG
SVTH : NGUYỄN ĐÌNH HỰU
LỚP : K16TCD1
MSSV : 161135920
Đà Nẵng, tháng 11 năm 2012.
PHẦN MỞ ĐẦU
1. Lí do chọn đề tài
Trong sự phát triển của khoa học cuối thế kỷ 20 đầu thế kỷ 21, công nghệ thông tin hiện nay là ngành có tốc độ phát triển nhanh nhất. Công nghệ thông tin ở nước ta còn mới, song tốc độ phát triển của nó rất nhanh và mạnh, chiếm một vị trí quan trọng trong các ngành khoa học công nghệ. Một trong những lĩnh vực đang được ứng dụng tin học hóa rất phổ biến ở nước ta là lĩnh vực quản lý. Tin học hóa trong quản lý đã giúp cho các nhà quản lý điều hành công việc một cách khoa học, chính xác và hiệu quả. Việc ứng dụng công nghệ thông tin vào công tác quản lý sinh viên là cần thiết. vì vậy tôi chọn đề tài “xây dựng chương trình quản lý điểm của sinh viên bằng ngôn ngữ lập trình C++” làm đề tài nghiên cứu của tôi.
2. Mục tiêu của đề tài
Xây dựng chương trình quản lí sinh viên bằng ngôn ngữ lập trình C++.
3. Phạm vi nghiên cứu
Phân tích thiết kế hệ thống quản lí sinh viên bằng ngôn ngữ lập trình C++.
4. Phương pháp nghiên cứu
- Đọc tham khảo một số tài liệu về phương pháp lập trình C++, trên cơ sở đó tiến hành phân tích thiết kế hệ thống quản lí sinh viên.
- Tham khảo, quan sát các phần mềm quản lí sinh viên trong thực tế.
CHƯƠNG I: GIỚI THIỆU VỀ NGÔN NGỮ LẬP TRÌNH C++
1.1. Ngôn Ngữ Lập Trình C++
-C là ngôn ngữ lập trình cấp cao, được sử dụng rất phổ biến để lập trình hệ thống cùng với Assembler và phát triển các ứng dụng.
-Ngôn ngữ lập trình C là một ngôn ngữ lập trình hệ thống rất mạnh và rất “mềm dẻo”, có một thư viện gồm rất nhiều các hàm (function) đã được tạo sẵn. Người lập trình có thể tận dụng các hàm này để giải quyết các bài toán mà không cần phải tạo mới. Hơn thế nữa, ngôn ngữ C hỗ trợ rất nhiều phép toán nên phù hợp cho việc giải quyết các bài toán kỹ thuật có nhiều công thức phức tạp. Ngoài ra, C cũng cho phép người lập trình tự định nghĩa thêm các kiểu dữ liệu trừu tượng khác. Tuy nhiên, điều mà người mới vừa học lập trình C thường gặp “rắc rối” là “hơi khó hiểu” do sự “mềm dẻo” của C. Dù vậy, C được phổ biến khá rộng rãi và đã trở thành một công cụ lập trình khá mạnh, được sử dụng như là một ngôn ngữ lập trình chủ yếu trong việc xây dựng những phần mềm hiện nay.
1. 2. Danh Sách Mảng Một Chiều
1.2.1. Khái niệm mảng
- Mảng là kiểu dữ liệu có cấu trúc bao gồm nhiều phần tử kiểu và được bố trí vùng nhớ liên tục.
- Kiểu của các phần tử mảng gọi là kiểu cơ sở. Mỗi phần tử mảng là một biến có kiểu cơ sở.
- Mảng có kích thước là số phần tử trong mảng. Kích thước mảng bắt buộc phải là biểu thức hằng nguyên để có thể cấp phát vùng nhớ lúc biên dịch.
1.2.2. Ưu và khuyết điểm của mảng một chiều
Ưu điểm khi dùng mảng
- Ưu điểm của mảng là giúp ta tiết kiệm tài nguyên hệ thống.Ta có thể sử dụng một mảng có kích thước lớn trong một thời gian nào đó rồi xóa bỏ để trả lại vùng nhớ cho hệ thống.
- Dễ cài đặt và truy nhập các phần tử dữ liệu.
- Tốc độ truy nhập đến một vị trí bất kỳ trên mảng nhanh,hiệu quả.
Khuyết điểm khi dùng mảng
- Cần phải xác định trước số phần tử mảng trước khi sử dụng => không phù hợp với các bài toán chưa biết trước số lượng phần tử.
- Khó khăn trong các thao tác chèn và xóa một phần tử bất kỳ trong mảng
- Nếu bài toán mà việc chèn phần tử xóa phần tử diễn ra liên tục thì tốc độ xử lý sẽ rất chậm.
1.2.3. Các thao tác cơ bản trên mảng 1 chiều
• Nhập giá trị cho các phần tử mảng.
• Xuất giá trị các phần tử mảng (ra màn hình).
• Thêm 1 phần tử vào mảng.
• Xóa một phần tử ra khỏi mảng.
• Tìm kiếm trên mảng.
• Sắp xếp mảng.
- Các thao tác trên thực chất là duyệt mảng và xử lý trên từng phần tử mảng nhờ vào cấu trúc lặp một cách tổng quát như sau:
+ Hàm nhập giá trị cho các phần tử mảng từ bàn phím :
void Input(int a[], int n)
{
for (int i=0; i<n; i++)
{
cout > a[i];
}
}
+ Hàm xuất giá trị cho các phần tử mảng 1 chiều ra màn hình
void Output(const int a[], int n)
{
for (int i=0; i<n; i++)
cout << setw(4) <<a [i];
cout << endl;
}
1.3. Một số kiến thức về lập trình c++sử dụng trong đề tài
1.3.1. Kiểu dữ liệu
String (kiểu ký tự )
int (kiểu số nguyên có miền giá trị -215à215-1
float (kiểu số thực có miền giá trị 2*10-38 à3.4*1038
1.3.2. Câu lệnh, vòng lặp
Lệnh if
- cú pháp if(biểu thức)
[lệnh];
Lệnh switch
- cú pháp switch(biểu_thức_nguyên)
{
case hằng_1: [lệnh_1;]
case hằng_2: [lệnh_2;]
case hằng_n: [lệnh_n;]
[ default: lệnh_ n+1;]
}
Lệnh break
Lệnh break dùng để kết thúc vòng lặp khi chương trình gặp lệnh này thì chương trình sẽ dừng ngay lập tức vòng lập trong nhất chứa nó.
Vòng lặp for
Cú pháp for([bt1];[bt2];[bt3])
[lệnh];
Vòng lặp while
Cú pháp while(biểu thức)
[lệnh];
Vòng lặp do…while:
Cú pháp do{
[Lệnh;]
}while(bt);
1.3.3. Hàm
-Cú pháp
[kiểu trả về/void]
< { [khai báo biến cục bộ]
[các câu lệnh]
[return giá_trị_trả_về;]
[các câu lệnh]
[return giá_trị_trả_về;]
} >
1.3.4. Kiểu dữ liệu struct
Định nghĩa kiểu struct
struct kiểu_struct{
kiểu_đã_có_1: danh sách các trường cùng kểu;
kiểu_đã_có_2: danh sách các trường cùng kểu;
kiểu_đã_có_n: danh sách các trường cùng kểu;
};
1.3.5. Khai báo thư viện, hằng mặc định
#include
#include
#include
#include
Using namespase std;
CHƯƠNG II: XÂY DỰNG ỨNG DỤNG QUẢN LÝ SINH VIÊN
2.1. Giới Thiệu Bài Toán
2.1.1. Mô tả các bước thực hiện để xây dựng trình quản lý sinh viên
- Để quản lý sinh viên thì trước hết ta phải có một danh sách sinh viên và có thể thực hiện các thao tác với danh sách sinh viên đó. Cụ thể yêu cầu của quản lý sinh viên như sau:
- Trước tiên phải tạo 1 mảng sinh viên có thể chứa 100 người (SV[100]), số người cần nhập n. Sau đó thực hiện:
+ Nhập (thêm) một sinh viên vào danh sách (mảng).
+ Tìm một sinh viên.
+ Xóa một sinh viên khỏi danh sách(mảng).
+ Sửa sinh viên trong danh sách ( mảng).
xóa
Xuất
Sửa masv
Nhập
Sửa
Thêm
Sửa điểm hóa
Sửa điểm toán
Sửa điểm lý
Tìm kiếm
Tìm kiếm theo tên
Sắp xếp
Sắp xếp tên
Sắp xếp masv
Sắp xếp ĐTB
Tìm kiếm theo masv
Sửa họ tên
Sửa lớp
Quản lý sinh viên
2.1.2. Sơ đồ các chức năng chính2.2. Các modul chính của chương trình
Giỏi
END
ĐTB<8
Ch!=27
Khá
ĐTB<6
ĐTB=(toán+lý+hóa)/3
ĐTB<5
i++, n++
Nhập mãsv, tên, lớp,điểm toán, điểm hóa, điểm lý.
Begin
i=0, n=0
Yếu
Trung bình
Đ
Đ
Đ
Đ
S
S
S
S
2.2.1. Hàm nhập danh sách sinh viên
S
S
S
2.2.2. Hàm xuất sinh viên
Begin
i=1
i<=n
Xuất masv, tênsv, lớp, điểm toán, điểm hóa, điểm lý
i++
End
Đ
S
2.2.3. Hàm tìm kiếm sinh viên
a. Tìm kiếm theo số báo danh
Xuất a[i]
a[i].masv=masv
END
BEGIN
i = 1
i <= n
Nhập masv
S
Đ
Đ
b. Tìm kiếm theo tên
Xuất a[i]
Kt(a[i].hoten,tên)==1
END
BEGIN
i = 1
i <= n
Nhập tên
S
Đ
Đ
2.2.4. Sắp xếp sinh viên
a. Sắp xếp theo số báo danh
S
S
END
Hoán vị(a[i], a[j])
a[i].sbd > a[j].sbd
BEGIN
i < = 1
i < = n-1
j = i + 1
J < = n
i ++
j ++
Đ
Đ
Đ
b. Sắp xếp theo tên sinh viên
Đ
S
Đ
END
Hoán vị(a[i], a[j])
a[i].tên < a[j].tên
j = i + 1
J < = n
i ++
j ++
S
BEGIN
i < = 1
i < = n-1
Đ
c. Sắp xếp theo điểm trung bình
END
Hoán vị(a[i].masv, a[j].masv)
a[i].đtb < a[j].đtb
S
BEGIN
i < = 1
i < = n-1
j = i + 1
J < = n
i ++
j ++
Đ
Đ
S
Đ
2.2.5. Xóa sinh viên
BEGIN
i = 1
a[i].masv!=masv
j = i
j <= n-1
i + +
j + +
n - -
a[j] = a[j+1]
END
Đ
S
S
Đ
Kt=1
Kt=2
Kt=5
END
Nhập a[i].mã
Nhập a[i].tên
Nhập a[i].điêmhóa
a[i].masv==masvv
Xuất a[i]
Nhập kt
BIGIN
Nhập mã sinh viên
i = 1, kt
i < = n
i + +
S
S
Đ
S
S
Đ
Đ
Đ
2.2.6. Hàm sửa sinh viên
CHƯƠNG III: CÀI ĐẶT CHƯƠNG TRÌNH
3.1. Tổng thể chương trình cài đặt
Chương trình được viết bằng ngôn ngữ C++, sử dụng DEV C++ trên nền window gồm các thành phần chính:
Menu chính: gồm có các dòng để người dùng thực hiện như:
+ Nhập sinh viên vào danh sách.
+ In danh sách sinh viên cần xem.
+ Tìm sinh viên trong danh sách.
Tìm theo tên.
Tìm theo số báo danh.
+ Sửa sinh viên trong danh sách.
+ Xóa sinh viên trong danh sách.
+ Sắp xếp sinh viên.
Sắp xếp theo tên.
Sắp xếp theo số báo danh.
Sắp xếp theo điểm trung bình.
3.2. Các modun chính của chương trình
3.2.1. Nhập danh sách sinh viên
3.2.2. In danh sách sinh viên
3.2.3. Hàm sửa sinh viên
3.2.4. Tìm kiếm sinh viên
a. Tìm kiếm theo số báo danh
b. Tìm kiếm theo tên sinh viên
3.2.5. Sắp xếp sinh viên
a. Sắp xếp theo sô báo danh
b. Sắp xếp theo tên
c. Sắp xếp theo điểm trung bình
3.2.5. Xóa sinh viên
KẾT LUẬN
1. Các kết quả đạt được
Sau khi thực hiện cài đặt phần mềm ta đã mô phỏng được chương trình quản lí sinh viên. Kết quả xuất ra màn hình là một hệ thống quản lí sinh viên bao gồm:
+ Thêm sinh viên.
+ In sinh viên.
+ Sửa sinh viên.
+ Tìm kiếm sinh viên.
+ Xóa sinh viên.
+ Sắp xếp sinh viên.
2. Ưu và nhược điểm của đề tài
Ưu điểm
Đây là một đề tài mà tất cả các bạn sinh viên điều biết đến. Trong đề tài có menu sẵn, dễ dàng sử dụng.
Nhược điểm
Vẫn chưa chú trọng về đồ họa, mới chỉ đi về phần lập trình.
3. Hướng phát triển
Xây dựng thêm các tính năng như giao diện, thêm các thuộc tính như năm sinh, địa chỉ, số điện thoại…
TÀI LIỆU THAM KHẢO
[1].Nguyễn Thị Bảo Trang, Lập Trình Cơ Sở, Đại học Duy Tân, Năm 2009.
[2].
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN