数据库课程设计学生宿舍管理系统

合集下载

数据库课程设计学生宿舍管理系统

数据库课程设计学生宿舍管理系统

目录一、需求分析 (2)【处理对象】 (2)【处理功能要求】 (2)【安全性和完整性要求】 (2)二、概要设计 (3)【功能结构图】 (3)【E-R图】 (4)【建立数据库、数据表、插入数据】 (5)【导入数据】 (6)【数据库的建立】 (10)三、详细设计 (13)四、小结 (18)五、参考文献 (19)宿舍信息管理系统1、需求分析1.1处理对象系统要处理的对象包括学生基本信息、宿舍基本信息、宿舍楼基本信息、楼栋管理员基本信息、来访人员出入基本信息等五个方面,各个对象包括信息如下所示(详细的数据见于数据字典):系统要处理的对象包括宿舍楼基本信息、学生基本信息、宿舍基本信息、楼道工作人员基本信息、宿舍保卫处基本信息、宿舍事故基本信息、物品出入基本信息等七个方面,各个对象包括信息如下所示(详细的数据见于数据字典):1.宿舍楼基本信息(Dor_info):包括宿舍楼编号、、宿舍楼楼管员信息等方面,这样可以方便管理者对宿舍楼的管理,提高查询效率;2.学生基本信息(Student):包括学生编号、学生所在学院信息、学生姓名、学生性别、学生来自省份、学生出生日期、学生入学时间、学生所学专业、所在班级等方面的信息,可以方便学信息的查询和更新;3.宿舍基本信息():宿舍基本信息包括;4.来访人员出入信息(Visit):访问的宿舍楼编号、房间号、来访人的姓名、访问日期、离开日期。

1.2处理功能要求系统主要完成以下几个功能:1.宿舍楼基本信息查询与修改;2.学生基本信息查询与更新以及插入;3.每一幢宿舍楼中宿舍信息的查询与信息更新;4.宿舍楼人员访问出入审批及记录;1.3安全性和完整性要求安全性先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过用户授权机制,欲用户登陆来识别用户级别,根据这个级别来分配用户权限,达到数据更高层次的安全保密功能。

完整性要求用于描述宿舍楼基本信息、学生基本信息、宿舍基本信息、楼栋管理员基本信息、访问出人员入基本信息中数据项能否为null,以及一些用户自定义完整性(符合实际要求)。

数据库课程设计-学生宿舍管理系统

数据库课程设计-学生宿舍管理系统

《数据库原理》课程设计说明书学生宿舍管理系统学院:计算机与信息科学学院专业:网络工程班级:网络1402姓名学号:吴琳琳31姓名学号:周岐浪17指导教师:高金华职称讲师完成时间:2016年12月1、管理系统设计的背景、意义及目标●设计背景●设计意义●设计目标2、系统开发环境3、系统需求分析●基本功能需求●功能模块●数据字典4、概念结构设计●概念设计●E_R模型设计5、逻辑结构设计●将E_R图转换为关系模型●各表关系模型图6、数据实施和维护●功能实现代码●系统实现效果7、个人实现的功能8、总结1、管理系统设计的背景、意义及目标●设计背景随着IT事业的发展,如今,我们已经全面跨入信息时代。

计算机被广泛的应用于各个行业,人工战略已经转化为信息战略,如何在短时间内获取大量信息并整合信息,成为立足于时代的关键。

为了适应考生人数的急剧增长,当今社会各大高校都在进行扩招政策,学生数量的急剧增加带来信息量的成倍增长,由于信息管理的不善与疏忽,各大高校大小事故时有发生。

进行正确的信息管理,对于信息及时处理和反应,能够最大程度的减少学校以及在校学生的损失,减小潜在危机。

学生宿舍是学生生活的基本单位,是同学休息与学习的地方,为了保障同学入住学生宿舍的安全性,信息的处理和管理极为重要。

据了解,本校的宿舍信息管理仍然使用传统的手工方式,主要方式是基于文本、表格等纸介质的手工处理,用人工手抄对男女生信宿信息进行处理登记。

数据信息处理工作量大,容易出错且不易修改;由于数据繁多,容易丢失,逐条查找记录的方式不易操作,浪费了大量的时间,效率极低。

学校的宿舍管理缺乏系统,规范的信息管理手段。

建立学生宿舍管理系统,使宿舍管理工作系统化,规范化,便捷化,程序化,避免宿舍管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改宿舍情况。

●设计的意义高校规模的扩大,在校学生的基本情况随之层次化、多样化、复杂化,相应的,学生管理工作面临严峻的挑战。

数据库设计实例-学生宿舍管理系统

数据库设计实例-学生宿舍管理系统
插入效率考虑
对于大量数据的插入,应采用批量插入的方式以提高效率。
数据查询
数据查询
根据条件从数据库中检索记录,如查询某个 宿舍的所有学生信息。
查询条件设置
支持多种查询条件,如学号、姓名、宿舍号 等。
查询优化
使用索引、查询优化器等手段提高查询效率。
查询结果展示
将查询结果以表格、图表等形式展示,方便 用户查看。
恢复策略
制定详细的恢复计划,确 保在数据丢失时能够快速 恢复。
系统性能优化
索引优化
合理使用索引,提高查询效率。
查询优化
优化SQL查询语句,减少不必要的计算和数据检索。
缓存技术
利用缓存技术存储常用数据,减少对数据库的访问次数。
感谢您的观看
THANKS数据库设计实例-学生宿舍 Nhomakorabea 理系统
目录
• 系统概述 • 数据库设计 • 数据表设计 • 数据库操作 • 系统安全与维护
01
系统概述
系统简介
01
数据库设计实例:学生宿舍管理系统
02
背景:随着高校规模的不断扩大,学生宿舍管理面临诸多挑战,如宿舍分配、 学生入住、费用收缴等。为了提高管理效率,减少人为错误,开发一款学生宿 舍管理系统显得尤为重要。
费用收缴管理
记录收缴情况,计 算滞纳金等功能。
学生信息管理
录入、查询、修改 学生基本信息。
入住管理
分配宿舍、调整宿 舍、退宿等功能。
报修管理
学生提交报修申请, 管理员处理申请等 功能。
02
数据库设计
数据库需求分析
确定系统功能需求
01
收集和整理学生宿舍管理系统的功能需求,包括宿舍分配、入
住管理、费用收缴、维修报修等功能。

数据库学生宿舍管理系统

数据库学生宿舍管理系统

数据库学生宿舍管理系统简介数据库学生宿舍管理系统是为了方便学校管理学生宿舍信息而设计和开发的系统。

该系统的目标是提供一个高效、便捷的管理平台,以帮助学校管理者更好地了解和监控学生宿舍的情况,包括宿舍入住情况、维修记录、安全检查等。

功能特点1.学生信息管理:系统可以记录学生的基本信息,包括姓名、学号、性别、联系方式等,在系统中建立学生档案。

2.宿舍信息管理:系统可以记录各个宿舍的基本信息,如宿舍号、宿舍类型、可容纳人数等,并可以将宿舍分配给相应的学生。

3.宿舍入住管理:系统记录学生的宿舍入住情况,可查询某个学生所居住的宿舍,也可以查看某个宿舍的入住学生情况。

4.维修记录管理:系统可以记录宿舍的维修情况,包括维修内容、维修时间、维修人员等信息,方便学校管理人员进行维修记录查询和统计。

5.安全检查管理:系统可以记录宿舍的安全检查情况,包括检查时间、检查内容、安全隐患等信息,有助于学校管理人员及时发现和解决宿舍安全问题。

6.报表生成:系统可以生成各种报表,如宿舍入住情况统计、维修记录报表、安全检查报表等,为学校管理者提供决策参考。

系统架构数据库学生宿舍管理系统采用客户端-服务器架构,客户端提供用户界面,服务器端负责处理业务逻辑和数据存储。

系统采用数据库来存储学生、宿舍、维修记录、安全检查等信息,以保证数据的持久性和安全性。

数据库设计数据库学生宿舍管理系统的数据库设计包括以下表格:1.学生表:用于存储学生的基本信息,如学号、姓名、性别、联系方式等。

