学生晚归与考勤管理信息系统的开发6624.docx
-
资源ID:62260336
资源大小:1.50MB
全文页数:64页
- 资源格式: DOCX
下载积分:30金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
学生晚归与考勤管理信息系统的开发6624.docx
学生晚归归与考勤勤管理信信息系统统开发系统分析析及设计计3.1 系统预预期用户户本系统的的预期用用户是任任何想了了解学生生在校的的考勤情情况的用用户。3.2 功能说说明学生晚归归与考勤勤管理系系统是目目前广西西机电职职业技术术校园网网在线系系统之一一。本软软件将各各个学院院各个部部门联系系到一起起,便于于学生晚晚归、考考勤的管管理,同同时,还还可以让让学生通通过查询询自己的的晚归与与考勤记记录,了了解到自自己的纪纪律情况况。在线图书书销售系系统要实实现的功功能模块块主要有有:该系统分分为晚归归情况管管理、考考勤情况况管理与与后台管管理三大大功能模模块。 系统功功能模块块的划分分图1 系统功功能架构构图(2) 基本处处理流程程下图是系系统基本本处理流流程图。图2 系系统基本本处理流流程3.3 数据库库设计本系统采采用SQQL SServver220055作为后后台数据据库。根根据以上上功能,新新建一名名为Atttenndannce的的数据库库,其中中共包括括9个数数据表,分分别是部门表(depparttmennt):专业信息息表(sspecciall):班级信息息表(claass):学生信息息表(stuuInffo):区/门信信息表(rregiion):晚归情况况表(llatee):考勤情况况表(aatteendaancee):考勤类型型表(aatteendttypee):用户信息息表(aadmiin):各个数据据表的关关系(主主要是主主键与外外键的约约束关系系)如下下图所示示:数据库创创建脚本本参考文件件:“学生晚晚归与考考勤管理理信息系系统数据据库建库库脚步.sqll”3.4 数据库库连接1、建议议将数据据库拷入入网站内内的Appp_DDataa目录内内,然后后将数据据库连接接字符串串写入到到Webb.coonfiig,参参考代码码如下:<apppSetttinngs>><aaddkkey="ConnnecctioonSttr"vallue="Serrverr=.;AtttachhDb Seccuriity=Truue" />></apppSeettiingss>测试数据据库连接接是否正正常usinng SSysttem;usinng SSysttem.Datta;usinng SSysttem.Connfigguraatioon;usinng SSysttem.Colllecctioons;usinngSyysteem.WWeb;usinng SSysttem.Webb.Seecurrityy;usinng SSysttem.Webb.UII;usinng SSysttem.Webb.UII.WeebCoontrrolss;usinng SSysttem.Webb.UII.WeebCoontrrolss.WeebPaartss;usinng SSysttem.Webb.UII.HttmlCConttrolls;usinng SSysttem.Datta.SSqlCClieent;publlicpparttiallclaassDDBCoonnTTestt : Sysstemm.Weeb.UUI.PPageeprottecttedvvoidd Paage_Loaad(oobjeect sennderr, EEvenntArrgs e) striing connstrr = ConnfigguraatioonMaanagger.ApppSetttinngs"CoonneectiionSStr""SqlCConnnecttionn coonn = nnewSSqlCConnnecttionn(coonsttr); coonn.Opeen();/打开数数据库连连接 Reespoonsee.Wrritee("数据库库连接成成功!""); coonn.Cloose();/关闭闭数据库库连接 Reespoonsee.Wrritee("数据库库关闭成成功!""); 经验证,Attendance.mdf数据库连接正常2、将常常用数据据库操作作代码写写入公共共类DBB中,其其中包含含以下各各自定义义方法,参参考代码码如下:usinng SSysttem;usinng SSysttem.Datta;usinng SSysttem.Connfigguraatioon;usinng SSysttem.Webb;usinng SSysttem.Webb.Seecurrityy;usinng SSysttem.Webb.UII;usinng SSysttem.Webb.UII.WeebCoontrrolss;usinng SSysttem.Webb.UII.WeebCoontrrolss.WeebPaartss;usinng SSysttem.Webb.UII.HttmlCConttrolls;usinng SSysttem.Datta.SSqlCClieent;/<<summmarry>/ DB类类为一个个专门进进行数据据库操作作的类/ 包括连连接数据据库,更更新数据据库,查查询数据据库这些些操作/<</suummaary>>publliccclasssDBB/<<summmarry>/ DB()为DDB类的的构造方方法/<</suummaary>>publlic DB()/<<summmarry>/ 定义返返回数据据库连接接对象SSqlCConnnecttionn方法/<</suummaary>>/<<retturnns>/ SqqlCoonneectiion对对象/<</reeturrns>>publlicSSqlCConnnecttionn geetCoon() Striing strrConn = ConnfigguraatioonMaanagger.ApppSetttinngs"CoonneectiionSStr""/从配置置文件wweb.coffig里里面读取取数据库库的连接接字符串串retuurnnnewSSqlCConnnecttionn(sttrCoon);/返返回数据据库连接接对象 /<<summmarry>/ 定义义更新数数据库的的方法/<</suummaary>>/<<parram namme=""cmddStrr">/ 参数ccmdSStr为为要执行行更新数数据库的的SQLL语句,包包含增加加,修改改,删除除这三种种SQLL语句/<</paaramm>/<<retturnns>/ 数据据库更新新成功则则返回11,更新新失败则则返回00/<</reeturrns>>publliciint sqllEx(strringg cmmdSttr) SqlCConnnecttionn coon = geetCoon(); ccon.Opeen();/打开数数据库连连接SqlCCommmandd cmmd = neewSqqlCoommaand(cmddStrr,coon);/创创建执行行SQLL语句的的命令对对象SqqlCoommaandtry ccmd.ExeecutteNoonQuueryy();retuurn 1;/成功功返回11 catcch retuurn 0;/失败败返回00 finaallyy ccon.Dissposse();/释放资资源 /<<summmarry>/ 定义查查询数据据库信息息的方法法/<</suummaary>>/<<parram namme=""cmddStrr">/ 参数数cmddStrr为执行行查询时时的书写写的SQQL语句句/<</paaramm>/<<retturnns><</reeturrns>>publlicDDataaTabble reDDt(sstriing cmddStrr) SqlCConnnecttionn coon = geetCoon();/连接数数据库 coon.OOpenn();SqlDDataaAdaapteer dda = neewSqqlDaataAAdappterr(cmmdSttr,ccon);/创建数数据适配配器对象象DataaSett dss = newwDattaSeet();/创建数数据集对对象 daa.Fiill(ds);/将保存存在数据据适配器器对象中中的数据据填充到到数据集集对象中中retuurn (dss.Taablees00);/返回回数据集集对象中中有记录录的那个个表 /<<summmarry>/ 定义阅阅读数据据的方法法/<</suummaary>>/<<parram namme=""strr">/ 参数数strr为执行行查询操操作时的的SQLL语句/<</paaramm>/<<retturnns>/ 返回回一个数数据阅读读对象/<</reeturrns>>publlicSSqlDDataaReaaderr reeDr(strringg sttr) SqlCConnnecttionn coon = geetCoon(); coon.OOpenn();SqlCCommmandd cmmd = neewSqqlCoommaand(strr,coon);SqlDDataaReaaderr drr = cmdd.ExxecuuteRReadder(CommmanndBeehavviorr.ClloseeConnnecctioon);/通通过调用用Commmannd对象象的ExxecuuteRReadder()方法法创建DDataaReaaderr对象,CCommmanddBehhaviior.ClooseCConnnecttionn表示?retuurn dr; 功能模块块的实现现用户注册册功能的的实现:实现逻辑辑:用户注册册信息写写入到aadmiin表,此此注册功功能是专专门针对对本校的的学生开开发注册册的,如如果不是是本校的的学生,是是没有注注册的权权限的,所所有注册册时要根根据学生生输入的的真实姓姓名和学学号进行行注册,如如果找不不到对应应的学生生的名字字,就不不允许用用户进行行注册,如如果用户户已经注注册过一一次了,就就直接告告诉用户户已经注注册过了了,无需需再次注注册了,并并自动为为用户跳跳转到登登录页面面,如果果用户是是第一次次注册,就就把用户户的注册册信息写写入到aadmiin表中中,注册册成功后后也跳转转到登录录页面让让用户进进行登录录。用户注册册页面RRegiisteer.aaspxx如下图图所示:学生进入入此页面面进行注注册,正正确填写写了学生生姓名和和学生学学号以及及验证码码了以后后,点击击提交按按钮完成成帐户注注册,而而在后台台,要进进行数据据的合法法性判断断,首先先进行的的是验证证码的正正确性判判断,把把用户输输入的验验证码和和保存的的Sesssioon对象象中的验验证码取取出来作作比较,如如果验证证码输入入正确才才继续执执行检查查该注册册用户是是否是本本校的学学生,以以及该用用户是否否已经被被注册了了,后台台的处理理代码如如下所示示:Regiisteer.aaspxx.cssusinng SSysttem;usinng SSysttem.Datta;usinng SSysttem.Connfigguraatioon;usinng SSysttem.Colllecctioons;usinng SSysttem.Webb;usinng SSysttem.Webb.Seecurrityy;usinng SSysttem.Webb.UII;usinng SSysttem.Webb.UII.WeebCoontrrolss;usinng SSysttem.Webb.UII.WeebCoontrrolss.WeebPaartss;usinng Syysteem.WWeb.UI.HtmmlCoontrrolss;usinng SSysttem.Datta.SSqlCClieent;publlicpparttiallclaasssstuddentt_Reegissterr : Sysstemm.Weeb.UUI.PPageeDB ddb = neewDBB();prottecttedvvoidd Paage_Loaad(oobjeect sennderr, EEvenntArrgs e) thiss.ImmageeButttonn1.IImaggeUrrl = "iimagge.aaspxx"/iimagge.aaspxx是一个个显示验验证码的的Webb页面 prottecttedvvoidd bttn_ssubmmit_Cliick(objjectt seendeer, EveentAArgss e) striing codde = txxtChheckkCodde.TTextt.Trrim();if (codde != (strringg)Seessiion"immagee") RRespponsse.WWritte(""<Sccrippt>aalerrt(''验证码码输入错错误,请请检查后后重新输输入!'')</Scrriptt>");/ RRespponsse.RRediirecct(""Reggistter.asppx");如果果使用这这种跳转转方式,那那么上面面的jaavasscriipt是是无法运运行的,因因为还没没有来得得及运行行就页面面就已经经跳转了了 RRespponsse.WWritte(""<sccrippt>wwinddow.loccatiion.hreef=''Reggistter.asppx'<</sccrippt>""); elsee striing stuu_Naame = ttxtUUserrNamme.TTextt.Trrim();striing stuu_Idd = txttstuuID.Texxt.TTrimm();striing sqll2 = "sseleect stuu_naame froom sstuIInfoo whheree sttu_nnamee='""+sttu_NNamee+"''"/使用用这条SSQL语语句检查查要注册册的人是是否是本本校的学学生,如如果是,才才允许其其注册,如如果不是是,就不不允许其其注册SqlDDataaReaaderr drr = db.reDDr(ssql22);if (dr.Reaad() dr.Cloose();/关闭闭SqllDattaReeadeerstriing sq = ""sellectt * froom aadmiin wwherre llogiin_nnamee='"" + stuu_Naame + ""'"/如果果已经证证实是本本校的学学生,就就再判断断该学生生是否已已经注册册过了 dr=db.reDDr(ssq);/再次次使用SSqlDDataaReaaderrif (dr.Reaad() Reespoonsee.Wrritee("<<Scrriptt>allertt('你你已经注注册过了了,不需需要再次次注册了了!直接接为您跳跳转到登登录页面面进行登登录')</SScriipt>>"); Reespoonsee.Wrritee("<<scrriptt>wiindoow.llocaatioon.hhreff='llogiion.asppx'<</sccrippt>""); elsee int powwer = 33;/如果已已经证实实要注册册的人是是本校的的学生,就就直接给给该学生生赋予使使用权限限striing sqll = "innserrt iintoo addminn(looginn_naame,loggin_pwdd,addminn_poowerr) vvaluues('" + sstu_Namme + "'','"" + stuu_Idd + "',"+ppoweer+"")"/Reespoonsee.Wrritee(sqql);/Reespoonsee.Ennd();try int flaag = dbb.sqqlExx(sqql);if (flaag >> 0) Ressponnse.Wriite("<SScriipt>>aleert('注册册成功了了!马上上为您跳跳转到登登录页面面进行登登录')</SScriipt>>"); Ressponnse.Wriite("<sscriipt>>winndoww.loocattionn.hrref='looginn.asspx''</sscriipt>>"); elsee Ressponnse.Wriite("<SScriipt>>aleert('注册册失败!')</Scrriptt>"); catcch (Sysstemm.Exxcepptioon eee) RRespponsse.WWritte(""<sccrippt>aalerrt(''"+eee.MMesssagee.TooStrringg()+"');</scrriptt>"); elsee Ressponnse.Wriite("<SScriipt>>aleert('你不不是本校校的学生生,没有有注册的的权限!')<</Sccrippt>""); txttUseerNaame.Texxt = """ txttstuuID.Texxt = """ prottecttedvvoidd bttn_rreseet_CClicck(oobjeect sennderr, EEvenntArrgs e) txxtsttuIDD.Teext = """ txxtUsserNNamee.Teext = """ 用户登录录功能的的实现实现逻逻辑:用用户进入入登录页页面后,输输入相关关的用户户名和密密码进行行登录,如如果用户户名和密密码都正正确了,表表示该用用户是合合法用户户,就允允许其进进入系统统的主页页进行相相关的系系统操作作,如果果用户名名和密码码的验证证不通过过,就不不允许其其进入系系统,用用户输入入用户名名和密码码后,在在后台的的处理过过程中首首先会从从数据库库Atttenddancce.mmdf的的admmin表表取出相相应的用用户名和和用户输输入的用用户名进进行匹配配,如果果用户名名匹配成成功了,就就把数据据表中存存储的密密码和用用户输入入的密码码进行比比对,如如果密码码也验证证通过了了,才允允许用户户进入系系统首页页,用户户名和密密码中任任意一项项匹配如如果不通通过,都都不允许许其登录录。登录录该系统统时,有有三种不不同身份份的使用用者,分分别为管管理员,记记录员和和学生,不不同的身身份就对对应着不不同的使使用权限限。使用用权限的的限制根根据不同同身份的的登录者者生成不不同的动动态导航航,以此此到达限限定使用用者的权权限的目目的。登录页页面的设设计如下下:如果登录录的身份份是管理理员,则则显示如如下的导导航:如果登录录的身份份是记录录员,则则显示如如下的导导航:如果登录录的身份份是学生生,则显显示如下下的导航航:对于管理理员而言言,其拥拥有的使使用权限限是最多多的,但但没有晚晚归登记记和考勤勤登记的的权限,登登记权限限只有记记录员才才有,而而对于学学生而言言,只有有查看相相关记录录的权限限,别的的权限都都没有,因因此通过过这种根根据不同同登录者者的身份份生成不不同的导导航就可可以限定定了登录录者的使使用权限限了。这这里难就就难在了了如果根根据登录录者的身身份动态态生成不不同的导导航信息息。相关关代码如如下:用户登录录的后台台代码:logiin.aaspxx.cssusinng SSysttem;usinng SSysttem.Datta;usinng SSysttem.Connfigguraatioon;usinng SSysttem.Colllecctioons;usinng SSysttem.Webb;usinng SSysttem.Webb.Seecurrityy;usinng SSysttem.Webb.UII;usinng SSysttem.Webb.UII.WeebCoontrrolss;usinng SSysttem.Webb.UII.WeebCoontrrolss.WeebPaartss;usinng SSysttem.Webb.UII.HttmlCConttrolls;usinng SSysttem.Datta.SSqlCClieent;publlicpparttiallclaassllogiin : Syysteem.WWeb.UI.PaggeDB ddb = neewDBB();prottecttedvvoidd Paage_Loaad(oobjeect sennderr, EEvenntArrgs e) ImmageeButttonn1.IImaggeUrrl = "iimagge.aaspxx"/让页页面加载载时就显显示验证证码图片片 prottecttedvvoidd bttnReegissterr_Cllickk(obbjecct ssendder, EvventtArggs ee) Reespoonsee.Reedirrectt("RRegiisteer.aaspxx");/点击击注册按按钮后,直直接跳转转到注册册页面,这这里需要要注意一一个小问问题,由由于文本本框已经经使用了了验证控控件,因因此要想想让按钮钮的触发发事件不不触发验验证控件件时,把把按钮的的CauusessVallidaatioon属性性设置为为fallse即即可 prottecttedvvoidd bttnLooginn_Cllickk(obbjecct ssendder, EvventtArggs ee) striing codde = txxtChheckkCodde.TTextt.Trrim();/获取取输入的的验证码码striing useernaame = ttxtUUserrNamme.TTextt.Trrim();/获取取输入的的用户名名striing passswoord = ttxtPPasssworrd.TTextt.Trrim();/获取取输入的的密码if (codde != (striing)Sesssioon""imaage"")/先进行行验证码码的判断断,验证证码输入入正确后后在执行行其他的的操作 RRespponsse.WWritte(""<sccrippt>aalerrt(''验证码码输入有有误!'')</scrriptt>"); RRespponsse.WWritte(""<sccrippt>wwinddow.loccatiion.hreef=''loggin.asppx'<</sccrippt>""); elsee striing sqll = "seelecct llogiin_nnamee,looginn_pwwd,aadmiin_ppoweer ffromm addminn whheree looginn_naame='"+useernaame+"'""SqlDDataaReaaderr drr = db.reDDr(ssql);if (dr.Reaad() if (sttrinng)ddr""loggin_pwdd" = passswoord) RRespponsse.WWritte(""<sccrippt>aalerrt(''用户名名和密码码正确!登录成成功!'')</scrriptt>"); RRespponsse.WWritte(""<sccrippt>wwinddow.loccatiion.hreef=''Inddex.asppx'<</sccrippt>""); SSesssionn"PPoweer" = dr"addminn_poowerr"/使用用Sesssioon存储储用户的的使用权权限 Sesssioon""useernaame"" = ussernnamee;/存储用用户名 elsee RRespponsse.WWritte(""<sccrippt>aalerrt(''密码错错误!'')</scrriptt>"); RRespponsse.WWritte(""<sccrippt>wwinddow.loccatiion.hreef=''loggin.asppx'<</sccrippt>""); elsee Reespoonsee.Wrritee("<<scrriptt>allertt('该该用户不不存在,请请先去注注册一个个帐户后后再进行行登录操操作,即即将为你你跳转到到注册页页面!'')</scrriptt>"); Reespoonsee.Wrritee("<<scrriptt>wiindoow.llocaatioon.hhreff='RRegiisteer.aaspxx'</scrriptt>"); 在用户进进行登录录的时候候,使用用Sesssioon对象象存储用用户名,并并且根据据用户名名从数据据库中取取出该用用户的使使用权限限,也使使用Seessiion对对象保存存用户的的使用权权限,登登录成功功后,在在系统的的主页的的后台处处理代码码中取出出保存在在Sesssioon对象象中的用用户名的的相关的的用户权权限,然然后根据据用户权权限来动动态生成成导航,相相关的代代码如下下:系统主页页的后台台处理代代码:indeex.aaspxx.cssusinng SSysttem;usinng SSysttem.Datta;usinng SSysttem.Connfigguraatioon;usinng SSysttem.Colllecctioons;usinng SSysttem.Webb;usinng SSysttem.Webb.Seecurrityy;usinng SSysttem.Webb.UII;usinng SSysttem.Webb.UII.WeebCoontrrolss;usinng SSysttem.Webb.UII.WeebCoontrrolss.WeebPaartss;usinng SSysttem.Webb.UII.HttmlCConttrolls;publlicpparttiallclaassIIndeex : Syysteem.WWeb.UI.Paggeprottecttedvvoidd Paage_Loaad(oobjeect sennderr, EEvenntArrgs e) if (Sesssioon""useernaame"" != nnulll)/这里里使用SSesssionn对象对对用户是是否已经经进行登登录进行行判断,如如果Seessiion中中的内容容不为空空,则表表示用户户已经登登录 striing useerSttr = (sstriing)Sesssioon""useernaame""/取出保保存在SSesssionn对象中中的用户户名int powwer = iint.Parrse(Sesssioon""Powwer"".TToSttrinng();/取出出保存在在Sesssioon对象象中的用用户使用用权限标标识striing navv = ""if (powwer = 1)/根据据登录者者的身份份动态变变化导航航的显示示,以此此限定不不同身份份的登录录者的使使用权限限 navv = "<ttd><<a hhreff='llateecheeck.asppx'ttargget='shhow_Conntennt'>>晚归查查询</a>|</ttd>"" navv += "<<td>><a hreef=''lattecoountt.asspx'' taargeet=''shoow_CConttentt'>晚晚归汇总总</aa>|<</tdd>" navv += "<<td>><a hreef=''atttenddcheeck.asppx' tarrgett='sshoww_Coonteent''>考勤勤查询<</a>>|</td>>" navv += "<<td>><a hreef=''atttenddcouunt.asppx' taargeet=''shoow_CConttentt'>考考勤汇总总</aa>|<</tdd>" navv += "<<td>><a hreef=''upddateedeppt.aaspxx' tarrgett='sshoww_Coonteent''>系/班级/专业维维护</a>|</ttd>"" navv += "<<td>><a hreef=''upddateereggionn.asspx'' taargeet=''shoow_CConttentt'>区区/门维护护</aa>|<</tdd>" navv += "<<td>><a hreef=''upddateeadmmin.asppx' tarrgett='sshoww_Coonteent''>用户户管理<</a>>|</td>>" navv += "<<td>><a hreef=''exiit.aaspxx'>注注销用户户</aa></td>>" elseeif (powwer