数据结构课程设计之宿舍管理系统
数据结构课程设计报告宿舍管理系统
数据结构课程设计报告设计题目:学生宿舍管理系统学院:年级专业:姓名:学号:指导老师:1.设计目的宿舍对于大学生在校生活来说相当于家的存在,而宿舍管理又是学校后勤管理的重要环节,如何直观的了解宿舍的入住情况和每位同学的住宿位置是提高工作效率的重要课题,根据我们所学的C语言和数据结构课程中有关链表及外部文件的内容,为后勤管理人员编写宿舍管理查询软件, 就可以轻松满足实现上述需求。
通过实际课题设计,可以对我们加深书本知识理解,了解并掌握数据结构与算法的设计方法,培养独立分析和设计能力,掌握软件开发过程的基本方法和技能,对我们的个人素质提高大有脾益。
2.需求分析2.1性能分析宿舍一般由若干学生入驻,每个宿舍都有独立唯一的编号,入住学生也有唯一的学号,另外添加学生的姓名和班级,使用这些关键字就可以方便的查询和管理宿舍入住情况。
程序设计应采用交互工作方式,并建立数据文件。
程序应通过建立子函数实现创建、保存与载入数据文件,查找、添加、删除、更改、显示等功能,可以自动保存修改。
应具有友好的界面和较强的容错能力。
能够迅速准确地完成各种学生信息的统计和查询,以方便管理员对学生信息的统一管理。
2.2功能分析为方便管理员对系统进行操作,程序应具有以下功能:(1)创建宿舍数据文件,并提示管理员输入学生姓名、学号、宿舍号、班级等信息,并在本地保存数据文件(2)打开宿舍数据文件:输入文件名打开保存过的数据文件(3)查询住宿信息:提供学号、姓名、宿舍号三种查询方式(4)添加住宿信息:在数据文件中添加新的住宿信息(5)删除住宿信息:提示管理员输入要删除的学生姓名,验证后删除(6)修改住宿信息:提示管理员输入要修改的学生姓名,验证后修改(7)输出数据文件:将住宿信息按学号的大小排序全部输出(8)退出系统3.程序结构及流程设计3.1系统流程图3.2 函数设计4.系统详细设计4.1数据结构设计typedef struct pnode //结构体定义用于存放学生信息的节点{char name[10]; //姓名char num[16]; //学号char room[30]; //宿舍号char group[20]; //班级}student;char filename[20]; //文件名FILE *fp; //指向文件的指针4.2创建功能(void creat())使用函数新建链表,再使用while 循环完成对宿舍数据的录入,包括姓名、学号、班级、宿舍号等信息。
c课程设计之宿舍管理系统
c 课程设计之宿舍管理系统一、教学目标本节课的教学目标是让学生掌握宿舍管理系统的基本概念和实现方法。
知识目标要求学生了解宿舍管理系统的功能、结构和设计原则,能够分析宿舍管理系统的需求和实现方案。
技能目标要求学生能够使用编程语言实现简单的宿舍管理系统,包括学生信息的增删改查等功能。
情感态度价值观目标要求学生培养对计算机科学和软件工程的兴趣,认识到宿舍管理系统在实际生活中的重要性,提高学生解决问题的能力和团队合作意识。
二、教学内容本节课的教学内容主要包括宿舍管理系统的基本概念、系统结构和设计原则。
首先,介绍宿舍管理系统的作用和重要性,让学生了解宿舍管理系统在实际生活中的应用。
其次,讲解宿舍管理系统的结构,包括前端界面、后端数据库和中间件等组成部分。
然后,介绍宿舍管理系统的设计原则,如模块化设计、数据一致性和安全性等。
最后,通过实例分析,让学生了解宿舍管理系统的实现方法和步骤。
三、教学方法为了激发学生的学习兴趣和主动性,本节课采用多种教学方法相结合。
首先,采用讲授法,讲解宿舍管理系统的基本概念和设计原则。
其次,采用案例分析法,分析实际生活中的宿舍管理案例,让学生了解宿舍管理系统的应用。
然后,采用讨论法,引导学生分组讨论宿舍管理系统的实现方法,培养学生的团队合作意识。
最后,采用实验法,让学生动手编写宿舍管理系统的代码,提高学生的实际操作能力。
四、教学资源为了支持教学内容和教学方法的实施,本节课准备了一系列教学资源。
教材包括《计算机科学导论》和《软件工程导论》等,用于讲解宿舍管理系统的基本概念和设计原则。
参考书包括《宿舍管理系统设计与实现》等,用于提供宿舍管理系统的实现方法和示例代码。
多媒体资料包括PPT和视频教程等,用于辅助讲解和演示宿舍管理系统的相关内容。
实验设备包括计算机和网络设备等,用于让学生动手编写和测试宿舍管理系统的代码。
五、教学评估本节课的教学评估采用多元化评价方式,以全面客观地评价学生的学习成果。
数据结构课程设计之宿舍管理系统
##大学数据结构课程设计报告题目:宿舍管理查询软件院(系):学生姓名:班级:学号:起迄日期: 2011.6.20--2011.7.1指导教师:2010—2011年度第 2 学期一、需求分析1.问题描述:程序设计要求:为宿舍管理人员编写一个宿舍管理查询软件(1)采用交互工作方式(2)建立数据文件,数据文件按关键字(姓名、学号、放号)进行排序(冒泡、选择、插入排序等任选一种)(3) 查询菜单:(用二分查找实现以下操作)①按姓名查询②按学号查询③按放号查询(4)打印任一查询结果(可以连续操作)程序分析:(1)程序采用交互工作方式,也就是说要有一个人性化的操作界面。
将每一种操作赋给一个数字,通过输入不同的数字来实现不同的操作。
这样使人一看就能明白如何实现不同的操作。
全部使用提示选择方式,只需要输入你要使用方式的代号即可。
(2)本系统无数据信息,在使用的时候首先创建一个数据文件,开发一个录入数据的功能,使得所需要的数据存储到软件中,并暂时存在内存中,以便使用。
(3)录入和修改函数:建立相应的函数,在主函数中得到调用,以便于对学生信息的增加和修改。
(4)查询:以不同的关键字分别使用二分查找实现。
(5)为了使用方便和安全,增加了密码登录、密码锁定、退出、删除、全部删除、修改、存储为文本文档信息等功能。
2.基本功能(1)录入学生信息(2)显示学生信息(分别按学号、宿舍号、姓名进行排序后显示并在磁盘上以“.txt”格式保存显示的信息)(3)查询学生信息(分别按学号、宿舍号、姓名进行查询并显示)(4)修改学生信息(可进行单个删除、全部删除和修改学生信息)(5)存储学生信息(存储到磁盘上,保存为“.txt”格式)(6)锁定管理系统(进入密码登录界面,以确保安全)(7)退出管理系统3.输入输出各种功能之间的选择采用了数字提示方式,只需要根据提示进行选择相应的数字,在录入学生信息功能中姓名为长度30以内的任意字符,学生学号和宿舍号控制住15个数字以内。
宿舍管理系统课程设计
宿舍管理系统课程设计一、课程目标知识目标:1. 学生能够理解宿舍管理系统的基本概念,掌握其功能模块和业务流程。
2. 学生能够运用数据库知识,设计并实现宿舍管理系统的数据存储方案。
3. 学生能够运用编程语言,实现宿舍管理系统的基本功能,如入住、退宿、宿舍分配等。
技能目标:1. 学生能够运用结构化分析方法,完成宿舍管理系统的需求分析,并绘制相应的数据流图。
2. 学生能够运用面向对象的设计方法,设计宿舍管理系统的类和接口。
3. 学生能够熟练使用数据库管理系统,完成宿舍管理系统数据的增删改查操作。
情感态度价值观目标:1. 培养学生认真负责的工作态度,养成按时按质完成任务的良好习惯。
2. 培养学生团队协作精神,提高沟通与表达能力,增强解决问题的能力。
3. 培养学生对信息技术的兴趣和热情,激发他们探索新技术、新方法的积极性。
本课程针对高年级学生,课程性质为实践性较强的信息技术课程。
根据学生特点,课程目标注重理论与实践相结合,提高学生的实际操作能力。
在教学要求方面,强调学生主动参与、合作探究,以培养学生的自主学习能力和创新精神。
通过本课程的学习,学生能够具备宿舍管理系统设计与开发的基本能力,为未来从事相关领域工作奠定基础。
后续教学设计和评估将围绕课程目标展开,确保学生达到预期学习成果。
二、教学内容1. 宿舍管理系统概述- 了解宿舍管理系统的概念、功能及作用- 分析宿舍管理业务流程2. 系统需求分析- 学习结构化分析方法- 绘制宿舍管理系统的数据流图3. 数据库设计- 掌握数据库基本概念- 学习数据库设计方法,设计宿舍管理系统数据库4. 系统设计- 学习面向对象设计方法- 设计宿舍管理系统类和接口5. 功能实现- 掌握编程语言基本操作- 编写宿舍管理系统功能模块,如入住、退宿、宿舍分配等6. 系统测试与优化- 学习测试方法,对宿舍管理系统进行测试- 分析测试结果,优化系统性能7. 课程总结与拓展- 总结宿舍管理系统开发过程和方法- 探讨宿舍管理系统在现实生活中的应用及发展趋势教学内容按照课程目标进行科学性和系统性的组织,与课本内容紧密关联。
C宿舍管理系统课程设计
C 宿舍管理系统 课程设计一、课程目标知识目标:1. 学生能够理解宿舍管理系统的基本概念、功能模块及其在实际中的应用。
2. 学生能够掌握使用数据库进行数据存储、检索与管理的基本方法。
3. 学生能够运用结构化编程思想,设计并实现宿舍管理系统的基本功能。
技能目标:1. 学生能够运用所学知识,独立设计并实现一个简易的宿舍管理系统。
2. 学生能够通过实践操作,掌握数据库查询、更新和删除等操作技能。
3. 学生能够运用编程工具,进行系统功能的编码、调试与优化。
情感态度价值观目标:1. 学生通过本课程的学习,培养团队协作、沟通交流的能力,养成良好的合作精神。
2. 学生能够认识到信息技术在现实生活中的重要作用,增强对信息技术的兴趣和认同感。
3. 学生能够遵循法律法规,尊重他人隐私,养成良好的信息伦理素养。
分析课程性质、学生特点和教学要求,本课程旨在帮助学生将理论知识与实际应用相结合,提高学生的动手实践能力和创新能力。
课程目标具体、可衡量,以便学生和教师能够清晰地了解课程的预期成果。
通过本课程的学习,学生将能够独立设计并实现一个宿舍管理系统,为今后的学习和工作打下坚实的基础。
二、教学内容1. 宿舍管理系统概述- 了解宿舍管理系统的概念、发展及应用场景。
- 分析宿舍管理系统的功能模块及其相互关系。
2. 数据库基础- 学习数据库的基本概念、数据模型和关系型数据库的设计方法。
- 掌握SQL语句,进行数据查询、更新、插入和删除等操作。
3. 系统设计- 分析系统需求,明确系统功能。
- 学习结构化分析方法,绘制E-R图、数据流图等设计图。
4. 编程实现- 学习一种编程语言(如Java、C#等),掌握基本语法和编程规范。
- 根据系统设计,编写程序实现各功能模块。
5. 系统测试与优化- 学习测试方法,对系统进行功能测试、性能测试等。
- 分析测试结果,对系统进行优化和改进。
6. 实践项目- 以小组为单位,设计并实现一个简易的宿舍管理系统。
数据库课程设计学生宿舍管理系统
易用性
系统需要提供简洁明了的 操作界面和流程,方便用 户快速上手和使用。
可维护性
系统需要具备良好的可维 护性,方便后续的功能扩 展和bug修复。
用户群体分析
学生
学生是宿舍管理系统的主要用户群体 ,他们需要使用系统查询和修改个人 信息、申请入住宿舍、缴纳住宿费用 等。
宿舍管理员
学校管理部门
学校管理部门需要使用系统了解学生 宿舍的整体情况,进行数据统计和分 析,以便做出更好的管理决策。
03 促进学校信息化建设
推动学校信息化建设进程,提高学校管理水平和 服务质量。
系统概述
01 系统功能
学生宿舍管理系统主要包括学生信息管理、宿舍 信息管理、住宿费用管理、报表统计等功能模块 。
02 系统用户
系统用户包括学校管理员、宿舍管理员、学生和 教师等。
03 系统特点
采用B/S架构,易于维护和升级;界面友好,操作 简单;支持多用户并发访问;具有良好的安全性 和稳定性。
费用等操作,最后生成报表供管理员查看。
数据库设计
数据库选型
选择适合课程设计的数据库管理系统,如MySQL 、Oracle等。
数据表设计
设计学生信息表、宿舍信息表、入住记录表、费 用记录表等数据表,并定义表之间的关系。
数据字典
定义数据表中每个字段的名称、类型、长度、约 束等信息,确保数据的准确性和一致性。
界面设计
界面风格
采用简洁、清晰的界面风格,符合学生宿舍管理系统 的特点。
界面布局
合理安排界面元素的位置和大小,使界面更加美观和 易用。
交互设计
设计友好的交互方式,如按钮、链接、表单等,方便 用户进行操作和输入。
04
系统实现
自-数据结构课设报告-宿舍管理系统
宿舍管理系统一目的根据所学知识,编写指定题目的C语言程序,并规范地完成课程设计报告。
通过课程设计,加深对《程序设计语言》和《软件技术基础》课程所学知识的理解,熟练掌握和巩固C 语言的基本知识和语法规范,包括:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);库函数应用等;复杂任务功能分解方法(自顶向下逐步求精、模块化设计、信息隐藏等),熟练掌握和巩固三种基本的数据结构(线性结构、树形结构、图形结构)的逻辑结构、存储结构以及相关运算和应用。
学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备利用计算机编程分析解决综合性实际问题的初步能力。
二需求分析1、要求1)采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体结构设计合理。
学生也可根据自己对题目的理解增加新的功能模块(视情况可另外加分)。
2)系统以菜单界面方式(至少采用文本菜单界面,如能采用图形菜单界面更好)工作,运行界面友好,演示程序以用户和计算机的对话方式进行。
3)程序算法说明清晰,理论分析与计算正确,运行情况良好,实验测试数据无误,容错性强(能对错误输入进行判断控制)。
4)编程风格良好(包括缩进、空行、适当注释、变量名和函数名见名知意,程序容易阅读等)。
2、详细功能宿舍信息包括:宿舍号、性别、容纳人数、住宿费用、住宿学生姓名。
试设计一宿舍信息管理系统,使之能提供以下功能:1.宿舍基本信息(包含宿舍号、性别、容纳人数、住宿费用)录入;2.将学生分配到指定宿舍号的宿舍;3.已住宿的学生退宿舍;4.查询宿舍信息,包括宿舍号、性别、容纳人数、住宿费用、已住宿的人数、已住宿学生姓名。
5.系统以菜单方式工作。
三概要设计流程图相关叙述:用户运行程序时便正式进行了通讯录的使用,该通讯录分为五个功能,“1”选项对应的是“宿舍信息录入”功能;“2”选项对应的是“将学生分配到宿舍”功能;“3”选项对应的是“已住宿学生退宿”功能;“4”选项对应的是“删宿舍信息查询”功能;“5”选项对应的是“退出系统”功能。
数据结构课程设计宿舍
数据结构课程设计宿舍一、课程目标知识目标:1. 让学生掌握数据结构中线性表的基本概念,特别是链式存储结构的特点与应用。
2. 能理解并运用链表解决实际问题,如设计宿舍管理系统中的宿舍信息存储与查询。
3. 学会分析不同数据结构在解决实际问题时的效率,对比数组与链表的优缺点。
技能目标:1. 培养学生运用C/C++等编程语言实现链表数据结构的能力。
2. 能够设计并编写简单的宿舍管理系统,实现宿舍信息的添加、删除、修改和查询等功能。
3. 提高学生分析问题、解决问题的能力,通过小组讨论和实际操作,培养学生的团队合作精神和沟通能力。
情感态度价值观目标:1. 激发学生对数据结构学习的兴趣,培养良好的学习习惯和探究精神。
2. 培养学生面对复杂问题时保持耐心、细心的态度,树立克服困难的信心。
3. 引导学生关注现实生活中数据结构的应用,认识到数据结构对计算机科学的重要性,增强学生的专业认同感。
课程性质:本课程为高二年级信息技术课程,以数据结构为基础,结合实际应用,培养学生的编程能力和解决实际问题的能力。
学生特点:高二年级学生对编程语言有一定的了解,具备基本编程能力,对数据结构有一定认识,但实际应用能力有待提高。
教学要求:结合学生特点和课程性质,以宿舍管理系统为背景,引导学生通过动手实践,掌握链表数据结构的应用,提高编程能力和解决实际问题的能力。
在教学过程中,注重培养学生的团队合作精神和情感态度价值观。
通过课程目标的实现,为后续学习更复杂的数据结构打下坚实基础。
二、教学内容1. 理论知识:- 线性表的基本概念与性质- 链式存储结构(单链表、双向链表、循环链表)- 链表的插入、删除、查找操作2. 实践操作:- 编程实现单链表的创建、插入、删除和查找功能- 基于链表的宿舍管理系统设计与实现- 宿舍信息的数据结构设计- 宿舍信息的添加、删除、修改和查询功能实现3. 教学大纲:- 第一课时:线性表基本概念,链式存储结构引入,单链表结构定义- 第二课时:单链表插入、删除操作原理与实现- 第三课时:单链表查找操作,以及在实际宿舍管理系统中的应用- 第四课时:双向链表、循环链表介绍,分析优缺点- 第五课时:基于链表的宿舍管理系统设计与编程实践- 第六课时:课程总结,学生作品展示与评价教材章节关联:- 《数据结构》第二章 线性表- 2.1 线性表的定义及基本运算- 2.2 线性表的顺序存储结构- 2.3 线性表的链式存储结构教学内容安排和进度:本章节共计6课时,按照教学大纲逐步进行,确保学生充分理解并掌握链表相关知识,同时在实践中运用所学知识设计和实现宿舍管理系统。
宿舍管理系统c课程设计
宿舍管理系统c课程设计一、课程目标知识目标:1. 理解宿舍管理系统的基本功能需求,掌握系统设计的基本原理;2. 学会运用C语言进行数据结构设计和算法实现,构建宿舍管理系统的功能模块;3. 掌握模块化编程思想,能够对宿舍管理系统进行模块划分和代码编写。
技能目标:1. 能够运用结构体、文件操作等C语言知识编写宿舍管理系统相关功能;2. 培养学生分析问题、解决问题的能力,提高编程实践技能;3. 增强团队协作能力,学会与他人共同完成一个项目。
情感态度价值观目标:1. 培养学生认真负责的工作态度,严谨细致的编程习惯;2. 增强学生对计算机科学与技术专业的兴趣,激发学习热情;3. 培养学生积极向上的团队精神,提高沟通表达能力。
课程性质分析:本课程为计算机科学与技术专业课程,旨在通过宿舍管理系统课程设计,让学生掌握C语言在实际项目中的应用,提高编程实践能力。
学生特点分析:学生已具备一定的C语言基础,但实际项目经验不足,需要通过课程设计培养实践能力和团队协作能力。
教学要求:教师需引导学生分析需求,明确功能模块,并在实践中提供指导,确保学生能够独立或协作完成课程设计任务。
通过课程目标的实现,评估学生在知识、技能和情感态度价值观方面的学习成果。
二、教学内容1. 宿舍管理系统需求分析:介绍宿舍管理系统的功能需求,引导学生明确课程设计的任务目标,对应教材中“系统分析与设计”章节。
2. 数据结构设计:讲解如何运用结构体、链表等数据结构存储宿舍信息,对应教材中“数据结构”章节。
3. 功能模块设计:- 宿舍信息录入与查询:介绍如何实现宿舍信息的添加、删除、修改和查询功能,对应教材中“文件操作”章节;- 学生信息管理:讲解如何实现学生信息的添加、删除、修改和查询功能,对应教材中“结构体与指针”章节;- 宿舍卫生管理:介绍如何实现宿舍卫生情况的记录和查询,对应教材中“函数与模块化编程”章节。
4. 系统测试与优化:教授如何对宿舍管理系统进行测试和优化,提高系统稳定性和性能,对应教材中“程序调试与优化”章节。
数据库课程设计——学生宿舍管理系统
数据库课程设计——学生宿舍管理系统学生宿舍管理系统是一个在宿舍内运用一套计算机数据库系统来管理宿舍资源的一种系统,其主要有宿舍的床位的记录,宿舍进出情况的记录,以及在宿舍内的电信费用的结算等。
这套系统主要是管理宿舍的资源,是学生在校期间居住环境良好、安全稳定的基础。
该系统主要包括宿舍人员信息,电子证件信息,维修管理,安全管理,电信费用,违规登记,公共活动安排,探访记录等几个主要的模块组成。
宿舍人员信息模块是指向学生宿舍中所有入住学生提供宿舍床位资源申请,记录个人信息,转移床位,离开宿舍等服务。
电子证件信息模块指的是在宿舍内每一位学生进入前,需要出示身份证件如学生证,及其他权威机构发放的个人有效证件,以及学生图书馆的借还书情况等信息的收集。
维修管理模块此模块是收集宿舍内的维修及疏导信息,对宿舍内设备信息的查询,及采购、使用过程的记录;安全管理模块是指在学生入住前及整个住期内宿管部门对宿舍的环境、安全状况及情况的收集记录;电信费用模块此模块是指宿舍内每位学生使用电话费用时必须进行记录;违规登记模块此模块是指对宿舍违反宿管部门要求及学校规章制度情况的记录;公共活动安排模块此模块是指在宿舍内举办的公共活动的记录;探访记录模块是指宿舍内朋友及亲人探访等情况的记录等。
总之,学生宿舍管理系统是一种在宿舍内运用一套计算机数据库系统来对宿舍的人员信息、电子证件信息、维修管理、安全管理、电信费用、违规登记、公共活动安排、探访记录等有效记录及管理的系统。
由于数据库技术的发展,学生宿舍管理系统可以实现快速可靠的资料记录,使资料的维护和查询变得更加便捷和安全。
数据库技术的发展对于学生宿舍管理系统的构建起着至关重要的作用,其实现的高效记录、安全稳定的基本功能,为学生在校期间的居住环境提供了良好的保障。
数据结构宿舍管理系统
数据结构宿舍管理系统一、引言1.1 目的本文档描述了数据结构宿舍管理系统的设计和功能,旨在提供一个完整的指南,帮助开发人员了解系统的结构和使用方式。
1.2 范围本系统主要包括宿舍信息管理、学生信息管理、入住登记管理、维修申报管理等模块,涵盖了对宿舍信息和学生信息的录入、查询、更新等操作。
1.3 定义、首字母缩写词- 数据结构宿舍管理系统:简称为宿管系统,用于管理大学宿舍的信息和相关操作的软件系统。
- 宿舍信息管理模块:负责录入、更新和查询宿舍的相关信息。
- 学生信息管理模块:负责录入、更新和查询学生的相关信息。
- 入住登记管理模块:负责记录学生入住宿舍的信息。
- 维修申报管理模块:负责学生对宿舍的维修申报和处理。
二、总体设计2.1 系统架构该系统采用了三层架构,分别是表示层、业务逻辑层和数据访问层。
表示层负责用户界面的展示和用户输入的接收,业务逻辑层负责处理前台的业务逻辑,数据访问层负责与数据库的交互。
2.2 数据流程该系统的数据流程包括学生信息录入、宿舍信息录入、入住登记和维修申报处理等。
通过各个模块之间的数据传递和处理,实现对宿舍信息和学生信息的管理和操作。
三、模块设计3.1 宿舍信息管理模块3.1.1 宿舍信息录入在该模块中,管理员可以录入宿舍的基本信息,包括宿舍编号、宿舍楼栋、楼层、可容纳人数等。
3.1.2 宿舍信息更新在该模块中,管理员可以根据需要更新宿舍的相关信息,如修改宿舍楼层、增加宿舍容纳人数等。
3.1.3 宿舍信息查询据宿舍编号查询宿舍信息。
3.2 学生信息管理模块3.2.1 学生信息录入在该模块中,管理员可以录入学生的基本信息,包括学生学号、姓名、性别、所在宿舍等。
3.2.2 学生信息更新在该模块中,管理员可以根据需要更新学生的相关信息,如修改学生宿舍、变更学生姓名等。
3.2.3 学生信息查询在该模块中,管理员可以根据指定条件对学生进行查询,如根据学生学号查询学生信息。
3.3 入住登记管理模块3.3.1 学生入住登记在该模块中,管理员可以记录学生的入住信息,包括学生学号、宿舍编号、入住日期等。
数据结构课程设计报告宿舍管理系统完整版
数据结构课程设计报告宿舍管理系统HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】数据结构课程设计报告设计题目:学生宿舍管理系统学院:年级专业:姓名:学号:指导老师:1.设计目的宿舍对于大学生在校生活来说相当于家的存在,而宿舍管理又是学校后勤管理的重要环节,如何直观的了解宿舍的入住情况和每位同学的住宿位置是提高工作效率的重要课题,根据我们所学的C语言和数据结构课程中有关链表及外部文件的内容,为后勤管理人员编写宿舍管理查询软件, 就可以轻松满足实现上述需求。
通过实际课题设计,可以对我们加深书本知识理解,了解并掌握数据结构与算法的设计方法,培养独立分析和设计能力,掌握软件开发过程的基本方法和技能,对我们的个人素质提高大有脾益。
2.需求分析性能分析宿舍一般由若干学生入驻,每个宿舍都有独立唯一的编号,入住学生也有唯一的学号,另外添加学生的姓名和班级,使用这些关键字就可以方便的查询和管理宿舍入住情况。
程序设计应采用交互工作方式,并建立数据文件。
程序应通过建立子函数实现创建、保存与载入数据文件,查找、添加、删除、更改、显示等功能,可以自动保存修改。
应具有友好的界面和较强的容错能力。
能够迅速准确地完成各种学生信息的统计和查询,以方便管理员对学生信息的统一管理。
功能分析为方便管理员对系统进行操作,程序应具有以下功能:(1)创建宿舍数据文件,并提示管理员输入学生姓名、学号、宿舍号、班级等信息,并在本地保存数据文件(2)打开宿舍数据文件:输入文件名打开保存过的数据文件(3)查询住宿信息:提供学号、姓名、宿舍号三种查询方式(4)添加住宿信息:在数据文件中添加新的住宿信息(5)删除住宿信息:提示管理员输入要删除的学生姓名,验证后删除(6)修改住宿信息:提示管理员输入要修改的学生姓名,验证后修改(7)输出数据文件:将住宿信息按学号的大小排序全部输出(8)退出系统3.程序结构及流程设计系统流程图4.系统详细设计数据结构设计修改界面删除界面添加界面输出界面本地数据文件系统分析经过测试,该宿舍管理系统结构清晰,运行时测试也相对简单。
数据库课程设计-宿舍管理系统
数据库课程设计——学生宿舍管理系统一、设计内容本学生宿舍管理系统,实现简单的宿舍住宿安排、人员查询管理等操作,并能实现简单的数据统计。
此系统主要完成基础数据维护、宿舍入住、退宿、住宿人员统计等基本功能。
(一)基础数据维护:主要功能是系统提供一个详细全面的基础数据。
1、系统用户管理管理系统用户信息,实现不同用户的分级管理,设置用户权限。
2、房间信息管理房号、床位、备品信息。
3、学生信息维护实现学生数据的编辑工作。
(二)宿舍入住按宿舍情况、参照学生班级、专业信息分配学生宿舍,记录每个宿舍入住学生信息。
(三)退宿根据学生学号信息还有相应的管理权限,办理退宿。
(四) 查询实现灵活的多条件查询方式:按学生专业、班级信息查询学生宿舍分布;按宿舍查学生信息。
二、设计目标本系统的最终用户为宿舍楼管理员,本宿舍楼的学生。
根据我们日常生活中的经验,结合对自己学校宿舍楼管理老师的咨询和对同宿舍楼同学的调查,得出用户的下列实际要求:宿舍楼的基本情况学生住在宿舍楼中,每栋宿舍楼都会有若干名老师负责本宿舍楼的日常管理。
(1)学生的基本情况入校时,每位同学都有唯一的学号,并被分配到指定的宿舍楼和指定的宿舍,也会有一个宿舍号,其入校时间就是他的入住时间。
另外,为了管理上的方便,同一院系的学生的宿舍一般在一起,相应地会有其所在的院系名称。
(2)宿舍的基本信息每间宿舍都有唯一的宿舍号,入校时,宿舍会装公用电话机,相应地就有宿舍电话号码。
(3)宿舍财产的基本信息每个宿舍的财产属于学校,比如电灯,床铺,柜子,桌椅等,为了对不同的财产进行区分,可以为每种财产分配不同的财产号。
这样有利于财产的报修和管理。
(4)快件收发的基本信息每栋宿舍楼都有邮件收发的管理,当本楼的同学有信件时,相应的会有信件的到达时间,接受信件的同学姓名和他所在的宿舍号。
有时,同一个学生有多封信件需要接收,需要表示一个同学有多少封信件。
当信件接收后,应有一个接收信件的时间,表示信件已成功到达指定的同学手中。
课程设计之宿舍管理系统
数据结构课程设计(论文)题目宿舍管理系统作者路帅帅院 (系) 信息工程学院专业信息管理于信息系统指导教师吴敏宁答辩日期2013-11-摘要在当今信息技术迅猛发展,知识更替日新月异的时代,信息技术为企业的发展提供了机遇,也带来了挑战。
使用传统人工的方式管理宿舍,存在着许多缺点,而使用计算机对学生信息进行管理,有着手工管理所无法比拟的优点,这些优点能够极大地提高高校宿舍管理系统效率,也是学校走向科学化、正规化管理,与世界接轨的重要条件。
高校学生宿舍管理系统的开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于后台数据库的建立和维护要求建立起数据一致性和完整性强、数据安全性好的库。
而对于前端应用程序的开发则要求应用程序能提供强大的数据操纵功能,界面友好、使用简单方便等特点。
旧的手工纪录的宿舍管理方式已经不能适应高速发展的信息化时代,新的宿舍管理系统开发出来之后,学校的现有的宿舍信息管理将有很大的改观,由过去的人工方式转变为计算机方式,由效率低、数据冗余、易产生错误转变为检索迅速、查找方便、可靠性高、存储量大。
这些优点能够极大地提高效率,也是学校科学化、正规化管理的重要条件本系统是采用Visual C++ 6.0作为开发工具。
关键词:Visual C++ 6.0, 宿舍管理ABSTRACTIn today's rapid development in information technology, knowledge era of change with each passing day, information technology offers opportunities for business development, also poses a challenge. With traditional manual management of the hostel, there were many shortcomings, which uses computers to manage student information, manual working the incomparable advantages, these advantages can greatly improve the efficiency of dormitory management system in colleges and universities and schools to the scientific, standardized management, and important condition for the rest of the world. Development of University students ' dormitory management system mainly includes the backend database creation and maintenance, as well as two front-end application development. Background the establishment and maintenance of databases requires building strong data consistency and integrity, data security is good. Forfront-end application development application provides powerful capabilities for datamanipulation is required, user friendly, easy to use features. Hostel in the old manual records management has been unable to adapt to the rapid development of the information age, new dormitory management system developed after school is very different from existing hostels information management will change from the previous manually into a computer, produced by a low efficiency, data redundancy, error into rapid retrieval and search for convenient, high reliability and large memory capacity. These advantages can greatly improve the efficiency of important conditions for scientific and standardized management of schoolVisual C++6.0 this system is used as development tools.Keywords: Visual C++ 6.0, management of dormitory目录1 绪论 (1)1.1 课题背景及研究意义.......................................................................... 错误!未定义书签。
数据库课程设计-宿舍管理系统
目录一、项目概述 (1)1.1软件定义 (1)1.2 开发与运行环境 (1)二.需求分析 (2)2.1 数据库需求分析 (2)2.2 功能模块图 (2)2.3 功能陈述 (2)2.4 数据流图 (2)2.5 数据字典 (7)三、概念结构设计 (10)3.1实体及其属性 (10)3.2 E-R模型图 (11)四、逻辑结构设计 (15)4.1 E-R图向关系模型转换 (15)4.2 数据模型优化 (15)4.3 数据关系模式的优化 (16)4.4设计用户子模式 (17)五、数据库逻辑设计 (18)5.1 表的定义 (18)六、SQL语句 (21)6.1 数据定义及其结果 (21)6.2 数据查询 (27)6.3 数据更新 (29)七.结束语 (32)宿舍管理系统一、项目概述《学生宿舍管理系统》是学校管理环节中必不可少的一部分。
它是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,它能够为用户提供充足的信息和快捷的查询手段。
能有效的帮助学校和老师掌握学生的情况,方便校方管理及学生的日常寝室生活。
代替了传统的人工记录方法,能够更科学、更便捷的管理各种信息并可以进行查询等工作。
通过该系统,管理员用户可以查看学生的基本资料寝室信息等各方面的资料,能够方便的了解学生寝室生活情况。
该管理系统为用户提供了信息录入,数据查询、输出各种信息等。
更好的保护了同学们的私人信息以及便于通知各种事宜。
比如电费的欠费通知等情况。
能够使同学们的生活更加便捷。
1.1软件定义1.1.1软件名称学生宿舍管理系统1.1.2 系统的主要功能1.用户系统登录信息:包括添加用户,退出系统等方面,这样可以方便管理者对宿舍楼的管理,提高查询效率;2.学生基本信息:学生编号、学生姓名、学生性别、学院、出生日期、家庭住址、联系电话个人信息,可以方便学生信息的查询和更新;3.物品出入及外来人员信息4.亲友来访登记信息,使学生寝室更加安全;1.2 开发与运行环境该网络工资管理系统开发与运行环境选择如下:开发环境:Windows XP数据库管理系统:SQL Server 2000二.需求分析2.1 数据库需求分析需求分析简单地说就是分析用户的要求。
数据结构宿舍管理系统
数据结构宿舍管理系统在当今的高校和企业宿舍管理中,一个高效、准确且易于操作的数据结构宿舍管理系统是至关重要的。
它不仅能够提升管理效率,还能为住宿人员提供更好的服务和保障。
首先,让我们来了解一下这个系统的基本需求和功能。
宿舍管理系统需要涵盖宿舍信息的录入与维护,包括宿舍的编号、位置、容纳人数等。
同时,还要有住宿人员的信息管理,如姓名、学号或工号、所在班级或部门等。
系统还应该具备住宿分配功能,能够根据预设的规则和条件,合理地为新入住人员安排宿舍。
在数据结构方面,我们可以采用链表、数组、树等结构来存储和管理这些信息。
例如,使用链表来存储住宿人员的信息,可以方便地进行插入、删除和查找操作。
对于宿舍信息,可以使用数组来存储,因为宿舍的数量相对固定,数组的随机访问特性能够提高查询效率。
为了实现宿舍分配功能,我们需要设计一套合理的算法。
比如,可以按照班级或部门进行集中分配,优先将同一班级或部门的人员安排在相邻的宿舍。
在分配过程中,要考虑宿舍的剩余容量,避免出现超额分配的情况。
这就需要在算法中不断检查宿舍的可用床位,并进行合理的选择。
系统的用户界面也非常重要。
它应该简洁明了,易于操作。
对于管理员来说,能够方便地进行各种管理操作,如信息录入、修改、查询和统计等。
对于住宿人员,应该提供个人信息查询、报修申请等功能。
在设计用户界面时,要充分考虑用户的使用习惯和需求,提高用户体验。
另外,系统的安全性也是不容忽视的。
要设置不同的用户权限,管理员拥有最高权限,可以进行全面的操作;住宿人员只能查看和修改自己的相关信息。
同时,要对系统的数据进行加密存储,防止数据泄露。
在系统的开发过程中,还需要进行充分的测试。
包括功能测试、性能测试、安全测试等。
功能测试要确保系统的各项功能都能正常运行,没有漏洞和错误。
性能测试要检测系统在大数据量和高并发情况下的响应速度和稳定性。
安全测试则要检查系统是否能够有效抵御各种攻击和非法访问。
系统的维护和升级也是长期的工作。
数据结构课程设计-宿舍管理系统
#include<stdio.h>#include<string.h>struct DBNode//数据结点{char Name[20];//姓名int StdID;//学号int RoomID;//房号};//插入排序void InsertSort_Name(DBNode a[], int n)//n是数据的数量{int i, j;//循环变量for (i = 1; i < n; i++)//n个数据n-1次排序if (strcmp(a[i].Name,a[i - 1].Name)<0)//如果待排序的数据比排好序的部分最后一个数小,就进行排序{DBNode temp = a[i];//因为数据要向后移动,暂存待排序的数据for (j = i - 1; j >= 0 && strcmp(a[j].Name,)>0; j--)//找到插入的位置a[j + 1] = a[j];a[j + 1] = temp;//把数据写到相应位置}}void InsertSort_StdID(DBNode a[], int n){int i, j;for (i = 1; i < n; i++)if (a[i].StdID < a[i - 1].StdID){DBNode temp = a[i];for (j = i - 1; j >= 0 && a[j].StdID > temp.StdID; j--)a[j + 1] = a[j];a[j + 1] = temp;}}void InsertSort_RoomID(DBNode a[], int n){int i, j;for (i = 1; i < n; i++)if (a[i].RoomID < a[i - 1].RoomID){DBNode temp = a[i];for (j = i - 1; j >= 0 && a[j].RoomID > temp.RoomID; j--)a[j + 1] = a[j];a[j + 1] = temp;}}//二分查找,返回数组下标int Binsch_Name(DBNode A[], int low, int high, char *K){if (low <= high)//当low小于high时查找{int mid = (low + high) / 2;//算出中间位置if (strcmp(A[mid].Name,K)==0)//中间位置是待查找的数据,直接返回return mid;else if (strcmp(A[mid].Name, K)>0)//中间位置大于待查找的数据,在[low,mid-1]处查找return Binsch_Name(A, low, mid - 1, K);else//中间位置小于待查找的数据,在[mid+1,high]处查找return Binsch_Name(A, mid + 1, high, K);}else return -1;//-1不可能在数组中出现,表未找到查找的数据}int Binsch_StdID(DBNode A[], int low, int high, int K){if (low <= high){int mid = (low + high) / 2;if (A[mid].StdID == K)return mid;else if (A[mid].StdID>K)return Binsch_StdID(A, low, mid - 1, K);elsereturn Binsch_StdID(A, mid + 1, high, K);}else return -1;}int Binsch_RoomID(DBNode A[], int low, int high, int K){if (low <= high){int mid = (low + high) / 2;if (A[mid].RoomID == K)return mid;else if (A[mid].RoomID>K)return Binsch_RoomID(A, low, mid - 1, K);elsereturn Binsch_RoomID(A, mid + 1, high, K);}else return -1;}//建立数据文件void BuildDB(){printf("您想要输入的数据数量:");//输出提示int n;//n为要输入的数据量scanf("%d", &n);printf("请输入数据:(例:张三01 312)\n");FILE *fp = fopen("DB.txt", "a");//fp为文件指针,fopen为打开文件的函数,"DB.txt"为文件名,"a"为追加模式DBNode *std=new DBNode;//new 是C++的函数for (int i = 0; i < n; ++i)//把数据循环地写到文件中去{scanf("%s %d %d", std->Name, &std->StdID, &std->RoomID);//从外面输入数据到内存fprintf(fp, "%s %d %d\n", std->Name, std->StdID, std->RoomID);//从内存写到文件去}fclose(fp);//关掉文件}//查询void Find(){FILE *fp = fopen("DB.txt", "r");//fp为文件指针,fopen为打开文件的函数,"DB.txt"为文件名,"r"为只读模式if (fp == NULL)//文件不存在时输出提示,并直接返回{printf("无相关数据文件!\n");return;}DBNode db[100];//定义从文件接受数据的数组int i;//i为循环变量for (i = 0; (i < 100) && (!feof(fp)); ++i)//从文件逐行输入数据,退出循环式i为读入数据的数量,feof()函数判断文件是否结束fscanf(fp,"%s %d %d", db[i].Name, &db[i].StdID, &db[i].RoomID);printf("1.按姓名查找;2.按学号查找;3.按房号查找:");int o;//o是保持操作标志的变量scanf("%d", &o);char K1[20];//K1保存查找的名字int K2;//K2保存查找的学号或房号int index;//index保存二分查找返回的下标switch (o){case 1:printf("请输入要查找的姓名:");//输出提示scanf("%s", K1);//输入查找的名字InsertSort_Name(db, i);//按名字排序index=Binsch_Name(db, 0, i - 1, K1);//按名字查找if (index != -1)//index不等于-1,表找到要查找的数据//输出查找到的数据printf("查找结果如下:\n姓名:%s 学号:%d 房号:%d\n", db[index].Name, db[index].StdID, db[index].RoomID);else//index等于-1,表未找到要查找的数据printf("无所查信息!\n");break;case 2:printf("请输入要查找的学号:");scanf("%d", &K2);InsertSort_StdID(db, i);index = Binsch_StdID(db, 0, i - 1, K2);if (index != -1)printf("查找结果如下:\n姓名:%s 学号:%d 房号:%d\n", db[index].Name, db[index].StdID, db[index].RoomID);elseprintf("无所查信息!\n");break;case 3:printf("请输入要查找的房号:");scanf("%d", &K2);InsertSort_RoomID(db, i);index = Binsch_RoomID(db, 0, i - 1, K2);if (index != -1)printf("查找结果如下:\n姓名:%s 学号:%d 房号:%d\n", db[index].Name, db[index].StdID, db[index].RoomID);elseprintf("无所查信息!\n");break;default:printf("无效操作!/n");break;}fclose(fp);//关掉文件}void main(){printf("宿舍管理查询系统\n");//输出提示while (1)//大循环,保存一直对这个系统的操作{printf("选择操作:1.输入数据库;2.查询:");//提示int o;//o保存要操作的标志scanf("%d", &o);if (o == 1)//o为1时,建立数据库BuildDB();if (o == 2)//o为2时,查找数据Find();}}。
数据库课程设计宿舍管理系统
数据库课程设计宿舍管理系统宿舍管理系统是一种基于数据库技术的信息管理系统,主要用于管理学校或公寓宿舍的信息,包括学生信息、宿舍信息、楼层信息、寝室信息、维修信息等。
该系统可以帮助学校或公寓管理人员更好地管理学生宿舍,提高宿舍管理效率,加强对学生宿舍的监管力度。
宿舍管理系统的设计需要考虑以下几个方面:一、系统需求分析在设计宿舍管理系统之前,我们需要进行系统需求分析,了解学校或公寓管理人员的需求和要求,确定系统的功能和性能指标。
系统需求分析包括以下几个方面:1、功能需求分析宿舍管理系统需要实现的功能包括:学生信息管理、宿舍信息管理、楼层信息管理、寝室信息管理、维修信息管理、统计报表查询等。
2、性能需求分析宿舍管理系统需要满足的性能要求包括:系统响应速度快、数据可靠性高、数据安全性强、易于维护等。
二、数据库设计在进行数据库设计时,需要根据需求分析结果确定数据库的结构和关系。
宿舍管理系统需要设计的数据库包括:学生信息表、宿舍信息表、楼层信息表、寝室信息表、维修信息表等。
1、学生信息表学生信息表包括学生的基本信息,如学号、姓名、性别、班级、联系方式等。
2、宿舍信息表宿舍信息表包括宿舍的编号、类型、容纳人数、所在楼层等信息。
3、楼层信息表楼层信息表包括楼层的编号、名称、所在位置等信息。
4、寝室信息表寝室信息表包括寝室的编号、所属宿舍编号、所在楼层编号、宿舍类型等信息。
5、维修信息表维修信息表包括维修记录的编号、维修日期、维修内容、维修人员等信息。
三、系统实现在进行系统实现时,需要根据需求分析和数据库设计结果进行系统开发。
系统开发的主要内容包括:系统界面设计、系统功能实现、系统测试和系统优化等。
1、系统界面设计系统界面设计需要根据用户需求和数据库设计结果进行界面布局和界面元素的设计,使得用户可以方便地使用系统。
2、系统功能实现系统功能实现需要根据需求分析和数据库设计结果进行功能模块的开发,包括学生信息管理模块、宿舍信息管理模块、楼层信息管理模块、寝室信息管理模块、维修信息管理模块、统计报表查询模块等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
##大学数据结构课程设计报告题目:宿舍管理查询软件院(系):学生姓名:班级:学号:起迄日期: 2011.6.20--2011.7.1指导教师:2010—2011年度第 2 学期一、需求分析1.问题描述:程序设计要求:为宿舍管理人员编写一个宿舍管理查询软件(1)采用交互工作方式(2)建立数据文件,数据文件按关键字(姓名、学号、放号)进行排序(冒泡、选择、插入排序等任选一种)(3) 查询菜单:(用二分查找实现以下操作)①按姓名查询②按学号查询③按放号查询(4)打印任一查询结果(可以连续操作)程序分析:(1)程序采用交互工作方式,也就是说要有一个人性化的操作界面。
将每一种操作赋给一个数字,通过输入不同的数字来实现不同的操作。
这样使人一看就能明白如何实现不同的操作。
全部使用提示选择方式,只需要输入你要使用方式的代号即可。
(2)本系统无数据信息,在使用的时候首先创建一个数据文件,开发一个录入数据的功能,使得所需要的数据存储到软件中,并暂时存在内存中,以便使用。
(3)录入和修改函数:建立相应的函数,在主函数中得到调用,以便于对学生信息的增加和修改。
(4)查询:以不同的关键字分别使用二分查找实现。
(5)为了使用方便和安全,增加了密码登录、密码锁定、退出、删除、全部删除、修改、存储为文本文档信息等功能。
2.基本功能(1)录入学生信息(2)显示学生信息(分别按学号、宿舍号、姓名进行排序后显示并在磁盘上以“.txt”格式保存显示的信息)(3)查询学生信息(分别按学号、宿舍号、姓名进行查询并显示)(4)修改学生信息(可进行单个删除、全部删除和修改学生信息)(5)存储学生信息(存储到磁盘上,保存为“.txt”格式)(6)锁定管理系统(进入密码登录界面,以确保安全)(7)退出管理系统3.输入输出各种功能之间的选择采用了数字提示方式,只需要根据提示进行选择相应的数字,在录入学生信息功能中姓名为长度30以内的任意字符,学生学号和宿舍号控制住15个数字以内。
二、概要设计1.设计思路:所有的程序从主函数void main()开始,首先调用了load()函数进行密码登录,然后调用Menu()主菜单函数。
然后在Menu()函数中又依次增加了各种功能,然后通过switch语句分别选择录入、显示、查询、修改、存储、锁定、退出功能。
①选择录入功能时调用Add()录入信息函数;②选择显示功能时,首先调用showhead()表头显示函数,然后分别调用Sort_S_number(Student S[M]),Sort_D_number(Student S[M]),Sort_S_name(Student S[M])函数根据学生学号、学生宿舍号、学生姓名关键字进行冒泡或者直接插入排序方法排序,然后显示;③选择查询功能时,首先调用searchheader(),表头显示函数,然后分别调用searh_S_number(Student S[M]);searh_D_number(Student S[M]);searh_S_name(Student S[M]);以学生学号、学生宿舍号、学生姓名为关键字进行查找,然后调用Display_All(Student S[M]);显示函数;④选择修改功能,在通过switch语句进行选择删除、全部删除、修改功能;⑤存储功能进行磁盘文本文档信息存储;⑥锁定功能调用load()登录函数进行锁定;⑦退出功能。
大体框架设计以后,然后依次对每个功能进行详细的设计。
2.数据结构设计:逻辑结构:线性存储结构:链式//----------线性表的静态单链表表示存储结构------------//定义一个存储学生相关信息的结构体#define M 100 //链表的最大长度typedef struct{char S_name[31]; //学生姓名char S_number[16]; //学生学号char S_sex[15];//学生性别char D_number[15]; //学生所在寝室的宿舍号int Total; //学生总数}Student,St[M];这种描述方法避免了“指针”类型的使用,在上述描述的链表中,数组的一个分量表示一个结点,同时用游标(总数Total)代替指针指示结点在数组中的相对位置。
数组的第零分量可以看成头结点,其指针域指示链表的第一个结点。
定义程序中用到的抽象数据类型:ADT List{数据对象:D={ai | ai∈ElemSet,i=1,2,3……,n,n≥0}数据关系:R1={<ai-1,ai>| ai-1,ai∈D,i=1,2,3,……,n}基本操作:Add(Student *S)初始条件:链表不存在。
操作结果:录入信息进行创建新的链表Display_All(S)初始条件:链表S已存在操作结果:打印所有S的数据searh_S_name(Student *S)初始条件:链表S已存在。
操作结果:按照名字查找指定的某元素。
searh_S_number(Student *S)初始条件:链表S已存在。
操作结果:按照学生学号查找指定的某元素。
searh_D_number(Student *S)初始条件:链表S已存在。
操作结果:按照学生宿舍号查找指定的某元素。
Sort_D_number(Student *S)初始条件:链表S已存在。
操作结果:对链表S按照宿舍号的大小进行排序。
Sort_S_name(Student *S)初始条件:链表S已存在。
操作结果:对链表S按照学生姓名的先后进行排序。
Sort_S_number(Student *S)初始条件:链表S已存在。
操作结果:对链表S按照学生学号的大小进行排序。
}3.软件结构设计:(1)模块划分①录入学生信息 void Add(Student *S)②显示学生信息 void Display_All(Student *S)③查询学生信息 void search(Student *S)④修改学生信息 void Exchange(Student *S)⑤存储学生信息⑥锁定管理系统 void load()⑦退出管理系统(2)函数原型Void main();//主函数void Add(Student S[M]);//声明录入学生信息函数void Display_All(Student S[M]); //声明显示函数void Exchangehead();//声明修改学生信息表头函数(删除和修改)void Clear();//声明清屏函数void load();//声明登录函数(密码登录和密码锁定)void Menu();//声明主菜单函数void searchheader();//声明查询表头函数void showhead();//声明显示方式表头函数void Sort_S_number(Student S[M]);//声明学生学号按从小到大的排序函数(冒泡法/直接插入法)void Sort_D_number(Student S[M]);//声明排序函数按照宿舍号从小到大排序(冒泡法/直接插入法)void Sort_S_name(Student S[M]);//按姓名排序(冒泡法/直接插入法)void searh_S_number(Student S[M]);//声明查询函数以学号为关键字进行查询(折半查找)void searh_D_number(Student S[M]);//声明查询函数以宿舍号为关键字进行查询(折半查找)void searh_S_name(Student S[M]);//查询函数以姓名为关键字进行查询(折半查找)(3)关系图(见详细设计)三、详细设计1.所有用到的数据结构的基本操作实现(1)录入学生信息void Add(Student *S) //定义录入函数{do{cout<<"请输入第"<<S[0].Total+1<<"个学生的信息\n\n";cin>>S[S[0].Total+1].S_number;//输入学生学号cin>>S[S[0].Total+1].S_name;//输入学生姓名cin>>S[S[0].Total+1].S_sex;//输入学生性别cin>>S[S[0].Total+1].D_number;//输入学生宿舍号S[0].Total++;//每增加一个学生信息,总数++cout<<"按数字“0”退出,任意键继续录入"<<endl;cin>>ch;}while(strcmp(ch,ch1)!=0);}(2)显示所学生信息void Display_All(Student *S) //定义显示函数{ if(S[0].Total>0){for(i=1;i<=S[0].Total;i++)cout<<S[i].S_name<<S[i].S_number<<S[i].S_sex<<S[i].D_number<<endl;} elseCout<<"无任何学生信息"<<endl;}(3)按姓名查找(折半查找)void searh_S_name(Student *S)//查询函数以姓名为关键字进行查询(折半查找){cout<<"请输入你要查找学生的姓名:";cin>>name;Sort_S_name(S);//调用学生姓名按从小到大的冒泡排序函数while(low<=high){ mid=(low+high)/2;if(strcmp(name,S[mid].S_name)==0) //如果中间值和要查找的值匹配{ int i=mid;j=1;for(i=mid+1;i<=high;i++)//因为姓名有可能是相同的,所以继续在mid—high区间进行顺序查找{ if(strcmp(name,S[i].S_name)==0){cout<<S[i].S_name<<S[i].S_number<<endl;cout<<S[i].S_sex<<S[i].D_number<<endl;}for(i=mid-1;i>=low;i--)//因为姓名有可能是相同的,所以继续在low-mid区间进行顺序查找{if(strcmp(name,S[i].S_name)==0){cout<<S[i].S_name<<S[i].S_number<<endl;cout<<S[i].S_sex<<S[i].D_number<<endl;}break;}elseif (strcmp(name,S[mid].S_name)>0)low=mid+1;elsehigh=mid-1;}if(j!=1)//判断是否查到学生信息}(4)按学号为关键字进行查询(折半查找)void searh_S_number(Student *S)//查询函数以学号为关键字进行查询(折半查找){ c in>>number;//输入要查找的学生学号Sort_S_number(S);//调用学生学号按从小到大的冒泡排序函数if(strcmp(number,S[1].S_number)==0)//如果要查找的和链表中的第一个相同就直接输入{j=1;//判断是否查找到Cout<<endl;}elseif(strcmp(number,S[(S[0].Total)].S_number)==0)//如果要查找的和链表中的最后一个信息相同就直接输出{j=1;//判断是否查找到Cout<<endl;}else{while(low<=high){mid=(low+high)/2;if(strcmp(number,S[mid].S_number)==0){//要查找的学号和链表中间值相同int i=mid;j=1;//判断是否查找到break;}elseif (strcmp(number,S[mid].S_number)>0)low=mid+1; //要查找的学号大于MID的学号elsehigh=mid-1; //要查找的学会小于mid的学号}}if(j!=1)//判断是否查找到}(5)按宿舍号为关键字查找void searh_D_number(Student *S)//查询函数以宿舍号为关键字进行查询(折半查找){ cin>>number;//输入要查找的宿舍号Sort_D_number(S);//调用学生学号按从小到大的冒泡排序函数while(low<=high){ mid=(low+high)/2;if(strcmp(number,S[mid].D_number)==0){//要查找的宿舍号和mid的信息相同j=1;//判断是否查找到for(i=mid+1;i<=high;i++){//宿舍号有可能相同,所以在查到一个所需的信息后仍需要继续查找,所以在剩下mid--high的区间里继续查找if(strcmp(number,S[i].D_number)==0)Cout<<endl;}for(i=mid-1;i>=low;i--){//在low--mid区间进行顺序查找if(strcmp(number,S[i].D_number)==0){cout<<endl;}break; }Else if (strcmp(number,S[mid].D_number)>0)low=mid+1;else high=mid-1; }if(j!=1)//判断是否查找到} }(6)按学号直接插入排序void Sort_S_number(Student *S){∥本算法是利用监视哨对num1进行直接插入排序for(i=2;i<=n;i++) ∥假定第一个记录有序{ strcpy(num1,S[i].S_number);∥将待排序记录放进监视哨strcpy(num2,S[i].D_number);strcpy(name,S[i].S_name);j=i-1;∥从后向前查找插入位置,将大于待排序记录向后移动while (R[0].key< S[j].key){ strcpy(S[j+1].S_name,S[j].S_name);strcpy(S[j+1].S_number,S[j].S_number);strcpy(S[j+1].D_number,S[j].D_number);j--; ∥记录后移}∥whilestrcpy(S[j+1].S_name,name);strcpy(S[j+1].S_number,num1);strcpy(S[j+1].D_number,num2); ∥将待排序记录放到合适位置} }(7)按宿舍号冒泡排序void Sort_D_number(Student *S)//排序函数按照宿舍号从小到大排序(冒泡法) {for(i=1;i<=S[0].Total;i++)for(j=i;j<=S[0].Total;j++)if(S[i].D_number>S[j].D_number){S[i]↔S[j]; //将S[i]和S[j]的信息进行交换}}(8)按学生姓名进行冒泡排序void Sort_S_name(Student *S)//按姓名排序(冒泡法){for(i=1;i<=S[0].Total;i++)for(j=i;j<=S[0].Total;j++)if(strcmp(S[i].S_name,S[j].S_name)>0){S[i]↔S[j]; //将S[i]和S[j]的信息进行交换}}2.其他函数的实现(1)主函数void main(){load();//调用登录函数Menu();//调用主菜单函数}(2)登录函数void load()//登录函数{//本函数是把登录密码变为“*”system("color 2");//控制台字体颜色为绿色cout<<" 帐号:";cin>>n1;cout<<" 密码:";char a[40],b[10]={"200907161"};//初始化原密码for(i=0;;i++){a[i]=getch();//输入一个字符,不在屏幕回显,并将输入的字符赋给a[i]if(a[i]!='\r')//如果没遇到回车符则在屏幕显示“*”Cout<<"*";//在屏幕上显示“*”else{a[i]='\0'; //遇到回车符则结束输入if(strcmp(a,b)==0&&n1==200907161){//进行帐号和密码匹对cout<<"\n\n 登录成功。