数据库课程设计教职工签到系统_第1页
数据库课程设计教职工签到系统_第2页
数据库课程设计教职工签到系统_第3页
数据库课程设计教职工签到系统_第4页
数据库课程设计教职工签到系统_第5页
免费预览已结束,剩余22页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库应用课程设计 综合报告学 号:031240420姓 名:孙慧华小组成员:实验地点:5B8032017 年 3 月 20 日5摘要随着学校学生的人数的增加教师以及职工人数也不断的增加,所以对老师的考勤工作就变的日益的繁重。为此,使用Visual 开发了教职工签到系统,本系统取代了传统的人工操作,利用计算机辅助管理教职工的日常出勤及缺勤情况既提高了签到的科学性,也减轻了学校的工作负担。利用SQL Server 2008进行数据库的建立和编程设计,结合Visual 中的 WinSock控件实现了客户端与服务器模式的教职工签到管理系统,利用按钮和登录窗的方式实现了管理员登陆、 教职工签到,每类信

2、息的管理都做到了相应信息的查询功能。经测试本系统运行正常,通过本系统可以做到教职工签到的规范管理。1 需求分析1.1 需求来源本系统主要是对教职工签到管理的系统。1.1.1 功能需求1 、教职工签到并记录;2、添加某个教职工的基本信息;3 、修改某个教职工的基本信息;4、删除某个教职工的基本信息;5、按照不同的条件对教职工签到信息查询统计;6 、系统以菜单方式工作1.1.2 数据需求本系统主要涉及的数据两个表:基本信息表(information )和签到管理表( signin )。基本信息表的属性有编号,姓名,年龄,性别,日期。签到管理表有编号,日期,情况属性1.1.3 性能需求要求系统具有可

3、靠性,速度要快,方便简单。1.2 设计目的要求实现 - “教职工签到管理系统”记录教职工的签到情况,它包括:日期,迟到情况。并根据不同的条件对教职工信息进行统计查询。1.3 设计要求管理员功能:添加,修改,删除教职工基本信息,对教职工签到情况管理;教职工功能:签到3 总体设计3.1 总体结构设计为了满足教职工签到方面信息的管理功能,需要明确对该管理的各个功能,各种操作都有哪些。数据库中应该有教职工以及管理员的基本信息,这些来自于该管理系统。教职工只能在客户端进行操作,当教职工签到时,由计算机记录系统的当前时间,并且通过WinSock将信息保存在服务器上,管理员可以操作服务器,查看教职工的有关签

4、到信息。管理员可以修改、删除、增加教职工的信息。此种信息禁止教职工自行输入。除此之外,还要通过登录名和密码严格限定登陆者的身份并且控制相应的操作权限,只有管理员有权限修改账户以及密码,防止其他密码泄露造成的其他问题。功能模块图:3.2 数据库设计3.2.1 数据库设计概述数据库设计是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程。数据库系统需要操作系统的支持。数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建设中的核心技术。由于数据库应用系统的复杂性,为了支持相关程序运行,数据库设计就变得异常复杂,因此最佳设计不可能一蹴而就,而只能是一种"

5、; 反复探寻,逐步求精 " 的过程,也就是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程。数据库设计分为6 个部分:1. 需求分析阶段2. 概念结构设计阶段3. 逻辑结构设计阶段4. 物理设计阶段5. 数据库实施阶段6. 数据库运行和维护阶段。其中,需求分析阶段,概念设计阶段,逻辑设计阶段,物理设计阶段独立于数据库管理系统;实施阶段,运行和维护阶段依赖于数据库管理系统。3.2.2 概念结构设计基本信息表主要用于在系统中存储教职工基本信息,包含了教职工的编号,姓名,性别,年龄。其中编号是区分每个教职工的区别。签到情况表是对每个教职工的签到情况进行记录管理。包括了教职工的编

