数据结构课设宿舍管理系统Word下载.docx

上传人:b****1 文档编号:4689477 上传时间:2023-05-03 格式:DOCX 页数:38 大小:139.75KB
下载 相关 举报
数据结构课设宿舍管理系统Word下载.docx_第1页
第1页 / 共38页
数据结构课设宿舍管理系统Word下载.docx_第2页
第2页 / 共38页
数据结构课设宿舍管理系统Word下载.docx_第3页
第3页 / 共38页
数据结构课设宿舍管理系统Word下载.docx_第4页
第4页 / 共38页
数据结构课设宿舍管理系统Word下载.docx_第5页
第5页 / 共38页
数据结构课设宿舍管理系统Word下载.docx_第6页
第6页 / 共38页
数据结构课设宿舍管理系统Word下载.docx_第7页
第7页 / 共38页
数据结构课设宿舍管理系统Word下载.docx_第8页
第8页 / 共38页
数据结构课设宿舍管理系统Word下载.docx_第9页
第9页 / 共38页
数据结构课设宿舍管理系统Word下载.docx_第10页
第10页 / 共38页
数据结构课设宿舍管理系统Word下载.docx_第11页
第11页 / 共38页
数据结构课设宿舍管理系统Word下载.docx_第12页
第12页 / 共38页
数据结构课设宿舍管理系统Word下载.docx_第13页
第13页 / 共38页
数据结构课设宿舍管理系统Word下载.docx_第14页
第14页 / 共38页
数据结构课设宿舍管理系统Word下载.docx_第15页
第15页 / 共38页
数据结构课设宿舍管理系统Word下载.docx_第16页
第16页 / 共38页
数据结构课设宿舍管理系统Word下载.docx_第17页
第17页 / 共38页
数据结构课设宿舍管理系统Word下载.docx_第18页
第18页 / 共38页
数据结构课设宿舍管理系统Word下载.docx_第19页
第19页 / 共38页
数据结构课设宿舍管理系统Word下载.docx_第20页
第20页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数据结构课设宿舍管理系统Word下载.docx

《数据结构课设宿舍管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《数据结构课设宿舍管理系统Word下载.docx(38页珍藏版)》请在冰点文库上搜索。

数据结构课设宿舍管理系统Word下载.docx

2、设计结构体及函数表

(1)结构体

#defineN100//宏定义,线性表的初始最大长度

#defineM10//宏定义,

typedefstruct

{

charname[20];

//学生姓名

}Stu;

intnum;

//宿舍号

charsex[4];

//性别

intrn_num;

//容纳人数

intfee;

//宿舍费用

intyz_num;

//已住人数

Stu*stud;

//入住学生姓名

}room;

//宿舍信息

typedefstruct

intlen;

//当前长度

room*data;

//存储空间基址

intlinesize;

//当前分配的存储容量

}linklist;

//定义线性表

intf;

//全局变量,存放操作序号

2)函数表

voidinit(linklist&

l);

/*参数:

线性表l*/

/*返回值:

无返回值*/

/*功能:

对线性表l进行初始化*/

voidroom_num_sort(linklist&

利用宿舍号对宿舍进行排序*/

voidmenu();

无参数*/

显示操作菜单*/

voiddisplay1(linklist&

/功能:

显示宿舍的相关信息(除宿舍已住人数及已住学生姓名外)*/

voiddisplay2(linklist&

显示宿舍的相关信息(包括宿舍已住人数及已住学生姓名)*/

voidfunction1(linklist&

录入宿舍的相关信息*/

voidfunction2(linklist&

将学生安排到已经输入的宿舍里住宿*/

voidfunction3(linklist&

已住学生退宿*/

voidfunction4(linklist&

通过宿舍号查询指定宿舍的相关信息*/

voidmain();

主函数*/

3)主函数与各模块的调用

linklistl;

//定义线性表l

init(l);

//调用初始化函数

charch,ch2;

system("

color1e"

);

//调节显示的背景以及前景

printf("

\n"

*************************欢迎进入宿舍管理查询系统*************************\n"

请按任意键开始操作:

"

Fflush(stdin);

//清空输入缓冲区,以得到正确的输入结果

scanf("

%c"

&

ch);

cls"

//将屏幕先前显示的内容清理掉

menu();

//调用主菜单函数

while(f!

=0)

switch(f)

{

case1:

function1(l);

break;

//调用录入宿舍信息函数

case2:

function2(l);

//调用学生入宿函数

case3:

function3(l);

//调用学生退宿函数

case4:

function4(l);

//调用查询宿舍信息函数

case5:

printf("

是否退出系统<

y/n>

:

\t"

fflush(stdin);

scanf("

ch2);

if(ch2=='

y'

||ch2=='

Y'

{

system("

exit(0);

}

else

menu();

}break;

}

}

四详细设计

各算法的实现

1)定义结构体

//性别

//入住学生姓名

}room;

2)定义顺序表

//当前分配的存储容量

3)功能菜单的显示

voidmenu()

charch;

printf("

|****************************************************************|\n"

|**************************宿舍管理系统**************************|\n"

|*****************************主菜单*****************************|\n"

||\n"

|1、宿舍信息录入2、学生分配宿舍|\n"

|3、住宿学生退宿4、宿舍信息查询|\n"

|5、退出系统|\n"

请输入你想进行的操作:

scanf("

%d"

f);

if(f<

1||f>

5)

操作序号输入错误!

\n按任意键返回主菜单重新输入!

system("

menu();

4)录入宿舍的相关信息

l)

inti,j,m;

charch2;

system("

if(l.len>

=l.linesize)//判断线性表的长度是否超过线性表的存储空间的长度

room*newbase;

newbase=(room*)realloc(l.data,(N+M)*sizeof(room));

//给线性表再分配长度为M的内存空间

l.data=newbase;

l.linesize+=M;

请输入你要输入的宿舍的个数:

j);

for(m=0;

m<

j;

m++)

i=l.len;

请输入第%d个宿舍基本信息:

i+1);

宿舍号码\t学生性别\t容纳人数\t住宿费用\n"

%d%s%d%d"

l.data[i].num,l.data[i].sex,&

l.data[i].rn_num,&

l.data[i].fee);

l.data[m].yz_num=0;

l.data[m].stud=NULL;

l.len++;

room_num_sort(l);

display1(l);

按任意键返回主菜单!

fflush(stdin);

//清屏

menu();

5)学生入宿

inti,room_num,j;

charch,ch2;

Stun;

请输入需要住宿的学生的宿舍号:

room_num);