2.宿舍表:用于存储宿舍的基本信息,如宿舍号、类型、容纳人数等。

3.入住记录表:用于存储学生的宿舍入住情况,包括学生学号、宿舍号、入住时间等。

4.维修记录表:用于存储宿舍的维修记录,包括宿舍号、维修内容、维修时间等。

5.安全检查记录表:用于存储宿舍的安全检查记录,包括宿舍号、检查时间、检查内容等。

系统实现数据库学生宿舍管理系统的实现主要分为前端界面设计和后端服务实现两部分。

学生宿舍管理系统数据库分析与设计

学生宿舍管理系统数据库分析与设计

学生宿舍管理系统数据库分析与设计一、引言学生宿舍管理系统是大学宿舍管理的重要组成部分,对学生住宿方面的各项工作提供了便利。

为了提高学生生活质量,提高宿舍管理效率,我们设计并分析学生宿舍管理系统数据库,旨在建立一个完善的系统,以满足不同用户的需求。

二、系统需求分析1. 用户角色•学生:具有查看个人信息、查看宿舍信息、报修等功能。

•宿舍管理员:具有分配宿舍、处理报修、查看宿舍信息等功能。

•系统管理员:拥有对系统整体管理的权限,包括添加、删除、修改用户信息等。

2. 功能需求•学生信息管理:包括学号、姓名、性别、联系方式等信息。

•宿舍信息管理:包括宿舍楼号、宿舍号、床位情况等信息。

•报修管理:学生可以提交报修请求,管理员可以进行处理。

•宿舍分配管理:宿舍管理员可以分配宿舍给学生。

•权限管理:系统管理员对用户权限进行管理。

三、数据库设计1. 学生表(students)字段名类型说明student_id int 学号name varchar 姓名gender varchar 性别contact varchar 联系方式2. 宿舍表(dormitories)字段名类型说明dormitory_id int 宿舍号building_id int 宿舍楼号capacity int 可容纳人数occupied_beds int 已被占用床位数3. 报修表(repairs)字段名类型说明repair_id int 报修号student_id int 学号description varchar 报修描述status varchar 报修状态四、总结通过对学生宿舍管理系统数据库的分析和设计,我们实现了学生、宿舍管理员和系统管理员之间的信息交互,提高了宿舍管理的效率和便捷性,为学生提供了更好的住宿体验。

希望这样的数据库设计能够为大学宿舍管理工作带来实质性的帮助。

数据库课程设计学生宿舍管理系统

数据库课程设计学生宿舍管理系统

数据库课程设计学生宿舍管理系统-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN数据库课程设计-学生宿舍管理系统目录一、需求分析 (1)1 确定用户 (1)2 功能需求分析 (1)3 数据需求 (3)4 数据字典 (3)5 系统功能结构图 (9)6 数据流图 (10)二、概念设计 (12)1 分E-R 图 (12)2 合E-R 图 (14)三、逻辑结构设计 (16)1 学生信息表 (16)2 外部人员出入登记表 (16)3 大物品出入登记表 (16)4. 电费管理表 (16)5 报修管理表 (16)6 宿舍管理员基本信息表 (16)7 宿舍违规信息管理表 (16)8 宿舍基本信息管理表 (16)四、数据库的实现 (16)1 表的建立 (16)2 数据的插入 (19)3、建立触发器 (24)4、建立存储过程 (24)5、建立索引 (25)6、建立视图 (26)7、功能的实现 (27)五、参考文献 (28)学生宿舍管理系统一、需求分析1、确定用户该系统的主要用户有宿舍管理员,老师及在校学生.2、功能需求分析可以根据用户的不同来确定不同的功能需求:1)、宿舍管理员:(1)、能输入学生学号、、宿舍号来查询相关数据,如查询的宿舍的入住人数;(2)、当学生信息发生改变时,能及时的修改变动的信息,;(3)、当学生出现离校或退学等情况时,能及时清除该学生的住宿信息;(4)、当有学生报修时,能及时根据报修信息联系相关的维修人员;(5)、当有大物品出入时,能及时记录物品名、进入时间、离开时间、携带者、携带者宿舍号等相关信息;(6)、当有符合条件的外部人员进入时,能及时记录进入时间、访问宿舍号、访问对象、离开时间、人员名字等数据:(7)、当有学生购电时,能实时记录购电量、购电时间、强开时间、强开次数、购电数量、剩余电量、电费单价等;(8)、能及时查询自己的工作编号、、工作类型、性别、联系方式、工作时间等;2)、学生的需求:(1)、能查询与自己相关的信息,如携带物品进出次数、违规次数等;(2)、当有物品需要维修时,能及时上报;(3)、购电时间、强开时间、强开次数、购电数量、剩余电量、电费单价等;3)、老师的需求:(1)、能查询学生的相关信息,;(2)、能查询并修改宿管的工作编号、、工作类型、性别、联系方式、工作时间等。

数据库课程设计学生宿舍管理系统

数据库课程设计学生宿舍管理系统

易用性
系统需要提供简洁明了的 操作界面和流程,方便用 户快速上手和使用。
可维护性
系统需要具备良好的可维 护性,方便后续的功能扩 展和bug修复。
用户群体分析
学生
学生是宿舍管理系统的主要用户群体 ,他们需要使用系统查询和修改个人 信息、申请入住宿舍、缴纳住宿费用 等。
宿舍管理员
学校管理部门
学校管理部门需要使用系统了解学生 宿舍的整体情况,进行数据统计和分 析,以便做出更好的管理决策。
03 促进学校信息化建设
推动学校信息化建设进程,提高学校管理水平和 服务质量。
系统概述
01 系统功能
学生宿舍管理系统主要包括学生信息管理、宿舍 信息管理、住宿费用管理、报表统计等功能模块 。
02 系统用户
系统用户包括学校管理员、宿舍管理员、学生和 教师等。
03 系统特点
采用B/S架构,易于维护和升级;界面友好,操作 简单;支持多用户并发访问;具有良好的安全性 和稳定性。
费用等操作,最后生成报表供管理员查看。
数据库设计
数据库选型
选择适合课程设计的数据库管理系统,如MySQL 、Oracle等。
数据表设计
设计学生信息表、宿舍信息表、入住记录表、费 用记录表等数据表,并定义表之间的关系。
数据字典
定义数据表中每个字段的名称、类型、长度、约 束等信息,确保数据的准确性和一致性。
界面设计
界面风格
采用简洁、清晰的界面风格,符合学生宿舍管理系统 的特点。
界面布局
合理安排界面元素的位置和大小,使界面更加美观和 易用。
交互设计
设计友好的交互方式,如按钮、链接、表单等,方便 用户进行操作和输入。
04
系统实现

数据库学生宿舍管理系统课程设计

数据库学生宿舍管理系统课程设计

数据库学生宿舍管理系统课程设计引言数据库学生宿舍管理系统是一个重要的课程设计项目,旨在帮助学生掌握数据库设计与管理的基本原理,以及实现一个真实场景下的数据管理系统。

在这个课程设计中,学生将学习如何规划数据库结构、设计合适的数据模型,并实现对学生宿舍信息进行管理。

项目背景随着学生人数的增多,学校管理学生宿舍的任务变得越来越繁重。

为了提高宿舍管理效率,减少人力资源投入,开发一个数据库学生宿舍管理系统势在必行。

这个系统将会方便宿舍管理员对学生信息、宿舍分配情况等数据进行管理和查询,提高管理效率,减少错误发生。

数据库设计在数据库学生宿舍管理系统中,我们需要考虑的实体包括学生信息、宿舍信息、宿舍管理员信息等。

通过规划合适的数据表,我们可以实现对这些实体的有效管理和查询。

下面是我们设计的一些主要数据表:•学生表:包括学生编号、姓名、性别、年龄、联系方式等字段。

•宿舍表:包括宿舍编号、楼栋号、宿舍类型(男生宿舍、女生宿舍等)、宿舍容量等字段。

•宿舍分配表:记录学生被分配到的宿舍信息,包括学生编号、宿舍编号、入住时间等字段。

