logo资料库

机房管理系统.doc

第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
资料共17页,剩余部分请下载后查看
中北大学 数据库课程设计 说 明 书 学 院 、 系 : 专 业: 软件学院 软件工程 学 生 姓 名: *** 学 号: ********* 设 计 题 目 : 软件学院机房管理系统 起 迄 日 期: 指 导 教 师: 2012 年 5 月 28 日- 2012 年 6 月 22 日 董晓丽 2012 年 6 月 19 日
1.需求分析 一 本系统信息要求: 在 Windows 平台下,使用面向对象程序设计语言(C#),结合 SQL Server 进行开发一 个数据库管理系统—软件学院机房管理系统。实现软件学院机房上机管理自动化,简洁化。 该系统可以随时添加新用户,而且还可以对用户的信息进行查询,对上机情况进行查询。 同时具有上机和下机管理功能。具体情况如下: 1.该系统要求具有上下机功能。 (1)实现无人值守,通过验证身份做到自动判断是否允许学生、管理员上机; (2)学生上即使可以对上机情况进行查询 (4)用户上下机时更新机器状态表信息 (3)学生下机时自动将该学生所用机器电源关掉。 2.该系统要方便管理。 (1)根据学生机、器信息的不同,记录每个学生、机器的信息 (2)能够对学生、机器信息进行操作 3.该系统要求根据学生信息 (1)对学生信息进行查询 (2)对上机情况进行查询 4.该系统要求系统界面友好。 二 本系统开发设计思想: 1.该系统先对机房现状进行统计,收集机房机号、所处状态等信息,必要时对机房机器 作增减操作。 2.对学生信息进行统计,了解学生库中有哪些学生,并对每个学生按照班级进行分组, 以备学生上机时确定学生的班级号和学号。 3.学生可以通过该系统查询自己的上机时长。 4.在学生下机后,系统要求能够自动的关闭学生计算机电源。 6.系统还应为管理员提供汇总服务,管理员可以查询指定学生、机器信息,全体学生、 机器信息。 三 本系统功能处理: (1)用户上下机操作 (2)学生信息管理 1
(3)机器状态管理 (4)信息的查询管理 四 本系统分组任务安排 组长:**** 功能(1) 组员:*** 功能(3) *** *** 功能(4) 功能(2) 2.概要设计 一 本系统主要功能模块划分: (1)用户上下机操作:主要包含用户上机功能,加强对用户身份的识别,使得数据库 中的信息有安全保障,有学生下机功能,下机后自动关机,其中包含上下机时对数据库 中用户的机器状态的更新功能; (2)学生信息管理:主要对学生的管理,包含学生信息的添加,删除,修改功能; (3)机器状态管理:主要对机房机器的管理,包含管理机房机器的添加,删除功能; (4)信息查询管理:主要对学生包含对学生和机房机器的信息查询; 二 本系统详细功能模块划分 机房管理系统 管理员 用户 其他 学 生 信 息 维 护 删 除 学 生 信 息 添 加 学 生 信 息 机 器 状 态 管 理 系 统 信 息 查 询 修 改 学 生 信 息 添 加 机 位 删 除 机 位 学 生 信 息 查 询 上 机 情 况 查 询 上 下 机 操 作 管 理 下 机 操 作 更 新 数 据 库 上 机 操 作 更 新 数 据 库 用 户 权 限 管 理 用 户 基 本 信 息 下 机 后 自 动 关 机 用 户 权 限 设 置 2
三 数据库需求分析 上下机操作依赖于学生信息和机器状态 根据上述数据库之间的对应及依赖关系,可确定数据库所必备信息的以下几个方面 (1)学生信息(学号,班号,处分记录) (2)机器信息(机号,状态,上机时间,下机时间,用户) (3)用户信息(用户名,密码,用户身份) 3 数据库概念结构设计 一 概念结构设计 E-R 图 班号 处分记录 学号 学生信息 状态 上机时间 机号 下机时间 用户 机器状态 用户密码 用户身份 用户登录名 用户信息 3
学生信息 N 上下机管理 N 机器状态信息 N 用户信息 五 数据库逻辑结构设计 数据字典是各类数据描述的集合,它是进行详细的数据收集和数据分析后所 获得的主要成果,是关于数据库中数据的描述,即对元素的描述。 数据字典是在系统分析阶段建立,在数据库设计过程中不段修改、充实、完 善的。 针对本系统,通过机房管理内容和过程分析,设计的数据项和数据结构如下。 (1)学生信息(学号,班号,处分记录) (2)机器信息(机号,状态,上机时间,下机时间,用户) (3)用户信息(用户名,密码,用户身份) 总体表预览 学生信息表 机器状态表 用户信息表 学生信息表 列名 班号 学号 数据类型及长度 可否为空 CHAR(3) NOT NULL 说明 班级号 VARCHAR(10) NOT NULL 学生学号 处分记录 VARCHAR(10) NULL 学生犯错记录 4
表 5 机器状态表 数据类型及长度 可否为空 说明 CHAR(16) NOT NULL 学生所在机号 是否有人上机 CHAR(16) SMALLDATETIME SMALLDATETIME NULL NULL NULL VARCHAR(10) NULL 用户信息表 数据类型及长度 VARCHAR(30) VARCHAR(50) VARCHAR(50) 可否为空 NOT NULL NULL NULL 说明 登录名 密码 身份 列名 机号 状态 上机时间 下机时间 用户 列名 用户登录名 用户密码 用户身份 4 系统功能实现 一编写代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; 1 用户登录模块 此模块要求用户匹配数据库数据登录后根据身份不同进入不同的界面,并要求更新机器 状态表信息。 namespace WindowsFormsApplication1 { 5
public partial class 用户登录 : Form { public 用户登录() { } InitializeComponent(); private void button1_Click(object sender, EventArgs e) { string userName = txtName.Text; string password = txtPwd.Text; string connString = @"Data Source=DARLING-PC\SQLEXPRESS;Initial Catalog=软件学院机房管理系统;Integrated Security=True"; SqlConnection connection = new SqlConnection(connString); //获取用户名和密码匹配的行的数量的SQL语句 string sql = String.Format("select count(*) from [用户信 息] where txtName='{0}'and txtPwd='{1}'", userName, password); try { command对象 的行数 connection.Open();//打开数据库连接 SqlCommand command = new SqlCommand(sql, connection);// 创 建 int num = (int)command.ExecuteScalar();//执行查询语句,返回匹配 connection.Close(); if (num > 0) { //如果有匹配的行,则表明用户名和密码正确 MessageBox.Show("欢迎进入软件学院机房管理系统", "登陆成功", 6
MessageBoxButtons.OK, MessageBoxIcon.Information); if (role.Text == "管理员") { 管理员 frm = new 管理员(); // MessageBox.Show("欢迎进入软件学院机房管理系统", "登陆 成功", MessageBoxButtons.OK, MessageBoxIcon.Information); frm.Show(); this.Visible=false; } else { sql = "select jh from 机器状态表 where zt='no'"; command = new SqlCommand(sql, connection); connection.Open(); SqlDataReader dataread = command.ExecuteReader(); dataread.Read(); sql = string.Format("update 机 器 状 态 表 set zt='yes',[user]='{0}',sjsj='{1}' where jh='{2}'", userName, DateTime.Now.ToString(), dataread["jh"]); connection.Close(); command = new SqlCommand(sql, connection); connection.Open(); command.ExecuteNonQuery(); connection.Close(); 学生 frm = new 学生(); 7
分享到:
收藏