数据库课程设计教职工签到系统.docx

上传人:b****6 文档编号:8539391 上传时间:2023-01-31 格式:DOCX 页数:26 大小:340.56KB
下载 相关 举报
数据库课程设计教职工签到系统.docx_第1页
第1页 / 共26页
数据库课程设计教职工签到系统.docx_第2页
第2页 / 共26页
数据库课程设计教职工签到系统.docx_第3页
第3页 / 共26页
数据库课程设计教职工签到系统.docx_第4页
第4页 / 共26页
数据库课程设计教职工签到系统.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

数据库课程设计教职工签到系统.docx

《数据库课程设计教职工签到系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计教职工签到系统.docx(26页珍藏版)》请在冰豆网上搜索。

数据库课程设计教职工签到系统.docx

数据库课程设计教职工签到系统

《数据库应用课程设计》

——综合报告

 

学号:

031240420

姓名:

孙慧华

小组成员:

实验地点:

5B803

 

2017年3月20日

 

摘要

随着学校学生的人数的增加教师以及职工人数也不断的增加,所以对老师的考勤工作就变的日益的繁重.为此,使用Visual 开发了教职工签到系统,本系统取代了传统的人工操作,利用计算机辅助管理教职工的日常出勤及缺勤情况既提高了签到的科学性,也减轻了学校的工作负担.利用SQL Server 2008进行数据库的建立和编程设计,结合Visual 中的WinSock控件实现了客户端与服务器模式的教职工签到管理系统,利用按钮和登录窗的方式实现了管理员登陆、教职工签到,每类信息的管理都做到了相应信息的查询功能。

经测试本系统运行正常,通过本系统可以做到教职工签到的规范管理.

 

1需求分析

1。

1需求来源

本系统主要是对教职工签到管理的系统。

1.1。

1功能需求

1、教职工签到并记录;

2、添加某个教职工的基本信息;

3、修改某个教职工的基本信息;

4、删除某个教职工的基本信息;

5、按照不同的条件对教职工签到信息查询统计;

6、系统以菜单方式工作

1.1。

2数据需求

本系统主要涉及的数据两个表:

基本信息表(information)和签到管理表(signin)。

基本信息表的属性有编号,姓名,年龄,性别,日期。

签到管理表有编号,日期,情况属性

1.1。

3性能需求

要求系统具有可靠性,速度要快,方便简单。

1。

2设计目的

要求实现---“教职工签到管理系统"记录教职工的签到情况,它包括:

日期,迟到情况。

并根据不同的条件对教职工信息进行统计查询.

1。

3设计要求

管理员功能:

添加,修改,删除教职工基本信息,对教职工签到情况管理;

教职工功能:

签到

 

3总体设计

3.1总体结构设计

为了满足教职工签到方面信息的管理功能,需要明确对该管理的各个功能,各种操作都有哪些。

数据库中应该有教职工以及管理员的基本信息,这些来自于该管理系统.教职工只能在客户端进行操作,当教职工签到时,由计算机记录系统的当前时间,并且通过WinSock将信息保存在服务器上,管理员可以操作服务器,查看教职工的有关签到信息。

管理员可以修改、删除、增加教职工的信息.此种信息禁止教职工自行输入。

除此之外,还要通过登录名和密码严格限定登陆者的身份并且控制相应的操作权限,只有管理员有权限修改账户以及密码,防止其他密码泄露造成的其他问题。

功能模块图:

 

 

 

3.2数据库设计

3.2.1数据库设计概述

数据库设计是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程。

数据库系统需要操作系统的支持。

数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建设中的核心技术。

由于数据库应用系统的复杂性,为了支持相关程序运行,数据库设计就变得异常复杂,因此最佳设计不可能一蹴而就,而只能是一种”反复探寻,逐步求精"的过程,也就是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程.

数据库设计分为6个部分:

1.需求分析阶段2.概念结构设计阶段3.逻辑结构设计阶段4。

