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

合集下载

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

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

学生宿舍管理系统数据库程序设计一、需求分析1.目标和任务(1)了解目前宿舍管理的现状以及SQL Server 2008的功能和特点。

(2)练习E-R模型与关系模型的转换。

2.数据库应有的功能①学生基本信息存储和查询②每一栋宿舍楼中宿舍信息的存储和查询③宿舍基本信息的存储和查询④宿舍楼基本信息查询与修改⑤宿舍楼物品出入审批及记录二、概念设计1.实体学生:Student(StuNo,DepName,StuName,StuSex,StuClass);宿舍:Room(RNo,RHeader,ROne,RTwo ,RClass,RThree,RFour,RFive,RSix);宿舍楼:Dormitory(DorNo,DorCmpus,DorLocation,DorPhNo,DorAdminist);宿管人员:DorAdminist (WorNo,WorName,WorSex,WorPhNo,WorTime);住宿:Stay(Rno, StuNo,Time)2.数据字典(二)表结构1、Dormitory2、Room3、Student4、DorAdminist表4 Worker表结构5.Stay表5 Stay表结构3.实体间的联系(ER图)三、操作结果Ⅰ、表的创建1. Dormitory2. Room3. Student4. DorAdminist5. StayⅡ、数据输入1.Dormitory2.Room3.Student4.DorAdminist5. StayⅢ、关系图四、实验总结这个学期我们一共做了四次实验。

而这四次实验让我们对SQL系统有了一个初步的了解,使我们通过学习可以自己建立一些简单的信息系统。

而这次的课设我们是根据近期经常谈论的话题,分宿舍的问题而想到的一个宿舍管理系统。

本次课设的主体以及属性是由我们小组共同讨论协商而定下的,由李坤同学做最终的实体之间关系的确定,以及ER图的设计。

而我负责表格的建立,王雅娜同学负责表格的输入,最后的关系图由我们共同完成。

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

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

数据库系统及应用课程学生宿舍管理系统课程设计一、概述在当今社会,随着高校学生数量的不断增加,学生宿舍管理工作变得越来越繁重。

为了提高学生宿舍管理工作的效率和质量,本课程设计旨在利用数据库系统及应用知识,设计并实现一套学生宿舍管理系统,以满足学生宿舍管理的需求。

二、需求分析1. 整体需求(1)系统应该具有良好的用户界面,方便用户进行操作。

(2)系统应该能够实现对学生宿舍信息的录入、修改、查询和删除等基本功能。

(3)系统应该能够对学生宿舍进行信息统计和报表生成等功能。

(4)系统应该能够实现对学生宿舍人员的管理,包括入住、退房、换房等操作。

(5)系统应该能够实现对学生宿舍设备的管理,包括设备的维护、报废、购置等操作。

