数据结构宿舍管理课程设计Word格式文档下载.docx
- 文档编号:4385561
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:23
- 大小:186.30KB
数据结构宿舍管理课程设计Word格式文档下载.docx
《数据结构宿舍管理课程设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据结构宿舍管理课程设计Word格式文档下载.docx(23页珍藏版)》请在冰点文库上搜索。
六、实验过程(源代码)
#include<
stdio.h>
#include<
iomanip>
fstream>
#include<
stdlib.h>
iostream.h>
#defineN20
/*********************自定义函数声明部分**************************/
voidshowheader();
//声明显示表头部分
intmenu();
//声明主菜单函数
intmenu3();
//声明插入功能子菜单函数
intmenu5();
//声明查找功能子菜单函数
//intquanxian();
//声明用户权限管理函数
//voidSavePass();
//密码显示为"
*"
的函数
structstudentshuru();
//声明学生信息录入函数
voiddisplay(structstudent);
//声明显示函数
voidsort(structstudentstu[N],int);
//声明排序函数
voidcharu(structstudentstu[N],int);
//声明插入函数
voidchazhao1(structstudentstu[N],inti);
//声明按照学号查找函数
voidchazhao2(structstudentstu[N],inti);
//声明按照姓名查找函数
voidchazhao3(structstudentstu[N],inti);
//声明按照房间号查找
/*********定义结构体************/
structstudent
{
/*构造结构成员*/
intID;
charname[15];
charsex;
introomnum;
floatscore[3];
char*getSex()
if(sex=='
g'
)
return"
女"
;
else
男"
}
};
/****************************主函数开始**************************/
voidmain()
structstudentstu[N];
intcount=0,m=0,j;
charch,ch1;
intchoice,choice3,choice4;
//菜单选项及子菜单选项
intuser;
do//此循环体控制用户信息输入错误后是否重输
{
do//此循环体控制返回主菜单
{ch1='
n'
//如果用户将主菜单选择错误,可用此变量控制是否重输
choice=menu();
switch(choice)//此条件结构控制选择菜单功能后的操作
{
case1:
//输入学生信息
do//此循环体控制是否继续输入
cout<
<
"
******************************学员信息录入**********************************\n"
请输入第"
count+1<
个学员的信息\n\n"
stu[count]=shuru();
//调用输入函数
//cout<
是否继续(y/n)"
fflush(stdin);
//刷新标准输入缓冲区,把输入缓冲区里的东西丢弃
ch=getchar();
count++;
}while(ch=='
y'
);
break;
}
case2:
//显示排序好的学生信息
******************************学员信息显示**********************************\n"
\n排序后的信息如下:
\n"
sort(stu,count);
//调用排序函数
showheader();
for(j=0;
j<
count;
j++)
display(stu[j]);
//调用显示函数
case3:
//插入功能
while(choice3!
=3)//此循环体控制是否退出子菜单
choice3=menu3();
//调用子菜单函数
if(choice3==1)//此条件结构控制子菜单选项
do//此循环体判断是否继续插入
{cout<
******************************学员信息插入**********************************\n"
charu(stu,count);
//调用插入函数
是否继续插入?
(y/n)"
if(choice3==2)//此条件结构控制子菜单选项
\n\n插入学生信息后如下:
//调用排序函数
case4:
//查找功能
while(choice4!
=4)//控制是否继续查找
choice4=menu5();
//调用查找子菜单函数
if(choice4==1)//控制按照学号查找
chazhao1(stu,count);
//调用按照学号查找的函数
if(choice4==2)//控制按照姓名查找
chazhao2(stu,count);
//调用按照姓名查找的函数
if(choice4==3)//控制按照房间查找
chazhao3(stu,count);
//调用按照房间查找的函数
case5:
//退出
确认退出?
//让用户确认是否退出
default:
\a\a警告:
您输入错误,是否重输!
ch1=getchar();
}while(ch=='
||ch1=='
//控制是否要退出系统
cout<
您的用户名或密码输入有误!
是否重输?
fflush(stdin);
ch=getchar();
/*************************主函数结束*************************/
/*自定义输入函数*/
structstudentshuru()
structstudentstu;
学号:
cin>
>
stu.ID;
姓名:
stu.name;
性别(g/b):
stu.sex;
房间号:
stu.roomnum;
是否继续?
(Y/N)"
endl;
returnstu;
/*自定义显示函数*/
voiddisplay(structstudentstu)
\t"
stu.ID<
stu.name<
stu.getSex()<
stu.roomnum<
/*自定义排序函数*/
voidsort(structstudentstu[N],inti)
intj,k;
structstudenttemp;
for(j=0;
i;
for(k=0;
k<
i-j-1;
k++)
if((stu[k].ID)>
(stu[k+1].ID))
temp=stu[k];
stu[k]=stu[k+1];
stu[k+1]=temp;
/*自定义插入函数*/
voidcharu(structstudentstu[N],intk)
inti,l;
structstudentin;
in=shuru();
//调用输入函数
for(i=0;
i<
k;
i++)
for(l=k;
l>
l--)
stu[l]=stu[l-1];
stu[i]=in;
/*自定义主菜单函数*/
intmenu()
{intchoice;
\t\t****************************************************\n\n\t\t\t欢迎进入学生宿舍管理查询系统\n\n\t\t****************************************************\n\n"
\t\t\t***************主菜单***************\n\n"
\t\t\t\t1>
学生信息录入\n\n"
\t\t\t\t2>
学生信息显示\n\n"
\t\t\t\t3>
插入学生信息\n\n"
\t\t\t\t4>
查找学生信息\n\n"
\t\t\t\t5>
退出\n"
\n\n请选择功能选项:
choice;
returnchoice;
/*自定义插入功能子菜单函数*/
intmenu3()
{cout<
\t*******************这里显示的是插入功能子菜单*******************\n\n"
\t\t\t\t1、插入学生信息\n\n"
\t\t\t\t2、显示插入后的学生信息\n\n"
\t\t\t\t3、退出子菜单,返回上一级菜单\n\n"
intchoice3;
choice3;
returnchoice3;
/*自定义按照学号查找函数*/
voidchazhao1(structstudentstu[N],inti)
intselect,j;
charch;
\t*******************您选择的是按照学号查找:
*******************\n\n"
do
\n\n请输入学号:
select;
if(select==stu[j].ID)
if(j<
i)
你查找的信息不存在\n"
/*自定义按照姓名查找函数*/
voidchazhao2(structstudentstu[N],inti)
intj;
\t*******************您选择的是按照姓名查找:
\n\n请输入姓名:
name;
if(strcmp(name,stu[j].name)==0)
//按照房间号查找
voidchazhao3(structstudentstu[N],inti)
intj,room;
\t*******************您选择的是按照房间号查找:
\n\n请输入房间号:
room;
if(room==stu[j].roomnum)
是否继续查找?
}
/*自定义查找功能子菜单函数*/
intmenu5()
\t*******************这里显示的是查找功能子菜单*******************\n\n"
\t\t\t\t1、按照学号查找\n\n"
\t\t\t\t2、按照姓名查找\n\n"
\t\t\t\t3、按照房间号查找\n\n"
\t\t\t\t4、退出子菜单,返回上一级菜单\n\n"
intchoice4;
choice4;
returnchoice4;
voidshowheader()
\n\n\t*********************************************************\n"
\t学号\t姓名\t性别\t房间号\t\n"
\t*********************************************************\n"
七、程序运行的测试与分析
此程序在输入学号时不能过长,否则学号出现错误,显示时也会对不上相应的位置,在主菜单选择错误时也没按“输入信息有误是否重输(y/n)”执行,在主菜单执行退出功能时未能准确执行,其他功能还行。
主菜单显示:
信息录入界面:
信息显示界面:
插入学生信息界面:
查找学生信息界面:
四、心得
刚开始没有什么头绪,只是想一点做一点,整个过程中出现了很多问题,不懂时问同学或者看书,各个函数的调用比较混乱。
通过一系列的梳理后慢慢清晰,通过本次的课程设计,让我懂得了很多上课时没太掌握的知识,同时也对数据结构这门课程有了更深刻的认识
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 宿舍 管理 课程设计