数据结构课程设计 宿舍管理查询软件doc.docx
《数据结构课程设计 宿舍管理查询软件doc.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计 宿舍管理查询软件doc.docx(19页珍藏版)》请在冰点文库上搜索。
数据结构课程设计宿舍管理查询软件doc
数据结构
课程设计报告
设计题目:
宿舍管理查询软件
学号:
姓名:
指导教师:
专业:
班级:
学年学期:
起止时间:
哈尔滨师范大学计算机科学与信息工程学院
一.具体任务………………………………………………………………….1
二.软件环境…………………………………………………………………..1
三.算法设计思想及流程图……………………………………………………1
1.算法设计思想……………………………………………………………1
2.流程图……………………………………………………………………1
四.源代码………………………………………………………………………2
五.运行结果……………………………………………………………………9
六.收获及体会………………………………………………………………..10
七.参考文献…………………………………………………………………10
八.教师评价表…………………………………………………………………11
数据结构课程设计报告
一.程序设计题目和具体任务:
题目:
宿舍管理查询软件(限1人完成)
任务:
1)为宿舍管理人员编写一个宿舍管理查询软件,程序设计要求:
A.采用交互工作方
B.建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种)
2)查询菜单:
(用二分查找实现以下操作)
A.按姓名查询
B.按学号查询
C.按房号查询
3)打印任一查询结果(可以连续操作)
二.软件环境:
C语言
三.算法设计思想及流程图
1.算法设计思想:
主要有主菜单函数,插入功能子菜单函数,查找功能子菜单函数,学生信息录入函数,显示函数,排序函数,插入函数以及查找函数。
在每个区域中会调用不同的函数来实现主要的功能。
在插入功能里调用子菜单函数;在显示信息时调用排序函数先对需要输出的信心进行排序,然后再输出;在查找功能里会调用查找函数来进行查找,包括按照性别,学号,姓名,房间号等查询。
显示“宿舍管理查询系统主菜单”
“信息录入”
输入“学号,姓名,性别,房间号”
是否继续
“信息显示”
输出已录入的学生信息
查找功能子菜单
插入功能子菜单
插入学生信息
分别进行查询
输入“4”返回上一级菜单
输入“3”返回上一级菜单
输入“5”退出
结束
2.流程图:
YN
图1宿舍管理查询系统流程图
四.源代码:
#include
#include
#include
#include
#include
#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
return"男";
}
};
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";
cout<<"请输入第"<stu[count]=shuru();
//cout<<"是否继续(y/n)";
fflush(stdin);
ch=getchar();
count++;
}while(ch=='y');
break;
}
case2:
{
cout<<"*******************学员信息显示************\n";
cout<<"\n排序后的信息如下:
\n";
sort(stu,count);
showheader();
for(j=0;j{
display(stu[j]);
}
break;
}
case3:
//插入功能
{
while(choice3!
=3)
{
choice3=menu3();
if(choice3==1)
{
do
{cout<<"******************学员信息插入***************\n";
charu(stu,count);
count++;
cout<<"是否继续插入?
(y/n)";
fflush(stdin);
ch=getchar();
}while(ch=='y');
}
if(choice3==2)
{
cout<<"\n\n插入学生信息后如下:
\n";
sort(stu,count);
showheader();
for(j=0;j{
display(stu[j]);
}
}
}
break;
}
case4:
//查找功能
{
while(choice4!
=4)
{
choice4=menu5();
if(choice4==1)
{
chazhao1(stu,count);
}
if(choice4==2)
{
chazhao2(stu,count);
}
if(choice4==3)
{
chazhao3(stu,count);
}
}
break;
}
case5:
//退出
{
cout<<"确认退出?
(y/n)";
fflush(stdin);
ch=getchar();
break;
}
default:
{
cout<<"\a\a警告:
您输入错误,是否重输!
(y/n)";
fflush(stdin);
ch1=getchar();
break;
}
}
}while(ch=='n'||ch1=='y');
{
cout<<"\a\a警告:
您的用户名或密码输入有误!
是否重输?
(y/n)";
}
fflush(stdin);
ch=getchar();
}while(ch=='y');
}
structstudentshuru()
{
structstudentstu;
cout<<"学号:
";
cin>>stu.ID;
cout<<"姓名:
";
cin>>stu.name;
cout<<"性别(g/b):
";
fflush(stdin);
cin>>stu.sex;
cout<<"房间号:
";
cin>>stu.roomnum;
cout<<"是否继续?
(Y/N)"<returnstu;
}
voiddisplay(structstudentstu)
{
cout<<"\t"<cout<cout<cout<}
voidsort(structstudentstu[N],inti)
{
intj,k;
structstudenttemp;
for(j=0;j
{
for(k=0;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{
}
for(l=k;l>i;l--)
{
stu[l]=stu[l-1];
}
stu[i]=in;
}
intmenu()
{intchoice;
cout<<"\t\t*************\n\n\t\t\t欢迎进入学生宿舍管理查询系统\n\n\t\t*****************************\n\n";
cout<<"\t\t\t***************主菜单***************\n\n";
cout<<"\t\t\t\t1>学生信息录入\n\n";
cout<<"\t\t\t\t2>学生信息显示\n\n";
cout<<"\t\t\t\t3>插入学生信息\n\n";
cout<<"\t\t\t\t4>查找学生信息\n\n";
cout<<"\t\t\t\t5>退出\n";
cout<<"\n\n请选择功能选项:
";
cin>>choice;
returnchoice;
}
intmenu3()
{cout<<"\t***************这里显示的是插入功能子菜单***************\n\n";
cout<<"\t\t\t\t1、插入学生信息\n\n";
cout<<"\t\t\t\t2、显示插入后的学生信息\n\n";
cout<<"\t\t\t\t3、退出子菜单,返回上一级菜单\n\n";
cout<<"\n\n请选择功能选项:
";
intchoice3;
cin>>choice3;
returnchoice3;
}
voidchazhao1(structstudentstu[N],inti)
{
intselect,j;
charch;
cout<<"\t***********您选择的是按照学号查找:
*********\n\n";
do
{
cout<<"\n\n请输入学号:
";
cin>>select;
for(j=0;j
{
if(select==stu[j].ID)
{
break;
}
}
if(j
{
showheader();
display(stu[j]);
}
else
{
cout<<"你查找的信息不存在\n";
}
fflush(stdin);
ch=getchar();
}while(ch=='y');
}
voidchazhao2(structstudentstu[N],inti)
{
intj;
charname[15];
charch;
cout<<"\t*********您选择的是按照姓名查找:
********\n\n";
do
{
cout<<"\n\n请输入姓名:
";
cin>>name;
for(j=0;j
{
if(strcmp(name,stu[j].name)==0)
{
break;
}
}
if(j
{
showheader();
display(stu[j]);
}
else
{
cout<<"你查找的信息不存在\n";
}
fflush(stdin);
ch=getchar();
}while(ch=='y');
}
voidchazhao3(structstudentstu[N],inti)
{
intj,room;
charch;
cout<<"\t*******************您选择的是按照房间号查找:
*******************\n\n";
do
{
cout<<"\n\n请输入房间号:
";
cin>>room;
for(j=0;j
{
if(room==stu[j].roomnum)
{
break;
}
}
if(j
{
showheader();
display(stu[j]);
}
else
{
cout<<"你查找的信息不存在\n";
}
cout<<"是否继续查找?
(y/n)";
fflush(stdin);
ch=getchar();
}while(ch=='y');
}
intmenu5()
{
cout<<"\t**********这里显示的是查找功能子菜单***********\n\n";
cout<<"\t\t\t\t1、按照学号查找\n\n";
cout<<"\t\t\t\t2、按照姓名查找\n\n";
cout<<"\t\t\t\t3、按照房间号查找\n\n";
cout<<"\t\t\t\t4、退出子菜单,返回上一级菜单\n\n";
cout<<"\n\n请选择功能选项:
";
intchoice4;
cin>>choice4;
returnchoice4;
}
voidshowheader()
{cout<<"\n\n\t************************************\n";
cout<<"\t学号\t姓名\t性别\t房间号\t\n";
cout<<"\t******************************************\n";
}
五.程序运行的结过
图2.主菜单显示
图3.信息录入界面
图4.信息显示界面
图5.查找学生信息界面
六.收获及体会
通过四个星期的时间,我把课程设计给完成了,这是一个坚苦而又漫长的过程。
是啊,读了那么多年的书,课程设计可是第一次。
看着劳动成果,很欣慰!
刚开始,可以说是没有头绪,于是就去图书馆找资料,找到了一些关于程序设计方面的,可是这点小进展远远不够,这只是一个小小的开始。
下一步是上网查,找到了些与我们题目相似的,那时我很高兴,可是那还不是我想要的,于是又上网查到了些有关内容。
通过此次做的程序,我深深的体会到当一名程序员的辛苦和努力。
而且要想做好一个程序,首先要细心。
因为,可能仅仅因为一个逗号一个位置的变化,一个程序就会运行不了。
其次,要耐心,编一个程序不是那么容易的,要有缜密的思想和思考的时间。
最后要恒心,因为是学计算机专业的,所以要认真的尝试每一个程序,并要求把他们做到最好,这就需要拥有一颗永远向上的恒心。
做完这个课程设计,我们的自信一下子提高了,我们也会写程序了;尽管对于有些人这种程序会很简单,可对我们来说,已经很不容易了。
这次的体验为以后的学习计算机的我们增强了信心。
享受劳动成果的滋味实在很美妙啊!
七、参考文献
[1]严蔚敏等,《数据结构》(C语言版)清华大学出版社
[2]苏仕华等,数据结构课程设计,机械工业出版社
[3]电脑资料
教师评价表
姓名
李芷萱
学号
2009030096
题目
宿舍管理查询软件
指导教师
黄玉妍
职称
讲师
评语:
该生在设计第4题宿舍管理查询软件课题的这段时间中,我总结出以下几点:
1.在设计程序期间,态度极其认真,学习积极、细心、踏实,能虚心接受指导;同时善于思考,能够举一反三,具有较强与同学沟通能力和沟通技巧,能保质保量地完成我交给她的设计;还表现出强烈的兴趣,深厚的专业基础和良好的专业知识水平.
2.态度端正,出勤率高,不做与课程设计无关的事情,积极思考,认真分析、研究,勤于动手实践。
3.与课题相符,构思巧妙,思路清晰,考虑全面、完整,漏洞少,有创新。
文章条理清楚,语句通顺,叙述准确、科学,不脱题,核心把握准确,论点明确,论据充分,篇幅适当,版面格式符合要求。
4.对所学知识和技术有充分理解并掌握,能融会贯通,充分发挥自己的才能实施设计方案。
积极体温,所提问题新颖,有水平,是深思熟虑后而产生的疑问。
5.从自学能力、知识接受能力、分析问题、解决问题的能力、创新能力、动手能力、写作能力等方面进行衡量。
教师签字
成绩