2. 功能需求(1)学生宿舍信息管理- 学生宿舍基本信息的录入、修改、查询和删除- 学生宿舍信息的统计分析和报表生成(2)学生宿舍人员管理- 学生宿舍人员的入住、退房、换房等操作- 学生宿舍人员信息的录入、修改、查询和删除(3)学生宿舍设备管理- 学生宿舍设备的维护、报废、购置等操作- 学生宿舍设备信息的录入、修改、查询和删除三、系统设计1. 数据库设计(1)学生宿舍信息表- 宿舍编号- 宿舍名称- 宿舍类型- 宿舍价格- 入住情况(2)学生宿舍人员信息表- 学生尊称- 学号- 宿舍编号- 入住时间- 退房时间(3)学生宿舍设备信息表- 设备编号- 设备名称- 设备型号- 设备数量- 设备状态2. 系统界面设计(1)登入界面:用户输入用户名和密码进行登入(2)主界面:包括学生宿舍信息管理、学生宿舍人员管理、学生宿舍设备管理等功能模块(3)子界面:每个功能模块包括录入、修改、查询和删除等操作3. 系统功能设计(1)学生宿舍信息管理功能- 提供录入、修改、查询和删除学生宿舍信息的功能- 提供学生宿舍信息统计分析和报表生成的功能(2)学生宿舍人员管理功能- 提供入住、退房、换房等操作功能- 提供录入、修改、查询和删除学生宿舍人员信息的功能(3)学生宿舍设备管理功能- 提供设备维护、报废、购置等操作功能- 提供录入、修改、查询和删除学生宿舍设备信息的功能四、系统实现1. 开发工具(1)数据库:MySQL(2)编程语言:Java(3)界面设计:JavaFX(4)开发工具:IntelliJ IDEA2. 系统架构(1)前端:使用JavaFX实现用户界面(2)后端:使用Java编写业务逻辑,通过JDBC连接MySQL数据库(3)数据库:使用MySQL存储学生宿舍相关信息3. 系统测试(1)功能测试:对系统各项功能进行测试,确保功能能够正常运行(2)性能测试:对系统进行压力测试,评估系统性能是否满足需求(3)兼容性测试:测试系统在不同操作系统和浏览器上的兼容性五、系统部署和使用1. 系统部署(1)环境准备:安装MySQL数据库、配置Java开发环境(2)部署步骤:将系统部署到预先准备好的服务器上(3)系统配置:对系统进行相关配置,确保系统能够正常运行2. 系统使用(1)注册登入:用户进行注册并登入系统(2)操作指南:系统提供操作指南,介绍各项功能的使用方法(3)使用反馈:用户对系统使用过程中遇到的问题进行反馈六、总结与展望本课程设计基于数据库系统及应用的知识,设计并实现了一套学生宿舍管理系统。

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

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

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

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

增强系统安全性: 加强用户身份验 证,防止数据泄 露
提高用户体验: 优化界面设计, 提高系统易用性
拓展功能模块: 增加在线预订、 费用结算等功能, 提高系统实用性
THANK YOU
汇报人:
汇报时间:20XX/01/01
单击添加章节标题
PART 2
学生公寓管理系统概述
系统功能介绍
学生信息 管理:包 括学生基 本信息、 住宿信息、 缴费信息 等
公寓管理: 包括公寓 基本信息、 房间信息、 设施信息 等
费用管理: 包括住宿 费、水电 费、网络 费等费用 的收取和 管理
维修管理: 包括报修、 维修记录、 维修费用 等
数据库概念模型设计
概念模型:描述现实世界的数据模型
关系:表示实体之间的联系或关系
实体:表示现实世界中的事物或对象 属性:描述实体的特征或状态
约束:限制实体和属性的取值范围或 关系
设计原则:满足第三范式,保证数据 的完整性和一致性
数据库逻辑模型设计
实体-关系模 型(ER模 型):描述 实体、属性 和关系的模 型
理任务
存储过程优点:提高 数据处理效率,减少 网络传输,提高安全

存储过程分类:系统 存储过程、用户自定
义存储过程
存储过程创建:使用 CREATE
PROCEDURE语句创 建存储过程
存储过程调用:使用 EXECUTE语句调用存
储过程
存储过程修改:使用 ALTER PROCEDURE
语句修改存储过程
存储过程删除:使用 DROP PROCEDURE
数据库课程设计收获与体会
掌握了数 据库设计 的基本原 理和方法
提高了数 据库应用 开发的实 践能力

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

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

数据库课程设计学生宿舍管理系统-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
系统实现

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

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

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

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

二、设计目标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
需求分析
功能需求
报表统计
系统需要提供各类报表统计功能,如学生 住宿情况统计、费用收取情况统计等,以 便学校管理部门进行数据分析和决策。
学生信息管理
系统需要提供对学生基本信息的增删改查 功能,包括姓名、性别、年龄、班级、联 系方式等。

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

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

数据库课程设计——学生宿舍管理系统学生宿舍管理系统是一个在宿舍内运用一套计算机数据库系统来管理宿舍资源的一种系统,其主要有宿舍的床位的记录,宿舍进出情况的记录,以及在宿舍内的电信费用的结算等。

这套系统主要是管理宿舍的资源,是学生在校期间居住环境良好、安全稳定的基础。

该系统主要包括宿舍人员信息,电子证件信息,维修管理,安全管理,电信费用,违规登记,公共活动安排,探访记录等几个主要的模块组成。

