Đồ á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++

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.

doc29 trang | Chia sẻ: oanhnt | Lượt xem: 6046 | Lượt tải: 2download
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ính 2.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