人力资源学生晚归与考勤管理信息系统开发文档资料.docx

上传人:b****4 文档编号:5504043 上传时间:2022-12-17 格式:DOCX 页数:59 大小:1.22MB
下载 相关 举报
人力资源学生晚归与考勤管理信息系统开发文档资料.docx_第1页
第1页 / 共59页
人力资源学生晚归与考勤管理信息系统开发文档资料.docx_第2页
第2页 / 共59页
人力资源学生晚归与考勤管理信息系统开发文档资料.docx_第3页
第3页 / 共59页
人力资源学生晚归与考勤管理信息系统开发文档资料.docx_第4页
第4页 / 共59页
人力资源学生晚归与考勤管理信息系统开发文档资料.docx_第5页
第5页 / 共59页
点击查看更多>>
下载资源
资源描述

人力资源学生晚归与考勤管理信息系统开发文档资料.docx

《人力资源学生晚归与考勤管理信息系统开发文档资料.docx》由会员分享,可在线阅读,更多相关《人力资源学生晚归与考勤管理信息系统开发文档资料.docx(59页珍藏版)》请在冰豆网上搜索。

人力资源学生晚归与考勤管理信息系统开发文档资料.docx

人力资源学生晚归与考勤管理信息系统开发文档资料

学生晚归与考勤管理信息系统开发

系统分析及设计

3.1系统预期用户

本系统的预期用户是任何想了解学生在校的考勤情况的用户。

3.2功能说明

学生晚归与考勤管理系统是目前广西机电职业技术校园网在线系统之一。

本软件将各个学院各个部门联系到一起,便于学生晚归、考勤的管理,同时,还可以让学生通过查询自己的晚归与考勤记录,了解到自己的纪律情况。

在线图书销售系统要实现的功能模块主要有:

该系统分为晚归情况管理、考勤情况管理与后台管理三大功能模块。

系统功能模块的划分

图1系统功能架构图

(2)基本处理流程

下图是系统基本处理流程图。

图2系统基本处理流程

3.3数据库设计

本系统采用SQLServer2005作为后台数据库。

根据以上功能,新建一名为Attendance的数据库,其中共包括9个数据表,分别是

部门表(department):

专业信息表(special):

班级信息表(class):

学生信息表(stuInfo):

区/门信息表(region):

晚归情况表(late):

考勤情况表(attendance):

考勤类型表(attendtype):

用户信息表(admin):

各个数据表的关系(主要是主键与外键的约束关系)如下图所示:

数据库创建脚本参考文件:

“学生晚归与考勤管理信息系统数据库建库脚步.sql”

3.4数据库连接

1、建议将数据库拷入网站内的App_Data目录内,然后将数据库连接字符串写入到Web.config,参考代码如下:

测试数据库连接是否正常

usingSystem;

usingSystem.Data;

usingSystem.Configuration;

usingSystem.Collections;

usingSystem.Web;

usingSystem.Web.Security;

usingSystem.Web.UI;

usingSystem.Web.UI.WebControls;

usingSystem.Web.UI.WebControls.WebParts;

usingSystem.Web.UI.HtmlControls;

usingSystem.Data.SqlClient;

publicpartialclassDBConnTest:

System.Web.UI.Page