物理设计阶段5.数据库实施阶段6.数据库运行和维护阶段.其中,需求分析阶段,概念设计阶段,逻辑设计阶段,物理设计阶段独立于数据库管理系统;实施阶段,运行和维护阶段依赖于数据库管理系统。

3。

2.2概念结构设计

基本信息表主要用于在系统中存储教职工基本信息,包含了教职工的编号,姓名,性别,年龄。

其中编号是区分每个教职工的区别。

签到情况表是对每个教职工的签到情况进行记录管理。

包括了教职工的编号,签到日期,签到情况。

可以通过检索结果查看每个教职工或者每天的签到情况。

根据对系统需求的分析,教职工只能完成签到的功能。

管理员则能通过账号和密码进入系统,完成对教职工基本信息进行添加、删除、更新,能够对签到的情况根据不同的条件进行统计查询。

根据对数据表的设计。

分析出数据各实体间的关系如下所示.

教职工

签到信息

 

管理员

 

 

E-R图

 

m

n

1

3。

2。

3逻辑结构设计

数据库设计分为两个表,将E-R图转换为关系模型。

基本信息表的关系模型为:

职工:

(编号,姓名,年龄,性别)

管理:

(编号)

管理员:

(账号,密码)

签到管理表的关系模型为:

管理员:

(账号,密码)

签到信息:

(编号,日期,情况)

管理:

(编号)

本系统采用SQLsever2008进行数据库及表的建立.本系统需要的表共有两个,即基本信息表和签到情况表。

具体设计如下:

基本信息表

字段名称

数据类型

字段长度

是否为空

说明

编号

char

10

No

Key

姓名

varchar

20

No

年龄

int

No

性别

char

2

No

管理信息表

字段名称

数据类型

字段长度

是否为空

说明

编号

char

10

No

Information的外键

日期

varchar

50

No

情况

varchar

20

No

签到情况

4详细设计

4。

1数据库的创建

createdatabasechy

4。

2表的创建

基本信息表

createtableinformation

numchar(10)primarykey,

namechar(20),

sexchar

(2),

ageint

签到情况表

createtablesignin

numchar(10)foreignkey(num)referencesinformation(num),

datavarchar(50),

situationvarchar(20)

4.3界面设计及功能实现

4.3。

1主菜单模块

本模块编号包括了系统管理、签到、基本信息管理、签到管理、帮助。

其中用户可以直接进入签到模块进行签到,其他的模块则需要登录后才能使用。

系统管理的子菜单有“登录"与“关闭”。

帮助的子菜单有“查看帮助”和“关于"子菜单.用户也可以点击图片进入相应的功能模块。

代码如下:

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem。

Drawing;

usingSystem。

Linq;

usingSystem.Text;

usingSystem.Windows。

Forms;

usingSystem.Data。

SqlClient;

namespacesql