for(i=0;

i<

l.len;

i++)

if(l.data[i].num==room_num)

if(l.data[i].yz_num==l.data[i].rn_num)

{

printf("

该房间已满!

按回车键返回...\n"

fflush(stdin);

scanf("

system("

menu();

}

if(l.data[i].yz_num==0)

l.data[i].stud=(Stu*)malloc(M*sizeof(Stu));

j=0;

请输入入住该宿舍的学生的姓名:

gets(n.name);

strcpy(l.data[i].stud[j].name,n.name);

j++;

l.data[i].yz_num++;

是否还有学生入住该宿舍<

while((j<

l.data[i].rn_num)&

&

(ch=='

||ch=='

))

{

printf("

fflush(stdin);

gets(n.name);

strcpy(l.data[i].stud[j].name,n.name);

j++;

l.data[i].yz_num++;

scanf("

if(j>

=l.data[i].rn_num)

{

printf("

%d宿舍已经住满!

l.data[i].num);

}

}

else

j=l.data[i].yz_num;

}

printf("

按任意键返回...\n"

fflush(stdin);

scanf("

未找到该宿舍!

6)已住宿学生退宿

inti,j,m,n,ch1;

chardelete_name[20];

introom_num;

你是否要进行退宿操作<

if(ch=='

请输入要退宿的学生的宿舍号:

for(m=0;

if(l.data[m].num==room_num)

{

请输入退宿学生的姓名:

%s"

delete_name);

for(j=0;

j<

l.data[m].yz_num;

j++)

if(strcmp(l.data[m].stud[j].name,delete_name)==0)

for(n=j;

n<

l.data[m].yz_num-1;

n++)

{

l.data[m].stud[n]=l.data[m].stud[n+1];

}

l.data[m].yz_num--;

退宿成功!

else

7)宿舍相关信息的查询

inti,j,ch2;

charch,ch1;

请输入你需要查询的宿舍的宿舍号:

宿舍号码\t学生性别\t容纳人数\t住宿费用\t已住人数\n"

%d\t\t"

%s\t\t"

l.data[i].sex);

l.data[i].rn_num);

l.data[i].fee);

%d\n"

l.data[i].yz_num);

已住学生姓名:

for(j=0;

l.data[i].yz_num;

%s\t"

l.data[i].stud[j].name);

ch1);

五调试分析

1、该系统功能简单明了,在编写程序过程中,以模块化实现功能是最好的方法,不过在函数的调用过程中出现了各种错误,如子函数的变量未命名,与主函数的不一致,经常在编译时出现变量,函数名不合法的现象,但是好在有分模块写,查找改正错误非常方便。

2、系统能正常运行后,我对菜单界面做了一些后期美化,此步骤通常放在最后,因为这样可以在未实现系统功能时,减小程序的复杂度,方便改写程序。

当完成基本框架后,我通过一次次的运行程序来更改添加必要的提示内容。

做了一些外观上的整改,使系统更人性化。

3、程序编写过程中出现过许多错误,经调试发现大多数错误是由于的不到正确的输入结果,然后通过查阅资料发现这个是由于输入数据过多,导致输入的数据错误,只要在输入数据前加上“fflush(stdin)”这条语句就可以了,该条语句的功能是清空输入缓冲区。

4、前期在程序运行过程中,如果宿舍的学生未住满时,再有学生入住该宿舍,以前输入的学生会被覆盖,经查询发现,是在输入学生姓名的时候出错,每次输入都是从第0个开始输入,所以才会被覆盖,后来只要在输入之前判断宿舍的已住人数是否为0,就可以解决该问题了,这样就不会被覆盖了。

六测试结果

1、欢迎界面

运行程序进入欢迎界面

2、菜单显示

在欢迎界面按任意键后进入菜单

3、录入宿舍的相关信息

选择功能一,跳转到录入宿舍信息界面

输入完成后系统会显示你输入的宿舍的相关信息

4、学生分配宿舍

选择功能二,跳转到学生入宿界面

5、已住学生退宿

选择功能三,进入学生退宿界面

6、显示宿舍的相关信息

选择功能四,进入宿舍信息查询界面

7、未住满宿舍再入宿

选择功能二,进入学生分配宿舍界面

再选择功能四,查询该宿舍的相关信息,显示之前信息未被覆盖

七用户使用说明

本程序具有良好的交互式界面,用户使用本程序,操作简便,只要在按照菜单输入相应的操作序号即可。

在录入以及退出功能上还通过输入“y或n”来判断是否执行用户的目的,简单明了。

本程序在重要内容上还设置了报错提示,确认提示的能够更好的帮助顾客实现自己想要的功能。

八课程设计总结

1、程序

虽然在此之前做了软件基础的实验,编写了一些小程序来

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2