宿舍人员信息模块是指向学生宿舍中所有入住学生提供宿舍床位资源申请,记录个人信息,转移床位,离开宿舍等服务。

电子证件信息模块指的是在宿舍内每一位学生进入前,需要出示身份证件如学生证,及其他权威机构发放的个人有效证件,以及学生图书馆的借还书情况等信息的收集。

维修管理模块此模块是收集宿舍内的维修及疏导信息,对宿舍内设备信息的查询,及采购、使用过程的记录;安全管理模块是指在学生入住前及整个住期内宿管部门对宿舍的环境、安全状况及情况的收集记录;电信费用模块此模块是指宿舍内每位学生使用电话费用时必须进行记录;违规登记模块此模块是指对宿舍违反宿管部门要求及学校规章制度情况的记录;公共活动安排模块此模块是指在宿舍内举办的公共活动的记录;探访记录模块是指宿舍内朋友及亲人探访等情况的记录等。

总之,学生宿舍管理系统是一种在宿舍内运用一套计算机数据库系统来对宿舍的人员信息、电子证件信息、维修管理、安全管理、电信费用、违规登记、公共活动安排、探访记录等有效记录及管理的系统。

由于数据库技术的发展,学生宿舍管理系统可以实现快速可靠的资料记录,使资料的维护和查询变得更加便捷和安全。

数据库技术的发展对于学生宿舍管理系统的构建起着至关重要的作用,其实现的高效记录、安全稳定的基本功能,为学生在校期间的居住环境提供了良好的保障。

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

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

学生宿舍管理系统数据库课程设计一、引言学生宿舍管理系统是大学校园里一个重要的管理系统,它涉及到学生的住宿信息、宿舍分配、卫生情况等方方面面。

为了提高管理效率和方便学生居住,设计一个高效、稳定的数据库系统十分必要。

本文将围绕学生宿舍管理系统数据库设计展开讨论,以满足学生宿舍管理的实际需求。

二、系统需求分析1. 管理部分•管理员可以对学生宿舍信息进行增删改查操作。

•管理员可以发布通知,分配宿舍以及调整宿舍分配情况。

•管理员可以统计每个宿舍的人数、性别比例、班级分布等数据。

2. 学生部分•学生可以查询自己的宿舍分配情况。

•学生可以查看宿舍公共设施的使用情况。

•学生可以报修宿舍问题并查询维修进度。

3. 宿舍情况•宿舍信息包括宿舍号、可容纳人数、卫生情况等。

•每个学生的个人信息包括学号、姓名、性别、联系电话等。

4. 数据库设计•以宿舍为中心建立宿舍表,包含宿舍号、楼栋号等字段。

•学生表包含学号、姓名、性别、班级等字段。

•将两个表通过外键关联,确保数据的一致性。

三、系统设计1. 数据库表设计1.1 宿舍表字段名类型说明宿舍号int 主键楼栋号int可容纳人数int卫生情况varchar(50)1.2 学生表字段名类型说明学号int 主键姓名varchar(20)性别varchar(10)班级varchar(20)2. 系统流程设计2.1 管理员操作流程1.管理员登录系统。

2.管理员进入管理界面,进行宿舍信息管理。

3.管理员发布通知,分配宿舍。

4.管理员统计宿舍信息。

2.2 学生操作流程1.学生登录系统。

2.学生查询宿舍分配情况。

3.学生查看宿舍设施使用情况。

4.学生报修宿舍问题。

四、总结本文针对学生宿舍管理系统数据库设计进行了深入探讨,从系统需求分析到数据库表设计再到系统流程设计,全面展现了一个高效、稳定的学生宿舍管理系统需要具备的特点。

通过本次课程设计,我们对数据库设计的重要性有了更深刻的理解,相信在实际应用中可以更好地为学生宿舍管理提供便利。

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

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

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

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

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

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

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

二、系统功能需求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.部署和维护阶段:将系统部署到服务器上并进行后续维护。

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

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

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

