




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库应用课程设计 综合报告学 号: 031240420 姓 名: 孙慧华 小组成员: 实验地点: 5B803 2017年3月20日摘要随着学校学生的人数的增加教师以及职工人数也不断的增加,所以对老师的考勤工作就变的日益的繁重。为此,使用Visual 开发了教职工签到系统,本系统取代了传统的人工操作,利用计算机辅助管理教职工的日常出勤及缺勤情况既提高了签到的科学性,也减轻了学校的工作负担。利用SQL Server 2008进行数据库的建立和编程设计,结合Visual 中的WinSock控件实现了客户端与服务器模式的教职工签到管理系统,利用按钮和登录窗的方
2、式实现了管理员登陆、教职工签到,每类信息的管理都做到了相应信息的查询功能。经测试本系统运行正常,通过本系统可以做到教职工签到的规范管理。1 需求分析1.1需求来源 本系统主要是对教职工签到管理的系统。1.1.1功能需求 1、教职工签到并记录; 2、添加某个教职工的基本信息; 3、修改某个教职工的基本信息; 4、删除某个教职工的基本信息; 5、按照不同的条件对教职工签到信息查询统计; 6、系统以菜单方式工作1.1.2数据需求 本系统主要涉及的数据两个表:基本信息表(information)和签到管理表(signin)。基本信息表的属性有编号,姓名,年龄,性别,日期。签到管理表有编号,日期,情况属
3、性1.1.3性能需求要求系统具有可靠性,速度要快,方便简单。1.2设计目的要求实现-“教职工签到管理系统”记录教职工的签到情况,它包括:日期,迟到情况。并根据不同的条件对教职工信息进行统计查询。1.3设计要求 管理员功能:添加,修改,删除教职工基本信息,对教职工签到情况管理;教职工功能:签到3 总体设计3.1总体结构设计为了满足教职工签到方面信息的管理功能,需要明确对该管理的各个功能,各种操作都有哪些。数据库中应该有教职工以及管理员的基本信息,这些来自于该管理系统。教职工只能在客户端进行操作,当教职工签到时,由计算机记录系统的当前时间,并且通过WinSock将信息保存在服务器上,管理员可以操作
4、服务器,查看教职工的有关签到信息。管理员可以修改、删除、增加教职工的信息。此种信息禁止教职工自行输入。除此之外,还要通过登录名和密码严格限定登陆者的身份并且控制相应的操作权限,只有管理员有权限修改账户以及密码,防止其他密码泄露造成的其他问题。功能模块图:教职工签到管理系统管理员登录教职工签到教职工基本信息管理签到情况管理帮助分为查看帮助,关于窗体根据不同条件对签到情况查询统计对教职工基本信息添加,更新,删除教职工根据自己的编号,姓名进行签到管理员拥有进入系统的账号,密码3.2 数据库设计3.2.1数据库设计概述数据库设计是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数
5、据库的过程。数据库系统需要操作系统的支持。数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建设中的核心技术。由于数据库应用系统的复杂性,为了支持相关程序运行,数据库设计就变得异常复杂,因此最佳设计不可能一蹴而就,而只能是一种"反复探寻,逐步求精"的过程,也就是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程。数据库设计分为6个部分:1.需求分析阶段2.概念结构设计阶段3.逻辑结构设计阶段4.物理设计阶段5.数据库实施阶段6.数据库运行和维护阶段。其中,需求分析阶段,概念设计阶段,逻辑设计阶段,物理设计阶段独立于数据库管理系统;实施阶段,运行和维护阶段依
6、赖于数据库管理系统。3.2.2概念结构设计基本信息表主要用于在系统中存储教职工基本信息,包含了教职工的编号,姓名,性别,年龄。其中编号是区分每个教职工的区别。签到情况表是对每个教职工的签到情况进行记录管理。包括了教职工的编号,签到日期,签到情况。可以通过检索结果查看每个教职工或者每天的签到情况。根据对系统需求的分析,教职工只能完成签到的功能。管理员则能通过账号和密码进入系统,完成对教职工基本信息进行添加、删除、更新,能够对签到的情况根据不同的条件进行统计查询。根据对数据表的设计。分析出数据各实体间的关系如下所示。教职工教职工姓名年龄性别编号签到信息日期情况编号签到信息管理员管理员密码账号E-R
7、图管理管理员密码账号情况日期编号编号姓名性别年龄签到信息职工mn13.2.3逻辑结构设计数据库设计分为两个表,将E-R图转换为关系模型。基本信息表的关系模型为:职工:(编号,姓名,年龄,性别)管理:(编号)管理员:(账号,密码)签到管理表的关系模型为:管理员:(账号,密码)签到信息:(编号,日期,情况)管理:(编号)本系统采用SQL sever 2008 进行数据库及表的建立。本系统需要的表共有两个,即基本信息表和签到情况表。具体设计如下:基本信息表字段名称数据类型字段长度是否为空说明编号char10NoKey姓名varchar20No 年龄intNo性别char2No管理信息表字段名称数据类
8、型字段长度是否为空说明编号char10NoInformation的外键日期varchar50No 情况varchar20No签到情况4 详细设计4.1数据库的创建create database chy4.2表的创建基本信息表create table information(num char(10) primary key,name char(20),sex char(2),age int)签到情况表create table signin(num char(10) foreign key(num) references information(num),data varchar(50),situ
9、ation varchar(20)4.3界面设计及功能实现主菜单模块本模块编号包括了系统管理、签到、基本信息管理、签到管理、帮助。其中用户可以直接进入签到模块进行签到,其他的模块则需要登录后才能使用。系统管理的子菜单有“登录”与“关闭”。帮助的子菜单有“查看帮助”和“关于”子菜单。用户也可以点击图片进入相应的功能模块。代码如下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;usin
10、g System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace sql public partial class Menu : Form public Menu() InitializeComponent(); private bool isLogined = false;/记录登录凭据 private void tsmExit_Click(object sender, EventArgs e) Application.Exit();/关闭所有应用程序 private void tsmDenglu_C
11、lick(object sender, EventArgs e) Ad ad = new Ad();/实例化管理员登录窗体 tssMsg.Text = ad.Text;/显示管理员登录窗体 if (ad.ShowDialog() = DialogResult.OK) if (bool)ad.Tag)/如果登录成功 isLogined = true; tssMsg.Text = "恭喜您,成功登录系统!" isLogined = true; else isLogined = false; tssMsg.Text = "抱歉,必须先登录才能使用本系统!" p
12、rivate 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, EventArgs e) if (isLogined) Information information = new Information(); information.MdiParent = this; informati
13、on.Show(); tssMsg.Text = information.Text; else tssMsg.Text = "注意,必须先登录才能使用本系统!" 此处省略签到管理代码 private void tsmAbout_Click(object sender, EventArgs e) AboutForm AF = new AboutForm(); AF.ShowDialog(); tssMsg.Text = AF.Text; 此处省略查看帮助代码 4.3.2登录模块本模块功能主要是完成管理员登录进入系统的功能,从主页面的登录连接进入这个页面,登录时输入的信息必须符
14、合相应条件才能够完成登录,否则会有错误信息提示。登录成功后直接进入主菜单。登录页面如图所示:代码如下: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 sql public partial class Ad : Form
15、public Ad() InitializeComponent(); private void btnOk_Click(object sender, EventArgs e) string num = txtNum.Text; string pwd = txtPwd.Text; if (num = "666" && pwd = "1") this.DialogResult = DialogResult.OK;/触发确定操作 this.Tag = true;/登陆成功并记录 else MessageBox.Show("您输入的用户
16、名或密码不正确!请重试", "登录失败", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); this.Tag = false;/登录失败并记录 private void btnCancel_Click(object sender, EventArgs e) txtNum.Text = "" txtPwd.Text = "" txtNum.Focus();/将光标定位到txtNum上 4.3.3签到本模块功能主要是完成用户签到的功能,无需登录就可进行。输入相应的信息进行签到
17、。签到成功后会显示用户的签到信息。同时系统自动记录该用户的签到情况。签到页面如图所示:代码如下: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 sql public partial class Sjgn : Form p
18、ublic 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("11:00"); string num = txtNum.Text; string name = txtName.
19、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 = String.Format("select count(*) from information where Num=
20、9;0'and name='1'", num, name); try conn.Open();/打开数据库连接 SqlCommand comm = new SqlCommand(sql, conn);/创建command对象 int n = (int)comm.ExecuteScalar();/执行查询语句,返回匹配的行数 if (n = 1) this.DialogResult = DialogResult.OK;/触发确定操作 string qink = "" if (NowTime > worktime) qink = &quo
21、t;迟到" else qink = "没有迟到" string message = String.Format("迟到情况:0n实际到达时间:1n应到时间:2", qink, NowTime, worktime); rtbShow.Text = message; conn.Close(); a = String.Format("insert into signin values( '0', '1','2')", txtNum.Text, nowtime, qink); conn
22、.Open();/打开数据库连接 comm = new SqlCommand(a, conn);/创建command对象 comm.ExecuteReader(); else MessageBox.Show("您输入的用户名或密码不正确!请重试", "登录失败", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); catch (Exception ex) MessageBox.Show(ex.Message, "操作数据库出错!", MessageBoxButtons.OK, Mes
23、sageBoxIcon.Exclamation);/this.Tag = false; finally conn.Close();/关闭数据库连接 private void btnQingjia_Click(object sender, EventArgs e) string nowtime = System.DateTime.Now.ToShortDateString(); string num = txtNum.Text; string name = txtName.Text; string start = txtStart.Text; string end = txtEnd.Text;
24、DateTime NowTime = System.DateTime.Now; DateTime worktime = DateTime.Parse(end ); string connString = "Data Source=CHINA-20150411I;Initial Catalog=chy;Integrated Security=true" DataSet ds = new DataSet(); SqlConnection conn = new SqlConnection(connString);/创建连接对象 string sql = String.Format
25、("select count(*) from information where Num='0'and name='1'", num, name); try conn.Open();/打开数据库连接 SqlCommand comm = new SqlCommand(sql, conn);/创建command对象 int n = (int)comm.ExecuteScalar();/执行查询语句,返回匹配的行数 if (n = 1) this.DialogResult = DialogResult.OK;/触发确定操作 string qink
26、= "" 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 values( '0', '1',
27、'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.Mes
28、sage, "操作数据库出错!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);/this.Tag = false; finally conn.Close();/关闭数据库连接 4.3.4基本信息管理模块本模块主要完成对教职工基本信息的添加、更新、删除功能。主键的约束要求添加时输入的编号是唯一的。同时更新、删除时输入的编号系统要存在。否则会报错。页面如图所示。代码如下:using System;using System.Collections.Generic;using System.ComponentModel;us
29、ing System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace sql public partial class Information : Form public Information() InitializeComponent(); private void btnAdd_Click(object sender, EventArgs e) string sql = String.
30、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 conn = new SqlConnec
31、tion(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);lblShow.Text = message; els
32、e MessageBox.Show("添加教职工基本信息失败!", "添加失败", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); private void btnUpdate_Click(object sender, EventArgs e) string sql = String.Format("update information set name='0',age='1',sex='2'where num='3'and n
33、um 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();/打开数据库连接 SqlCommand comm = n
34、ew 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; else MessageBox.Show("更新教职工基本信息失败!"
35、, "更新失败", 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 from information where num=&
36、#39;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基本信息成功!", txtNum.Text);
37、 lblShow.Text = message; else MessageBox.Show("删除教职工基本信息失败!", "删除失败", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); private void btnExit_Click(object sender, EventArgs e) this.Close(); 4.3.5签到管理模块本模块的功能主要是根据编号、日期、签到情况的不同对教职工信息的签到情况进行查询统计。页面如图所示;代码如下:using System;using System
38、.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 sql public partial class SignIn : Form public SignIn() InitializeComponent(); private SqlDataAdapter da = new S
39、qlDataAdapter();/定义数据适配器 private DataSet ds = new DataSet("chy");/定义数据集 private void Show() string connString = "Data Source=CHINA-20150411I;Initial Catalog=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 informat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医学影像数据的共享与隐私保护的平衡点探索
- 区块链助力教育管理实现数字化升级
- 买方回复销售合同范例
- 医疗设备维护与风险降低方案
- 医疗大数据助力精准疾病预测与防控
- bot水务合同范例
- 视网膜震荡与挫伤的临床护理
- 江苏省徐州市铜山区2024-2025学年高一下学期4月期中考试 化学 PDF版含答案
- 临时雇佣饭店合同范例
- 2024年天然气液化模块项目投资申请报告代可行性研究报告
- Product Monitoring产品监视与测量程序(中英文)
- 压力管道安全检查表参考范本
- SB∕T 10170-2007 腐乳
- 外贸进出口流程图
- 部编人教版小学五年级下册语文文言文阅读理解课后专项练习
- 皮肤管理--ppt课件
- 双向气动插板门使用说明书
- 无生老母救世血书宝卷
- (完整版)2019年高考数学浙江卷(附答案)
- 信用社大额贷款会审制度
- 门式起重机检验报告
评论
0/150
提交评论