数据结构课程设计 宿舍管理查询软件doc.docx
- 文档编号:23597722
- 上传时间:2023-05-18
- 格式:DOCX
- 页数:19
- 大小:40.04KB
数据结构课程设计 宿舍管理查询软件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.从自学能力、知识接受能力、分析问题、解决问题的能力、创新能力、动手能力、写作能力等方面进行衡量。 教师签字 成绩
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构课程设计 宿舍管理查询软件doc 数据结构 课程设计 宿舍 管理 查询 软件 doc
![提示](https://static.bdocx.com/images/bang_tan.gif)