•宿舍管理员表:包括宿舍管理员编号、姓名、联系方式等字段。

功能需求数据库学生宿舍管理系统应具备如下功能: - 学生信息管理:实现学生信息的添加、修改、删除、查询等操作。

- 宿舍信息管理:对宿舍信息进行增、删、改、查操作。

- 宿舍分配管理:实现学生对应宿舍的分配和调整功能。

- 宿舍管理员信息管理:对宿舍管理员信息进行管理。

技术实现在技术层面上,我们将采用MySQL数据库来存储数据,并通过编程语言如Java、Python等来实现系统功能。

我们将利用数据库的增删改查操作实现对数据表的管理,同时通过编程语言的逻辑处理来实现系统的各项功能。

系统界面可以采用命令行界面或简单的图形界面。

总结通过本次课程设计项目,学生将学习数据库设计的基本原理和实践操作,掌握数据库管理系统的开发流程,锻炼数据处理和管理的能力。

宿舍管理系统sql课程设计

宿舍管理系统sql课程设计

宿舍管理系统sql课程设计一、课程目标知识目标:1. 让学生掌握SQL语言的基本语法和常用命令,如SELECT、INSERT、UPDATE、DELETE等。

2. 使学生理解数据库的基本概念,包括表、字段、记录等,并了解宿舍管理系统的数据结构。

3. 帮助学生掌握数据库查询技巧,能够运用SQL语句实现复杂的数据查询。

技能目标:1. 培养学生运用SQL语言进行数据库操作的能力,能够独立完成宿舍管理系统的数据插入、修改、删除等操作。

2. 提高学生分析问题和解决问题的能力,能够根据实际需求编写合适的SQL 查询语句。

3. 培养学生的团队协作能力,分组完成课程设计任务,进行有效的沟通与协作。

情感态度价值观目标:1. 培养学生对数据库技术的兴趣,激发学生学习编程的热情,提高计算机素养。

2. 培养学生认真负责的态度,对待课程设计和实际操作,养成良好的编程习惯。

3. 引导学生关注实际生活中的问题,将所学知识应用于解决现实问题,增强学生的实践能力。

分析课程性质、学生特点和教学要求:本课程设计以宿舍管理系统为背景,结合SQL语言进行数据库操作。

课程性质为实践性较强的学科,要求学生具备一定的编程基础。

针对学生特点,本课程设计注重培养学生的学习兴趣和动手能力,同时要求学生具备团队协作精神。

教学要求强调理论与实践相结合,注重培养学生的实际操作能力。

通过分解课程目标为具体学习成果,使学生在完成课程设计的过程中,掌握相关知识和技能。

二、教学内容1. SQL语言基础:- 数据库基本概念:表、字段、记录;- SQL语法结构:SELECT、FROM、WHERE、GROUP BY、ORDER BY等;- 常用SQL命令:SELECT、INSERT、UPDATE、DELETE。

2. 宿舍管理系统数据库设计:- 实体关系模型:学生、宿舍、床位等实体及其关系;- 数据表设计:创建表、定义字段类型、设置主键和外键。

3. SQL查询语句:- 单表查询:简单查询、条件查询、排序查询;- 连接查询:内连接、外连接、自连接;- 聚合查询:COUNT、SUM、AVG、MAX、MIN等。

数据库宿舍管理系统课程设计

数据库宿舍管理系统课程设计

数据库宿舍管理系统课程设计一、概述本课程设计旨在开发一个基于数据库的宿舍管理系统,实现宿舍信息的管理、查询和统计功能。

该系统将采用面向对象的程序设计方法,利用数据库技术实现数据的存储和访问,方便管理员对宿舍信息进行管理和维护。

二、设计目标1. 能够实现对宿舍信息的管理,包括添加、修改、查询和删除宿舍信息。

2. 能够实现对宿舍成员的管理,包括添加、修改、查询和删除宿舍成员信息。

3. 能够实现对宿舍水电费的统计和管理,包括查询和统计宿舍水电费信息。

4. 提供用户界面,方便管理员操作和使用。

5. 系统安全性和稳定性得到保障,能够应对一定规模的数据量和并发访问。

三、系统架构本系统采用C/S架构,由客户端和服务器端组成。

客户端负责用户界面和数据输入,服务器端负责数据处理和数据存储。

系统将采用面向对象的程序设计方法,利用数据库技术实现数据的存储和访问。

四、功能模块1. 宿舍信息管理模块:包括添加宿舍、修改宿舍、查询宿舍和删除宿舍等功能。

2. 宿舍成员管理模块:包括添加成员、修改成员、查询成员和删除成员等功能。

3. 水电费统计模块:包括查询水电费和统计水电费等功能。

4. 用户界面模块:提供友好的用户界面,方便管理员操作和使用。

五、数据库设计本系统将采用关系型数据库,如MySQL或SQL Server等。

数据库表包括宿舍信息表、宿舍成员信息表、水电费信息表等。

表结构设计将根据系统的需求和数据特点进行,确保数据的完整性和一致性。

六、技术实现1. 编程语言:本系统将使用C++或Java等面向对象的编程语言,便于实现面向对象的程序设计方法。

2. 数据库技术:使用数据库技术实现数据的存储和访问,包括SQL语句的编写和数据库连接的实现等。

3. 界面设计:使用GUI库或第三方库实现用户界面,方便管理员操作和使用。

4. 并发访问控制:考虑到系统的并发访问量,需要进行一定的并发访问控制和优化,确保系统的稳定性和安全性。

七、测试与优化系统开发完成后,需要进行充分的测试,包括功能测试、性能测试和安全测试等。

数据库系统课程设计学生宿舍管理系统需求分析

数据库系统课程设计学生宿舍管理系统需求分析

测试用例
01
1. 学生信息创 建成功;
02
2. 学生信息修 改成功;
3. 学生信息查 询结果正确;
03
04
4. 学生信息删 除成功。
测试结果
测试执行情况
测试用例TC001已执行完毕,测试过程中未出现异常情况 。
缺陷与不足
在测试过程中发现,当输入的学生信息不符合规范时,系 统未能给出明确的错误提示,容易导致用户操作失误。
系统测试
对编码实现后的系统进行单元测 试、集成测试和系统测试,确保 系统功能的正确性和稳定性。
需求分析
与学生宿舍管理部门沟通,明确 系统需求,包括学生信息管理、 宿舍信息管理、费用管理、报表 统计等功能。
部署与运行
将测试通过的系统部署到实际运 行环境中,并进行持续的维护和 升级。
06
系统测试
测试计划
测试目标
测试范围
验证学生宿舍管理系统的各项功能是否符 合需求规格说明书中的要求,确保系统的 稳定性和可靠性。
包括系统的所有功能模块,如学生信息管 理、宿舍信息管理、入住管理、费用管理 等。
测试方法
测试资源
采用黑盒测试和白盒测试相结合的方法, 对系统的功能、性能、安全等方面进行全 面测试。
包括测试人员、测试环境、测试数据等。
系统管理员
负责系统的维护和管理,包括用户权限管理、数据备 份等。
03
需求分析
功能需求
报表统计
系统需要提供各类报表统计功能,如学生 住宿情况统计、费用收取情况统计等,以 便学校管理部门进行数据分析和决策。
学生信息管理
系统需要提供对学生基本信息的增删改查 功能,包括姓名、性别、年龄、班级、联 系方式等。

学生宿舍管理系统数据库课程设计

学生宿舍管理系统数据库课程设计

