数据库课程设计教职工签到系统.docx
《数据库课程设计教职工签到系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计教职工签到系统.docx(33页珍藏版)》请在冰豆网上搜索。
![数据库课程设计教职工签到系统.docx](https://file1.bdocx.com/fileroot1/2023-1/14/aae6b9f7-2112-449e-818f-de407daf0f25/aae6b9f7-2112-449e-818f-de407daf0f251.gif)
数据库课程设计教职工签到系统
攀枝花学院
学生课程设计(论文)
题目:
教职工签到管理系统开发
******
学号:
************
所在院系:
数学与计算机学院
专业:
软件工程
班级:
2013级软件工程1班
指导教师:
周朝萱职称:
讲师
2015年6月27日
攀枝花学院教务处制
攀枝花学院本科学生课程设计任务书
题 目
教职工签到管理系统开发
1、课程设计的目的
使学生掌握数据库的基本概念,结合实际的操作和设计,巩固课堂教学内容;使学生掌握数据库系统的基本概念、原理和技术,将理论与实际相结合,应用现有的数据建模工具和数据库管理系统软件,规范、科学地完成一个小型数据库的设计与实现;把理论课与实验课所学内容做一综合,并在此基础上强化学生的实践意识、提高其实际动手能力。
2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)
(1)教职工基本信息管理:
教职工基本信息的增加、修改与删除;
(2)教职工签到管理:
教职工输入编号后,签到,系统自动记录其签到的时间,并注明是否迟到。
(3)教职工签到情况的查询与统计:
按不同的条件对工签到情况进行查询与统计。
3、主要参考文献
[1]张莉.SQLServer数据库原理与应用教程(第3版)[M].北京:
清华大学出版社.2012
[2]王成良.数据库技术及应用[M].北京:
清华大学出版社.2011
[3]刘金岭,冯万利.数据库系统及应用教程—SQLServer2008[M].北京:
清华大学出版社.2013
[4]杨学全等.SQLSERVER实例教程(第2版)[M].北京:
电子工业出版社,2008
[5]郑阿奇等.Asp.Net程序设计教程[M].北京:
机械工业出版社,2008
[6]邓子云,张赐.JSP网络编程从基础到实践[M].北京:
电子工业出版社[M].2006
[7]宫继兵等.Asp.Net2.0Web数据库开发教程[M].北京:
机械工业出版社,2009
[8]陈磊,刘洋等.Java程序设计基础(第3版)[M].北京:
清华大学出版社,2009
[9]朱福喜.面向对象与Java设计程序[M].北京:
清华大学出版社,2009
[10][美]KarliWatsonChristianNagel等.C#入门经典(第3版).北京:
清华大学出版社,2006
[11][美]SimonRobinson/ChristianNagel著,李敏波译《C#高级编程(第3版)》.北京:
清华大学出版社,2013
[12]江红,余表松.C#程序设计教程[M].北京:
清华大学出版社,2010
[13]王夕宁,王晓平.JSP通用模块及典型系统开发[M].北京:
人民邮电出版社.2006
[14]刘中兵,李伯华,邹晨.JSP数据库项目案例导航[M].北京:
清华出版社.2006
[15]王国辉,王易.JSP数据库系统开发案例精选[M].北京:
人民邮电出版社.2006
[16]李曙光.JSP开发实例完全剖析[M].北京:
中国电力出版社.2006
4、课程设计工作进度计划
第1天:
选题、完成需求分析
第2天:
数据库概念结构设计
第3天:
数据库逻辑结构设计及物理实现
第4天:
应用程序开发
第5天:
程序调试分析和结果、编写课程设计报告
指导教师(签字)
日期
年月日
教研室意见:
年月日
学生(签字):
接受任务时间:
年月日
注:
任务书由指导教师填写。
课程设计(论文)指导教师成绩评定表
题目名称
教职工签到管理系统开发
评分项目
分值
得分
评价内涵
工作
表现
20%
01
学习态度
6
遵守各项纪律,工作刻苦努力,具有良好的科学工作态度。
02
科学实践、调研
7
通过实验、试验、查阅文献、深入生产实践等渠道获取与课程设计有关的材料。
03
课题工作量
7
按期圆满完成规定的任务,工作量饱满。
能力
水平
35%
04
综合运用知识的能力
10
能运用所学知识和技能去发现与解决实际问题,能正确处理实验数据,能对课题进行理论分析,得出有价值的结论。
05
应用文献的能力
5
能独立查阅相关文献和从事其他调研;能提出并较好地论述课题的实施方案;有收集、加工各种信息及获取新知识的能力。
06
设计(实验)能力,方案的设计能力
5
能正确设计实验方案,独立进行装置安装、调试、操作等实验工作,数据正确、可靠;研究思路清晰、完整。
07
计算及计算机应用能力
5
具有较强的数据运算与处理能力;能运用计算机进行资料搜集、加工、处理和辅助设计等。
08
对计算或实验结果的分析能力(综合分析能力、技术经济分析能力)
10
具有较强的数据收集、分析、处理、综合的能力。
成果
质量
45%
09
插图(或图纸)质量、篇幅、设计(论文)规范化程度
5
符合本专业相关规范或规定要求;规范化符合本文件第五条要求。
10
设计说明书(论文)质量
30
综述简练完整,有见解;立论正确,论述充分,结论严谨合理;实验正确,分析处理科学。
11
创新
10
对前人工作有改进或突破,或有独特见解。
成绩
指导教师评语
指导教师签名:
年 月 日
摘要
随着学校学生的人数的增加教师以及职工人数也不断的增加,所以对老师的考勤工作就变的日益的繁重。
为此,我们使用Visual Studio 2012开发了教职工签到系统,本系统取代了传统的人工操作,利用计算机辅助管理教职工的日常出勤及缺勤情况既提高了签到的科学性,也减轻了学校的工作负担。
利用SQL Server 2008进行数据库的建立和编程设计,结合Visual Studio 2012中的WinSock控件实现了客户端与服务器模式的教职工签到管理系统,利用按钮和登录窗的方式实现了管理员登陆、教职工签到,每类信息的管理都做到了相应信息的查询功能。
经测试本系统运行正常,通过本系统可以做到教职工签到的规范管理。
关键词 教职工签到,数据库,Visual Studio 2012,运行
1需求分析
1.1需求来源
本系统主要是对教职工签到管理的系统。
1.1.1功能需求
1、教职工签到并记录;
2、添加某个教职工的基本信息;
3、修改某个教职工的基本信息;
4、删除某个教职工的基本信息;
5、按照不同的条件对教职工签到信息查询统计;
6、系统以菜单方式工作
1.1.2数据需求
本系统主要涉及的数据两个表:
基本信息表(information)和签到管理表(signin)。
基本信息表的属性有编号,姓名,年龄,性别,日期。
签到管理表有编号,日期,情况属性
1.1.3性能需求
要求系统具有可靠性,速度要快,方便简单。
1.2设计目的
要求实现---“教职工签到管理系统”记录教职工的签到情况,它包括:
日期,迟到情况。
并根据不同的条件对教职工信息进行统计查询。
1.3设计要求
管理员功能:
添加,修改,删除教职工基本信息,对教职工签到情况管理;
教职工功能:
签到
2开发工具及相关技术
操作系统:
Windows7
开发工具:
VisualStudio2010
软件:
SQLSever2008
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