学生宿舍管理系统数据库课程设计1000字引言学生宿舍是全日制大学生的重要生活场所,其管理涉及到学生的居住环境和安全,是学校管理工作的重点之一。

为方便学生宿舍的管理与服务,本课程设计采用数据库设计理论原理,以学生宿舍管理系统数据库设计为主题。

一、需求分析本系统主要服务于学生宿舍管理,主要包括以下功能:1. 学生信息管理:学生信息的存储与管理,包括姓名、性别、学号、专业、班级等基本信息;2. 宿舍管理:宿舍楼列表、宿舍房间列表、入住、退房等信息管理;3. 维修报修:学生可提出宿舍维修报修请求,管理员对报修请求进行处理,包括维修金额估算、平均维修周期等;4. 水电费管理:按照每个学生在宿舍内使用的水电计费,生成宿舍的水电费账单;5. 管理员权限控制:明确管理员权限的修改、删除、添加等操作,以保障学生信息的安全;6. 数据备份与恢复:系统数据的备份与恢复,以防数据出现意外的损失。

二、数据库设计基于上述需求,本系统涉及到以下几个主要的数据表:1. 学生表名称:student字段:student_id,name,gender,major,class说明:student_id为主键,用于唯一标识每个学生;2. 宿舍楼表名称:building字段:building_id,building_name说明:building_id为主键,用于唯一标识每个楼栋;3. 宿舍房间表名称:room字段:room_id,room_number,building_id说明:room_id为主键,用于唯一标识每个房间;building_id为外键,用于关联楼栋表;4. 入住表名称:check_in字段:check_in_id,student_id,room_id,check_in_date,check_out_date说明:check_in_id为主键,用于唯一标识每个入住信息;student_id为外键,用于关联学生表;room_id为外键,用于关联宿舍房间表。

数据库宿舍系统课程设计

数据库宿舍系统课程设计

数据库宿舍系统课程设计一、教学目标本课程旨在让学生了解和掌握数据库宿舍系统的基本概念、原理和应用。

通过本课程的学习,学生应达到以下目标:1.知识目标:•理解数据库宿舍系统的基本概念和原理。

•掌握数据库宿舍系统的主要功能和应用。

•了解数据库宿舍系统的安装、配置和维护方法。

2.技能目标:•能够使用数据库宿舍系统进行宿舍管理和查询。

•能够进行数据库宿舍系统的简单维护和故障排除。

•能够编写简单的数据库宿舍系统脚本和程序。

3.情感态度价值观目标:•培养学生的信息素养,使他们对数据库宿舍系统有正确的认识和使用态度。

•培养学生的团队合作精神,使他们能够与同学合作完成数据库宿舍系统的项目和任务。

二、教学内容本课程的教学内容主要包括以下几个部分:1.数据库宿舍系统的概念和原理:介绍数据库宿舍系统的定义、特点和应用场景。

2.数据库宿舍系统的主要功能:讲解数据库宿舍系统的各项功能,如宿舍信息管理、宿舍分配管理等。

3.数据库宿舍系统的安装和配置:介绍数据库宿舍系统的安装步骤和配置方法。

4.数据库宿舍系统的使用和维护:讲解如何使用数据库宿舍系统进行宿舍管理和查询,以及如何进行系统的维护和故障排除。

5.数据库宿舍系统脚本和程序编写:介绍如何编写数据库宿舍系统的脚本和程序,以实现特定的功能和需求。

为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法:1.讲授法:教师通过讲解和演示,向学生传授数据库宿舍系统的概念、原理和功能。

2.案例分析法:教师通过分析实际案例,引导学生理解和应用数据库宿舍系统的知识。

3.实验法:学生通过实际操作,掌握数据库宿舍系统的使用和维护方法。

4.讨论法:学生分组讨论,共同解决问题,培养团队合作精神。

四、教学资源为了支持教学内容和教学方法的实施,我们将选择和准备以下教学资源:1.教材:选择一本与数据库宿舍系统相关的教材,作为学生学习的主要参考资料。

2.参考书:提供一些与数据库宿舍系统相关的参考书,供学生深入学习和研究。

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

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

