1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài toán quản lí sinh viên bằng danh sách đặc

54 1.4K 20

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

QUẢN LÝ SINH VIÊN LỜI NĨI ĐẦU Cơng nghệ thơng tin ngành phát triển vượt bậc năm gần Ngày với phát triển nhanh chóng xã hội cơng nghệ thơng tin ứng dụng rộng rãi hầu hết tất lĩnh vực ngày đóng vai trị quan trọng, trở thành phần thiết yếu đời sống ngày Công nghệ thông tin ngành đòi hỏi người học tảng kiến thức vững chắc, tư logic cao, hiểu biết sâu rộng nhiều lĩnh vực Với chúng em sinh viên công nghệ thông tin cần phải có đầu tư, khơng ngừng học hỏi để nâng cao kiến thức Do để củng cố lại kiến thức học, đề tài mà em chọn để thực đồ án là: Bài tốn Quản lí sinh viên danh sách đặc Quản lý sinh viên đề tài khơng cịn mẻ với tốn quản lý Việc đưa tin học vào ứng dụng để quản lý hữu ích, bỏ thời gian mà lại thu hiệu cao, xác tiện lợi nhanh chóng Thơng qua q trình thực đồ án, chúng em nắm bắt kỹ thuật quan trọng việc xây dựng cấu trúc liệu phân tích, thiết kế giải thuật cho tối ưu Bài tốn “Quản lý sinh viên” mà nhóm chúng em nghiên cứu trình bày báo cáo sau ví dụ Chúng em xin chân thành cảm ơn cô Đỗ Thị Tuyết Hoa bổ sung ý tưởng tận tình giúp đỡ chúng em thực đồ án Trong q trình thực hiện, khơng tránh khỏi sai xót Chúng em mong nhận góp ý từ phía thầy để làm chúng em hoàn thiện Đà Nẵng, ngày 02 tháng 06 năm 2017 QUẢN LÝ SINH VIÊN MỤC LỤC LỜI NÓI ĐẦU…………………………………………………………………………………….01 MỤC LỤC………………………………………………………………………………………… 02 I Cơ sở lý thuyết II Định nghĩa danh sách đặc …………………………… ……………………………… 03 Biểu diễn danh sách đặc ……………………………………………………………….03 Ứng dụng danh sách đặc vào quản lý sinh viên Đặc tả hệ thống …………………………………………….………………………… 05 Yêu cầu hệ thống …………………………………………………………………………05 Phân tích thiết kế chương trình ……………………………………………………… 05 Thuật toán, độ phức tạp cài đặt chương trình …………………………………………08 4.1: Hiển thị danh sách sinh viên ……………………………………………………… 10 4.2: Thêm sinh viên vào danh sách ………………………………………………… 11 4.3: Tìm thơng tin sinh viên theo họ tên …………………………………………… 12 4.4: Tìm thơng tin sinh viên theo mã sinh viên ………………………………………… 12 4.5: Xóa sinh viên khỏi danh sách ………………………………………………… 12 4.6: Tính điểm trung bình xét học bổng …………………………………………… 13 4.7: Xóa sinh viên nữ khóa 08 ………………………………………………………… 13 4.8: Sắp xếp theo họ tên ……………………………………………………………… 14 4.9: Chèn sinh viên không thay đổi thứ tự xếp ………………………………… 16 4.10: Thống kê số lượng học sinh học bổng ………………………………………… 16 4.11: Hàm kiểm tra giới tính …………………………………………………………… 17 4.12: Hàm kiểm tra ngày tháng ………………………………………………………… 17 4.13: Hàm kiểm tra tên ………………………………………………………………… 17 4.14: Ghi kết file ………………………………………………………………… 17 Kết chương trình …………………………………………………………………… 18 Kết luận …………………………………………………………………………………… 23 QUẢN LÝ SINH VIÊN CHƯƠNG 1: CƠ SỞ LÍ THUYẾT I ĐỊNH NGHĨA DANH SÁCH ĐẶC Danh sách đặc danh sách mà không gian nhớ lưu trữ phần tử đặt liên tiếp nhớ II BIỂU DIỄN DANH SÁCH ĐẶC Để biểu diễn danh sách đặc sử dụng dãy (mảng) phần tử có kiểu liệu kiểu liệu phần tử danh sách Do vậy, cần biết trước số phần tử tối đa mảng chiều dài tối đa danh sách thơng qua số nguyên Ngoài ra, chiều dài danh sách luôn biến động cần quản lý chiều dài thực danh sách thông qua biến nguyên Giả sử quy ước chiều dài tối đa danh sách đặc 10000, cấu trúc liệu để biểu diễn danh sách đặc sau: const int MaxLen = 10000; // hoặc: #define MaxLen 10000 int Length; T CD_LIST[MaxLen]; // hoặc: T * CD_LIST = new T[MaxLen]; Nếu sử dụng chế cấp phát động để cấp phát nhớ cho danh sách đặc cần kiểm tra thành công việc cấp phát động a Các thao tác danh sách đặc a Khởi tạo danh sách (Initialize) b Tạo danh sách/ Nhập danh sách c Thêm phần tử vào danh sách d Tìm kiếm phần tử danh sách e Loại bỏ bớt phần tử khỏi danh sách f Cập nhật giá trị cho phần tử danh sách g Sắp xếp thứ tự phần tử danh sách h Tách danh sách thành nhiều danh sách i Nhập nhiều danh sách thành danh sách j Sao chép danh sách k Hủy danh sách b Ưu điểm nhược điểm danh sách đặc Do phần tử lưu trữ liên tiếp nhớ, danh sách đặc có ưu nhược điểm sau đây: Ưu điểm: - Mật độ sử dụng nhớ danh sách đặc tối ưu tuyệt đối (100%) - Việc truy xuất tìm kiếm phần tử danh sách đặc dễ dàng phần tử đứng liền nên cần sử dụng số để định vị vị trí phần tử danh sách (định vị địa phần tử) QUẢN LÝ SINH VIÊN Nhược điểm: - Việc thêm, bớt phần tử danh sách đặc có nhiều khó khăn phải di dời phần tử khác qua chỗ khác c Ứng dụng danh sách đặc Danh sách đặc ứng dụng nhiều cấu trúc liệu mảng: mảng chiều, mảng nhiều chiều; Mảng cấp phát tĩnh, mảng cấp phát động; … mà nghiên cứu thao tác nhiều q trình lập trình nhiều ngơn ngữ lập trình khác QUẢN LÝ SINH VIÊN CHƯƠNG 2: ỨNG DỤNG DANH SÁCH ĐẶC VÀO QUẢN LÍ SINH VIÊN I ĐẶC TẢ BÀI TOÁN Quản lý sinh viên cơng việc ngày phịng quản lý học sinh- sinh viên Cơng việc quản lý sinh viên địi hỏi tính tỉ mỉ, cẩn thận khâu ghi chép thông tin cá nhân sinh viên: mã số sinh viên, tên sinh viên, ngày tháng năm sinh, lớp….cũng công việc thống kê kết học tập cần rõ ràng xác Trước cơng nghệ thơng tin chưa phát triển mạnh mẽ, công việc xử lý thủ công, chủ yếu ghi chép bút, sổ sách tốn cơng sức nhiều thời gian Ngày mà khoa học kỹ thuật phát triển, đặc biệt bùng nổ cơng nghệ thơng tin việc quản lý sinh viên dễ dàng nhiều Xuất phát từ nhu cầu mà tốn Quản lý sinh viên đời Yêu cầu toán tạo chương trình thực thao tác quản lý sinh viên cách dễ dàng, tiện lợi dựa trợ giúp máy tính Mọi cơng việc phải thao tác vùng liệu chung để đảm bảo việc đồng với khâu quản lý II YÊU CẦU HỆ THỐNG Quản lý điểm sinh viên chương trình quản lý hồ sơ, điểm học tập sinh viên trình theo học trường Chương trình thực cơng việc thêm sinh viên, tìm kiếm sinh viên theo điều kiện đó, xóa sinh viên, liệt kê danh sách sinh viên… Chương trình viết ngơn ngữ C dựa cấu trúc lưu trữ danh sách đặc Hiện trường đại học Việt Nam, doanh nghiệp tiến trình ứng dụng mạnh mẽ phát triển công nghệ thông tin vào quản lý Mới đầu máy tính cá nhân đơn giản mạng thông tin phức tạp Tuy nhiên đặc điểm công nghệ thông tin Việt Nam trình phát triển nên quan tâm đến việc ứng dụng công nghệ thông tin vào quản lý phần mềm hệ thống, phần mềm trợ giúp phần mềm quản lý thay hồn tồn cơng việc thủ cơng chưa quan tâm Với chương trình “quản lý sinh viên” hy vọng giúp cho công tác quản lý sinh viên diễn đơn giản tiết kiệm thời gian III PHÂN TÍCH VÀ THIẾT KẾ CHƯƠNG TRÌNH a Cấu trúc liệu chương trình Để giúp cho việc quản lý chặc chẽ, dễ dàng, chương trình quản lí sinh viên có trường hợp sau: QUẢN LÝ SINH VIÊN - msv (mã sinh viên) có kiểu liệu char, với độ dài 100 kí tự, sinh viên có mã số riêng, khơng trùng lặp fullname (họ tên) có kiểu liệu char, với độ dài 100 kí tự, họ tên sinh viên trùng date (ngày sinh) có kiểu liệu char, với độ dài 100 kí tự, ngày sinh trùng gender (giới tính) có kiểu liệu char, với độ dài 100 kí tự, classs (lớp) có kiểu liệu char, với độ dài 100 kí tự math (điểm tốn) có kiểu liệu float physics (điểm lý) có kiểu liệu float it (điểm tin) có kiểu liệu float dtb (điểm trung bình) có kiểu liệu float, điểm trung bình tính cách lấy trung bình cộng điểm thi mơn học sinh viên hb (học bổng) typedef char infor1[100]; typedef float infor2; struct element { infor1 msv; infor1 fullname; infor1 date; infor1 gender; infor1 classs; infor2 math; infor2 physics; infor2 it; infor2 dtb; infor2 hb; }; b Các chức chương trình Hiển thị danh sách sinh viên - Duyệt danh sách sinh viên file - In thơng tin sinh viên hình Thêm sinh viên vào danh sách - Nhập thông tin chi tiết cho sinh viên - Chèn sinh viên vào danh sách vị trí Tìm thơng tin sinh viên theo họ tên QUẢN LÝ SINH VIÊN - Nhập họ tên sinh viên từ bàn phím - Duyệt qua danh sách sinh viên - Tìm kiếm sinh viên theo họ tên mà người dùng yêu cầu - Hiển thị thông tin sinh viên cần tìm hình Tìm sinh viên theo mã số sinh viên - Nhập mã số sinh viên từ bàn phím - Duyệt qua danh sách sinh viên - Tìm kiếm sinh viên theo họ tên mà người dùng yêu cầu - Hiển thị thông tin sinh viên cần tìm hình Xóa sinh viên khỏi danh sách - Nhập số thự tự cần xóa khỏi danh sách - Duyệt qua danh sách sinh viên - Tìm kiếm sinh viên theo số thứ tự mà người dùng u cầu - Xóa sinh viên vừa tìm Tính điểm trung bình xét học bổng - Duyệt danh sách sinh viên - Thực tính điểm trung bình xét học bổng sinh viên - Hiển thị danh sách sinh viên sau tính điểm trung bình xét học bổng Xóa sinh viên nữ khóa 08 - Duyệt danh sách sinh viên - Tìm kiếm sinh viên nữ khóa 08 - Xóa sinh viên vừa tìm Sắp xếp theo họ tên QUẢN LÝ SINH VIÊN - Duyệt danh sách sinh viên - Sắp xếp danh sách sinh viên theo họ tên - Hiển thị danh sách xếp Chèn sinh viên không thay đổi thứ tự xếp - Nhập thông tin sinh viên từ bàn phím - Duyệt danh sách sinh viên - Hiển thị danh sách xếp 10 Thống kê số lượng học sinh lớp học bổng - Duyệt điểm trung bình học bổng sinh viên - Hiển thị bảng tổng số sinh viên tổng số học bổng lớp 11 Hàm kiểm tra giới tính nhập từ bàn phím (Nam/ Nữ) - Trả kết nhập 12 Hàm kiểm tra ngày tháng nhập từ bàn phím (xx/xx/xx) - Trả kết nhập 13 Hàm kiểm tra tên nhập từ bàn phím ([A-Z]xxx [A-Z]xxx [A-Z]xxx [A-Z]xxx) - Trả kết nhập 14 Ghi kết file - Ghi kết file, thông tin sinh viên hàng IV THUẬT TOÁN, ĐỘ PHỨC TẠP VÀ CÀI ĐẶT CHƯƠNG TRÌNH a Định nghĩa cấu trúc cho chương trình quản lí sinh viên - void insert(DS &A, int &n, int t,infor1 msv,infor1 fullname,infor1 gender,infor1 classs,infor2 math,infor2 physics,infor2 it) - char *rtrim(char *s) - void getlist(DS &A, int &n) date,infor1 QUẢN LÝ SINH VIÊN - void display(DS &A, int n) - void gotoxy(int x, int y) - void menu() - void Displayone (DS A,int i) - void searchname (DS A,infor1 fullname) - void searchid (DS A,infor1 fullname) - void diemtrungbinh (DS &A,int &n) - int check08(DS &A,int i) - void dele(DS &A, int &n, int t) - void delenu(DS &A, int &n) - void OutputHB(DS A,int n) - ChiTiet_Ten Tach_HovaTen(char *pTemp) - int SoSanh(char *x, char *y) - void SapXep(DS A, int n) - void chenvao(DS &A, int &n, int t,infor1 msv,infor1 fullname,infor1 gender,infor1 classs,infor2 math,infor2 physics,infor2 it) - void ghifile(DS A,int n) - void ThongKe(DS A, int n) - int checkdate(infor1 date) - int checkgender(infor1 gender) - int checkname(infor1 name) - int main() b Thuật toán độ phức tạp : 1: Hiển thị danh sách sinh viên: - Duyệt danh sách sinh viên file: date,infor1 QUẢN LÝ SINH VIÊN +Input : Dữ liệu từ file txt người dùng định nghĩa +Output : Dữ liệu nạp vào danh sách chương trình Đọc liệu từ tệp Dữ liệu tệp file txt chứa danh sách sinh viên,mỗi hàng thông tin sinh viên bao gồm mã sinh viên, tên sinh viên ,ngày sinh, giới tính, lớp, điểm mơn tốn, lý, tin Danh sách A, gồm trường .Đọc liệu từ tệp: Bước 1: Đọc hàng tệp, lưu vào mảng ký tự A[i] Bước 2: Thực cắt chuỗi, gặp dấu “;” cắt phần trước lưu vào biến tương ứng, ví gặp mã sinh viên cắt mã sinh viên lưu vào biến msv Bước 3: Các điểm toán, lý, tin chuyển từ kiểu ký tự sang số lưu vào biến điểm tương ứng (math, physics,it) Bước 4: Sau hoàn thành việc chuyển ký tự hàng vào biến tương ứng, thực ghi vào danh sách A hàm insert (trình bày mục 2.4.2.2) Bước 5: Thực tương tự đến kết thúc file +Độ phức tạp thuật toán : trường hợp xấu vịng while thực n lần độ phức tạp thuật toán : T(n) = O(n) .Tệp demo sau : - In thông tin sinh viên hình: Hàm display dùng để in thơng tin sinh viên hình 10 QUẢN LÝ SINH VIÊN m=m-1; } else j=j+1; } printf("Lop\t\t So sinh vien\t Tong So Hoc Bong\n"); for (int i=0;i

Ngày đăng: 26/08/2017, 20:57

TỪ KHÓA LIÊN QUAN

w