备份和恢复: 定期备份数 据,确保数 据丢失或损 坏时能够快 速恢复
审计和日志: 记录所有操 作和访问日 志,便于审 计和追踪问 题。
06
学生宿舍管理系统 数据库物理设计
存储结构的设计
存储介质:选择合适的存储介质,如硬 盘、SSD等
数据库类型:选择合适的数据库类型, 如MySQL、SQL Server等
备份和恢复:确保 数据安全,防止数 据丢失或损坏
04
学生宿舍管理系统 数据库概念设计
概念模型设计
实体:学生、宿舍、管理员
属性:学生的姓名、学号、宿舍号、 床位号等;宿舍的楼号、房间号、 床位数等;管理员的姓名、工号等
添加标题
添加标题
添加标题
添加标题
关系:学生与宿舍的关系、宿舍与 管理员的关系
约束:学生与宿舍的关系必须是一 对一或一对多;宿舍与管理员的关 系必须是一对一或多对一。
单击此处添加副标题
学生宿舍管理系统 数据库课程设计
汇报人:
目 录 CATALOG
01
单击此处 添加目录标题
02
数据库设计概述
03
04
学生宿舍管理系统 学生宿舍管理系统
需求分析
数据库概念设计
05
06
07
学生宿舍管理系统 学生宿舍管理系统 学生宿舍管理系统
数据库逻辑设计
数据库物理设计
数据库实施和维护
01
宿舍管理表:存储宿 舍管理人员信息,如 宿舍管理员姓名、联 系方式等
添加标题
宿舍设施表:存储宿 舍设施信息,如设施 名称、数量、状态等
添加标题
宿舍维修表:存储宿 舍维修信息,如维修 时间、维修内容、维 修人员等
添加标题

数据库课程设计-学生公寓管理系统

数据库课程设计-学生公寓管理系统

摘要随着高校的不断发展,学校招生人数也在不断增长。

为了便于管理学生的住宿问题,我们设计了学生公寓管理系统,借助数据库技术让学生公寓的管理更方便,同时也有助于宿舍和学生信息的及时更新。

本文介绍了在SQL server 2000环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发一个管理信息系统的过程。

文章介绍了学生公寓管理系统的需求分析部分主要是用户的要求及功能划分;系统设计部分主要介绍了系统功能设计和数据库设计及代码设计;系统实现部分包括数据库的创建及一些数据库技术运用,本系统界面友好,操作简单,比较实用。

关键词:学生公寓管理系统;数据库;E—R模型;表的关系目录第1章需求分析阶段.......................................................................................................... - 3 -1.1 调查用户需求.......................................................................................................... - 3 -1.1.1公寓楼的基本情况...................................................................................... - 3 -1.1.2系统对用户的要求...................................................................................... - 4 -1.2 系统功能的设计和划分.......................................................................................... - 6 -1.3 数据流图.................................................................................................................. - 6 -1.4 数据字典................................................................................................................ - 10 - 第2章概念设计阶段........................................................................................................ - 13 -2.1 引言........................................................................................................................ - 13 -2.2 概念模型设计........................................................................................................ - 13 - 第3章逻辑设计阶段........................................................................................................ - 15 -3.1 逻辑设计的任务.................................................................................................... - 15 -3.2将E-R图转换为关系模型.................................................................................... - 15 -3.3 关系图.................................................................................................................... - 16 - 第4章物理设计阶段........................................................................................................ - 17 -4.1 物理设计阶段的目的与任务................................................................................ - 17 -4.2 数据存储方面........................................................................................................ - 17 -4.3 系统功能模块........................................................................................................ - 17 - 第5章数据库设计阶段.................................................................................................... - 18 -5.1 创建数据库............................................................................................................ - 18 -5.2 创建表.................................................................................................................... - 18 -5.3创建Default约束................................................................................................ - 22 -5.4 视图........................................................................................................................ - 23 -5.4.1视图的创建................................................................................................ - 23 -5.4.2视图的T-SQL语句.................................................................................... - 25 -5.5 存储过程................................................................................................................ - 26 -5.6 触发器.................................................................................................................... - 27 -5.7 查询........................................................................................................................ - 29 -5.7.1简单查询.................................................................................................... - 29 -5.7.2模糊查询.................................................................................................... - 29 -5.7.3嵌套与连接查询........................................................................................ - 30 -5.7.4聚合查询.................................................................................................... - 30 - 第6章总结........................................................................................................................ - 31 - 第7章参考文献................................................................................................................ - 32 -第1章需求分析阶段1.1 调查用户需求本系统的最终用户为学生公寓楼管理员,对象是入住公寓楼内的学生。

数据库学生宿舍管理系统设计

数据库学生宿舍管理系统设计

数据库学生宿舍管理系统设计一、引言随着大学生人数的增加,学生宿舍管理日益复杂,为提高效率和便利性,设计一个高效的学生宿舍管理系统变得尤为重要。

本文将介绍一个数据库学生宿舍管理系统的设计,包括系统的功能需求、数据库设计、系统架构等方面的详细内容。

二、系统功能需求1.管理员功能:•添加、编辑和删除宿舍楼信息。

•添加、编辑和删除宿舍房间信息。

•分配和调整学生宿舍信息。

•查看宿舍楼和房间的占用情况。

2.学生功能:•查看自己所在宿舍楼和房间信息。

•提交报修申请。

•查看宿舍公告和通知。

三、数据库设计1. 数据库表设计•宿舍楼表(dormitory_building): 宿舍楼ID、宿舍楼名称。

•宿舍房间表(dormitory_room): 宿舍房间ID、宿舍楼ID、房间号、房间类型。

•学生表(student): 学生ID、学生姓名、性别、联系方式、所在房间ID。

•报修表(repair): 报修ID、报修学生ID、报修时间、报修内容、处理状态。

2. 数据库关系设计•宿舍楼表与宿舍房间表是一对多关系。

•学生表与宿舍房间表是多对一关系。

•学生表与报修表是一对多关系。

四、系统架构1. 后端架构•使用Java语言开发后端程序。

•使用Spring框架进行后端开发。

•使用MyBatis作为数据持久化层框架。

•使用MySQL数据库进行数据存储。

2. 前端架构•使用HTML、CSS、JavaScript开发前端页面。

•使用Bootstrap框架进行页面布局设计。

•使用jQuery库进行前端交互设计。

五、开发计划1.需求分析阶段:确定系统功能。

2.概要设计阶段:设计系统整体架构。

3.详细设计阶段:完成数据库设计和系统模块设计。

4.编码和测试阶段:按照设计完成代码编写和测试。

5.部署和维护阶段:将系统部署到服务器上并进行后续维护。

六、总结本文介绍了一个数据库学生宿舍管理系统的设计,包括系统功能需求、数据库设计、系统架构等方面的内容。

数据库课程设计-宿舍管理系统

数据库课程设计-宿舍管理系统

