- 8
- 0
- 约2万字
- 约 36页
- 2016-10-15 发布于贵州
- 举报
学生宿舍楼宇房管理说明书
*******************
实践教学
*******************
计算机与通信学院
2011年春季学期
算法与数据结构 课程设计
题 目:学生宿舍楼宇房间管理系统
专业班级:计算机科学与技术(2)班
姓 名:
学 号:
指导教师:
成 绩:
目 录
摘 要 1
前 言 2
正 文 3
1. 采用类c语言定义相关的数据类型 3
2. 各模块的伪码算法 3
函数的调用关系图 7
3. 调试分析 8
4. 测试结果 8
5. 源程序(带注释) 13
总 结 31
参考文献 32
致 谢 33
附件Ⅰ 部分源程序代码 34
摘 要
该学生宿舍楼宇房间管理,可以实现学生宿舍楼宇各种信息的输入,可以实现对楼宇信息的修改,也可以进行插入、删除操作,可以按照楼号进行查询,可分别进行管辖区域信息、公寓楼信息和公寓宿舍信息的浏览,也可以统计学生宿舍楼宇各种信息。
关键词: 插入;删除;查询;统计
前 言
该设计以要求以学生宿舍楼宇房间管理为背景,设计一个可实现管辖区域的添加、查看、修改、删除、公寓楼信息的查询、统计、公寓宿舍信息的添加、修改、汇总、统计空宿舍等功能的管理系统。按照任务书的要求,我一步步进行设计,最后基本完成了课程设计的要求,但还是有很多的不足之处。
在这个简单的学生宿舍楼宇房间管理程序中,使用了链表这个动态数据结构。链表是动态数据结构中最简单的一种。它是一种用前后链指针连接的若干个有限结点的集合,其连接是前一个结点的尾指针指向下一个结点的起始地址,从而连接成的一个链,所以它是一种线性的动态数据结构。在该程序中,采用了动态存储分配技术,这样可以有效地利用有限的内存空间。要实现它,就必须使用malloc()和free()函数。该程序主要使用了链表的插入、删除、查询。除了使用链表,还使用了文件的操作。
正 文
采用类c语言定义相关的数据类型
struct building /*定义结构体*/
{
char num[10]; /*楼号*/
char address[20]; /*地址*/
char total[30]; /*楼宇总数*/
char E_dormitory[50]; /*空宿舍数*/
char floor[4]; /*楼层数*/
char D_total[30]; /*每层宿舍数*/
char roomnum[10]; /*宿舍号*/
char D_telephone[20]; /*宿舍电话*/
char renshu[10]; /*宿舍容纳人数*/
char member[30]; /*宿舍成员*/
};
typedef struct node /*线性单链表的存储结构*/
{
struct building data;
struct node *next;
}Node,*Link;
各模块的伪码算法
1 链表的插入是根据某一关键字的顺序来进行插入操作的。要实现它,需要用三个指针,一个头指针、一个指向开辟新结点的指针,以及一个用来保存刚刚建立的结点的指针。该算法如下:
void InsList(LinkList*head,int i,DataType e)
{/*在带头结点的单链表head的第i个结点之前插入值为e的新结点*/
Node*p,*q;
int j;
p=head-link;j=1;
while(p!=NULLji-1)
/*在第i个结点之前插入,则需先找其前驱结点,即第i-1个结点,使指针p指向它*/
{p=p-link;
j++;
}
if(j!=i-1)
/*p=NULL时,链表为空,不存在第i个结点;或者i1,则插入位置不合理*/
{printf(“插入位置不合理!”);
return ERROR;
}
q=(Node*)malloc(sizeof(Node)); /*为e申请一个新的结点并由q指向它*/
q-data=e; /*将待插入结点的值e赋给q的数据域*/
q-link=p-link; /*将第i个结点链接在新结点q之后*/
p-li
原创力文档

文档评论(0)