{

protectedvoidPage_Load(objectsender,EventArgse)

{

stringconstr=ConfigurationManager.AppSettings["ConnectionStr"];

SqlConnectionconn=newSqlConnection(constr);

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

Response.Write("数据库连接成功!

");

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

Response.Write("数据库关闭成功!

");

}

}

经验证,Attendance.mdf数据库连接正常

2、将常用数据库操作代码写入公共类DB中,其中包含以下各自定义方法,参考代码如下:

usingSystem;

usingSystem.Data;

usingSystem.Configuration;

usingSystem.Web;

usingSystem.Web.Security;

usingSystem.Web.UI;

usingSystem.Web.UI.WebControls;

usingSystem.Web.UI.WebControls.WebParts;

usingSystem.Web.UI.HtmlControls;

usingSystem.Data.SqlClient;

///

///DB类为一个专门进行数据库操作的类

///包括连接数据库,更新数据库,查询数据库这些操作

///

publicclassDB

{

///

///DB()为DB类的构造方法

///

publicDB()

{

}

///

///定义返回数据库连接对象SqlConnection方法

///

///

///SqlConnection对象

///

publicSqlConnectiongetCon(){

StringstrCon=ConfigurationManager.AppSettings["ConnectionStr"];//从配置文件web.cofig里面读取数据库的连接字符串

returnnewSqlConnection(strCon);//返回数据库连接对象

}

///

///定义更新数据库的方法

///

///

///参数cmdStr为要执行更新数据库的SQL语句,包含增加,修改,删除这三种SQL语句

///

///

///数据库更新成功则返回1,更新失败则返回0

///

publicintsqlEx(stringcmdStr){

SqlConnectioncon=getCon();

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

SqlCommandcmd=newSqlCommand(cmdStr,con);//创建执行SQL语句的命令对象SqlCommand

try

{

cmd.ExecuteNonQuery();

return1;//成功返回1

}

catch

{

return0;//失败返回0

}

finally

{

con.Dispose();//释放资源

}

}

///

///定义查询数据库信息的方法

///

///

///参数cmdStr为执行查询时的书写的SQL语句

///

///

publicDataTablereDt(stringcmdStr){

SqlConnectioncon=getCon();//连接数据库

con.Open();

SqlDataAdapterda=newSqlDataAdapter(cmdStr,con);//创建数据适配器对象

DataSetds=newDataSet();//创建数据集对象

da.Fill(ds);//将保存在数据适配器对象中的数据填充到数据集对象中

return(ds.Tables[0]);//返回数据集对象中有记录的那个表

}

///

///定义阅读数据的方法

///

///

///参数str为执行查询操作时的SQL语句

///

///

///返回一个数据阅读对象

///

publicSqlDataReaderreDr(stringstr){

SqlConnectioncon=getCon();

con.Open();

SqlCommandcmd=newSqlCommand(str,con);

SqlDataReaderdr=cmd.ExecuteReader(CommandBehavior.CloseConnection);//通过调用Command对象的ExecuteReader()方法创建DataReader对象,CommandBehavior.CloseConnection表示?

returndr;

}

}

功能模块的实现

用户注册功能的实现:

实现逻辑:

用户注册信息写入到admin表,此注册功能是专门针对本校的学生开发注册的,如果不是本校的学生,是没有注册的权限的,所有注册时要根据学生输入的真实姓名和学号进行注册,如果找不到对应的学生的名字,就不允许用户进行注册,如果用户已经注册过一次了,就直接告诉用户已经注册过了,无需再次注册了,并自动为用户跳转到登录页面,如果用户是第一次注册,就把用户的注册信息写入到admin表中,注册成功后也跳转到登录页面让用户进行登录。

用户注册页面Register.aspx如下图所示:

学生进入此页面进行注册,正确填写了学生姓名和学生学号以及验证码了以后,点击提交按钮完成帐户注册,而在后台,要进行数据的合法性判断,首先进行的是验证码的正确性判断,把用户输入的验证码和保存的Session对象中的验证码取出来作比较,如果验证码输入正确才继续执行检查该注册用户是否是本校的学生,以及该用户是否已经被注册了,后台的处理代码如下所示:

Register.aspx.cs

usingSystem;

usingSystem.Data;

usingSystem.Configuration;

usingSystem.Collections;

usingSystem.Web;

usingSystem.Web.Security;

usingSystem.Web.UI;

usingSystem.Web.UI.WebControls;

usingSystem.Web.UI.WebControls.WebParts;

usingSystem.Web.UI.HtmlControls;

usingSystem.Data.SqlClient;

publicpartialclassstudent_Register:

System.Web.UI.Page

{

DBdb=newDB();

protectedvoidPage_Load(objectsender,EventArgse)

{

this.ImageButton1.ImageUrl="image.aspx";//image.aspx是一个显示验证码的Web页面

}

protectedvoidbtn_submit_Click(objectsender,EventArgse)

{

stringcode=txtCheckCode.Text.Trim();

if(code!

=(string)Session["image"])

{

Response.Write("");

//Response.Redirect("Register.aspx");如果使用这种跳转方式,那么上面的javascript是无法运行的,因为还没有来得及运行就页面就已经跳转了

Response.Write("");

}

else{

stringstu_Name=txtUserName.Text.Trim();

stringstu_Id=txtstuID.Text.Trim();

stringsql2="selectstu_namefromstuInfowherestu_name='"+stu_Name+"'";//使用这条SQL语句检查要注册的人是否是本校的学生,如果是,才允许其注册,如果不是,就不允许其注册

SqlDataReaderdr=db.reDr(sql2);

if(dr.Read())

{

dr.Close();//关闭SqlDataReader

stringsq="select*fromadminwherelogin_name='"+stu_Name+"'";//如果已经证实是本校的学生,就再判断该学生是否已经注册过了

dr=db.reDr(sq);//再次使用SqlDataReader

if(dr.Read())

{

Response.Write("");

Response.Write("");

}

else{

intpower=3;//如果已经证实要注册的人是本校的学生,就直接给该学生赋予使用权限

stringsql="insertintoadmin(login_name,login_pwd,admin_power)values('"+stu_Name+"','"+stu_Id+"',"+power+")";

//Response.Write(sql);

//Response.End();

try

{

intflag=db.sqlEx(sql);

if(flag>0)

{

Response.Write("");

Response.Write("");

}

else{

Response.Write("");

}

}

catch(System.Exceptionee){

Response.Write("");

}

}

}

else{

Response.Write("");

txtUserName.Text="";

txtstuID.Text="";

}

}

}

protectedvoidbtn_reset_Click(objectsender,EventArgse)

{

txtstuID.Text="";

txtUserName.Text="";

}

}

用户登录功能的实现

实现逻辑:

用户进入登录页面后,输入相关的用户名和密码进行登录,如果用户名和密码都正确了,表示该用户是合法用户,就允许其进入系统的主页进行相关的系统操作,如果用户名和密码的验证不通过,就不允许其进入系统,用户输入用户名和密码后,在后台的处理过程中首先会从数据库Attendance.mdf的admin表取出相应的用户名和用户输入的用户名进行匹配,如果用户名匹配成功了,就把数据表中存储的密码和用户输入的密码进行比对,如果密码也验证通过了,才允许用户进入系统首页,用户名和密码中任意一项匹配如果不通过,都不允许其登录。

登录该系统时,有三种不同身份的使用者,分别为管理员,记录员和学生,不同的身份就对应着不同的使用权限。

使用权限的限制根据不同身份的登录者生成不同的动态导航,以此到达限定使用者的权限的目的。

登录页面的设计如下:

如果登录的身份是管理员,则显示如下的导航:

如果登录的身份是记录员,则显示如下的导航:

如果登录的身份是学生,则显示如下的导航:

对于管理员而言,其拥有的使用权限是最多的,但没有晚归登记和考勤登记的权限,登记权限只有记录员才有,而对于学生而言,只有查看相关记录的权限,别的权限都没有,因此通过这种根据不同登录者的身份生成不同的导航就可以限定了登录者的使用权限了。

这里难就难在了如果根据登录者的身份动态生成不同的导航信息。

相关代码如下:

用户登录的后台代码:

login.aspx.cs

usingSystem;

usingSystem.Data;

usingSystem.Configuration;

usingSystem.Collections;

usingSystem.Web;

usingSystem.Web.Security;

usingSystem.Web.UI;

usingSystem.Web.UI.WebControls;

usingSystem.Web.UI.WebControls.WebParts;

usingSystem.Web.UI.HtmlControls;

usingSystem.Data.SqlClient;

publicpartialclasslogin:

System.Web.UI.Page

{

DBdb=newDB();

protectedvoidPage_Load(objectsender,EventArgse)

{

ImageButton1.ImageUrl="image.aspx";//让页面加载时就显示验证码图片

}

protectedvoidbtnRegister_Click(objectsender,EventArgse)

{

Response.Redirect("Register.aspx");//点击注册按钮后,直接跳转到注册页面,这里需要注意一个小问题,由于文本框已经使用了验证控件,因此要想让按钮的触发事件不触发验证控件时,把按钮的CausesValidation属性设置为false即可

}

protectedvoidbtnLogin_Click(objectsender,EventArgse)

{

stringcode=txtCheckCode.Text.Trim();//获取输入的验证码

stringusername=txtUserName.Text.Trim();//获取输入的用户名

stringpassword=txtPassword.Text.Trim();//获取输入的密码

if(code!

=(string)Session["image"])//先进行验证码的判断,验证码输入正确后在执行其他的操作

{

Response.Write("");

Response.Write("");

}

else

{

stringsql="selectlogin_name,login_pwd,admin_powerfromadminwherelogin_name='"+username+"'";

SqlDataReaderdr=db.reDr(sql);

if(dr.Read())

{

if((string)dr["login_pwd"]==password)

{

Response.Write("");

Response.Write("");

Session["Power"]=dr["admin_power"];//使用Session存储用户的使用权限

Session["username"]=username;//存储用户名

}

else{

Response.Write("");

Response.Write("");

}

}

else{

Response.Write("");

Response.Write("");

}

}

}

}

在用户进行登录的时候,使用Session对象存储用户名,并且根据用户名从数据库中取出该用户的使用权限,也使用Session对象保存用户的使用权限,登录成功后,在系统的主页的后台处理代码中取出保存在Session对象中的用户名的相关的用户权限,然后根据用户权限来动态生成导航,相关的代码如下:

系统主页的后台处理代码:

index.aspx.cs

usingSystem;

usingSystem.Data;

usingSystem.Configuration;

usingSystem.Collections;

usingSystem.Web;

usingSystem.Web.Security;

usingSystem.Web.UI;

usingSystem.Web.UI.WebControls;

usingSystem.Web.UI.WebControls.WebParts;

usingSystem.Web.UI.HtmlControls;

publicpartialclassIndex:

System.Web.UI.Page

{

protectedvoidPage_Load(objectsender,EventArgse)

{

if(Session["username"]!

=null)//这里使用Session对象对用户是否已经进行登录进行判断,如果Session中的内容不为空,则表示用户已经登录

{

stringuserStr=(string)Session["username"];//取出保存在Session对象中的用户名

intpower=int.Parse(Session["Power"].ToString());//取出保存在

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

当前位置:首页 > 医药卫生

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

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