6、号,签到日期,签到情况。可以通过检索结果查看每个教职工或者每天的签到情况。根据对系统需求的分析,教职工只能完成签到的功能。管理员则能通过账号和密码进入系统,完成对教职工基本信息进行添加、删除、更新,能够对签到的情况根据不同的条件进行统计查询。根据对数据表的设计。分析出数据各实体间的关系如下所示。教职工E-R图273.2.3 逻辑结构设计数据库设计分为两个表,将E-R图转换为关系模型。基本信息表的关系模型为:职工:(编号,姓名,年龄,性别)管理:(编号)管理员:(账号,密码)签到管理表的关系模型为:管理员:(账号,密码)签到信息:(编号,日期,情况)管理:(编号)本系统采用SQL sever 2

7、008 进行数据库及表的建立。本系统需要的表共有两个,即基本信息表和签到情况表。具体设计如下:基本信息表字段名称数据类型字段长度是否为空说明编号char10NoKey姓名varchar20No年龄intNo性别char2No管理信息表字段名称数据类型字段长度是否为空说明编号char10NoInformation 的外键日期varchar50No情况varchar20No签到情况4 详细设计4.1 数据库的创建create database chy4.2 表的创建基本信息表create table information(num char ( 10) primary key,name char(

8、20),sex char(2), age int)签到情况表create table signin(num char(10) foreign key(num) references information(num),data varchar(50),situation varchar(20) )4.3 界面设计及功能实现4.3.1 主菜单模块本模块编号包括了系统管理、签到、基本信息管理、签到管理、帮助。其中用户可以直接进入签到模块进行签到,其他的模块则需要登录后才能使用。系统管理的子菜单有“登录”与“关闭”。帮助的子菜单有“查看帮助”和“关于”子菜单。用户也可以点击图片进入相应的功能模块。代码

9、如下: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;namespace sqlpublic partial class Menu : Formpublic Menu()InitializeComponent();private bool

10、isLogined = false;/记录登录凭据private void tsmExit_Click(object sender, EventArgs e)Application.Exit();/关闭所有应用程序private void tsmDenglu_Click(object sender, EventArgs e) Ad ad = new Ad();/实例化管理员登录窗体tssMsg.Text = ad.Text;/显示管理员登录窗体if (ad.ShowDialog() = DialogResult.OK)if (bool)ad.Tag)/isLogined = true; tss

11、Msg.Text = " isLogined = true;elseisLogined = false; tssMsg.Text = "如果登录成功恭喜您,成功登录系统!抱歉,必须先登录才能使用本系统!private void tsmSign_Click(object sender, EventArgs e) Sjgn sign = new Sjgn();sign.MdiParent = this;sign.Show();tssMsg.Text = sign.Text;private void tsmInformation_Click(object sender, Even

12、tArgs e) if (isLogined)Information information = new Information();information.MdiParent = this;information.Show();tssMsg.Text = information.Text;else tssMsg.Text = "注意,必须先登录才能使用本系统!"此处省略签到管理代码privatevoid tsmAbout_Click(object sender, EventArgs e)AboutForm AF = new AboutForm();AF.ShowDialo

13、g();tssMsg.Text = AF.Text;此处省略查看帮助代码4.3.2 登录模块本模块功能主要是完成管理员登录进入系统的功能,从主页面的登录连接进入这个页面,登录时输入的信息必须符合相应条件才能够完成登录,否则会有错误信息提示。登录成功后直接进入主菜单。登录页面如图所示:代码如下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;usin

14、g System.Windows.Forms;using System.Data.SqlClient;namespace sqlpublic partial class Ad : Formpublic Ad()InitializeComponent();private void btnOk_Click(object sender, EventArgs e)string num = txtNum.Text;string pwd = txtPwd.Text;if (num = "666" && pwd = "1")this.DialogRes