目录一、项目概述 (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)一需求分析 (1)1.1 需求分析 (1)1.1.1 基本信息 (1)1.1.2 用户对系统要求 (1)1.2 业务流程概述 (2)1.3数据流图 (3)1.4数据字典 (7)1.4.1数据项 (7)1.4.2数据结构 (9)二概念结构设计 (9)三逻辑结构设计 (11)3.1将E-R图转换为关系模型 (11)四物理结构设计 ............................................................................................. 错误!未定义书签。

4.1建立数据库、数据表、视图、索引、导入数据 (15)五系统设计与实现: (15)功能模块分析 (15)5.1界面设计图 (15)1.管理员或学生登录界面 (16)2.学生管理系统基本功能模块界面 (16)3.基本信息界面 (16)4.学生基本信息管理界面 (17)5.查询学生信息界面 (17)6.宿舍基本信息界面 (17)7.服务管理选择界面 (18)8.宿舍卫生检查记录界面 (18)9.报修登记界面 (18)10.宿舍水电费记录界面 (19)11.宿舍管理界面 (19)12.入住登记界面 (19)13.换房界面 (20)14.退房界面 (20)15.人员来访管理界面 (20)六总结 (21)摘要学生宿舍管理系统是应对学生宿舍管理的现代化、网络化,逐步摆脱当前学生宿舍管理的人工管理方式,提高学生宿舍管理效率而开发的,它包括基本信息管理、住宿管理、服务管理、来访者管理等四大功能模块。

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

一需求分析通过对学生宿舍楼的实地调查,了解到现在的学生宿舍管理仍停留在完全的人工管理阶段,楼管处没有标准的住宿学生存档信息。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

数据库课程设计宿舍管理系统宿舍管理系统是一种基于数据库技术的信息管理系统,主要用于管理学校或公寓宿舍的信息,包括学生信息、宿舍信息、楼层信息、寝室信息、维修信息等。

该系统可以帮助学校或公寓管理人员更好地管理学生宿舍,提高宿舍管理效率,加强对学生宿舍的监管力度。

宿舍管理系统的设计需要考虑以下几个方面:一、系统需求分析在设计宿舍管理系统之前,我们需要进行系统需求分析,了解学校或公寓管理人员的需求和要求,确定系统的功能和性能指标。

系统需求分析包括以下几个方面:1、功能需求分析宿舍管理系统需要实现的功能包括:学生信息管理、宿舍信息管理、楼层信息管理、寝室信息管理、维修信息管理、统计报表查询等。

2、性能需求分析宿舍管理系统需要满足的性能要求包括:系统响应速度快、数据可靠性高、数据安全性强、易于维护等。

二、数据库设计在进行数据库设计时,需要根据需求分析结果确定数据库的结构和关系。

宿舍管理系统需要设计的数据库包括:学生信息表、宿舍信息表、楼层信息表、寝室信息表、维修信息表等。

1、学生信息表学生信息表包括学生的基本信息,如学号、姓名、性别、班级、联系方式等。

2、宿舍信息表宿舍信息表包括宿舍的编号、类型、容纳人数、所在楼层等信息。

3、楼层信息表楼层信息表包括楼层的编号、名称、所在位置等信息。

4、寝室信息表寝室信息表包括寝室的编号、所属宿舍编号、所在楼层编号、宿舍类型等信息。

5、维修信息表维修信息表包括维修记录的编号、维修日期、维修内容、维修人员等信息。

三、系统实现在进行系统实现时,需要根据需求分析和数据库设计结果进行系统开发。

系统开发的主要内容包括:系统界面设计、系统功能实现、系统测试和系统优化等。

1、系统界面设计系统界面设计需要根据用户需求和数据库设计结果进行界面布局和界面元素的设计,使得用户可以方便地使用系统。

2、系统功能实现系统功能实现需要根据需求分析和数据库设计结果进行功能模块的开发,包括学生信息管理模块、宿舍信息管理模块、楼层信息管理模块、寝室信息管理模块、维修信息管理模块、统计报表查询模块等。

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

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

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

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

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

系统数据库使用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{//刷新。

相关文档
最新文档