目录一、项目概述 (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 数据库需求分析需求分析简单地说就是分析用户的要求。

学生公寓管理系统课程设计

学生公寓管理系统课程设计

学生公寓管理系统课程设计一、课程目标知识目标:1. 理解并掌握数据库的基本原理,如数据的增、删、改、查等操作;2. 学习并运用面向对象编程思想,设计学生公寓管理系统的功能模块;3. 掌握SQL语言的基本用法,实现对学生公寓管理系统中数据的有效管理;4. 了解软件工程的基本流程,如需求分析、系统设计、编码、测试等。

技能目标:1. 能够运用所学知识,独立设计并实现一个学生公寓管理系统;2. 通过项目实践,提高问题分析、解决的能力,培养团队协作精神;3. 能够熟练使用数据库管理系统,如MySQL、Oracle等,进行数据的有效管理;4. 学会使用编程工具,如Visual Studio、Eclipse等,进行项目开发。

情感态度价值观目标:1. 培养学生对计算机技术的兴趣,激发他们探索新技术的热情;2. 培养学生认真负责的工作态度,养成良好的人际沟通与团队协作习惯;3. 培养学生的创新意识,使他们具备敢于挑战、不断进取的精神;4. 增强学生的法律意识,让他们在项目开发过程中,遵循相关法律法规,尊重他人知识产权。

本课程针对高年级学生,在学生已具备一定编程基础和数据库知识的前提下,结合实际应用场景,设计具有实用性的学生公寓管理系统。

课程旨在帮助学生巩固所学知识,提高实际操作能力,培养团队协作精神,激发创新意识,为将来从事软件开发工作打下坚实基础。

通过本课程的学习,学生将能够独立完成一个实际项目,提升自身综合素质,为未来的职业生涯做好充分准备。

二、教学内容1. 数据库原理与应用:包括数据库的基本概念、关系型数据库的设计、SQL语言基础、数据完整性约束等,重点章节为数据库设计、SQL语句编写与优化。

2. 面向对象编程:涵盖面向对象的基本概念、类与对象、继承与多态、接口与实现等,重点章节为类的定义与对象创建、继承与多态的应用。

3. 软件工程:涉及需求分析、系统设计、编码、测试、项目管理等,重点章节为需求分析、系统设计、软件测试方法。

学生宿舍管理系统课程设计

学生宿舍管理系统课程设计

学生宿舍管理系统课程设计一、课程目标知识目标:1. 理解学生宿舍管理系统的基本概念,掌握其功能模块和业务流程。

2. 学会运用数据库技术进行数据存储和管理,了解常用的数据库管理系统。

3. 掌握面向对象编程思想,能够运用所学编程语言实现系统功能。

技能目标:1. 培养学生运用计算机技术解决实际问题的能力,能够设计并实现一个简单实用的学生宿舍管理系统。

2. 提高学生的团队协作和沟通能力,学会分析需求、撰写技术文档和进行项目汇报。

3. 培养学生的创新意识和实际操作能力,学会在系统设计过程中考虑用户体验和优化。

情感态度价值观目标:1. 培养学生积极的学习态度,激发对计算机科学和信息技术的兴趣和热情。

2. 增强学生的责任感和服务意识,使其认识到信息技术在学生宿舍管理中的重要性。

3. 培养学生的合作精神,使其在项目实施过程中学会尊重他人、共享成果。

课程性质:本课程为实践性较强的信息技术课程,结合学生宿舍管理的实际需求,培养学生的编程能力、团队协作能力和创新意识。

学生特点:学生具备一定的计算机基础,对编程和数据库技术有一定了解,但实践经验不足,需要通过本课程加强实践操作。

教学要求:注重理论与实践相结合,以项目驱动教学,鼓励学生积极参与讨论和实践,提高解决实际问题的能力。

同时,关注学生的个性化发展,激发学生的学习兴趣和潜能。

通过课程学习,使学生能够达到上述设定的具体学习成果。

二、教学内容1. 学生宿舍管理系统概述- 了解系统的基本概念、功能模块和业务流程。

- 教材章节:第一章2. 数据库技术基础- 学习数据库的基本原理,掌握SQL语言。

- 教材章节:第二章3. 数据库管理系统- 介绍常用的数据库管理系统,如MySQL、Oracle等。

- 教材章节:第三章4. 面向对象编程- 掌握面向对象编程思想,运用编程语言实现系统功能。

- 教材章节:第四章5. 系统设计- 分析需求,设计系统架构、界面和功能模块。

- 教材章节:第五章6. 系统实现与测试- 编写代码,实现系统功能,进行测试与调试。

数据库课程设计-宿舍管理系统

数据库课程设计-宿舍管理系统

分类号单位代码密级学号数据库课程设计题目校园宿舍管理系统作者院 (系)专业指导教师提交日期摘要学生宿舍管理系统是为学生宿舍管理的现代化、网络化,逐步摆脱当前学生宿舍管理的人工管理方式,提高学生宿舍管理效率而开发的。

其主要功能是快速适应现代化管理水平和减轻工作人员繁重而冗长的工作量,使得他们在管理学生宿舍时达到事半功倍的效果,减轻人力的负担,方便数据的存储。

该系统开发由需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、物理结构设计阶段、数据库实施与维护阶段等阶段组成。

系统数据库使用SQL Server2012,采用B/S模式。

系统主要包括宿舍楼信息管理、宿舍信息管理、学生信息管理、学生入住登记、学生宿舍调换、学生夜归管理、学生离返校管理、普通人员管理和用户密码管理等功能。

本系统的优点是提供简单、层次关系明了、清晰的操作界面,易于扩展和维护,使学生宿舍的管理工作简单快捷。

关键字:宿舍管理;JSP;SQL Server2012;B/S目录1.引言 (1)2. 需求分析阶段 (2)2.1 需求分析阶段的目标 (2)2.2 需求分析阶段的任务 (2)2.2.1处理对象 (2)2.2.2处理功能及要求 (3)2.2.3.安全性和完整性要求 (3)2.3 需求分析阶段成果 (4)2.3.1 体会与收获 (4)2.3.2 系统功能模块的设计和划分 (4)2.3.3宿舍管理系统数据流图 (5)2.2.4 宿舍管理系统数据字典 (8)3 概念设计阶段 (12)3.1 引言 (12)3.2 任务与目标 (12)3.3 阶段结果 (13)4.逻辑设计阶段 (16)4.1逻辑设计的任务和目标 (16)4.2数据组织 (16)4.2.1将E-R图转换为关系模型 (16)4.2.2模型优化 (17)4.2.3 用户子模式定义 (17)5.物理设计阶段 (18)5.1物理设计阶段的目标与任务 (18)5.2 确定数据库的物理结构 (18)5.3 基本表的设计 (19)5.4 视图的设计 (20)6.数据库实施阶段 (22)6.1建立数据库、数据表、视图、索引 (22)6.1.1 建立数据库 (22)6.1.2 建立数据表 (22)6.1.3 建立视图 (24)6.1.4 建立索引 (25)6.1.5 建立触发器 (25)6.2数据入库 (25)6.3创建各个功能的存储过程 (26)7.系统调试和测试 (27)8.心得 (31)9. 致谢 (32)附录1 存储过程定义 (33)1.引言随着信息社会的科技不断提高,以及商品经济的高效化,使得计算机的应用已普及到经济和社会生活的各个领域。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《数据库原理》课程设计说明书学生宿舍管理系统学院:计算机与信息科学学院专业:网络工程班级:网络1402姓名学号:吴琳琳 1420140231姓名学号:周岐浪 1420140217指导教师:高金华职称讲师完成时间: 2016年12月1、管理系统设计的背景、意义及目标设计背景设计意义设计目标2、系统开发环境3、系统需求分析基本功能需求功能模块数据字典4、概念结构设计概念设计E_R模型设计5、逻辑结构设计将E_R图转换为关系模型各表关系模型图6、数据实施和维护功能实现代码系统实现效果7、个人实现的功能8、总结1、管理系统设计的背景、意义及目标设计背景随着IT事业的发展,如今,我们已经全面跨入信息时代。

计算机被广泛的应用于各个行业,人工战略已经转化为信息战略,如何在短时间内获取大量信息并整合信息,成为立足于时代的关键。

为了适应考生人数的急剧增长,当今社会各大高校都在进行扩招政策,学生数量的急剧增加带来信息量的成倍增长,由于信息管理的不善与疏忽,各大高校大小事故时有发生。

进行正确的信息管理,对于信息及时处理和反应,能够最大程度的减少学校以及在校学生的损失,减小潜在危机。

学生宿舍是学生生活的基本单位,是同学休息与学习的地方,为了保障同学入住学生宿舍的安全性,信息的处理和管理极为重要。

据了解,本校的宿舍信息管理仍然使用传统的手工方式,主要方式是基于文本、表格等纸介质的手工处理,用人工手抄对男女生信宿信息进行处理登记。

数据信息处理工作量大,容易出错且不易修改;由于数据繁多,容易丢失,逐条查找记录的方式不易操作,浪费了大量的时间,效率极低。

学校的宿舍管理缺乏系统,规范的信息管理手段。

建立学生宿舍管理系统,使宿舍管理工作系统化,规范化,便捷化,程序化,避免宿舍管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改宿舍情况。

设计的意义高校规模的扩大,在校学生的基本情况随之层次化、多样化、复杂化,相应的,学生管理工作面临严峻的挑战。

高校学生信息日渐庞大,相应的宿舍管理工作变得复杂而困难。

传统的账本化工作模式,手工记录学生信息并存档,这样的人工管理方式费时、费事、费力,信息获取慢,更新滞后,查阅困难,容易出错。

为了给学生提供一个安全舒适的工作、生活、学习环境,方便宿舍管理工作的同时为学生、教师提供准确实时的信息至关重要。

本校的宿舍信息管理,主要方式是基于文本、表格等纸介质的手工处理,用人工手抄对男女生信宿信息进行处理登记。

数据信息处理工作量大,容易出错且不易修改;由于数据繁多,容易丢失,逐条查找记录的方式不易操作,浪费了大量的时间,效率极低。

以上的管理缺陷对学生宿舍管理造成了相当大的阻力,工作进展困难,问题解决的周期过长,资料整改工作量过大。

为了改善学生宿舍管理情况,运用数据库技术对学生信息进行处理和统一管理,在校园内实现宿舍无纸化办公。

利用计算机的特点,利用互联网进行远程操作,制定学生客户端,教师客户端,管理员客户端,实现有针对性信息化管理,充分发挥计算机的高效性、可靠性、保密性、大容量、低成本等特点,建立学生宿舍管理系统,对宿舍相关信息进行统一管理。

新型管理方式——学生宿舍管理系统,将帮助宿舍管理人员提高工作效率,全面地掌握宿舍情况,提高宿舍安全系数,快速解决学生入住学生宿舍遇到的问题,帮助管理人员与教师及时掌握学生情况。

设计目标开发设计学生宿舍管理系统,运用简单的计算机操作实现快速检索和快速查找,方便信息录入和更新,本系统仅针对管理员进行使用。

实现信息查询、日常管理、宿舍管理、信息维护几个方面的系统化管理:1、信息查询:a)宿舍信息:包括宿舍楼编号、寝室编号、入住人数、寝室入住人员学号、用水量、用电量、水费、电费。