15、ult = DialogResult.OK;/触发确定操作this.Tag = true;/登陆成功并记录elseMessageBox.Show(" 您输入的用户名或密码不正确!请重试" 登录失败", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);this.Tag = false;/登录失败并记录private void btnCancel_Click(object sender, EventArgs e) txtNum.Text = ""txtPwd.Text = ""

16、txtNum.Focus();/将光标定位到txtNum 上4.3.3 签到本模块功能主要是完成用户签到的功能,无需登录就可进行。输入相应的信息进行签到。签到成功后会显示用户的签到信息。同时系统自动记录该用户的签到情况。签到页面如图所示:代码如下: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;

17、using System.Data.SqlClient;namespace sqlpublic partial class Sjgn : Formpublic Sjgn()InitializeComponent();string a;private void btnOk_Click(object sender, EventArgs e)string nowtime = System.DateTime.Now.ToShortDateString();DateTime NowTime = System.DateTime.Now;DateTime worktime = DateTime.Parse(

18、"11:00");string num = txtNum.Text;string name = txtName.Text;string connString = "Data Source=CHINA-20150411I;Initial Catalog=chy;Integrated Security=true"DataSet ds = new DataSet();SqlConnection conn = new SqlConnection(connString);/创建连接对象/ 获取用户名和密码匹配的行的数量的sql 语句string sql = Str

19、ing.Format("select count(*) from information where Num='0'and name='1'", num, name);tryconn.Open();/打开数据库连接SqlCommand comm = new SqlCommand(sql, conn);/创建command对象intn = (int)comm.ExecuteScalar();/ 执行查询语句,返回匹配的行数if (n = 1) 触发确定操作this.DialogResult = DialogResult.OK;/ string

20、qink = ""if (NowTime > worktime) qink = " 迟到 "else qink = " 没有迟到"stringmessage = String.Format(" 迟到情况:0n 实际到达时间:1n应到时间:2", qink, NowTime, worktime);rtbShow.Text = message;conn.Close();a = String.Format("insert into signin values( '0', '1

21、9;,'2')", txtNum.Text, nowtime, qink);conn.Open();/ 打开数据库连接comm = new SqlCommand(a, conn);/ 创建command对象comm.ExecuteReader(); else MessageBox.Show(" 您输入的用户名或密码不正确!请重试", " 登录失败", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);catch (Exception ex)MessageBox.Show(ex.M

22、essage, " 操作数据库出错!",MessageBoxButtons.OK, MessageBoxIcon.Exclamation);/this.Tag = false;finallyconn.Close();/ 关闭数据库连接 private void btnQingjia_Click(object sender, EventArgs e)string nowtime = System.DateTime.Now.ToShortDateString();string num = txtNum.Text;string name = txtName.Text;string

23、 start = txtStart.Text;string end = txtEnd.Text;DateTime NowTime = System.DateTime.Now;DateTime worktime = DateTime.Parse(end );string connString = "Data Source=CHINA-20150411I;InitialCatalog=chy;Integrated Security=true"DataSet ds = new DataSet();SqlConnection conn = new SqlConnection(con

24、nString);/创建连接对象string sql = String.Format("select count(*) from information where Num='0'and name='1'", num, name);tryconn.Open();/ 打开数据库连接SqlCommand comm = new SqlCommand(sql, conn);/ 创建command对象int n = (int)comm.ExecuteScalar();/ if (n = 1)this.DialogResult = DialogResul

25、t.OK;/ string qink = ""if (NowTime > worktime)qink = "迟到 "else qink = "没有迟到"string message = String.Format("执行查询语句,返回匹配的行数触发确定操作迟到情况:0n 实际到达1n 应到时间:2", qink, NowTime, worktime);rtbShow.Text = message;conn.Close();a = String.Format("insert into signin v

26、alues( '0', '1','2')", txtNum.Text, nowtime, qink);conn.Open();/ 打开数据库连接comm = new SqlCommand(a, conn);/ 创建command对象comm.ExecuteReader(); elseMessageBox.Show(" 您输入的用户名或密码不正确!请重试", " 登录失败", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);catch (Excep

27、tion ex)MessageBox.Show(ex.Message, " 操作数据库出错!",MessageBoxButtons.OK, MessageBoxIcon.Exclamation);/this.Tag = false;finallyconn.Close();/关闭数据库连接4.3.4 基本信息管理模块本模块主要完成对教职工基本信息的添加、更新、删除功能。主键的约束要求添加时输入的编号是唯一的。同时更新、删除时输入的编号系统要存在。否则会报错。页面如图所示。代码如下:using System;using System.Collections.Generic;us

