IT项目之旅(一)《宿舍管理系统》设计与实现
《宿舍管理系统》
数据库工具:SQL SERVER 2005
编程环境:Microsoft Visual Studio 2005
编程语言:C#
作者:05计算机A班 呆呆 0515111039
一、 系统需求分析
(1) 问题背景:
目前学校的每个楼栋的学生信息、财产、外出违规情况都是随便写在几个本子上,没有比较系统的存储,很容易丢失不便以统一管理,所以就做了这个系统。
(2) 总体目标:
建立一个比较完善的楼栋管理系统以及数据库,使管理员更加有效地组织管理各楼栋的学生信息。
(3) 主要功能:
该系统是面向楼栋管理员的。主要涉及到三个功能学生的基本信息管理、楼栋房间管理以及违规情况的管理。
学生信息管理:入校时,每位同学都有唯一的学号,并被分配到指定的宿舍楼和指定的宿舍,也会有一个宿舍号,其入校时间就是他的入住时间。另外,为了管理上的方便,同一院系的学生的宿舍一般在一起,相应地会有其所在的院系名称。
楼栋房间管理:主要涉及每个房间的号码、电话、可容纳的人数、还有水表度数、电表度数。
违规情况的管理:录入违反学校规定的每个同学的信息,违反的原因及处罚的结果。
(4) 实现:
系统结构采用当前流行的C/S结构,也就是客户端/服务器模式。本设计是以楼栋管理系统为例。编程语言采用C#,它可视化的开发环境,可以快速完成系统的开发,内部集成的数据库访问通道,可以轻松方便的对数据库管理。
二、系统功能的设计和实现
主要通过存储过程来实现。
储存过程的设计:
a.显示的存储过程:Show_allstudent(已正确执行):
ALTER PROCEDURE [dbo].[show_allstudents]
AS
BEGIN
select * from Student
END
类似的还有:show_allroom
b.增加的存储过程:insert_student:
ALTER PROCEDURE [dbo].[insert_student]
@Number nvarchar(50),
@Name nvarchar(50),
@Sex nvarchar(50),
@Department nvarchar(50),
@RoomNo nvarchar(50),
@InDay nvarchar(50)
AS
BEGIN
insert into Student values(@Number,@Name,@Sex,@Department,@RoomNo,@InDay )
END
限于篇幅其他省略……
约束的设置:
键约束:student表中,Number是主键,当插入相同的学生号时,会出错。Room表中,插入相同房号会报错。
单值约束:([Number] like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]') 当插入学生号时,如果不是10个数字会出错。
引用完整性约束(外键约束):当在违规表中录入的学生号不存在student中的时候,录入表不能显示弹出错误提示。
当录入学生信息表的时候,加入的房间号不存在Room表中就会出错。
代码实现:主要通过ADO.Net,调用存储过程来实现。
(三)实现的页面功能
总结:这个小项目应该是我第一次用C#开发的项目,花了几天时间,主要是数据库的实践作业。基本数据库所设计到的功能(键约束、单值约束、引用完整性,各种储存过程)。主要涉及到的就是Ado.Net 以及SQL Server 2005的一些基本常用方法,存储过程视图的应用。几年前开发的,现在回想起来当时开发的系统有点幼稚,如现在计算加减乘除的。这是上交时的版本,后期又完善了一下,可以用,比这好看,功能强大(未贴出)。