{

publicpartialclassMenu:

Form

{

publicMenu()

{

InitializeComponent();

privateboolisLogined=false;//记录登录凭据

privatevoidtsmExit_Click(objectsender,EventArgse)

{

Application.Exit();//关闭所有应用程序

}

privatevoidtsmDenglu_Click(objectsender,EventArgse)

{

Adad=newAd();//实例化管理员登录窗体

tssMsg.Text=ad.Text;//显示管理员登录窗体

if(ad.ShowDialog()==DialogResult.OK)

{

if((bool)ad。

Tag)//如果登录成功

isLogined=true;

tssMsg。

Text="恭喜您,成功登录系统!

”;

isLogined=true;

}

else

isLogined=false;

tssMsg。

Text="抱歉,必须先登录才能使用本系统!

";

}

privatevoidtsmSign_Click(objectsender,EventArgse)

{

Sjgnsign=newSjgn();

sign。

MdiParent=this;

sign.Show();

tssMsg。

Text=sign.Text;

privatevoidtsmInformation_Click(objectsender,EventArgse)

{

if(isLogined)

{

Informationinformation=newInformation();

information。

MdiParent=this;

information。

Show();

tssMsg.Text=information。

Text;

elsetssMsg。

Text="注意,必须先登录才能使用本系统!

”;

}

此处省略签到管理代码

privatevoidtsmAbout_Click(objectsender,EventArgse)

{

AboutFormAF=newAboutForm();

AF。

ShowDialog();

tssMsg。

Text=AF.Text;

此处省略查看帮助代码

}

}

4.3。

2登录模块

本模块功能主要是完成管理员登录进入系统的功能,从主页面的登录连接进入这个页面,登录时输入的信息必须符合相应条件才能够完成登录,否则会有错误信息提示.登录成功后直接进入主菜单.登录页面如图所示:

代码如下:

usingSystem;

usingSystem。

Collections.Generic;

usingSystem。

ComponentModel;

usingSystem。

Data;

usingSystem。

Drawing;

usingSystem。

Linq;

usingSystem。

Text;

usingSystem。

Windows。

Forms;

usingSystem。

Data。

SqlClient;

namespacesql

publicpartialclassAd:

Form

publicAd()

InitializeComponent();

privatevoidbtnOk_Click(objectsender,EventArgse)

stringnum=txtNum。

Text;

stringpwd=txtPwd。

Text;

if(num==”666"&&pwd==”1”)

this.DialogResult=DialogResult。

OK;//触发确定操作

this.Tag=true;//登陆成功并记录

}

else

MessageBox.Show("您输入的用户名或密码不正确!

请重试","登录失败”,MessageBoxButtons.OK,MessageBoxIcon。

Exclamation);

this.Tag=false;//登录失败并记录

}

privatevoidbtnCancel_Click(objectsender,EventArgse)

txtNum。

Text="”;

txtPwd.Text="”;

txtNum.Focus();//将光标定位到txtNum上

}

}

4。

3。

3签到

本模块功能主要是完成用户签到的功能,无需登录就可进行。

输入相应的信息进行签到。

签到成功后会显示用户的签到信息.同时系统自动记录该用户的签到情况.签到页面如图所示:

代码如下:

usingSystem;

usingSystem。

Collections。

Generic;

usingSystem。

ComponentModel;

usingSystem.Data;

usingSystem。

Drawing;

usingSystem.Linq;

usingSystem。

Text;

usingSystem.Windows。

Forms;

usingSystem.Data。

SqlClient;

namespacesql

publicpartialclassSjgn:

Form

{

publicSjgn()

{

InitializeComponent();

stringa;

privatevoidbtnOk_Click(objectsender,EventArgse)

stringnowtime=System。

DateTime。

Now.ToShortDateString();

DateTimeNowTime=System.DateTime.Now;

DateTimeworktime=DateTime。

Parse(”11:

00");

stringnum=txtNum.Text;

stringname=txtName.Text;

stringconnString=@"DataSource=CHINA-20150411I;InitialCatalog=chy;IntegratedSecurity=true";

DataSetds=newDataSet();

SqlConnectionconn=newSqlConnection(connString);//创建连接对象

//获取用户名和密码匹配的行的数量的sql语句

stringsql=String。

Format(”selectcount(*)from[information]whereNum='{0}’andname=’{1}’",num,name);

try

{

conn。

Open();//打开数据库连接

SqlCommandcomm=newSqlCommand(sql,conn);//创建command对象

intn=(int)comm.ExecuteScalar();//执行查询语句,返回匹配的行数

if(n==1)

this.DialogResult=DialogResult.OK;//触发确定操作

stringqink="”;

if(NowTime〉worktime)

qink="迟到”;

}

elseqink=”没有迟到”;

stringmessage=String。

Format(”迟到情况:

{0}\n实际到达时间:

{1}\n应到时间:

{2}”,qink,NowTime,worktime);

rtbShow。

Text=message;

conn。

Close();

a=String.Format(”insertintosigninvalues('{0}','{1}’,’{2}’)",txtNum。

Text,nowtime,qink);

conn。

Open();//打开数据库连接

comm=newSqlCommand(a,conn);//创建command对象

comm。

ExecuteReader();

else

MessageBox。

Show(”您输入的用户名或密码不正确!

请重试”,”登录失败”,MessageBoxButtons。

OK,MessageBoxIcon。

Exclamation);

}

catch(Exceptionex)

{

MessageBox。

Show(ex.Message,"操作数据库出错!

",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);//this.Tag=false;

finally

conn。

Close();//关闭数据库连接

}

privatevoidbtnQingjia_Click(objectsender,EventArgse)

stringnowtime=System.DateTime。

Now.ToShortDateString();

stringnum=txtNum.Text;

stringname=txtName。

Text;

stringstart=txtStart.Text;

stringend=txtEnd.Text;

DateTimeNowTime=System。

DateTime.Now;

DateTimeworktime=DateTime.Parse(end);

stringconnString=@"DataSource=CHINA—20150411I;InitialCatalog=chy;IntegratedSecurity=true”;

DataSetds=newDataSet();

SqlConnectionconn=newSqlConnection(connString);//创建连接对象

stringsql=String。

Format(”selectcount(*)from[information]whereNum='{0}’andname='{1}’",num,name);

try

conn。

Open();//打开数据库连接

SqlCommandcomm=newSqlCommand(sql,conn);//创建command对象

intn=(int)comm。

ExecuteScalar();//执行查询语句,返回匹配的行数

if(n==1)

{

this.DialogResult=DialogResult。

OK;//触发确定操作

stringqink=”";

if(NowTime>worktime)

qink=”迟到”;

}

elseqink=”没有迟到”;

stringmessage=String。

Format(”迟到情况:

{0}\n实际到达时间:

{1}\n应到时间:

{2}”,qink,NowTime,worktime);

rtbShow.Text=message;

conn.Close();

a=String.Format("insertintosigninvalues(’{0}’,’{1}',’{2}')”,txtNum.Text,nowtime,qink);

conn。

Open();//打开数据库连接

comm=newSqlCommand(a,conn);//创建command对象

comm.ExecuteReader();

else

{

MessageBox.Show("您输入的用户名或密码不正确!

请重试”,”登录失败",MessageBoxButtons。

OK,MessageBoxIcon。

Exclamation);

}

catch(Exceptionex)

MessageBox.Show(ex。

Message,"操作数据库出错!

",MessageBoxButtons.OK,MessageBoxIcon。

Exclamation);//this.Tag=false;

}

finally

{

conn。

Close();//关闭数据库连接

}

}

}

4.3.4基本信息管理模块

本模块主要完成对教职工基本信息的添加、更新、删除功能。

主键的约束要求添加时输入的编号是唯一的.同时更新、删除时输入的编号系统要存在。

否则会报错。

页面如图所示。

 

代码如下:

usingSystem;

usingSystem。

Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem。

Drawing;

usingSystem.Linq;

usingSystem。

Text;

usingSystem。

Windows.Forms;

usingSystem。

Data.SqlClient;

namespacesql

publicpartialclassInformation:

Form

publicInformation()

{

InitializeComponent();

}

privatevoidbtnAdd_Click(objectsender,EventArgse)

stringsql=String.Format(”insertintoinformationvalues(’{0}',’{1}',’{2}’,'{3}’)”,txtNum.Text,txtName.Text,txtSex。

Text,txtAge。

Text);

stringconnString=@”DataSource=CHINA-20150411I;InitialCatalog=chy;IntegratedSecurity=true”;

using(SqlConnectionconn=newSqlConnection(connString))

conn.Open();//打开数据库连接

SqlCommandcomm=newSqlCommand(sql,conn);//创建command对象

intn=comm。

ExecuteNonQuery();//执行添加命令,返回匹配的行数

if(n〉0)

stringmessage=String。

Format("编号:

{0}\n姓名:

{1}\n性别:

{2}\n年龄:

{3}\n”,txtNum.Text,txtName.Text,txtSex.Text,txtAge。

Text);

lblShow.Text=message;

}

else

{

MessageBox。

Show("添加教职工基本信息失败!

",”添加失败",MessageBoxButtons。

OK,MessageBoxIcon。

Exclamation);

}

privatev

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1