基于C#+SQL Server2008实现(CS界面)学生宿舍管理系统

1 概述

本次课程设计是数据库课程设计,我选的是学生宿舍管理系统,功能块主要是宿舍管理、学生管理、出入登记和来访登记,目的在于将学生宿舍的管理实现信息化,监控学生宿舍的情况防止意外发生。

课程设计任务的需求分析

2.1设计任务

设计出一个方便进行宿舍管理的系统的数据库。

2.2设计要求

假定学校有多栋宿舍楼,每栋楼有多层,每层有多个寝室,每个寝室可住多名学生,学生宿舍管理系统对学校的学生宿舍进行规范管理,其管理的对象如下:

.宿舍信息:编号、楼层、床位数、单价等。

.学生:学号、姓名、性别、年龄、所在院系、年级、电话等。

每个宿舍最多可以住4位同学,每个同学只能在一个宿舍,不同宿舍的费用标准可以不同。不同院系、年级的同学可以住同一间宿舍。

系统要能够对宿舍、学生、住宿信息进行登记、调整,并能随时进行各种查询、统计等处理。包括:

.寝室分配:根据院系、年级分配寝室。

.学生管理:实现入住学生信息的登记、维护和查询功能。

.信息查询:按公寓楼号、学生姓名等查询住宿信息。

.出入登记:对学生进出公寓的情况进行登记、实现基本的出、入监控功能。

2.3需求描述的规范文档

  1. 宿舍情况查询和清空宿舍;
  2. 学生信息查询和修改、删除和添加;
  3. 学生出入登记;
  4. 来访登记;
  5. 权限管理,包括三种权限(宿舍管理员、高级管理员和超级管理员);
  6. 宿舍管理员可以编辑出入登记和来访登记,但是不能操作学生信息和宿舍信息,只能查询;
  7. 高级管理员可以操作学生信息和宿舍信息但是不能编辑出入登记和来访登记;
  8. 超级管理员除了高级管理员的权限外还能对高级管理员和宿舍管理员的用户进行添加和删除修改。

3 概念结构设计

3.1概念结构设计工具(E-R模型)

使用E-R图作为概念结构设计工具,构建出数据库E-R模型。

3.2管理员子系统

3.2.1子系统描述

管理员表:id,名字,密码,联系方式,权限。

其中主键为id。

3.2.2分E-R图

3.2.3说明

管理员表用于记录管理员信息。

3.3宿舍子系统

3.3.1 子系统描述

``宿舍表:id,宿舍管理员id,宿舍号(如C),宿舍楼号,宿舍学生性别。

``其中主键为id,外键为宿舍管理员id。

3.3.2 分E-R图

3.3.3 说明

宿舍表用于记录已有宿舍信息。

3.4房间子系统

3.4.1 子系统描述

房间表:id,宿舍id,房间号,价格。

其中主键为id,外键为宿舍id。

3.4.2 分E-R图

3.4.3 说明

房间表用于记录房间信息。

3.5学生子系统

3.5.1子系统描述

学生表:id,学号,姓名,性别,年龄,联系方式,学院id,专业id,年级,宿舍id,房间id。

其中主键为id,外键为学院id,专业id,宿舍id,房间id。

3.5.2分E-R图

3.5.3说明

学生表用于记录学生信息。

3.6院系子系统

3.6.1子系统描述

院系专业表:id,院系名字,所属学院id。

其中主键为id,外键为所属学院id。

3.6.2分E-R图

3.6.3说明

院系专业表用于记录院系专业信息。

3.7出入登记子系统

3.7.1 子系统描述

出入登记表:id,宿舍id,学生id,出去时间,返回时间。

其中主键为id,外键为宿舍id,学生id。

3.7.2 分E-R图

3.7.3 说明

出入登记表用于记录学生出入宿舍的信息。

3.8来访登记子系统

3.8.1 子系统描述

来访登记表:id,宿舍id,学生id,来访人名字,来访时间,出去时间。