28、ing System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace sqlpublic partial class Information : Formpublic Information()InitializeComponent();private void btnAdd_Click(object sender, EventArgs

29、 e)string sql = String.Format("insert into information values('0','1','2','3')", txtNum.Text, txtName.Text, txtSex.Text, txtAge.Text);string connString = "Data Source=CHINA-20150411I;Initial Catalog=chy;Integrated Security=true"using (SqlConnection

30、 conn = new SqlConnection(connString)conn.Open();/打开数据库连接SqlCommand comm = new SqlCommand(sql, conn);/创建command对象int n = comm.ExecuteNonQuery();/执行添加命令,返回匹配的行数if (n > 0)string message = String.Format(" 编号: 0n 姓名: 1n 性别: 2n 年龄: 3n", txtNum.Text, txtName.Text, txtSex.Text, txtAge.Text);lb

31、lShow.Text = message; else MessageBox.Show(" 添加教职工基本信息失败!", " 添加失败",MessageBoxButtons.OK, MessageBoxIcon.Exclamation);private void btnUpdate_Click(object sender, EventArgs e)string sql = String.Format("update information setname='0',age='1',sex='2'whe

32、re num='3'and num in (select num from information)", txtName.Text, txtAge.Text, txtSex.Text, txtNum.Text);string connString = "Data Source=CHINA-20150411I;Initial Catalog=chy;Integrated Security=true"using (SqlConnection conn = new SqlConnection(connString)conn.Open();/ 打开数据库连

33、接SqlCommand comm = new SqlCommand(sql, conn);/ 创建command对象int n = comm.ExecuteNonQuery();/ 执行添加命令,返回匹配的行数if (n > 0)string message = String.Format(" 更新教职工基本信息成功!n 编号:0n 姓名: 1n 性别: 2n 年龄: 3n", txtNum.Text, txtName.Text, txtSex.Text, txtAge.Text);lblShow.Text = message;elseMessageBox.Show(

34、" 更新教职工基本信息失败!", " 更新失败",MessageBoxButtons.OK, MessageBoxIcon.Exclamation); private void btnDelete_Click(object sender, EventArgs e) string connString = "Data Source=CHINA-20150411I;Initial Catalog=chy;Integrated Security=true"string sql = String.Format("delete fro

35、m information where num='0'", txtNum.Text);using (SqlConnection conn = new SqlConnection(connString) conn.Open();/ 打开数据库连接SqlCommand comm = new SqlCommand(sql, conn);/ 创建command对象int n = comm.ExecuteNonQuery();/ 执行添加命令,返回匹配的行数 if (n > 0) string message = String.Format(" 删除教职工0 基

36、本信息成功!",txtNum.Text);lblShow.Text = message; else MessageBox.Show(" 删除教职工基本信息失败!", " 删除失败",MessageBoxButtons.OK, MessageBoxIcon.Exclamation); private void btnExit_Click(object sender, EventArgs e) this.Close();4.3.5 签到管理模块本模块的功能主要是根据编号、日期、 签到情况的不同对教职工信息的签到情况进行查询统计。页面如图所示;代码如

37、下: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;namespace sqlpublic partial class SignIn : Formpublic SignIn()InitializeComponent();private Sq

38、lDataAdapter da = new SqlDataAdapter();/ 定义数据适配器private DataSet ds = new DataSet("chy");/定义数据集private void Show()string connString = "Data Source=CHINA-20150411I;InitialCatalog=chy;Integrated Security=true"string se = cboSearch.SelectedItem.ToString();string co = cboSta.SelectedItem.ToString();string sql;if (se = " 编号 ")sql = "select * from signin where num in('" + txtContent.Text + "') and num in (select num from information)an

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论