ImageVerifierCode 换一换
格式:DOC , 页数:14 ,大小:300.79KB ,
资源ID:11023567      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-11023567.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构课程设计报告-学生宿舍管理系统.doc)为本站会员(精品资料)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

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

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

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

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

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

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

6、u_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_hcMAXSIZE;6、源程序在运行文件目录下新建学生宿舍信息文件夹。#include “stdio.h“

7、#include “stdlib.h“#include “string.h“#include “malloc.h“#include “windows.h“typedef struct stu_hcchar name7;double num;long rnum;struct stu_hc *prior;struct stu_hc *next;stu_hc;typedef struct 第一个宿舍在链表中起始地址宿舍人数、学号最大和最小值第二个宿舍在链表中起始地址宿舍人数、学号最大和最小值第三个宿舍在链表中起始地址宿舍人数、学号最大和最小值关键字、冲突次数该姓名在链表中地址关键字、冲突次数该姓名在

8、链表中地址关键字、冲突次数该姓名在链表中地址stu_hc*head;int 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

9、(l-rnuml1-rnum|l-rnum=l1-rnumelse 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(

10、fname);clearroot_hc();strcat(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“,l-next=NULL;l-prior=NULL;else if(compkey_hc(l,l1)l1-next=l;l1-prior=NULL;l-prior=l1;l=l1;

11、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(“%ldt%.0f

12、t%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;el

13、se+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)

14、;printf(“n输入宿舍号:“);flushall();scanf(“%ld“,while(lowrnum=roomnum) break;else if(imid.head-rnumroomnum)high=mid-1;else low=mid+1;if(lowrnum,l-num,l-name);l=l-next;else printf(“%s班没有这个宿舍号的学生!n“,root);stu_hc* deletelist_hc(stu_hc*l,stu_hc *l1)char flat;printf(“是否删除此信息(Y/N):“);flushall();flat=getchar();i

15、f(flat=Y)tag=1;peosum-;if(l1-prior=NULL)l=l-next;elsel1-next-prior=l1-prior;l1-prior-next=l1-next;free(l1);return(l);stu_hc *seek_hc2(stu_hc *l,index_hc *i)stu_hc *l1;int j,k=0;double number;printf(“输入学号:“);flushall();scanf(“%lf“,for(j=0;jnumber)break;else if(ij.minnum=number|ij.maxnum=number)break;

16、if(j=roomsum)printf(“找不到此学生!n“);return(l);elsel1=ij.head;for(k=0;knum=number)printf(“%ldt%.0ft%sn“,l1-rnum,l1-num,l1-name);break;l1=l1-next;if(k=ij.nop)printf(“找不到此学生!n“);return(l);return(deletelist_hc(l,l1);int hash(char s)return abs(s0+s1+s2+s3)%97;void insertht_hc(hashtable_hc ha,char k,stu_hc *l

17、)int i,p=hash(k);if(strcmp(hap.key,“)=0)strcpy(hap.key,k);hap.count=1;hap.stu=l;elsei=0;dohap.count+;p=(p+1)%MAXSIZE;i+;while(strcmp(hap.key,“)!=0);strcpy(hap.key,k);hap.count=i;hap.stu=l;void createht_hc(hashtable_hc ha,stu_hc *l)int i;for(i=0;iname,l);l=l-next;stu_hc *seek_hc3(stu_hc *l)hashtable_

18、hc ha;stu_hc *l1;int p;char k7;createht_hc(ha,l);printf(“输入要查找的姓名:“);flushall();gets(k);p=hash(k);while(strcmp(hap.key,k)!=0if(hap.count=0)printf(“找不到此学生!n“ );return(l);l1=hap.stu;printf(“%ldt%.0ft%sn“,l1-rnum,l1-num,l1-name);return(deletelist_hc(l,l1);void newfile_hc()FILE*fp;char fname10;long room

19、num;double number;char name7;printf(“新文件名(以班级为文件名):“);flushall();gets(fname);clearroot_hc();strcat(root,fname);strcat(root,sname);fp=fopen(root,“w“);printf(“输入文件内容以-1结束(roomnum number name):n“);flushall();scanf(“%d“,while(roomnum!=-1)scanf(“%lf %s“,fprintf(fp,“%ld %.0f %sn“,roomnum,number,name);flus

20、hall();scanf(“%ld“,fclose(fp);void digfile_hc()FILE*fp;char fname10;long roomnum;double number;char name7;printf(“输入已有班级:“);flushall();gets(fname);clearroot_hc();strcat(root,fname);strcat(root,sname);fp=fopen(root,“at“);printf(“输入插入内容以-1结束(roomnum number name):n“);flushall();scanf(“%d“,while(roomnum

21、!=-1)scanf(“%lf %s“,fprintf(fp,“%ld %.0f %sn“,roomnum,number,name);flushall();scanf(“%ld“,fclose(fp);void welcome_hc()int i=0,j;while(irnum,l-num,l-name);l=l-next;fclose(fp);void keep_hc(stu_hc *l)char keep;if(tag=1)printf(“是否保存修改(Y/N):“ );flushall();keep=getchar();tag=0;if(keep=Y)writefile_hc(l);fr

22、ee(l);main()stu_hc *l;int x;welcome_hc();system(“cls“);menu1_hc();flushall();scanf(“%d“,while(x)if(x=1)system(“cls“);newfile_hc();else if(x=2)if(l=createlist_hc()!=NULL)seekmenu_hc(l);else if(x=3)system(“cls“);printlist_hc();else if(x=4)system(“cls“);digfile_hc();keep_hc(l);system(“pause“);system(“c

23、ls“);menu1_hc();flushall();scanf(“%d“,goodbye_hc();7、测试例子及结果分析欢迎界面与退出界面有一些代码效果无法截图显示,另外主菜单的(1)新建文件与(4)追加插入文件信息是对磁盘文件的读写不作截图。选择 2,对 09 计单班宿舍信息进行查找。8、心得体会通过这一个星期左右的数据结构课程设计,使我从中获益匪浅,在指导老师的精心教导下,我学会了如何编写一个简单的小软件,如何把所学的理论知识和实践联系起来。虽然我对很多数据结构的知识运用得还不是很熟练,但是我相信通过自己努力一定会得到提高。在实习中,我做的项目是宿舍查询管理系统。它基本满足了界面友好,

24、易于操作的要求,因此更利于用户操作方便,运行简易,从而达到对宿舍管理员和学生信息更加有效的管理,并且速度更快、内容更直接地,达到用户所想要的效果。这个软件实现了对宿舍管理员对学生信息库的建立,对学生信息的新建、查找、删除、插入等操作。由此来系统化管理宿舍信息,能够达到方便迅捷、易于管理的目的。我设计的这个软件仍然存在一些不足,例如不太美观。通过这次数据结构课程设计,我发现理论和实践要充分地结合起来,而且以后要想在编程这方面发展还必需要扎实的基本功。特别是向我们学的计算机专业,实践尤其重要。在这次做课程设计的过程中,我还发现专业知识的功底一定要扎实,简单的学好那是不行的,一定要专业,这样在以后的工作中才会游刃有余。在这次做课程设计的过程中学到了很多,希望我能够在以后充分利用这样的机会来充实自己,提高水平。指导教师签字: 年 月 日

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报