Đề 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++ môn Công nghệ thông tin | Trường đại học kinh doanh và công nghệ Hà Nội
Trong sự phát triển của khoa học cuối thế kỷ 20 đầu thế kỷ 21, côngnghệ thông tin hiệ 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ệ. 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| 47886956 lOMoAR cPSD| 47886956
Đồ án cơ sở GVHD: Phạm Anh Phương MSSV : 2722230178
Đà Nẵng, tháng 11 năm 2012.
SVTH: Nguyễn Đình Hựu
Khoa Công Nghệ Thông Tin2 lOMoAR cPSD| 47886956
Đồ án cơ sở GVHD: Phạm Anh Phương 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 lOMoAR cPSD| 47886956
Đồ án cơ sở GVHD: Phạm Anh Phương
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
SVTH: Nguyễn Đình Hựu
Khoa Công Nghệ Thông Tin4 lOMoAR cPSD| 47886956
Đồ án cơ sở GVHD: Phạm Anh Phươ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{ cout << “a[” << i << “] = ”; cin >> 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) lOMoAR cPSD| 47886956
Đồ án cơ sở GVHD: Phạm Anh Phương
{ for (int i=0; icout << setw(4) <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
SVTH: Nguyễn Đình Hựu
Khoa Công Nghệ Thông Tin6 lOMoAR cPSD| 47886956
Đồ án cơ sở GVHD: Phạm Anh Phương
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];[bt Vòng lặp while 3]) [ lệnh]; 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{ lOMoAR cPSD| 47886956
Đồ án cơ sở GVHD: Phạm Anh Phương
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 ).
SVTH: Nguyễn Đình Hựu
Khoa Công Nghệ Thông Tin8 lOMoAR cPSD| 47886956
Đồ án cơ sở GVHD: Phạm Anh Phương
+ Sửa sinh viên trong danh sách ( mảng ). 2.1. .
2 Sơ đồ các chức năng chính Quản lý sinh viên Nhập Sửa Thêm Xuất Tìm kiếm xóa Sắp xếp Sửa masv Tìm kiếm theo tên Sắp xếp tên Sửa họ tên Sắp xếp Tìm kiếm theo masv masv Sửa lớp Sắp xếp Sửa điểm toán ĐTB Sửa điểm lý Sửa điểm hóa lOMoAR cPSD| 47886956
Đồ án cơ sở GVHD: Phạm Anh Phương
2.2. Các modul chính của chương trình
SVTH: Nguyễn Đình Hựu
Khoa Công Nghệ Thông Tin10 lOMoAR cPSD| 47886956
Đồ án cơ sở GVHD: Phạm Anh Phương 2.2.1.
Hàm nhập danh sách sinh viên Begin i=0, n=0 i++, n++
Nhập mãsv, tên, lớp,điểm
toán, điểm hóa, điểm lý. ĐTB=(toán+lý+hóa)/3 Đ ĐTB< Yếu 5 S S Đ Trung ĐTB< bình 6 S S Đ ĐTB< Khá 8 S S Giỏi Đ Ch!=27 S END lOMoAR cPSD| 47886956
Đồ án cơ sở GVHD: Phạm Anh Phương
2.2.2 . Hàm xuất sinh viên Begin i=1 S i<=n Đ
Xuất masv, tênsv, lớp,
điểm toán, điểm hóa, điểm lý i++ End
SVTH: Nguyễn Đình Hựu
Khoa Công Nghệ Thông Tin12 lOMoAR cPSD| 47886956
Đồ án cơ sở GVHD: Phạm Anh Phương
2.2.3. Hàm tìm kiếm sinh viên
a. Tìm kiếm theo số báo danh BEGIN Nhập masv i = 1 S i <= n Đ a[i].masv=masv Đ Xuất a[i] END lOMoAR cPSD| 47886956
Đồ án cơ sở GVHD: Phạm Anh Phương
b. Tìm kiếm theo tên BEGIN Nhập tên i = 1 S i <= n Đ Kt(a[i].hoten,tên)== 1 Đ Xuất a[i] END
SVTH: Nguyễn Đình Hựu
Khoa Công Nghệ Thông Tin14 lOMoAR cPSD| 47886956
Đồ án cơ sở GVHD: Phạm Anh Phương
2.2.4 . Sắp xếp sinh viên
a. Sắp xếp theo số báo danh BEGIN i < = 1 S i < = n 1 Đ j = i + 1 i ++ S J < = j ++ n Đ a[i].sbd > a[j].sbd Đ
Hoán vị(a[i], a[j]) END lOMoAR cPSD| 47886956
Đồ án cơ sở GVHD: Phạm Anh Phương
b. Sắp xếp theo tên sinh viên
SVTH: Nguyễn Đình Hựu
Khoa Công Nghệ Thông Tin16 lOMoAR cPSD| 47886956
Đồ án cơ sở GVHD: Phạm Anh Phương BEGIN i < = 1 S i < = n 1 Đ j = i + 1 i ++ S J < = j ++ n Đ
a[i].tên < a[j].tên Đ
Hoán vị(a[i], a[j]) END lOMoAR cPSD| 47886956
Đồ án cơ sở GVHD: Phạm Anh Phương
c. Sắp xếp theo điểm trung bình BEGIN i < = 1 S i < = n 1 Đ j = i + 1 i ++ S J < = j ++ n Đ
a[i].đtb < a[j].đtb Đ
Hoán vị(a[i].masv, a[j].masv)
SVTH: Nguyễn Đình Hựu Khoa Công Nghệ T END hông T in18 lOMoAR cPSD| 47886956
Đồ án cơ sở GVHD: Phạm Anh Phương
2.2.5 . Xóa sinh viên BEGIN i = 1 Đ i + + a[i].masv! m = asv S j = i S j <= n- n - 1 Đ j + + a[j] = a[j+1] END lOMoAR cPSD| 47886956
Đồ án cơ sở GVHD: Phạm Anh Phương
2.2.6 . Hàm sửa sinh viên BIGIN Nhập mã sinh viên i = 1, kt i + + S i < = n Đ S a[i].masv==mas vv Xuất a[i] Nhập kt Đ Kt=1 Nhập a[i].mã S Đ Kt=2 Nhập a[i].tên S Đ Nhập Kt=5 a[i].điêmhóa
SVTH: Nguyễn Đình Hựu
Khoa Công Nghệ Thông Tin20 END