宿舍管理查询系统设计与实现.doc
《宿舍管理查询系统设计与实现.doc》由会员分享,可在线阅读,更多相关《宿舍管理查询系统设计与实现.doc(34页珍藏版)》请在咨信网上搜索。
1、唐山学院 数 据 结 构课程设计题系 班目( 部) 级宿舍管理查询系统设计与实现 计算机科学与技术系 姓名 学号 指导教师 2012年 1月 4日至 1月 13日共 2周2012年 1 月13日1 引 言高校学生宿舍信息管理系统的主要功能包括:可以对学生宿舍信息的查询功能,包 括快速查询功能和分类查询功能:对学生宿舍的录入功能,修改功能,删除功能和统计 功能。通过系统上述功能实现宿舍管理部门对学生宿舍信息的日常管理,即方便宿舍管 理人员及时全面地掌握学生住宿情况及宿舍分配情况:为用户(管理用户和一般用户,如学生)提供一些简单的数据查询并输入各种信息等:在实现检索迅速和查找方便同时,进行宿舍管理
2、。该程序是由 C 语言编写的一个宿舍管理查询软件,其主要功能是实现对学生信息的 增加、删除、修改、查询、排序、储存、加载。其中查询可以分别以姓名、学号、寝室 号、为关键字查询学生信息。排序可以分别以学号和寝室号为关键字进行从小到大的排 序。2 问 题 分 析( 1) 该问题采用主要顺序线性表的查找和排序解决。( 2) 宿舍管理系统中存在先后顺序,因此采用线性表。为了加快查找速率采用了顺 序查找和折半查找,因此需要将其按学号或宿舍号进行排序,所以采用了顺序表。通过上述分析我采用顺序线性表储存结构,其结构如下: typedef structchar S_name 31;/学生姓名 char S_n
3、umber 16;/学生学号int D_number;/学生所在寝室的宿舍号 int Total;/ 学生总数Student M,St;3 总 体 设 计此系统是由添加模块、修改模块、删除模块、判断模块、排序模块、查询模块、显 示模块、保存模块和加载模块九个模块构成的。其中添加模块中运用了判断学号是否重 复和宿舍人数是否已满函数,排序模块分为以姓名为关键字排序、以学号为关键字排序 和以寝室号为关键字排序三个功能,查询模块分为按姓名查询、按学号查询和按寝室号 查询三个功能,在对信息进行添加,修改,删除,排序,保存和加载之后可以用显示函 数进行显示。模块结构图和总体流程图(如图 3-1):宿 舍
4、管 理 查 询 系 统添 加 模 块修 改 模 块删 除 模 块判 断 模 块排 序 模 块提 示 保 存 模 块查 找 模 块显 示 模 块储 存 模 块加 载 模 块按 姓 名按 学 号按 学 号按 寝 室 号按 姓 名按 寝 室 号图 3 -1 系 统 模 块 结 构 图(1)添加学生信息:按照从先到后的顺序输入学生姓名(30 个字符以内),学生学号(15 个字符以内),学生学号(15 个字符以内),宿舍号码(整数,范围在 0- 32767), 即可将该学生信息添加到系统中。(2)修改学生信息:输入要修改的学生姓名(30 个字符以内),修改后学生的学号(15 个字符以内),修改后学生的宿
5、舍号(整数,范围在 0- 32767),即可修改该学生信息。(3)删除学生信息:输入要删除的学生的姓名(30 个字符以内),可删除该学生信息。(4)判断学号是否重复和判断宿舍人数是否已满:将输入学生的学号和宿舍号与表中 原有的学生的学号和宿舍号进行比较,判断学号是否重复和该宿舍人数是否已满。(5)以姓名为关键字排序:添加学生信息之后,以学生姓名首字母的先后顺序排序。(6)以学号为关键字排序:添加学生信息之后,以学号从大到小排序。(7)以寝室号为关键字排序:添加学生信息之后,以寝室号大小排序。(8)以姓名查询学生信息:输入要查找的学生的姓名(30 个字符以内),可显示所找 学生信息。(9)以学号
6、查找学生信息:输入要查找的学生的学号(15 个字符以内),可显示所找 学生信息。(10)以寝室号查询学生信息:输入寝室号(整数,范围在 0- 32767),可显示所找学 生信息。(11)储存学生信息:可将录入的学生信息储存起来。(12)加载学生信息:可将学生信息加载到系统中。(13)提示学生信息是否保存:判断操作后的学生信息是否以保存,如果没有保存则显 示提示信息。4.1 添加模块4.1.1 设计思路4 详 细 设 计添加学生信息函数:在学生信息表中的最后一位插入要添加的学生信息,输入学生 姓名,学生学号并判断是否重复,学生宿舍号并判断该宿舍人数是否已满,学生系别, 学生班级,学生手机号。4.
7、1.2 流程图添加学生信息函数的流程图(如图 4-1):开始输 入 “ 1 ”学 号 是 否 重 复NN输 入 宿 舍 号宿 舍 人 数 是 否 已 满N输 入 学 号输 入 系 别 、班 级 和 手 机 号YY添 加 成 功结 束4.2 修改模块4.2.1 设计思路图 4 -1 添 加 流 程 图修改学生信息:输入要修改的学生的学号与表中的学生的学号进行比较,找到与其相等的学生学号。再输入此学号学生的信息:学生姓名,学生学号(判断是否重复),学生宿舍号(该宿舍人数是否已满),学生系别,学生班级,学生手机号。4.2.2 流程图修改学生信息函数的流程图如下(如图 4-2):是否存在Y输入姓名输入
8、学生新信息:姓名开始输入“2”N学号是否重复YN输入新学生学号输入新宿舍号判 断 宿 舍 是 否 已 满NY修改成功结束4.3 删除模块4.3.1 设计思路图 4 -2 修 改 流 程 图删除学生信息:输入要删除的学生的姓名,找到与之相同的学生,然后将其后面的学生信息前移一个位置,再将学生总数减一。4.3.2 流程图删除函数流程图(如图 4-3):开始输入所要删除的学生姓名是否存在NY将后边的数前移删除成功结束4.4 判断模块4.4.1 设计思路图 4 -3 删 除 模 块 流 程 图判断学生学号是否重复函数:将输入的学生学号与表中的学生的学号一一比较(跳 过自身与自身的比较)是否相等,若有相
9、等的则说明重复,否则则没有。判断宿舍人数是否已满函数:将输入的学生的宿舍号与表中前面(Total-1)个学生的宿 舍号进行比较是否相等,每相等一次,使 j+;当 j=4 时,说明该宿舍已满,否则没有 满。4.4.2 流程图判断学号是否重复函数流程图(如图 4-4):开始输入学号比较是否相等N录入成功Y图 4 -4 判 断 函 数 流 程 图结束判断宿舍人数是否已满(如图 4-5):开始输入宿舍号比较是否四次相等N录入成功Y结束图 4 -5 判 断 函 数 流 程 图4.5 显示模块显示所有学生信息:从第一个学生开始一直到最后一个学生依次输出学生的信息。4.6 排序模块4.6.1 设计思路以姓名
10、为关键字排序(冒泡法):从第一个学生开始与后边的学生姓名的首字母比较, 一直到最后一个学生分别与后面的比较。当此学生姓名首字母在后面学生姓名首字母之 后时,两学生的位置交换。以学号为关键字排序和以宿舍号为关键字排序(冒泡法):从第一个学生开始与后面 学生学号(或宿舍号)比较,直到最后一个学生。当前面学生的学号(或宿舍号)大于 后面学生学号(或宿舍号)时,进行交换,否则不交换。4.6.2 流程图冒泡排序流程图(如图 4-6):开始下一个数据是否到尾YN前 一 个 字 符 是 否 大 于 后 一个 字 符 Y交换位置排序完成结束图 4 -6 排 序 模 块 流 程 图4.7 查询模块4.7.1 设
11、计思路以姓名为关键字查询函数:输入要查找的学生姓名,从第一个学生开始比较,当相 等时,输出该学生信息,标记已找到该学生信息,若没有查找到,标记没有找到该学生 信息。4.7.2 流程图以姓名为关键字查找(如图 4-7):开始下一个,是否到尾YN比 较 是 否 相同YN输入要查找学生姓名输出此学生信息查找完成结束图 4-7 按姓名查询流程图4.8 录入模块4.8.1 设计思路以学号为关键字查询:定义折半查找所需的变量 low,high,mid,使 low=1,high=total, mid=(low+high)/2,输入要查找的学生的学号,与第 mid 个学生的学号比较:当等于时, 输出该学生信息
12、;当大于时,low=mid+1,继续折半,比较;当小于时,high=mid-1,继 续折半,比较。若 lowhigh 时则没有查找到该学生信息。4.8.2 流程图以学号为关键字查找流程图(如图 4-8):输出该学生信息是否在这些学号之间YN折半是否成功YNN比较是否相等Y按学号从小到大排序查找失败开始输入要查找的学生学号结束4.9 查询模块4.9.1 设计思路图 4 -8 按 学 号 查 询 函 数 流 程 图以寝室号为关键字查询(折半查找):定义折半查找所需的变量 low=1,high=Total, mid=(low+high)/2,将输入的学生的学号与第 mid 个学生的学号比较:相等时,
13、输出该学 生信息,同时利用两个循环对所查找的寝室分别向前向后查找符合要求的寝室号的学生 信息;大于时,low=mid+1,折半,比较;小于时,high=mid-1,折半,比较。4.9.2 流程图以寝室号为关键字查询函数流程图(如图 4-9):开始输入要查找的学生寝室号输出该学生信息该寝室号是否在其范围内Y折半是否成功YN判断是否相等NY按寝室号大小排序查找失败结束图 4 -9 按 寝 室 号 查 询 函 数 流 程 图4.10 储存模块4.10.1 设计思路储存函数:打开文件并且正确写入数据时保存。4.10.2 流程图储存函数的流程图(如图 4-10):开始储存成功是否成功打开文件NY是否成功
14、写入数据NY结束储存失败图 4 -10 储 存 模 块 流 程 图4.11 加载模块4.11.1 设计思路加载函数:打开文件后读取数据,则加载成功,表中个数减一。4.11.2 流程图加载函数流程图(如图 4-11):开始加载成功Y是否成功打开文件NY是否读取成功NY加载失败结束图 4 -11 加 载 模 块 流 程 图4.12 提示保存模块4.12.1 设计思路退出前判断是否保存函数:若标志变量已变,则提醒保存,允许保存后,执行储存 函数。否则,不保存。4.12.2 流程图退出前提示是否保存函数流程图(如图 4-12):开始储存数据判断数据是否已变NY选择是否保存NY退出程序结束4.13 选择
15、模块4.13.1 设计思路图 4 - 12 提 示 保 存 函 数 流 程 图主函数:定义变量,选择要实现的功能。4.13.2 流程图主函数流程图(如图 4-13):开始输出功能菜单选 择 是 否 正确YN选择要实现的功能执行该功能图 4 -13 选 择 模 块 流 程 图5 运 行 测 试(1)测试结果对功能 1(添加学生信息)的测试:向程序中添加五条记录学生姓名学生学号宿舍号手机号码系别班级(如图 5-2)d206315032jiben10-2(如图 5-3)f203315032jiben10-2(如图 5-4)k215315032jiben10-2(如图 5-5)j212315032ji
16、ben10-2(如图 5-6)n216615032jiben10-2图 5 - 1 菜 单 界 面 图图 5 -2 添 加 界 面 图图 5 -3 添 加 界 面 图图 5 -4 添 加 界 面 图图 5 -5 添 加 界 面 图图 5 -6 添 加 界 面 图对功能 2(修改学生信息)的测试:修改学号为 203 的学生信息 输入信息:学生姓名:f学生学号:203宿舍号:6 手机号码:15032系别:jiben班级:10-2(如图 5-7)图 5 -7 修 改 界 面 图对功能 3(删除学生信息)的测试:删除学生 n 的信息(如图 5-8)图 5 -8 删 除 界 面 图对功能 4(以姓名查找
17、学生信息)的测试:查找学生 f 的信息(如图 5-9)图 5 - 9 按 姓 名 查 找 界 面 图对功能 5(以学号查询学生信息)的测试:查找学号为 212 的学生信息(图 5-10)图 5 -10 按 学 号 查 找 界 面 图对功能 6(按寝室号查询学生信息)的测试:查找 3 号宿舍学生信息(如图 5-11)图 5 -11 按 寝 室 号 查 询 界 面 图对功能 7(按寝室号从大到小排序)和功能 9(显示所有学生信息)的测试(如图 5-12 和图 5-13):图 5 -12 按 寝 室 号 排 序 界 面 图图 5 -13 显 示 结 果 界 面 图对功能 8(按学号大小排序)的测试(
18、如图 5-14 和图 5-15):图 5 -14 按 学 号 排 序 界 面 图图 5 -15 显 示 结 果 界 面 图对功能 12(按姓名排序)的测试(如图 5-16 和图 5-17):图 5 -16 按 姓 名 排 序 界 面 图图 5 -17 显 示 结 果 界 面 图对功能 10(保存数据)的测试(如图 5-18):图 5 -18 保 存 界 面 图对功能 11(加载数据)的测试(如图 5-19):图 5 -19 加 载 界 面 图对功能 13(退出程序)的测试(如图 5-20):图 5 -20 退 出 程 序 界 面 图当数据改变后为执行保存操作而要退出程序时(如图 5-21):图
19、 5 -21 提 醒 是 否 保 存 界 面 图( 2) 时间复杂度分析nlogn判断学号是否重复函数 S_number_Judge(Student S,int t);时间复杂度 T(n)=n 判断宿舍人数是否已满函数 D_number_Judge(Student S,int t);时间复杂度 T(n)=n 添加学生信息函数 Add(Student S);时间复杂度 T(n)=n删除学生信息函数 Delete(Student S); 时间复杂度 T(n)=n 修改学生信息函数 Modify(Student S);时间复杂度 T(n)=n 显示学生信息函数 Display_All(Student
20、 S);时间复杂度 T(n)=n按照学号从小到大排序函数 Order_S_number(Student S);时间复杂度 T(n)= n 按照寝室号从小到大排序函数 Order_D_number(Student S);时间复杂度 T(n)= n 按照姓名首字母的先后顺序排序函数 Order_N_name(Student S);时间复杂度 T(n)=按照姓名查找学生信息函数 Search_S_name(Student S);时间复杂度 T(n)=n 按照学生学号查找学生信息函数 Search_S_number(Student S);时间复杂度 T(n)=按照寝室号查找学生信息函数 Search_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 宿舍 管理 查询 系统 设计 实现
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。