b)学生信息:包括学生姓名、学号、宿舍号c)宿舍基本配置:包括床、柜子、灯、风扇、电视机2、宿舍管理:学生管理(入住、更换宿舍、);房间管理(增加、删除、查询)3、信息维护:学生个人信息更新、宿舍信息更新、宿舍设备信息更新。

2、系统开发环境开发所使用数据库系统:MySql开发环境:windows 7开发工具:Microsoft VisualStudio 2010开发语言:C++、SQL3、系统需求分析基本功能需求学生宿舍管理系统为了更好的进行宿舍管理而设计。

用户的需求具体体现在各种信息的输入、修改和查询。

系统功能实现如下:1、提供学生的入住信息的录入,更换宿舍信息登记。

提供各宿舍的具体信息,如宿舍楼栋、宿舍号、水费、电费等。

并可通过查询宿舍号得到宿舍的具体信息、入住的学生信息、宿舍的设备信息等。

2、提供管理员增加、删除各信息的功能。

功能模块本宿舍管理系统的主要功能为:学生管理、宿舍信息管理、宿舍设备信息管理、信息查询、息更新、信息维护。

数据字典(1)宿舍设备情况数据字典(2)宿舍信息情况数据字典(3)学生信息情况数据字典4、概念结构设计概念设计(1)学生实体:用于显示学生的属性,包括姓名、学号、宿舍编号。

(2)宿舍实体:用于显示宿舍的属性,包括楼号、宿舍号、入住学生学号、可住人数、已住人数、用水量、水费、用电量、电费。

(3)宿舍设备实体:用于显示宿舍设备的属性,包括床、柜子、风扇、灯、电视机。