其中主键为id,外键为宿舍id,学生id。

3.8.2 分E-R图

3.8.3 说明

来访登记表用于宿舍来访登记。

3.9总体E-R图

4 逻辑结构设计

4.1 关系数据模式

管理员表(admin):

id int 主键

名字(aname) varchar(10) 非空

密码(password) varchar(10) 非空

联系方式(tel) varchar(20) 非空

权限(power) tinyint 非空

宿舍表(dormitory):

id int 主键

管理员id(a_id) int 非空 外键联系admin表

宿舍号(如C)(ch) char(1) 非空

宿舍编号(num) int 非空

宿舍学生性别(s_gender) varchar(10) 非空

房间表(room):

id itn 主键

宿舍id(d_id) int 非空 外键联系dormitory表

宿舍号(num) int 非空

剩余床位(margin) tinyint 非空

价格(price) int 非空

学生表(student):

id int 主键

学号(sno) varchar(20) 非空

姓名(sname) varchar(10) 非空

性别(gender) varchar(10) 非空

年龄(age) int 非空

联系方式(tel) varchar(20) 非空

学院id(u_id) int 非空 外键联系major表

专业id(m_id) int 非空 外键联系major表

年级(class) int 非空

宿舍id(d_id) int 非空 外键联系dormitory表

房间id(r_id) int 非空 外键联系room表

院系专业表(major):

id int 主键

名字(name) varchar(50) 非空

所属学院id(m_id) int 非空 外键联系major表

出入登记表(in_out):

id int 主键

宿舍id(d_id) int 非空 外键联系dormitory表

学生id(s_id) int 非空 外键联系student表

出去时间(out_date) datetime 非空

返回时间(in_date) datetime

来访登记表(visit):

id int 主键

宿舍id(d_id) int 非空 外键联系dormitory表

学生id(s_id) int 非空 外键联系student表

来访人名字(name) varchar(10) 非空

来访时间(in_date) datetime 非空

出去时间(out_date) datetime

4.2 视图的设计

dormitory和room之间的视图:

dormitory和in_out之间的视图:

dormitory和visit之间的视图:

4.3 优化

在宿舍表和房间表、学生表、出入登记表、来访登记表之间建立外键约束,实现删除和更新的级联,并且建立视图。

5 数据库物理设计与实施

5.1 数据库应用的硬件、软件环境介绍

此次数据库设计使用的硬件包括笔记本电脑一台,装有win10系统,软件环境为VS2012和sql server2008。

5.2 物理结构设计

数据库表的设计可见4.1关系数据模式,同时为了提高数据库的查找效率和用户响应速度,数据库应该建立相应的视图和索引提高存取效率,其中视图见4.2。

5.3 索引的设计

本次数据库课程设计除了主键索引和非空索引外并没有设置其他索引。

5.4 建立数据库

数据库:

CREATE DATABASE [dms] ON  PRIMARY 
( NAME = N'dms', FILENAME = N'D:\dms.mdf' , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
    LOG ON 
( NAME = N'dms_log', FILENAME = N'D:\dms_log.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)

表:

admin表:

CREATE TABLE [dbo].[admin](
	    [id] [int] IDENTITY(1,1) NOT NULL,
	    [aname] [varchar](10) NOT NULL,
	    [password] [varchar](10) NOT NULL,
	    [tel] [varchar](20) NOT NULL,
	    [power] [tinyint] NOT NULL,
      CONSTRAINT [PK_admin] PRIMARY KEY CLUSTERED 
(
	    [id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

dormitory表

 CREATE TABLE [dbo].[dormitory](
	    [id] [int] IDENTITY(1,1) NOT NULL,
[a_id] [int] NOT NULL,
	    [ch] [char](1) NOT NULL,
	    [num] [int] NOT NULL,
	    [s_gender] [varchar](10) NOT NULL,
     CONSTRAINT [PK_dormitory] PRIMARY KEY CLUSTERED 
(
	     [id] ASC
)WITH 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神仙别闹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值