数据结构课程设计报告学生宿舍管理系统.doc

上传人:re****.1 文档编号:548020669 上传时间:2023-01-08 格式:DOC 页数:15 大小:215.54KB
返回 下载 相关 举报
数据结构课程设计报告学生宿舍管理系统.doc_第1页
第1页 / 共15页
数据结构课程设计报告学生宿舍管理系统.doc_第2页
第2页 / 共15页
数据结构课程设计报告学生宿舍管理系统.doc_第3页
第3页 / 共15页
数据结构课程设计报告学生宿舍管理系统.doc_第4页
第4页 / 共15页
数据结构课程设计报告学生宿舍管理系统.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《数据结构课程设计报告学生宿舍管理系统.doc》由会员分享,可在线阅读,更多相关《数据结构课程设计报告学生宿舍管理系统.doc(15页珍藏版)》请在金锄头文库上搜索。

1、成绩 徐州工程学院课 程 设 计 报 告 课 程 名 称 数据结构课程设计 专 业 计算机科学与技术 班 级 09计单 学 生 姓 名 黄 晨 学 号 * 设 计 题 目 宿舍查询管理系统 指 导 教 师 * 设计起止时间:2023 年 6 月20日至2023年6月21日一. 课程设计的背景:为学生提供了一个既动手又动脑,独立实践的机会,通过课程设计的综合训练,旨在帮助学生进一步系统的掌握数据结构这门课的重要内容,并进一步培养学生分析问题和解决问题的能力,重要体现在可以让学生针对实际问题有效地组织数据,选择合适的数据结构,并进行对的和高效的算法设计,并用程序实现算法。该课的课程设计是一个良好的

2、程序设计技能训练的过程。二. 课程设计的内容和规定:1、基本内容任务:为宿舍管理人员编写一个宿舍管理查询软体。2、基本规定1、建立数据文献,数据文献按关键字(房号、学号、姓名)查询。2、主菜单(1)新建班级宿舍信息(2)查找已有班级宿舍信息(3)输出已有班级宿舍信息(4)插入已有班级学生信息(0)退出3、查询菜单(1)按宿舍号查找(2)按学号查找(3)按姓名查找(0)退出4、可以连续操作。5、新建班级宿舍信息在磁盘上新文献并写入数据。查找已有班级宿舍信息读入磁盘文献数据使用插入排序建立双向链表存储数据,分别使用索引表查找,折半查找,哈稀表查找对链表进行查询同时选择是否删除。输出已有班级宿舍信息

3、读入磁盘文献数据,排序后输出。插入已有班级学生信息对磁盘文献进行追加写入。三.重要参考文献:1.数据结构课程设计, 苏仕华 等编著, 机械工业出版社, 2023.5.第一版;2.算法与数据结构,范策等编著,机械工业出版社 2023,第一版。3数据结构 (C语言版),严蔚敏等编著,清华大学出版社 20234数据结构实用教程(第二版),徐孝凯编著,清华大学出版社 20235数据结构,谢楚屏等编著,人民邮电出版社6数据结构与算法导论,徐绪松等著,电子工业出版社四. 课程设计进度计划(以天为单位):起 止 日 期工 作 内 容备 注6 月20日插入排序建立双向链表存储数据函数,分别使用索引表查找,折半

4、查找,哈稀表查找对链表进行查询函数,同时选择是否删除记录调用删除函数。磁盘文献在“学生宿舍信息09计单.txt”目录下6月21日在磁盘上新建文献并写入数据函数,追加写入文献函数,输出文献信息函数,欢迎退出主菜单查询菜单等函数。磁盘文献都保存学生宿舍信息文献夹下。一、问题描述 任务:为宿舍管理人员编写一个宿舍管理查询软体。二、基本规定1、建立数据文献,数据文献按关键字(房号、学号、姓名)查询。2、主菜单(1)新建班级宿舍信息(2)查找已有班级宿舍信息(3)输出已有班级宿舍信息(4)插入已有班级学生信息(0)退出3、查询菜单(1)按宿舍号查找(2)按学号查找(3)按姓名查找(0)退出4、可以连续操

5、作。三、 算法思想新建班级宿舍信息在磁盘上新文献并写入数据。查找已有班级宿舍信息读入磁盘文献数据使用插入排序建立双向链表存储数据,分别使用索引表查找,折半查找,哈稀表查找对链表进行查询同时选择是否删除。输出已有班级宿舍信息读入磁盘文献数据,排序后输出。插入已有班级学生信息对磁盘文献进行追加写入。四、 模块划分:涉及一些必要的流程图欢迎界面主菜单主菜单退出界面插入已有班级学生信息输出已有班级学生信息新建班级宿舍信息查找已有班级学生信息查询菜单按宿舍号查找按姓名查找按学号查找五、 数据结构typedef struct stu_hcchar name7;double num;long rnum;st

