ĐỒ ÁN TỐT NGHIỆP: Đề tài "Quản lý ký túc xá sinh viên của trường đại học"

29 289 0
ĐỒ ÁN TỐT NGHIỆP: Đề tài "Quản lý ký túc xá sinh viên của trường đại học"

Đ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

BÁO CÁO ĐỒ ÁN GIẢI THUẬT VÀ LẬP TRÌNHĐỀ TÀI:QUẢN LÝ KÝ TÚC XÁ SINH VIÊNCỦA TRƯỜNG ĐẠI HỌCViết chương trình quản lý ký túc xá sinh viên đọc dữ liệu từ file văn bản có lưu trữ khoảng 1020 mẫu tin (record) và lưu vào danh sách liên kết kép. Sau đó thực hiện các thao tác trên danh sách liên kết và thực hiện các chức năng đã nêu ở trên theo yêu cầu.

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO ĐỒ ÁN GIẢI THUẬT VÀ LẬP TRÌNH ĐỀ TÀI: QUẢN TÚC SINH VIÊN CỦA TRƯỜNG ĐẠI HỌC GVHD SVTH : : Nhóm : PHAN THANH TAO TRỊNH MINH AN – 14T2 BÙI VĂN THẢO – 14T2 NHÓM 14.10 Đà Nẵng, 05/2017 Lời nói đầu Tin học ngày trở thành ngành khoa học quan trọng sống đại, tin học góp phần hỗ trợ nhiều ngành Có thể nói ngày việc tin học hóa ngành nghề cho thấy tầm quan trọng cơng nghệ thơng tin Do việc học tập nghiên cứu tin học trở nên cần thiết tất yếu người Cấu trúc liệu giải thuật môn học sở chương trình đào tạo kỹ sư cơng nghệ thông tin Ở làm quen với số kiến thức cấu trúc liệu giải thuật có liên quan, từ tao điều kiện cho việc nâng cao thêm kỹ thuật lập trình, phương pháp giải tốn, giúp sinh viên có khả sâu thêm vào môn học chuyên ngành Đồng thời giúp tổ chức liệu để giải toán cách hiệu tối ưu Việc đưa tin học vào công việc quản nhằm giảm bớt sức lao động, tiết kiệm thời gian hiệu so với việc quản thủ cơng giấy tờ trước Tin học hóa thu hẹp không gian lưu trữ, tránh thất liệu, tự động hóa cụ thể hóa thơng tin theo nhu cầu người Ở Việt Nam, ngành tin học bước bứt phá đạt thành công công việc áp dụng tin học vào việc phát triển kinh tế - hội khẳng định thị trường quốc tế Chính vậy, chúng em nhận đề tài xây dựng Chương trình quản túc sinh viên, với kiến thức học trình tìm hiểu, đặc biệt hướng dẫn nhiệt tình thầy Phan Thanh Tao, chúng em hoàn thành đề tài với tốn quản Trong q trình làm đề tài khơng tránh khỏi thiếu sót, chúng em mong nhận đc giúp đỡ quý thầy cô ý kiến bạn cho đề tài chúng em hoàn thiện Em xin chân thành cảm ơn! Sinh viên thực ĐỒ ÁN GIẢI THUẬT VÀ LẬP TRÌNH – QUẢN TÚC GVHD : Phan Thanh Tao MỤC LỤC I GIỚI THIỆU ĐỀ TÀI·············································2 II GIẢI PHÁP························································3 Cấu trúc liệu··························································3 Thuật tốn································································3 Chương trình·····················································10 Đánh giá chương trình··········································22 III LỜI KẾT····························································22 IV TÀI LIỆU THAM KHẢO·········································23 Trịnh Minh An – Lớp 14T2 Bùi Văn Thảo – Lớp 14T2 GVHD : Phan Thanh Tao ĐỒ ÁN GIẢI THUẬT VÀ LẬP TRÌNH – QUẢN TÚC I GIỚI THIỆU ĐỀ TÀI ĐỀ TÀI: Quản túc sinh viên Đại học Bách Khoa Đà Nẵng Khởi tạo lớp gồm:Lớp SinhVien, Lớp Phong, Lớp HopDong, Lớp Date Mỗi lớp chứa thông tin cần quản lý(thuộc tính) gồm: SinhVien Phong Mã số sinh viên Tên sinh viên Giới tính Ngày sinh Lớp Khoa Mã phòng Tên phòng Mã nhà Loại phòng Số lượng MAX=8 Số lượng MIN Giá phòng=650000 HopDong Date Mã hợp đồng Mã sinh viên Mã phòng Ngày bắt đầu HD Ngay het han HD Trạng thái HD Ngày Tháng Năm Sau thực cơng đoạn để thành lập chức cho chương trình:  Đăng hợp đồng  In tình trạng phòng túc  Thống kê tình trạng túc  Chức trả phòng, hủy hợp đồng  Chức chuyển phòng, sửa hợp đồng  Chức gia hạn phòng  Các chức tìm kiếm u cầu: Viết chương trình quản túc sinh viên đọc liệu từ file văn có lưu trữ khoảng 10-20 mẫu tin (record) lưu vào danh sách liên kết kép Sau thực thao tác danh sách liên kết thực chức nêu theo yêu cầu Trịnh Minh An – Lớp 14T2 Bùi Văn Thảo – Lớp 14T2 ĐỒ ÁN GIẢI THUẬT VÀ LẬP TRÌNH – QUẢN TÚC GVHD : Phan Thanh Tao Trịnh Minh An – Lớp 14T2 Bùi Văn Thảo – Lớp 14T2 ĐỒ ÁN GIẢI THUẬT VÀ LẬP TRÌNH – QUẢN TÚC GVHD : Phan Thanh Tao II GIẢI PHÁP Cấu trúc liệu - Input: Dữ liệu lấy thông tin sinh viên từ file “DataSinhVien.txt”, thông tin hợp đồng từ file “DataHopDong.txt”, thông tin phòng từ file “DataPhong.txt” - Output: * Thực chức năng:           Đăng hợp đồng In thông tin phòng tổng quát In thống kê danh sách tất phòng In thống kê danh sách tất sinh viên túc In thống kê danh sách tất hợp đồng Thực thao tác trả phòng, hủy hợp đồng theeo mã số sinh viên theo mã số hợp đồng Thực thao tác chuyển phòng, thay đổi thơng tin hợp đồng Thực gia hạn phòng theo mã hợp đồng mã số sinh viên Thực thao tác tìm kiếm tìm theo “key word”, tìm theo thơng tin sinh viên, tìm theo thơng tin phòng, tìm theo thơng tin hợp đồng Thốt lưu liệu * Sau chương trình, liệu bị thay đổi update liệu vào file cũ Thuật toán - Khai báo: + Các danh sách liên kết kép cho đối tượng SinhVien, HopDong, Phong + Các biến lưu thông tin đối tượng SinhVien (Mã số sinh viên, Họ tên, Giới tính, Ngày sinh, Lớp, Khoa), biến lưu thông tin đối tượng HopDong(Mã hợp đồng, Mã số sinh viên, Mã phòng, Ngày bắt đầu hợp đồng, Ngày kết thúc hợp đồng, Tình trạng hợp đồng), biên lưu thơng tin đối tượng Phong(Mã phòng, Tên phòng, Mã khu nhà, Loại phòng[NAM/NỮ], Số lượng tối đa[8], Số lượng tại, Giá phòng[650000]), biến lưu thơng tin đối tượng Date(ngày, tháng, năm) biến cập nhật dựa theo biến cho trước Trịnh Minh An – Lớp 14T2 Bùi Văn Thảo – Lớp 14T2 ĐỒ ÁN GIẢI THUẬT VÀ LẬP TRÌNH – QUẢN TÚC GVHD : Phan Thanh Tao - Sử dụng hàm để cài đặt danh sách liên kết: struct DataSV { SinhVien data; DataSV *next, *pre; }; struct ListSV { DataSV *head, *tail; }; - Sử dụng hàm để khởi tạo phần tử cho danh sách liên kết: DataSV* CreateNode(SinhVien data) { DataSV* node = new DataSV; if (node != NULL) { node->data = data; node->next = node->pre = NULL; } return node; } - Sử dụng hàm để chèn phần tử vào danh sách liên kết bao gồm:  Chèn phần tử vào đầu danh sách void AddHead(ListSV& list, DataSV* data) { if (!list.head) { list.head = list.tail = data; } else { list.head->pre = data; data->next = list.head; list.head = data; } }  Chèn phần tử vào cuối danh sách void AddTail(ListSV& list, DataSV* data) { if (!list.head) { list.head = list.tail = data; } else { list.tail->next = data; data->pre = list.tail; list.tail = data; } } Trịnh Minh An – Lớp 14T2 Bùi Văn Thảo – Lớp 14T2 ĐỒ ÁN GIẢI THUẬT VÀ LẬP TRÌNH – QUẢN TÚC GVHD : Phan Thanh Tao  Chèn phần tử vào sau phần tử danh sách void AddAfter(ListSV& list, DataSV* data, DataSV* after) { if (!after) { AddHead(list, data); } else { if (after == list.tail) { AddTail(list, data); } else { data->next = after->next; data->pre = after; after->next->pre = data; after->next = data; } } }  Chèn phần tử vào trước phần tử danh sách void AddBefore(ListSV& list, DataSV* data, DataSV* before) { if (!before) { AddHead(list, data); } else { if (before==list.head) { AddHead(list, data); } else { data->pre = before->pre; data->next = before; before->pre->next = data; before->pre = data; } } } - Sử dụng hàm duyệt in phần tử danh sách liên kết: void ShowNext(ListSV list) { for (DataSV* i=list.head; i; i = i->next) { cout data; } } - Sử dụng hàm để tìm kiếm phần tử danh sách liên kết: Trịnh Minh An – Lớp 14T2 Bùi Văn Thảo – Lớp 14T2 ĐỒ ÁN GIẢI THUẬT VÀ LẬP TRÌNH – QUẢN TÚC GVHD : Phan Thanh Tao DataSV* SearchNode(ListSV list, int key) { DataSV* i = list.head; while (i && i->data.get_id() != key) i = i->next; return i; } - Sử dụng hàm để xóa phần tử danh sách liên kết gồm:  Xóa phần tử danh sách void RemoveHead(ListSV& list) { if (!list.head) { cout next->pre = NULL; list.head = list.head->next; delete temp; } }  Xóa phần tử cuối danh sách void RemoveTail(ListSV& list) { if (!list.head) { cout pre->next = NULL; list.tail = list.tail->pre; delete temp; } }  Xóa phần tử sau phần tử danh sách void RemoveAfter(ListSV& list, DataSV* after) { if (!list.head) { cout next->next->pre = after; after->next = after->next->next; delete tmp; }  Xóa phần tử trước phần tử danh sách void RemoveBefore(ListSV& list, DataSV* before) { if (!list.head) { cout pre->pre->next = before; before->pre = before->pre->pre; delete tmp; } }  Xóa phần tử theo từ khóa (key) danh sách void RemoveKey(ListSV& list, int key) { DataSV* result = SearchNode(list, key); if(result) { if (list.head->data.get_id() == key) { RemoveHead(list); } else if (list.tail->data.get_id() == key) { RemoveTail(list); } else { result->pre->next = result->next; result->next->pre = result->pre; delete result; } } else { cout data.get_GioiTinh()) + ":" + to_string(date.get_day()) + ":"; tmp += to_string(date.get_month()) + ":" + to_string(date.get_year()) + ":" + d->data.get_Lop() + ":" +d>data.get_Khoa() ; myfile next != NULL) { //Có thêm "\n" Date date = d->data.get_NgaySinh(); string tmp = to_string(d->data.get_id()) + ":" + d->data.get_Ten() + ":" + to_string(d->data.get_GioiTinh()) + ":" + to_string(date.get_day()) + ":"; tmp += to_string(date.get_month()) + ":" + to_string(date.get_year()) + ":" + d->data.get_Lop() + ":" + d>data.get_Khoa() + "\n"; myfile next; } Date date = d->data.get_NgaySinh(); string tmp = to_string(d->data.get_id()) + ":" + d->data.get_Ten() + ":" + to_string(d->data.get_GioiTinh()) + ":" + to_string(date.get_day()) + ":"; tmp += to_string(date.get_month()) + ":" + to_string(date.get_year()) + ":" + d->data.get_Lop() + ":" + d>data.get_Khoa(); myfile

Ngày đăng: 03/05/2019, 10:58

Từ khóa liên quan

Mục lục

  • I. GIỚI THIỆU ĐỀ TÀI

  • II. GIẢI PHÁP

    • 1. Cấu trúc dữ liệu

    • 2. Thuật toán

    • 3. Chương trình

    • 4. Đánh giá chương trình

    • III. LỜI KẾT

    • IV. TÀI LIỆU THAM KHẢO

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan