宿舍管理查询软件的设计

上传人:痛*** 文档编号:137249179 上传时间:2022-08-18 格式:DOC 页数:17 大小:104.50KB
收藏 版权申诉 举报 下载
宿舍管理查询软件的设计_第1页
第1页 / 共17页
宿舍管理查询软件的设计_第2页
第2页 / 共17页
宿舍管理查询软件的设计_第3页
第3页 / 共17页
资源描述:

《宿舍管理查询软件的设计》由会员分享,可在线阅读,更多相关《宿舍管理查询软件的设计(17页珍藏版)》请在装配图网上搜索。

1、课程设计报告课程设计题目: 宿舍管理查询软件的设计 学生姓名 xxx 专 业 xxx班 级 xxx 指导教师 xxx 201x年 x 月 x 日东华理工大学课程设计评分表学生姓名: xxx 班级: xxx 学号:课程设计题目:宿舍管理系统的设计项目内容满分实 评选题能结合所学课程知识、有一定的能力训练。符合选题要求(5人一题)10工作量适中,难易度合理10能力水平能熟练应用所学知识,有一定查阅文献及运用文献资料能力10理论依据充分,数据准确,公式推导正确10能应用计算机软件进行编程、资料搜集录入、加工、排版、制图等10能体现创造性思维,或有独特见解10成果质量总体设计正确、合理,各项技术指标符

2、合要求。10说明书综述简练完整,概念清楚、立论正确、技术用语准确、结论严谨合理;分析处理科学、条理分明、语言流畅、结构严谨、版面清晰10设计说明书栏目齐全、合理,符号统一、编号齐全。格式、绘图、表格、插图等规范准确,符合国家标准10有一定篇幅,字符数不少于500010总 分100指导教师评语: 指导教师签名: 年 月 日课程设计报告要求:报告内容要求包括:(1)问题的概述、分析及研究意义;(2)数据结构的逻辑设计和物理存储设计;(3)重要算法的设计、流程描述或伪代码描述;(4)数据结构的时空复杂性分析以及重要算法的复杂性分析;(5)程序最终实现结果(包括重点结果界面的抓取,能过说明问题的重要实

3、验结果数据的打印或其可视化结果等)。(6)参考文献(如果需要)。格式要求:中文正文使用五号字体,英文及代码使用小五号字体摘要这是为宿舍管理人员编写一个宿舍管理查询软件,建立数据文件,数据文件可以按关键字(姓名、学号、房号)进行冒泡排序.可以通过二分法按关键字(姓名、学号、房号)来查询可连续输出任一查询结果,但不能实现信息存盘,使用简单方便。1 方案设计1.1任务:为宿舍管理人员编写一个宿舍管理查询软件1.2程序设计要求:建立数据文件 ,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种)查询菜单: (用二分查找实现以下操作)A按姓名查询 B按学号查询 C按房号查询1.

4、3功能:根据上述要求,我觉得系统应该具备以下的功能:应该创建一个操作主界面;系统没有输入任何信息数据,要建立数据文件,需编写一个信息输入的函数,所以得创建一个学员线性表,这样我们就可以将数据暂时保存在内存中;信息输入后都保存在内存中后,还需要设计一个信息显示功能,信息的显示应该便于查询,所以需具备按各种关键字显示的功能;本系统按关键字(姓名、学号、房号)进行冒泡排序,采用二分查找方式分别实现按关键字(姓名、学号、房号)查询功能;当用户操作完毕需要退出时,我们提供了退出选项,便于使用者退出。2 算法设计2.1线性表的顺序存储2.1.1存储结构本系统定义的存储结构采用结构体数组,结构体为:type

5、def struct /定义结构体成员char name20;int num; int room;stu;stu stud;typedef structint length; /当前长度stu *base; /存储空间基址int listsize; /当前分配的存储容量linklist; 2.1.2程序结构图为:主函数学号排序姓名排序房号排序房号查询姓名查询学号查询3 详细设计#include#include#include#define N 40 /线性表存储空间的初始分配量#define increase 10 /线性表存储空间的分配量增量int f,t=0; /定义全局变量typedef