E_R模型设计(1)学生实体E_R图(2)宿舍实体E_R图room dormitoryCatdormitoryroomsudentsNum waterwaterChargeelectricityelectricityCharge(3)宿舍物品设备实体E_R图(4)各实体关系E_R图5、逻辑结构设计将E-R图转换为关系模型:(1)Student :(num、name、dormitoryCat);(2)Room:(dormitoryCat、dormitory、room、studentNum、water、waterCharge、electricity、electricityCharge);(3)Item:(dormitoryCat、bed、cabinet、light、fan、tv)各表关系模型图:(1)Item表外键设计:(2)Student表外键设计:(3)各表之间的关系模型图,Item表与Student表通过外键与Room 联系:6、数据实施和维护功能实现的代码//dbstruct.h#pragma onceclass dbStruct{public:MYSQL my;char errMsg[300];//学生表char StudentNum[9];char StudentName[20];//宿舍char dormitoryCat[6];char dormitory[3];char room[4];double water;double electricity; double waterCharge; double electricityCharge; unsigned int members;//物件bool bed;bool cabinet;bool light;bool fan;bool tv;dbStruct();~dbStruct();bool Init();bool GetStruct();//添加学生表一项bool InsertStudentTable();//改变一项bool SetStudentTable(char num[9]);//主键为num, vachar(8)//获取一项bool GetStudent(char num[9]);//******************删除一项bool DeleteStudent(char num[9]);//添加宿舍表一项bool InsertDormitoryTable();//改变一项bool SetDormitoryTable(char dormitoryCat[6]);//主键为dormitoryCat, varchar(6)//获得一项bool GetDormitory(char dormitoryCat[6]);//删除一项bool DeleteDormitory(char dormitoryCat[6]);//添加物品表一项bool InsertItemTable();//改变一项bool SetItemTable(char dormitoryCat[6]);//主键为dormitoryCat, varchar(6)//获得一项bool GetItem(char dormitoryCat[6]);//******************删除一项bool DeleteItem(char dormitoryCat[6]);void ErrMB();};//dbStruct.cpp#include "stdafx.h"dbStruct::dbStruct(){this->water = 0.0;this->electricity = 0.0;this->waterCharge = 0.0;this->electricityCharge = 0.0;this->members = 4;this->bed = TRUE;this->cabinet = TRUE;this->light = TRUE;this->fan = TRUE;this->tv = TRUE;}dbStruct::~dbStruct(){mysql_close(&my);}bool dbStruct::Init(){mysql_init(&this->my);if(!mysql_real_connect(&this->my, "localhost", "root", "fast", "dormitory", 0, NULL, 0)){StringCchPrintfA(errMsg, 300, "获取寝室物件信息错误: %s\n", mysql_error(&this->my));return false;}mysql_query(&this->my, "SET NAMES gbk");return true;}////////////////////////////////////////////////////////bool dbStruct::InsertStudentTable(){if(this->dormitoryCat == NULL ||this->StudentName == NULL || this->StudentNum == NULL) {StringCchPrintfA(errMsg, 100, "添加学生信息错误: 值不完整\n");return FALSE;}char query[300];//获得该寝室已住人数数StringCchPrintfA(query, 300,"SELECT count(dormitoryCat) FROM student WHERE dormitoryCat = \"19425\"",this->dormitoryCat);mysql_query(&this->my, query);//可以确保在数据库工作正常的情况下,能够查询到惟一的一条数据MYSQL_RES * res;res = mysql_use_result(&this->my);MYSQL_ROW row;int i; //i为已住人数while((row = mysql_fetch_row(res)) != NULL){i = row[0][0] - '0';}mysql_free_result(res);if(++i > 4){//超过了寝室最大人员数量StringCchPrintfA(errMsg, 300, "添加学生信息错误: 此寝室已满\n");//**********是否自动添加宿舍信息return FALSE;}//可以添加学生信息StringCchPrintfA(query, 300,"INSERT INTO student(num, name, dormitoryCat) VALUES(\"%s\", \"%s\", \"%s\")",this->StudentNum, this->StudentName, this->dormitoryCat);if(mysql_query(&this->my, query) != 0){StringCchPrintfA(errMsg, 300, "添加学生信息错误: %s\n",mysql_error(&this->my));//**********是否需要自动添加宿舍信息return FALSE;}return TRUE;}bool dbStruct::DeleteStudent(char num[9]){char query[300];StringCchPrintfA(query, 300,"DELETE FROM student WHERE num = \"%s\"", num);if(mysql_query(&this->my, query) != 0){StringCchPrintfA(errMsg, 300, "删除学生信息错误: %s\n",mysql_error(&this->my));//**********是否需要自动添加宿舍信息return FALSE;}return TRUE;}bool dbStruct::GetStudent(char num[9]){char query[300];StringCchPrintfA(query, 300, "SELECT * FROM student WHERE num = \"%s\"", num);if(mysql_query(&this->my, query) != NULL){StringCchPrintfA(errMsg, 300, "获取学生信息错误: %s\n", mysql_error(&this->my));return FALSE;}MYSQL_RES * res;MYSQL_ROW row;res = mysql_use_result(&this->my);while((row = mysql_fetch_row(res)) != NULL){StringCchPrintfA(this->StudentNum, 9, row[0]);StringCchPrintfA(this->StudentName, 20, row[1]);StringCchPrintfA(this->dormitoryCat, 6, row[2]);}mysql_free_result(res);return TRUE;}////////////////////////////////////////////////////////bool dbStruct::InsertDormitoryTable(){if(this->dormitoryCat == NULL || this->room == NULL || this->dormitory == NULL){StringCchPrintfA(errMsg, 300, "添加宿舍信息错误: 值不完整\n");return FALSE;}char query[300];StringCchPrintfA(query, 300,"INSERT INTO room(dormitoryCat, dormitory, room, \studentsNum, water, electricity, waterCharge, \electricityCharge) VALUES(\"%s\", \"%s\",\"%s\", %d, %.2lf, %.2lf, %.2lf, %.2lf)",this->dormitoryCat, this->dormitory, this->room,this->members, this->water, this->electricity,this->waterCharge, this->electricityCharge);if(mysql_query(&this->my, query) != 0){StringCchPrintfA(errMsg, 300, "添加宿舍信息错误: %s\n",mysql_error(&this->my));return FALSE;}this->InsertItemTable();return TRUE;}bool dbStruct::DeleteDormitory(char dormitoryCat[6]){//由于外键约束,删除此寝室时,相应的student和item表中的此寝室信息自动删除.char query[300];StringCchPrintfA(query, 300, "DELETE FROM room WHERE dormitoryCat = \"%s\"", dormitoryCat);if(mysql_query(&this->my, query) != 0){StringCchPrintfA(errMsg, 300, "删除宿舍信息错误: %s\n",mysql_error(&this->my));return FALSE;}return TRUE;}bool dbStruct::GetDormitory(char dormitoryCat[6]){char query[300];StringCchPrintfA(query, 300, "SELECT * FROM room WHERE dormitoryCat = \"%s\"", dormitoryCat);if(mysql_query(&this->my, query) != NULL){StringCchPrintfA(errMsg, 300, "获取寝室信息错误: %s\n", mysql_error(&this->my));return FALSE;}MYSQL_RES * res;MYSQL_ROW row;res = mysql_use_result(&this->my);while((row = mysql_fetch_row(res)) != NULL){StringCchPrintfA(this->dormitoryCat, 6, row[0]);StringCchPrintfA(this->dormitory, 3, row[1]);StringCchPrintfA(this->room, 4, row[2]);this->members = atoi(row[3]);this->water = atof(row[4]);this->electricity = atof(row[5]);this->waterCharge = atof(row[6]);this->electricityCharge = atof(row[7]);}mysql_free_result(res);return TRUE;}////////////////////////////////////////////////////////bool dbStruct::InsertItemTable(){if(this->dormitoryCat == NULL){StringCchPrintfA(errMsg, 300, "添加宿舍信息错误: 值不完整\n");return FALSE;}char query[300];StringCchPrintfA(query, 300,"INSERT INTO item(dormitoryCat,bed, cabinet, light, fan, tv) VALUES(\"%s\", %d, %d, %d, %d, %d)",this->dormitoryCat, this->bed, this->cabinet, this->light,this->fan, this->tv);if(mysql_query(&this->my, query) != 0){StringCchPrintfA(errMsg, 300, "添加宿舍物件信息错误: %s\n",mysql_error(&this->my));return FALSE;}return TRUE;}bool dbStruct::GetItem(char dormitoryCat[6]){char query[300];StringCchPrintfA(query, 300, "SELECT * FROM item WHERE dormitoryCat = \"%s\"", dormitoryCat);if(mysql_query(&this->my, query) != NULL){StringCchPrintfA(errMsg, 300, "获取寝室物件信息错误: %s\n", mysql_error(&this->my));return FALSE;}MYSQL_RES * res;MYSQL_ROW row;res = mysql_use_result(&this->my);while((row = mysql_fetch_row(res)) != NULL){StringCchPrintfA(this->dormitoryCat, 6, row[0]);this->bed = (atoi(row[3]) == 1? true: false);this->cabinet = (atof(row[4]) == 1? true: false);this->light = (atof(row[5]) == 1? true: false);this->fan = (atof(row[6]) == 1? true: false);this->tv = (atof(row[7]) == 1? true: false);}mysql_free_result(res);return TRUE;}void dbStruct::ErrMB(){MessageBoxA(GetActiveWindow(), this->errMsg, "发生错误!", MB_ICONERROR);}//stdafx.h#pragma once#include "targetver.h"// Windows 头文件:#include <windows.h>#include <mysql.h>#include <CommCtrl.h>// C 运行时头文件#include <stdlib.h>#include <malloc.h>#include <memory.h>#include <tchar.h>#include <strsafe.h>// TODO: 在此处引用程序需要的其他头文件#include "dbStruct.h"#pragma comment(lib, "libmysql.lib")#pragma comment(lib, "comctl32.lib")//stdafx.cpp// stdafx.cpp : 只包括标准包含文件的源文件// DormitoryMng.pch 将作为预编译头// stdafx.obj 将包含预编译类型信息//dormitoryMng.h#pragma once#include "resource.h"#define MAX_LOADSTRING 100//dormitoryMng.cpp(部分代码)bool QueryStart(bool flag){char query[300];if(flag == true)//查询寝室信息{GetWindowTextA(GetDlgItem(g_hWndQuery, IDC_EDITBUILD),m_db.dormitory, 3);GetWindowTextA(GetDlgItem(g_hWndQuery, IDC_EDITROOM), m_db.room, 4);if(strcmp(m_db.dormitory, "") == 0 && strcmp(m_db.room,"") == 0){StringCchCopyA(query, 300,"SELECT room.dormitoryCat,dormitory, room, studentsNum, \count(student.dormitoryCat), water, electricity, waterCharge, \electricityCharge FROM room LEFT JOIN student ONroom.dormitoryCat = \student.dormitoryCat GROUP BY room.dormitoryCat");}else if(strcmp(m_db.dormitory, "") != 0 && strcmp(m_db.room,"") == 0){StringCchPrintfA(query, 300,"SELECT room.dormitoryCat,dormitory, room, studentsNum, \count(student.dormitoryCat), water, electricity, waterCharge, \electricityCharge FROM room LEFT JOIN student ONroom.dormitoryCat = \student.dormitoryCat WHERE dormitory = \"%s\" GROUP BY room.dormitoryCat",m_db.dormitory);}else if(strcmp(m_db.dormitory, "") == 0 && strcmp(m_db.room,"") != 0){StringCchPrintfA(query, 300,"SELECT room.dormitoryCat,dormitory, room, studentsNum, \count(student.dormitoryCat), water, electricity, waterCharge, \electricityCharge FROM room LEFT JOIN student ONroom.dormitoryCat = \student.dormitoryCat WHERE room = \"%s\" GROUP BYroom.dormitoryCat",}else{StringCchPrintfA(query, 300,"SELECT room.dormitoryCat,dormitory, room, studentsNum, \count(student.dormitoryCat), water, electricity, waterCharge, \electricityCharge FROM room LEFT JOIN student ONroom.dormitoryCat = \student.dormitoryCat WHERE dormitory = \"%s\" AND room = \"%s\" GROUP BY room.dormitoryCat",m_db.dormitory, m_db.room);}if(true != QueryInput(L"寝室号.楼栋号.寝室号.可住人数.当前人数.用水量.用电量.水费.电费", 9, query)){}}else//查询学生信息{GetWindowTextA(GetDlgItem(g_hWndQuery, IDC_EDITSTUNO),m_db.StudentNum, 9);GetWindowTextA(GetDlgItem(g_hWndQuery, IDC_EDITSTUNAME),m_db.StudentName, 20);if(strcmp(m_db.StudentNum, "") == 0 && strcmp(m_db.StudentName, "") == 0){StringCchCopyA(query, 300,"SELECT num, name, dormitoryCat FROM student");}else if(strcmp(m_db.StudentNum, "") != 0 && strcmp(m_db.StudentName, "") == 0){StringCchPrintfA(query, 300,"SELECT num, name, dormitoryCat FROM student WHERE num = \"%s\"",m_db.StudentNum);}else if(strcmp(m_db.StudentNum, "") == 0 && strcmp(m_db.StudentName, "") != 0){StringCchPrintfA(query, 300,"SELECT num, name, dormitoryCat FROM student WHERE name = \"%s\"",m_db.StudentName);}else{StringCchPrintfA(query, 300,"SELECT num, name, dormitoryCat FROM student WHERE name = \"%s\" AND num = \"%s\"",m_db.StudentName, m_db.StudentNum);}if(true != QueryInput(L"学号.姓名.所住寝室", 3, query)){m_db.ErrMB();}}return TRUE;}LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){int wmId, wmEvent;PAINTSTRUCT ps;HDC hdc;switch (message){case WM_CREATE:{if(!m_db.Init()){m_db.ErrMB();//*********填写错误信息break;}//创建列表CreateList(hWnd);//查询填充if(false == QueryInput(L"寝室号.楼栋号.寝室号.可住人数.当前人数.用水量.用电量.水费.电费", 9,"SELECT room.dormitoryCat,dormitory, room, studentsNum,\count(student.dormitoryCat),water,electricity, waterCharge,\electricityCharge FROM room LEFT JOIN student ON room.dormitoryCat \= student.dormitoryCat GROUP BY room.dormitoryCat")) {m_db.ErrMB();}}break;case WM_NOTIFY:{LPNMITEMACTIVATE nc = (LPNMITEMACTIVATE)lParam;if(nc->hdr.code == NM_RCLICK && nc->iSubItem != 0){HMENU hMenu = CreatePopupMenu();InsertMenu(hMenu, 0, MF_ENABLED, 10023, _T("删除"));InsertMenu(hMenu, 0, MF_ENABLED, 10024, _T("详细信息"));ClientToScreen(hWnd, &nc->ptAction);int result = TrackPopupMenu(hMenu,TPM_RETURNCMD | TPM_LEFTBUTTON| TPM_NOANIMATION,nc->ptAction.x + 5, nc->ptAction.y + 30, 0, hWnd, NULL);if(result == 10023){wchar_t str[9];ListView_GetItemText(g_hWndList, nc->iItem, 2, str, 9);int iSize;char * szMultiByte;//宽字符转换成多字节型iSize = WideCharToMultiByte(CP_ACP, 0, str, -1, NULL, 0, NULL, NULL);szMultiByte = new char[iSize];WideCharToMultiByte(CP_ACP, 0, str, -1, szMultiByte, iSize, NULL, NULL);if(iSize == 6){if(!m_db.DeleteDormitory(szMultiByte)){m_db.ErrMB();delete szMultiByte;break;}//刷新ListView_DeleteAllItems(g_hWndList);while(ListView_DeleteColumn(g_hWndList, 1)){}if(true != QueryInput(L"寝室号.楼栋号.寝室号.可住人数.当前人数.用水量.用电量.水费.电费", 9,"SELECT room.dormitoryCat,dormitory, room, studentsNum,\count(student.dormitoryCat),water,electricity, waterCharge,\electricityCharge FROM room LEFT JOIN student ON room.dormitoryCat \= student.dormitoryCat GROUP BYroom.dormitoryCat")){m_db.ErrMB();}}else{if(!m_db.DeleteStudent(szMultiByte)){m_db.ErrMB();delete szMultiByte;break;}//刷新ListView_DeleteAllItems(g_hWndList);while(ListView_DeleteColumn(g_hWndList, 1)){}if(true != QueryInput(L"学号.姓名.所住寝室", 3, "SELECT * FROM student")){m_db.ErrMB();}}delete szMultiByte;RedrawWindow(g_hWnd, NULL, NULL, RDW_INVALIDATE);}}break;}case WM_COMMAND:{wmId = LOWORD(wParam);wmEvent = HIWORD(wParam);// 分析菜单选择:switch (wmId){case IDC_REFRESH://刷新ListView_DeleteAllItems(g_hWndList);while(ListView_DeleteColumn(g_hWndList, 1)){}if(true != QueryInput(L"寝室号.楼栋号.寝室号.可住人数.当前人数.用水量.用电量.水费.电费", 9,"SELECT room.dormitoryCat,dormitory, room, studentsNum,\count(student.dormitoryCat),water,electricity, waterCharge,\electricityCharge FROM room LEFT JOIN student ONroom.dormitoryCat \= student.dormitoryCat GROUP BY room.dormitoryCat")) {m_db.ErrMB();}RedrawWindow(g_hWnd, NULL, NULL, RDW_INVALIDATE);break;case IDC_DELETE:{int itemCount;itemCount = ListView_GetItemCount(g_hWndList);for(int i = 0; i < itemCount; i++){if(ListView_GetCheckState(g_hWndList, i)){wchar_t str[9];ListView_GetItemText(g_hWndList, i, 2, str, 9);int iSize;char * szMultiByte;//宽字符转换成多字节型iSize = WideCharToMultiByte(CP_ACP, 0, str, -1, NULL, 0, NULL, NULL);szMultiByte = new char[iSize];WideCharToMultiByte(CP_ACP, 0, str, -1, szMultiByte, iSize, NULL, NULL);if(iSize == 6){if(!m_db.DeleteDormitory(szMultiByte)){m_db.ErrMB();delete szMultiByte;break;}//刷新ListView_DeleteAllItems(g_hWndList);while(ListView_DeleteColumn(g_hWndList, 1)){}if(true != QueryInput(L"寝室号.楼栋号.寝室号.可住人数.当前人数.用水量.用电量.水费.电费", 9,"SELECT room.dormitoryCat,dormitory, room, studentsNum,\count(student.dormitoryCat),water,electricity, waterCharge,\electricityCharge FROM room LEFT JOIN student ON room.dormitoryCat \= student.dormitoryCat GROUP BYroom.dormitoryCat")){m_db.ErrMB();}}else{if(!m_db.DeleteStudent(szMultiByte)){m_db.ErrMB();delete szMultiByte;break;}//刷新ListView_DeleteAllItems(g_hWndList);while(ListView_DeleteColumn(g_hWndList, 1)){}if(true != QueryInput(L"学号.姓名.所住寝室", 3, "SELECT * FROM student")){m_db.ErrMB();}}delete szMultiByte;break;}}break;}case IDC_DELETESOME:{int itemCount;int iSize;int i = 0;while(i < (itemCount = ListView_GetItemCount(g_hWndList))){if(ListView_GetCheckState(g_hWndList, i)){wchar_t str[9];ListView_GetItemText(g_hWndList, i, 2, str, 9);char * szMultiByte;//宽字符转换成多字节型iSize = WideCharToMultiByte(CP_ACP, 0, str, -1, NULL, 0, NULL, NULL);szMultiByte = new char[iSize];WideCharToMultiByte(CP_ACP, 0, str, -1, szMultiByte, iSize, NULL, NULL);if(iSize == 6){if(!m_db.DeleteDormitory(szMultiByte)){m_db.ErrMB();delete szMultiByte;return 0;}}else{if(!m_db.DeleteStudent(szMultiByte)){m_db.ErrMB();delete szMultiByte;return 0;}}delete szMultiByte;break;}elsei++;}if(iSize == 6){//刷新ListView_DeleteAllItems(g_hWndList);while(ListView_DeleteColumn(g_hWndList, 1)) {}if(true != QueryInput(L"寝室号.楼栋号.寝室号.可住人数.当前人数.用水量.用电量.水费.电费", 9,"SELECT room.dormitoryCat,dormitory, room, studentsNum,\count(student.dormitoryCat),water,electricity, waterCharge,\electricityCharge FROM room LEFT JOIN student ON room.dormitoryCat \= student.dormitoryCat GROUP BYroom.dormitoryCat")){m_db.ErrMB();}}else{//刷新。

相关文档
最新文档