6、ruct stu_hc *prior;struct stu_hc *next;stu_hc;Name,num, rnum;NULLName,num, rnum;NULLName,num, rnum;typedef struct stu_hc*head;int nop;double minnum,maxnum;index_hc;第一个宿舍在链表中起始地址宿舍人数、学号最大和最小值第三个宿舍在链表中起始地址宿舍人数、学号最大和最小值第二个宿舍在链表中起始地址宿舍人数、学号最大和最小值typedef structchar key7;int count;stu_hc *stu; hashtable_h

7、cMAXSIZE;关键字、冲突次数该姓名在链表中地址关键字、冲突次数该姓名在链表中地址关键字、冲突次数该姓名在链表中地址六、 源程序在运营文献目录下新建学生宿舍信息文献夹。#include stdio.h#include stdlib.h#include string.h#include malloc.h#include windows.htypedef struct stu_hcchar name7;double num;long rnum;struct stu_hc *prior;struct stu_hc *next;stu_hc;typedef struct stu_hc*head;i

8、nt nop;double minnum,maxnum;index_hc;#define MAXSIZE 100typedef structchar key7;int count;stu_hc *stu; hashtable_hcMAXSIZE;int peosum,roomsum,tag=0;char root100;char sname=.txt;void clearroot_hc()strcpy(root,学生宿舍信息);int compkey_hc(stu_hc *l,stu_hc *l1)int f;if(l-rnuml1-rnum|l-rnum=l1-rnum&l-numl1-nu

9、m)f=1;else f=0;return (f);stu_hc *place_hc(stu_hc *l,stu_hc *l1)stu_hc *l2=l-next,*l3=l;while(l2!=NULL)if(compkey_hc(l2,l1)break;l2=l2-next;l3=l3-next;return(l3);stu_hc *createlist_hc()stu_hc *l,*l1,*l2;FILE*fp;char fname10;l=NULL;peosum=0;printf(要执行操作的班级为:);flushall();gets(fname);clearroot_hc();str

10、cat(root,fname);strcat(root,sname);if(!(fp=fopen(root,r)printf(找不到文献!n);return(l);while(1)l1=(stu_hc*)malloc(sizeof(stu_hc);if(!l1)printf(错误(1)n),exit(0);if(fscanf(fp,%ld %lf %s,&l1-rnum,&l1-num,l1-name)0)if(l=NULL)l=l1;l-next=NULL;l-prior=NULL;else if(compkey_hc(l,l1)l1-next=l;l1-prior=NULL;l-prior

11、=l1;l=l1;else l2=place_hc(l,l1);if(l2-next=NULL)l2-next=l1;l1-next=NULL;l1-prior=l2;elsel1-next=l2-next;l2-next-prior=l1;l1-prior=l2;l2-next=l1;peosum+;else break;fclose(fp);return(l);void printlist_hc()stu_hc*l;l=createlist_hc();if(l!=NULL)printf(%s班学生宿舍信息为:roomnum/num/namen,root);while(l)printf(%l

12、dt%.0ft%sn,l-rnum,l-num,l-name);l=l-next;free(l);index_hc *createindex_hc(stu_hc *l)index_hc *i,*newbase;int k=0;i=(index_hc*)malloc(peosum*sizeof(index_hc);if(!i)printf(错误(2)n),exit(0);ik.head=l;ik.nop=1;ik.maxnum=l-num;ik.minnum=l-num;l=l-next;while(l)if(ik.head-rnum=l-rnum)ik.nop+;ik.maxnum=l-num

13、;else+k;ik.head=l;ik.nop=1;ik.maxnum=l-num;ik.minnum=l-num;l=l-next;roomsum=k+1;newbase=(index_hc*)realloc(i,roomsum*sizeof(index_hc);if(!newbase)printf(错误(3)n),exit(0);return(newbase);void seek_hc1(index_hc *i)stu_hc *l;long roomnum;int low=0,high=roomsum-1,mid,j;printf(该班同学使用的宿舍有:);for(j=0;jrnum);printf(n输入宿舍号:);flushall();scanf(%ld,&roomnum);while(low=

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 商业合同/协议

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号