6、 struct /定义结构体char name20;int num; /学号和房号都为整型int room;stu;stu stud;typedef struct/创建顺序表int length; /当前长度stu *base; /存储空间基址int listsize; /当前分配的存储容量linklist; void init(linklist &l)/线性表初始化l.length=0;l.base=(stu *)malloc(N*sizeof(stu);l.listsize=N;void menu()/操作菜单函数printf(n);printf( *请按键选择操作*n);printf(n

7、);printf(n);printf( 1 按姓名排序 2 按学号排序n);printf(n);printf( 3 按房号排序 4 按姓名查找n);printf(n);printf( 5 按学号查找 6 按房号查找n);printf(n); printf(n);printf(n);printf(n);printf(n);printf(提示:当输入的数字键为0时,退出操作n);if(t=1)printf(请输入数字键(16为操作键):);/16为有效数字操作键 scanf(%d,&f);if(f7)system(cls); printf(n);printf(输入数字不对,请在原处重输!n); p

8、rintf(n);menu();void disp() /返回主界面char c;fflush(stdin);printf(n);printf(请按任意键进入主界面:);scanf(%c,&c);system(cls);void panduan3() /如果已无学生记录则返回主界面 printf(n);printf(已无学生记录n);printf(n); disp(); menu();void shuru(linklist l) /输入学生的信息printf(请输入姓名:);fflush(stdin); / 清空输入缓冲区,得到正确的输入数据gets(stud.name); /输入一行字符串(

9、姓名)printf(请输入学号:);scanf(%d,&stud.num);printf(请输入房号:);scanf(%d,&stud.room);void create(linklist &l)/创建学生信息表if(l.length=l.listsize) /判断学生的人数是否超过初值,如果超过,则重新分配stu *newbase;newbase=(stu*)realloc(l.base,(N+increase)*sizeof(stu );/扩大分配的存储容量l.base=newbase;l.listsize+=increase;int i=2;char ch;printf(n);print

10、f( *开始创建线性表*n);printf(n);printf(请输入第1个学生的信息n);shuru(l); /调用输入函数ch=getchar();strcpy(l.basel.length.name,stud.name);l.basel.length.num=stud.num;l.basel.length.room=stud.room;l.length+;printf(n);printf(是否继续输入?:);scanf(%c,&ch);printf(n);printf(n);while(ch=y) printf(请输入第%d个学生的信息n,i); shuru(l);strcpy(l.ba

11、sel.length.name,stud.name);l.basel.length.num=stud.num;l.basel.length.room=stud.room;l.length+;i+;ch=getchar(); printf(n);printf(是否继续输入?:);scanf(%c,&ch);printf(n);printf(n); if(ch=n) system(cls);void sort3(linklist &l)/按房号排序(采用冒泡排序)int i,j;stu temp;for(i=0;il.length-1;i+)for(j=i+1;jl.basej.room)temp

12、=l.basei;l.basei=l.basej;l.basej=temp;void sort2(linklist &l)/按学号排序(采用冒泡排序)int i,j;stu temp;for(i=0;il.length-1;i+)for(j=i+1;jl.basej.num)temp=l.basei;l.basei=l.basej;l.basej=temp;void sort1(linklist &l)/按姓名排序(采用冒泡排序)int i,j;stu temp;for(i=0;il.length-1;i+)for(j=i+1;j0)temp=l.basei;l.basei=l.basej;l

13、.basej=temp;void print1(linklist &l)/打印学生信息int i;printf(n);printf(姓名 学号 房号n);printf(n);for(i=0;i该学生信息为:n);printf(姓名 学号 房号n);printf(n);printf(%-15s %-5d %-5dn,l.basemid.name,l.basemid.num,l.basemid.room);int panduan1(char ch) /判断是否继续查找printf(是否继续查找?:);scanf(%c,&ch);if(ch=y)system(cls);return(1); else

14、return 0;int panduan2(char ch) /如果学生不存在,判断是否继续查找printf(该学生不存在,是否继续查找?:);scanf(%c,&ch);if(ch=y)system(cls);return(1); elsereturn 0;void chazhao3(linklist&l)/按房号从小到大查找(采用二分查找)if(l.length=0) panduan3(); /此函数功能为:返回主界面else int low=0,high=l.length,mid,flag=0;/flag作为标志符,为1则表示查找成功,否则没有所要查找的学生int m;char ch;p

15、rintf(n);printf(n);printf(按房号查找-请输入要查找的房号:);scanf(%d,&m);printf(n);while(lowl.basemid.room)low=mid+1;else high=mid-1;if(flag=1) print2(l,mid);if(panduan1(ch) /调用判断函数1chazhao3(l);else system(cls);menu();else if(panduan2(ch) /调用判断函数2chazhao3(l); else system(cls);menu();void chazhao2(linklist &l)/按学号从小

16、到大查找(采用二分查找) if(l.length=0) panduan3();elseint low=0,high=l.length,mid,flag=0;int n;char ch;printf(n);printf(n);printf(按学号查找-请输入要查找的学号:);scanf(%d,&n);printf(n);while(lowl.basemid.num)low=mid+1;else high=mid-1;if(flag=1) print2(l,mid);if(panduan1(ch) chazhao2(l);else system(cls);menu();else if(pandua

17、n2(ch) chazhao2(l); else system(cls);menu(); void chazhao1(linklist &l)/按姓名从小到大查找(采用二分查找) if(l.length=0) panduan3();elseint low=0,high=l.length,mid,flag=0;printf(n);printf(n);printf(按姓名查找-请输入要查找的姓名:);char a15,ch;scanf(%s,a);printf(n);while(low0)low=mid+1;else high=mid-1;if(flag=1) print2(l,mid); /打印

18、查找到的学生的信息if(panduan1(ch) chazhao1(l);else system(cls);menu();elseif(panduan2(ch)chazhao1(l);else system(cls);menu();void main() /主函数linklist l; /定义线性表 linit(l); /调用初始化函数char ch;system(color a);printf(n);printf( *欢迎进入宿舍管理查询系统*n);printf(n);printf(请按任意键开始操作:);scanf(%c,&ch);system(cls);/将屏幕先前显示的内容清理掉cre

19、ate(l); /调用线性表创建函数system(cls);t=1;menu(); /调用主菜单函数while(f!=0)system(cls);switch(f)case 1: sort1(l); /调用按姓名排序函数 printf(n); if(l.length=0) printf(已无学生记录n); printf(n); disp(); menu(); elseprintf(按姓名排序:n);print1(l);disp(); /调用返回主界面 menu(); break;case 2: sort2(l); /调用按学号排序函数 printf(n); if(l.length=0) pri

20、ntf(已无学生记录n);printf(n); disp(); menu(); elseprintf(按学号排序:n);print1(l);disp(); menu();break;case 3: sort3(l); /调用按房号排序函数 printf(n); if(l.length=0) printf(已无学生记录n); printf(n); disp(); menu(); elseprintf(按房号排序:n);print1(l);disp(); menu();break; case 4:sort1(l); /先调用按姓名排序函数进行排序 chazhao1(l); /再调用按姓名查找函数进行(二分)查找 break;case 5: sort2(l); /先调用按学号排序函数进行排序 chazhao2(l); /再调用按学号查找函数进行(二分)查找 break;case 6: sort3(l); /先调用按房号排序函数进行排序 chazhao3(l); /再调用按房号查找函数进行(二分)查找 break;

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!