




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档数据结构课程设计报告设计题目 宿舍管理查询软件 专 业 软件工程 班 级 姓 名 学 号 完成日期 目 录1. 问题描述22. 系统设计23. 数据结构与算法描述54. 测试结果与分析页码5. 总 结页码6. 参考文献页码附录 程序源代码页码(要求:给出一级目录,宋体加粗,四号字,1.5倍行距。)(报告正文部分):宿舍管理查询软件(要求:正文部分一律用小四号字,宋体,1.5倍行距。一级标题靠左,四号加粗。二级、三级标题靠左,小四加粗。)1. 问题描述 由于大学宿舍宿舍楼群过多,且每栋宿舍居住学生较多,因此宿舍管理与查询的任务非常繁重和复杂,然而许多大学宿舍还未普及电子信息管理方式,还在采用传统的笔录备案管理查询方式,因此,为提高宿舍管理人员的工作效率方便其对学生宿舍的管理提出此开发项目。 2. 系统设计2.1 设计目标学生宿舍管理系统采用的是计算机化管理,系统界面做的尽量人性化,系统具有运行速度快、安全性高、稳定性好的优点,并且具备完善的报表生成、修改功能,能够快速的查询学校所需的住宿信息。基本功能:(1)采用交互工作方式(2)建立数据文件 ,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种) (3)实现如下查询功能: 按姓名查询 按学号查询 按房号查询 (4)可打印任意查询结果(可以连续操作)2.2 设计思想要实现交互工作方式,各项操作结束后均应返回主菜单;要确保系统的严密性和安全性,就应当具有某些操作权限,没有系统管理员或者普通用户的用户名和密码任何人都不能登录该系统; 在具体实现时还应为系统管理员和普通用户设定不同的权限,系统管理员应当可以使用系统的所有模块,普通用户对于用户管理模块、学生学期注册(涉及到交费问题)及学生毕业离校等(此模块需判断该生有无欠费)牵扯到经济之类的模块是无权使用的。 系统要实现提供学生住宿情况的基本登记,要建立数据文件,需开发一个信息录入功能,即首先创建一个学员线性表,同时我们可以将数据暂时保存在内存中,所以我们未开发信息存盘功能; 信息录入后都保存在内存中,用户看不到,需要设计一个信息显示功能,信息的显示应该便于查阅,所以需具备按各种关键字显示的功能; 本系统按关键字(姓名、学号、房号)进行冒泡排序,采用二分查找方式分别实现按关键字(姓名、学号、房号)查询功能; 由于有些同学因为不同原因而离校或新同学入校,所以设计了删除插入功能; 当用户操作完毕需要退出时,我们提供了退出选项,便于使用者退出交互式工作系统。2.3 系统模块划分(要给出流程图)2.3.1 登陆界面登陆普通登录管理员登陆查询功能修改功能录入功能打印功能查询功能插入功能删除功能2.3.2菜单界面宿舍管理查询系统主菜单查询录入修改打印按姓名查询按学号查询按房号查询插入删除按姓名排序按房号排序按学号排序3. 数据结构与算法描述宿舍管理查询系统个性设置学生信息管理员信息4. 测试结果与分析(可将测试过程抓图说明)主菜单:登录功能子菜单:管理员登陆子菜单:查找功能:普通登陆子菜单:注册功能子菜单:5. 总 结(1)编写程序时,多次出现头文件的缺失,经过不断查资料和调试实现了对问题的解决。(2)本程序多次运用了 menu()、fflush()等函数,经过多次调试,已经很好的控制了显示的学生信息与主界面的转换。(3)编写程序时,由于子菜单嵌套太多,代码过于复杂,编译时出现许多问题,最后通过不断调试一一纠正。6. 参考文献 (包括书籍、论文、网络资料等) 1 刘振安等.C+程序设计课程设计.北京:机械工业出版社,2004.12. 2 武法提.基于网络的学习环境的设计. 附录 程序源代码:#include #include #include # include #include #include#include #include #include # define N 20 using namespace std; /包括std名字空间/*自定义函数声明部分*/ void showheader(); /声明显示表头部分 int menu(); /声明主菜单函数int menu1(); /声明插入功能子菜单函数 int menu2(); /声明插入功能子菜单函数int menu3(); /声明插入功能子菜单函数 int menu4(); /声明插入功能子菜单函数int menu5();int menu6(); /声明查找功能子菜单函数 /int quanxian(); /声明用户权限管理函数 /void SavePass(); /密码显示为*的函数struct student shuru(); /声明学生信息录入函数 void display(struct student); /声明显示函数 void sort(struct student stuN,int); /声明排序函数 void charu(struct student stuN,int); /声明插入函数 void chazhao1(struct student stuN,int i); /声明按照学号查找函数 void chazhao2(struct student stuN,int i); /声明按照姓名查找函数 void chazhao3(struct student stuN,int i);/声明按照房间号查找/*定义结构体*/ struct student /* 构造结构成员 */int ID; char name15; char sex; int roomnum; float score3; char *getSex() if(sex=g) return 女; else return 男; ; /*主函数开始*/ int main() struct student stuN; int count=0,m=0,j; char ch,ch1; int choice,choice1,choice2,choice3,choice4,choice5,choice6; /菜单选项及子菜单选项 int user; do /此循环体控制用户信息输入错误后是否重输 do /此循环体控制返回主菜单 ch1=n; /如果用户将主菜单选择错误,可用此变量控制是否重输 choice=menu(); switch(choice) /此条件结构控制选择菜单功能后的操作 case 1:/ while(choice1!=3) /此循环体控制是否退出子菜单 choice1=menu1(); /调用子菜单函数 if(choice1=1) /此条件结构控制子菜单选项 choice2=menu2();/调用二级子菜单函数 if(choice2=1) /此条件结构控制二级子菜单选项 ,学生信息显示 cout* 学生信息显示 *n; coutn排序后的信息如下:n; sort(stu,count);/调用排序函数 showheader(); for(j=0;jcount;j+) display(stuj); /调用显示函数 break; if (choice2=2)/查找学生信息 while(choice5!=4) /控制是否继续查找 choice5=menu5(); /调用查找子菜单函数 if(choice5=1) /控制按照学号查找 chazhao1(stu,count);/调用按照学号查找的函数 if(choice5=2) /控制按照姓名查找 chazhao2(stu,count);/调用按照姓名查找的函数 if(choice5=3) /控制按照房间查找 chazhao3(stu,count);/调用按照房间查找的函数 break; if (choice1=2) choice3=menu3();/调用二级子菜单函数 if(choice3=1) /此条件结构控制二级子菜单选项 ,输入学生信息 do /此循环体控制是否继续输入 cout* 学生信息录入 *n; cout请输入第count+1个学生的信息nn; stucount=shuru(); /调用输入函数 /cout是否继续(y/n); fflush(stdin);/ 刷新标准输入缓冲区,把输入缓冲区里的东西丢弃 ch=getchar(); count+; while(ch=y); break; if(choice3=2)/显示排序好的学生信息 cout* 学生信息显示 *n; coutn排序后的信息如下:n; sort(stu,count);/调用排序函数 showheader(); for(j=0;jcount;j+) display(stuj); /调用显示函数 break; if(choice3=3)/插入功能 while(choice4!=3) /此循环体控制是否退出子菜单 choice4=menu4(); /调用子菜单函数 if(choice4=1) /此条件结构控制子菜单选项 do /此循环体判断是否继续插入 cout* 学生信息插入 *n; charu(stu,count); /调用插入函数 count+; cout是否继续插入?(y/n); fflush(stdin); ch=getchar(); while(ch=y); if (choice4=2) /此条件结构控制子菜单选项 coutnn插入学生信息后如下:n; sort(stu,count);/调用排序函数 showheader(); for(j=0;jcount;j+) display(stuj); /调用显示函数 break; if(choice3=4)/查找功能 while(choice5!=4) /控制是否继续查找 choice5=menu5(); /调用查找子菜单函数 if(choice5=1) /控制按照学号查找 chazhao1(stu,count);/调用按照学号查找的函数 if(choice5=2) /控制按照姓名查找 chazhao2(stu,count);/调用按照姓名查找的函数 if(choice5=3) /控制按照房间查找 chazhao3(stu,count);/调用按照房间查找的函数 break; case 2:/注册 while(choice6!=3) /此循环体控制是否退出子菜单 choice6=menu6(); /调用子菜单函数 if(choice6=1) /此条件结构控制子菜单选项 char s20 ; couts;couts;couts; if(choice6=2) /此条件结构控制子菜单选项 char g20 ; coutg;coutg;coutg;coutg; break; case 3:/退出 cout确认退出?(y/n); /让用户确认是否退出 fflush(stdin); ch=getchar(); break; default: coutaa警告:您输入错误,是否重输!(y/n); fflush(stdin); ch1=getchar(); break; while(ch=n| ch1=y);/控制是否要退出系统 coutaa警告:您的用户名或密码输入有误!是否重输?(y/n); fflush(stdin); ch=getchar(); while(ch=y); /*主函数结束*/ /*自定义输入函数*/ struct student shuru() struct student stu; coutstu.ID;;coutstu.sex;coutstu.roomnum;cout是否继续?(Y/N)endl;return stu; /*自定义显示函数*/ void display(struct student stu) couttstu.IDt; t;coutstu.getSex()t;coutstu.roomnumtendl; /*自定义排序函数*/ void sort(struct student stuN,int i) int j,k; struct student temp; for(j=0;ji;j+) for(k=0;k(stuk+1.ID) temp=stuk; stuk=stuk+1; stuk+1=temp; /*自定义插入函数*/ void charu(struct student stuN,int k) int i,l; struct student in ; in=shuru();/调用输入函数 for(i=0;ii;l-) stul=stul-1; stui=in; /*自定义主菜单函数*/ int menu() int choice; couttt*nnttt 欢迎进入学生宿舍管理查询系统 nntt*nn; coutttt*主菜单*nn;cout 登陆nn; cout 注册nn;cout 退出nn;coutchoice;return choice; /*自定义插入功能子菜单函数*/int menu1() coutt*欢迎登陆!*nn; couttttt1、普通登陆nn; couttttt2、管理员登陆nn; couttttt3、退出子菜单,返回上一级菜单nn; coutchoice1;return choice1;int menu2()/普通登陆 int choice2;cout* 普通登陆功能 *n; cout 学生信息显示nn;cout 查找学生信息nn;cout退出子菜单,返回上一级菜单nn; coutchoice2;return choice2; int menu3()/管理员登陆 int choice3; cout* 管理员登陆功能 *n; cout 学生信息录入nn; cout 学生信息显示nn; cout 插入学生信息nn; cout 查找学生信息nn; cout 退出n; coutchoice3;return choice3; int menu4() int choice4; coutt*这里显示的是插入功能子菜单*nn; couttttt1、插入学生信息nn; couttttt2、显示插入后的学生信息nn; couttttt3、退出子菜单,返回上一级菜单nn; coutchoice4; return choice4; /*自定义按照学号查找函数*/ void chazhao1(struct student stuN,int i) int select,j; char ch; coutt*您选择的是按照学号查找:*nn; do coutselect;for(j=0;ji;j+) if(select=stuj.ID) break; if(ji) showheader(); display(stuj); else cout你查找的信息不存在n; fflush(stdin); ch=getchar(); while(ch=y); /*自定义按照姓名查找函数*/ void chazhao2(struct student stuN,int i) int j; char name15; char ch; coutt*您选择的是按照姓名查找:*nn; do coutname;for(j=0;ji;j+) if(strcmp(name,)=0) break; if(ji) showheader(); display(stuj); else cout你查找的信息不存在n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论