当前位置:文档之家› 机房管理系统(数据库课程设计)

机房管理系统(数据库课程设计)

中北大学数据库课程设计说明书学院、系:软件学院专业:软件工程学生姓名:*** 学号:********* 设计题目:软件学院机房管理系统起迄日期: 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)学生信息管理(3)机器状态管理(4)信息的查询管理四本系统分组任务安排组长:**** 功能(1)组员:*** 功能(3)*** 功能(4)*** 功能(2)2.概要设计一本系统主要功能模块划分:(1)用户上下机操作:主要包含用户上机功能,加强对用户身份的识别,使得数据库中的信息有安全保障,有学生下机功能,下机后自动关机,其中包含上下机时对数据库中用户的机器状态的更新功能;(2)学生信息管理:主要对学生的管理,包含学生信息的添加,删除,修改功能;(3)机器状态管理:主要对机房机器的管理,包含管理机房机器的添加,删除功能;(4)信息查询管理:主要对学生包含对学生和机房机器的信息查询;二三数据库需求分析上下机操作依赖于学生信息和机器状态根据上述数据库之间的对应及依赖关系,可确定数据库所必备信息的以下几个方面(1)学生信息(学号,班号,处分记录)(2)机器信息(机号,状态,上机时间,下机时间,用户)(3)用户信息(用户名,密码,用户身份)3数据库概念结构设计一概念结构设计E-R图五数据库逻辑结构设计数据字典是各类数据描述的集合,它是进行详细的数据收集和数据分析后所获得的主要成果,是关于数据库中数据的描述,即对元素的描述。

数据字典是在系统分析阶段建立,在数据库设计过程中不段修改、充实、完善的。

针对本系统,通过机房管理内容和过程分析,设计的数据项和数据结构如下。

(1)学生信息(学号,班号,处分记录)(2)机器信息(机号,状态,上机时间,下机时间,用户)(3)用户信息(用户名,密码,用户身份)总体表预览学生信息表表5机器状态表用户信息表4系统功能实现一编写代码using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;1用户登录模块此模块要求用户匹配数据库数据登录后根据身份不同进入不同的界面,并要求更新机器状态表信息。

namespace WindowsFormsApplication1{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{connection.Open();//打开数据库连接SqlCommand command = new SqlCommand(sql, connection);//创建command对象int num = (int)command.ExecuteScalar();//执行查询语句,返回匹配的行数connection.Close();if (num > 0){//如果有匹配的行,则表明用户名和密码正确MessageBox.Show("欢迎进入软件学院机房管理系统", "登陆成功",MessageBoxButtons.OK, rmation);if (role.Text == "管理员"){管理员 frm = new管理员();// MessageBox.Show("欢迎进入软件学院机房管理系统", "登陆成功", MessageBoxButtons.OK, rmation);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学生();学生.t1 = DateTime.Now;er = userName;//MessageBox.Show("欢迎进入软件学院机房管理系统", "登陆成功", MessageBoxButtons.OK, rmation);frm.Show();this.Visible=false;}}else{MessageBox.Show("您输入的用户名和密码错误!", "登录失败", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);}}catch (Exception ex){MessageBox.Show(ex.Message, "操作数据库出错", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);}finally{connection.Close();//关闭数据库连接}}private void btnNo_Click(object sender, EventArgs e){Application.Exit(); } }}1.2.学生界面模块此模块要求学生进入学生界面后,能够随时查询自己的上机情况:上机时间,已上机时长;可以进行下机后自动关机功能,在学生下机后,自动更新机器状态表中的机器状态,下机时间等信息。

namespace WindowsFormsApplication1{public partial class学生 : Form{public static DateTime t1;public string user;public学生(){InitializeComponent();}private DialogResult show(){信息 frm = new信息();frm.time = t1.ToString();er = er;DateTime t2 = DateTime.Now;ed = showtime(t1, t2);return frm.ShowDialog();}public static string showtime(DateTime t1, DateTime t2){int s = (t2 - t1).Seconds;int h = (t2 - t1).Hours;int m = (t2 - t1).Minutes;return h+"小时"+m+"分"+s+"秒";}private void button1_Click(object sender, EventArgs e){DialogResult r = MessageBox.Show("确定下机后自动关机?", "提示", MessageBoxButtons.OKCancel, rmation);if (r == DialogResult.OK){if (this.show() == DialogResult.OK){string connString = @"Data Source=DARLING-PC\SQLEXPRESS;Initial Catalog=软件学院机房管理系统;Integrated Security=True";SqlConnection connection = new SqlConnection(connString);string sql=string.Format("update 机器状态表set zt='no', xjsj='{0}' where [user]={1}",DateTime.Now.ToString(),user);connection.Open();SqlCommand command = new SqlCommand(sql, connection);command.ExecuteNonQuery();connection.Close();this.Close();Application.Exit();}}}private void button2_Click(object sender, EventArgs e){Application.Exit();}private void button3_Click(object sender, EventArgs e){关于 frm = new关于();frm.Show();private void button4_Click(object sender, EventArgs e) {this.show();}}}显示namespace WindowsFormsApplication1{public partial class信息 : Form{public string user;public string time;public string used;public信息(){InitializeComponent();}private void信息_Load(object sender, EventArgs e){labuser.Text = user;labUsed.Text = used;labTime.Text = time;}private void btnok_Click(object sender, EventArgs e)this.DialogResult = DialogResult.OK;this.Close();}private void timer1_Tick(object sender, EventArgs e){labUsed.Text = 学生.showtime(学生.t1, DateTime.Now); }}}5心得体会通过这次课程设计的模块独立完成和亲身实践,对专业知识有了深入的学习,把学过的知识融会贯通,又学到了以前没有学到的知识,培养了我独立思考问题的能力。

相关主题