用于办公室的自动化印机的设计_第1页
用于办公室的自动化印机的设计_第2页
用于办公室的自动化印机的设计_第3页
用于办公室的自动化印机的设计_第4页
用于办公室的自动化印机的设计_第5页
已阅读5页,还剩88页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

用于办公室的自动化印机的设计与开发-软件设计摘要随着工业的不断发展,逐级深化,经历了工业1.0到工业3.0的转变。从18世纪60年代至19世纪中期的机械设备制造时代,到如今的信息化时代,机械化设备的使用越发频繁,发展速度也逐渐加快,人们在享受机器带来便利的同时,也对机器的操作和控制便捷性有更高的需求,如今,自动化设备已经普及家家户户,自动化的机械产品也是层出不穷,但是在一些不引人注目的印章方面仍缺少自动化设备的帮助。通过在大学四年里学习和生活上的耳闻目染,感受到在很多地方还是在使用手动印章,例如学校教务处,需要在学生升学,请假,毕业和就业指导等事件中进行印章,而印章工作在校园里仍处于手动印章的状态,这不仅会延缓办事效率还很浪费体力,本设计主要分析了国内外自动印章机的种类和发展趋势,对已有的自动印章机做出改进,着重面向办公人群,使用户解放双手,提升办事效率。所以,本小组结合大学四年所学的机械原理、机械设计、c#、气压与液压传动等相关的专业知识,经过研究,设计出一款带有权限识别的自动化印章机。该后台系统采用VisualStudio2017和sqlsever2014数据库俩款软件制作而成,通过C#里类库中的类和数据库之间的调用,实现了多用户登录,权限管理,出错提示,修改密码,信息查询和打印模块的基础功能,对每个模块划分清晰明确,在为用户提供了一些基本的服务模块的同时,也很好的保证了印章的使用安全,是一个可以满足基本服务需求的印章管理系统。关键词:自动化,sqlsever数据库,VisualStudio,类库,类Designanddevelopmentofautomaticprintingmachineforoffice-softwaredesignAbstractWiththecontinuousdevelopmentanddeepeningofindustry,ithasexperiencedindustryOneToindustryThreeChange.Fromthemechanicalequipmentmanufacturingerainthe1860stothemid-19thcenturytotheinformationagetoday,Theuseofmechanizedequipmentismoreandmorefrequent,andthedevelopmentspeedisgraduallyaccelerated.Peopleenjoytheconvenienceofthemachine,butalsohavehigherdemandfortheconvenienceoftheoperationandcontrolofthemachine.Nowadays,automationequipmenthasbeenwidelyusedineveryhousehold,andautomatedmechanicalproductsareemerginginanendlessstream,butthereisstillalackofhelpofautomationequipmentinsomeunobtrusiveseals。ThroughfouryearsoflearningandlivingintheUniversity,Ifeelthatmanualsealisstillusedinmanyplaces,suchastheAcademicAffairsOfficeoftheUniversity,whichneedstobeusedineventssuchasstudents'enrollment,leave,graduationandemploymentguidance,whilethesealworkisstillinthestateofmanualsealinthecampus,whichwillnotonlydelaytheworkefficiencybutalsowastephysicalstrength.ThisdesignmainlyincludesThispaperanalyzesthetypesanddevelopmenttrendoftheautomaticsealmachineathomeandabroad,improvestheexistingautomaticsealmachine,andfocusesontheofficecrowd,Tofreehandsandimproveefficiency.Therefore,basedonthefour-yearmechanicalprinciple,mechanicaldesign,C,airpressureandhydraulictransmissionandotherrelatedprofessionalknowledge,thisgrouphasdesignedanautomaticsealmachinewithauthorityidentificationafterresearch.Thebackgroundsystemadoptsvisualstudio2017andSQLSever2014databaseismadebytwokindsofsoftware.ThroughthecallbetweentheclassanddatabaseintheclasslibraryinC,thebasicfunctionsofmulti-userlogin,authoritymanagement,errorprompt,passwordmodification,informationqueryandprintingmodulesarerealized.Eachmoduleisdividedclearlyandclearly.Whileprovidingsomebasicservicemodulesforusers,italsoensurestheuseofsealsWithsecurity,itisasealmanagementsystemthatcanmeetthebasicservicerequirements.Keywords:automation,SQLSeverdatabase,visualstudio,classlibrary,class目录TOC\o"1-3"\h\u1绪论 11.1全自动印章机控制系统的概念 11.2全自动印章机的现状 11.3自动印章机的优点 21.4自动印章机存在的问题 21.5选题的研究意义 21.6本文的主要工作 22全自动印章机设计与开发总体方案设计 32.1设计概述 32.2全自动印章机的设计要求 42.3全自动印章机设计与开发总体方案 52.4本章小结 53系统开发工具介绍 53.1VisualStudio2017 53.2SQLSever2014数据库 绪论全自动印章机是自动印章设备,是用机械代替人力,并通过系统对印章实行自动化的管理,使办公效率更加的高效化和智能化,我国虽然很早就出现了印章技术,但对与印章的自动化设计起步较晚,近年来也是在不断发展这种自动化的印章技术。本文将通过研究国内外的自动化打印设备,了解与学习自动印章的原理,并且研究各种管理系统的设计开发,从而根据本组设计产品的需求,来设计出一套印章权限管理功能。1.1全自动印章机控制系统的概念全自动印章机的软件系统主要功能是对使用者的级别,印章的大小进行识别和管理,而且可以实现历史记录查询的功能,能查出什么身份的人在什么时间地点登陆使用了这个印章。1.2全自动印章机的现状(1)国外全自动印章机发展现状盖章分为两类,一类是盖钢印的。一类是盖印泥的。在20世纪30~40年人们对钢印印章有了需求,才慢慢出现了钢印的印章机。随着科技的进步,钢印的印章机也在不断的变化,但是工作原理基本是一样的,没有太大的变化。到当代出现了击打打印机,由于本身属于专用的击打打印机,所以功能和使用范围都受到了一定限制,没有太大的变化。而盖印泥章印的机器出现的很少。目前世界上有名的盖章机有美国HEDMAN海德曼EDP-PLUSIN自动连续盖章机、德国Reiner自动盖章机等,这些都是击打式盖章机。SEAL-A型电子自动盖章机,是印泥盖章机,是目前可以查到的销售的盖章机。钢印盖章机的种类也不是太多。(2)国内自动印章机发展现状印章在国内出现的很早,但在盖章技术方面,技术比较单一,大多是人工手动盖章。目前市场上主要有两种形式的自动印章机,自动钢印章机、击打自动印章机。这两种自动印章机的优点是安全、智能化。共同的缺点是,功能单一,效率低,灵活性不够高。1.3自动印章机的优点印章的安全管理:原先的手动印章,在盖章之后很难去查寻使用者在什么时候用的这个印章,是否可以使用这个印章,会存在跨权限使用而很难追查这个事情,如果自动印章机因为加入的安全系统的缘故,所以可以对使用者的级别进行管理,也可以查询详细的历史记录,很好的解决了这个问题。(2)自动印章机可以有效的代替人手盖章,有效减少盖章不均等问题,也可以让方便盖章者不再时无法盖章等问题得到一个有效的解决办法。也有效的提高了企业的劳动效率。(3)可以移动印章,本次的设计印章机可以活动印章,解决里盖章位置不同或者纸张放置不同所产生的错印问题。1.4自动印章机存在的问题现阶段的自动印章机还存在无法多张纸张一次打印的问题,现阶段的印章机由于无法放置很多纸张,所以只能让使用者一次一张的放入纸张。1.5选题的研究意义根据身边的环境选择这个题目,现在很多地方政府或者国企,都在逐步的使用网络印章,虽然还是会用手动盖章,但因网络印章可以提高办事效率,手动印章正在逐渐变少,但在校园生活中,很多印章都得通过老师手印的方式来进行盖章,这样其实在日常的请假等方面同样也会造成一些小的影响,比如一次有很多同学来盖章,而老师又急于忙于手头的工作,这样就可能会导致办事效率的减弱,为了改善这种问题,提高盖章效率,节省时间,因此选择了全自动印章机的设计与开发这项课题。1.6本文的主要工作主要是分为以下五个步骤对该印章管理系统进行研究与开发:(1)对智能印章机的系统进行研究上网上查看一些智能印章机的系统和视频进行研究,了解这些系统大致需要的功能有哪些,选择性的放入自动印章机中。(2)对登陆界面和主界面,副页面进行设计研究查阅相关视频和资料又结合一些图书管理系统的页面设计,设计出自己需要的模型板块,以及登陆界面和主界面的背景设计,主界面的板块功能有:身份识别,尺寸选择,历史记录的和打印份数的选择,副业也要注意尺寸的选择。(3)连接数据库,实现多用户管理和身份识别通过c#和SQLsever数据库的连接和对数据库的调用,实现多用户的登陆,以及身份识别和管理什么身份对应可以使用的印章。(4)实现登陆日志的查询同过对数据库的调用,在数据库中建立表以此记录使用者的时间,在通过c#的编辑,将页面登陆的用户传送进数据库中。在通过登录查询界面获取表中信息进行展示。各个功能模块的开发除了以上基本的功能实施以外,还设计一些其他的模块,在保证用户有了基本的权限安全后的服务操作,如密码修改,印章使用查询等服务类功能。2全自动印章机设计与开发总体方案设计针对全自动印章机的运作流程,设计出可以实现对印章使用权限进行分类管控,实现印章机可以自由移动印章位置及自动按压印章,以及印章机作为办公用品,体积不宜过大为准则的结构设计与开发。本设计的控制系统使用气动控制为核心,首先了解整个气动系统元件的组成,再了解各个原件的原理和优缺点,进行合适的元件种类和型号的选择。使用IO模块(工业级开关量模块)进行串口通信,使C#中的程序可以与印章机进行适配。UI界面和后台系统的设计中,通过了解各种管理系统的视频,因为市面上很多印章管理系统较为复杂,除了观看印章系统视频以外也了解很多其他的管理系统的页面布局及功能设计,如图书管理系统,超市收银系统等最后,将软件部分设计大体分为俩个设计方面,页面布局设计和功能设计。2.1设计概述考虑到很多自动印章机的体积较大,系统也较为复杂,本次想设计一个小型便捷为目的的全自动印章机,计划设计出一种可以放置在办公桌面上的小型自动印章机,以小巧、移动便捷、造型简单为目的,通过气缸与机械结构相结合,利用滑杆等零件完成自动盖章的任务,节约能量和成本。而在软件系统方面的设计多以用户的级别判定和安全考虑,当然也会为用户提供一些基本的服务。其次市面上的印章机多数都是用电路系统作为主要的控制系统,电机和继电器为核心元件,但是基于创新性,本设计采用气动系统,供给两个气动系统的方案进行选择。本设计采用的IO模块正是比起没有串口通信的印章机有很多优点且更适合。IO0200作为继电器输出模块,可以托负载,与软件的程序的运行更适配,起到开关的作用。为了更直观的了解本次设计的流程,本小组的整体流程图如图2.1所示:图2.1设计流程图2.2全自动印章机的设计要求针对全自动印章机的设计要求,总体来说要求印章机体积较小适合办公,有一个可以提供基础服务的后台系统和UI界面以及可以自动化的控制印章,因此对每个要求进行细化总结后得出以下四点要求:结构设计要求:利用solidworks软件对自动印章机的结构进行设计,首先确定自动印章机的大致外观造型,然后在考虑自动印章机各部分零件大小、后续电子设备装载空间等问题的基础上,通过对各部分零部件的设计,以及完成各零件的装配,最后形成自动印章机的完整结构,通过导出装配图和主要零部件工程图,最终完成结构的设计。控制设计要求:气动系统中的执行元件——气缸能根据软件中的程序指令进行运作,要能使气缸有足够的力使印章实现张印,IO口串口通信的执行程序能正常运行,使设备能接收到程序指令。设计要求如下:(1)气动系统的气压能够稳定输送,气缸能够稳定进行往复运动。串口通讯实现和设备的通讯,把C#的程序编程指令与设备进行通信,实现使用权限和使用的记录。保护电路确保在出现短路时能够立刻断开电路,保护电路和气动系统。页面设计要求:因为页面布局设计需要整体的美观程度,所以不采用VisualStudiao软件的原边框,也将主也面的尺寸调为1143*660,并且在图片的选择也进行了筛选,最终确定了俩张现代圆头印章的图片,并且将原有系统的主色调进行了调整。同时主界面的布局设计为左边为功能模块,右边为副界面展示窗口,在修改密码界面需要对使用者的设置的新密码长度密码做出提示。功能设计要求:在登陆界面,需要做到多个用户的登陆管理,并且对登陆用户的级别做一个初步的判定,并且对用户输入的面貌进行初步校验,如用户名是否为空,密码是否大于6位,用户名和密码是否为空,在登陆成功后会弹出对级别判定后登陆成功的消息框,如欢迎学生使用。在登陆成功后,系统会将使用者的姓名,账号,使用时间和结束时间录入数据库的日志表中。在主界面会上方显示登陆者的名称还有登陆的时间,主界面也需要做到,第一可以最小化,第二点击关闭时可以关闭整个程序,在修改密码界面需要做到自动是提取并显示使用者名称和账号显示,同时需要校验新旧密码是否重复,新密码是否一样,新密码是否大于六位。在印章尺寸选择按钮的模块,主要的功能是模拟打印时长,需要显示打印中并且过10s以后会弹出答应成功等字样,在登陆日志界面,需要调出后台系统登陆日志,展示在UI层的登陆查询界面,需要做到1.展示所用的人登陆时间2.通过账号和用户查询个人使用并且可以选择年,月,日或者从几号到几号的方法查询,印章系统查询,通过对后台印章系统的调入,可以查询使用者的名称级别和所用印章。2.3全自动印章机设计与开发总体方案采用VisualStudiao2017版和SQLSever2014版数据库来组建后台系统,控制系统由两部分组成,一部分是气动控制系统,方案一是由气泵,调压阀,气动电磁阀,气缸组成,方案二是由空气压缩机,气源双联件,气动电磁阀,气缸组成。另一部分是驱动系统,主要有IO串口通信,可添加保护电路。而在结构方面主要由以下几方面组成:机架、印章升降结构、印章左右前后移动工作平面、气缸电磁阀等电子零件放置结构。2.4本章小结本章主要是对全自动印章机进行一个总体方案的概述,介绍了本设计中印章机的主要的软件组成和页面设计要求及功能需求及总体思路,需要考虑和解决的问题。3系统开发工具介绍本章节主要是对于毕业设计中所用到的VisualStudio2017和SQLSever2014数据库软件进行一个介绍,讲解一下这个版本的软件想比于其他版本所存在的优势。3.1VisualStudio2017VisualStudio2017是微软于2017年3月8日正式推出的新版本,是迄今为止最具生产力的VisualStudio版本。其内建工具整合了.NETCore、Azure应用程序、微服务(microservices)、Docker容器等所有内容。相较于其他版本的VisualStudio,2017版可以更快,更详细的给出程序中所给的错误,而其中的C#软件中也更新了C#7.0的版本。在本次的设计工程中C#软件主要负责页面设计和连接以及数据库的调用的一些基本编程。其模块基本配置步骤如下(1)打开VisualStudio2017然后新建项目,选择windows窗体应用,如图3.1所示:图3.1新建项目页面(2)除了窗体应用,还需要建立几个类库,分别为Common(通用工具),DAL(数据访问层),DBUitily(数据连接),models(数据表示层)。类库选择NETFramework这一类。如图3.2所示:图3.2建立类库3.2SQLSever2014数据库SQLServer系列软件是Microsoft公司推出的关系型数据库管理系统。2014年4月16日于旧金山召开的一场发布会上,微软CEO萨蒂亚·纳德拉宣布正式推出“SQLServer2014”。相较与原先的SQLSever2008或SQLSever2008R2版本,SQLServer2014可以是新手在建立数据库或生成新的表的时候,可以通过鼠标右键直接建立新的数据库,在新数据数据库下面的表这个文件中右键即可建立新的表,表中国每个列的类型和行数都可以通过鼠标操作,而老版的数据库只能通过代码建立数据库,当然SQLServer2014只能和win10系统匹配。本次设计中SQLSever2014数据库是用来存储写入的数据以及提供数据和接受C#系统更新后的数据,下面是数据库的配置过程。(1)打开软件,用windows身份登陆数据库,在建立的连接上选择属性,进入服务器的属性,将身份验证改为SQLSever和Windows身份验证模式(如图3.3所示)然后点击确定按钮,做这步的原因是为了更好的让数据库和c#连接。图3.3属性页面(2)点开安全性找到登陆名下的sa用户,点开用户修改密码,并且进入设置页面启用登陆和允许改用户连接数据库。如图3.4,图3.5,图3.6所示:图3.4登陆名页面图3.5Sa属性页面图3.6状态设置(3)单机数据库点击新建以后会弹出如下图所示的页面,填入数据库的名称然后点击添加即可,如图3.7,图3.8所示:图3.7建立新数据库图3.8数据库建成以后视图4印章系统的调试及运行本章节主要分为三个部分来讲:UI设计界面主要是展示每个模块的页面设计和功能的简介,各类库功能简介主要是简单概括各类库在该设计中的结构位置和作用,功能实现章节主要讲述了如何在各个类库及UI界面中编写程序去调用数据库,来实现一些基础功能。4.1C#UI层界面展示设计本节主要简要描述在C#软件中所设计的各个页面的布局和功能简介俩个方面进行介绍.4.1.1用户登陆界面(1)用户登录界面基本的界面设计一个好的系统就需要好的登陆界面,所以需要设计出一个好看的页面设计,需要将窗体原有的边框去掉,更改窗体的背景颜色,选择符合窗体的图片做整体背景等步骤,设计出印章系统的登陆界面。如图4.1,图4.2所示:(a)(b)图4.1通过FormBorderStyle属性栏把Sizable改为None去掉边框图4.2登陆页面完成图(2)登陆界面的功能设计实现多用户的登陆管理,区分学生与老师身份,以及在用户登录的时候对用户完成基本的校验,如用户名不能为空,密码必须大于六位,用户名和密码错误等提示。如图4.3所示:(a)(b)(c)图4.3密码校验功能展示三幅图4.1.2主界面的设计(1)主界面页面设计相对与登陆界面的设计不同的是,主界面的设计为了好看,参考了很多系统的主界面的设计和布局,最终把尺寸确定在去掉边框以后尺寸为1366*768这个数值(如图4.4所示:)并采用分页式设计,左边放入模块按钮,右边放入界面图片,并将lable控件的属性值改变,用来做大模块区域名称和模块区域的划分,其次主页面之外的分页面都采用1150*662的尺寸标准。如图4.5所示:图4.4尺寸选择图4.5主界面页面设计(2)主界面的功能设计首要实现最小化按钮和关闭按钮的功能,当点击关闭按钮时结束整个程序,点击最小化是会将窗体最小化。其次在登陆时,需要显示用户的登陆名称和上次的登陆时间,并且设计了很多模块按钮,当模块按钮被触发时不会弹出窗体,而是将窗体展示在图片区域。而且在学生登陆和老师登陆时,学生是不可以用8cm和10cm的印章的,所以在学生登陆时,8cm和10cm印章按钮是无法被看见的。如图4.6所示:图4.6学生登陆界面4.1.3密码修改模块界面展(1)密码修改模块页面设计在密码修改界面需要设计俩个密码长度的提示,还需要设计密码修改的位置,在顶部会设计位置的标识,如图所示,在当前用户的账号和当前用户名称这块采用的是lable控件,将它的背景颜色和AutoSize属性进行更改,得到当前的效果,这样设置的目的是为了自动获取用户名和密码显示。如图4.7所示:图4.7修改密码页面(2)功能说明密码修改界面的功能其实是将原先写入数据库中的密码提取,在输入原密码时进行校验,满足校验的要求以后,UI层会将更改后的新密码在导入数据库中将原有密码进行替换。校验的需求有(原密码是否正确,原密码和新密码是否相同,俩次新密码是否一样,新密码是否大于六位)。4.1.4登陆日志建立登陆日志是为了记录什么人在什么时间段使用了这个系统,使用了多少分钟,为了将UI层的数据传到数据库中,应建立一个新的表,其中LogId的值需要设计成不断自动增加值,然后在建立其他的列,LoginId,UserName,LoginTime,EndTime,从原有的登陆的表中获取账号,使用者名称,开始时间,在点击登陆按钮时,通过登陆按钮去向表格中输入所需要的账号,使用者名称及时间,在关闭主界面时会想数据库录入退出时间,这样每有人登陆一次系统,表格中的数据就会自动更新一次。4.1.5模拟打印(1)打印的页面设计页面需要提示使用者所在的当前位置,自动显示账号和姓名,以及自行显示份数的选择。如图4.8所示:图4.8打印页面设计(2)功能设计在使用者选择确定键以后,会弹出一个等待窗体来告诉使用者,正在打印中需要等待10s,10s过后会显示打印成功的消息盒,之后会关闭等待窗体。4.1.6登陆查询模块登陆查询的页面设计在登陆查询的界面除了基础的去除边框的设计以外,需要设计一个可以展示登陆日志的表格,也需要设计账号以及用户名查询位置,并且要设计所用,年,月,日从几几年几月到某某年某月这种时段查询按键。登陆查询的功能设计登陆查询界面在主界面点击弹出此界面的同时需要弹出所用的用户登陆情况,并且可以做到通过,天,周,月,年等选择键和账号用户名进行精确的查找。4.1.7信息查询模块页面设计这里分为老师信息表和学生信息表俩快,设计理念是在一些特定情况下使用者无法联系老师或学生,使用者也可以通过该模块查询获得老师或学生的基本信息,其中列名包含账号,姓名,教师工号(学号)和联系电话。同时还要设计账号和用户名进行单个账号的查询的文本框。如图4.9所示:图4.9信息查询模块页面设计功能设计同设计账号和用户名进行单个账号的查询。这样在可以方便使用者快速找出老师的联系方式等基础信息。4.2各类库功能介绍本节主要介绍各个类库在该系统设计中的结构位置以及各个类库所对应的功能做一个简单的概括。4.2.1DBuitily的概念在设计一款管理系统中,往往会在DBuitily层中建立数据库通用访问类SqlHelper.cs这一类库,它主要的功能是对sql中调出调入的数据做出一个基本的运算调整,主要分为俩种类型,一种类型为用标准的sql语句,另一种类型为使用带参数的sql语句,主要的方法有三种,一是实现对数据库的增删改,二是获取一个单一的结果,三是获取一个表。以此获取并对数据库进行修改。4.2.2models层介绍这类层设计起来比较简单,以SysAdmins类为例,它主要是用来表示用户的实体类model基本是数据库中表的字段的集合,通过getset访问器,可以从数据库中获得这个表中的列,只需在这个面的声明属性和数据库中的字段一致,就可以接实例化model层的类给属性赋值,然后就能向数据库传递专这个类的实例了,之后就可以被读取出来。如图4.10所示:图4.10models示例4.2.3DAL层介绍数据访问层,这个层应该是负责程序与数据中心(除了数据库,还有存储数据的文件等)的交互,也就是将数据的增删改查的操作封装起来供其它层直接使,这个层也是实现很多功能的基础层面,这个层面创立类中,会用到很多sql语句来创建读取或者更改数据的方法,所以在此处做一个简单的模式讲解,如图所示,先创立这个方法和里面所需类型,创立规则是public+类型(图中为布尔类型,此外还有静态类等)+方法名称+()中所获取的数据类型如图中获取的是整形和字符类型,接下来是准备sql语句,图中的写法为查找某列在数据库的某个表中,并且获取想要参数,当然还有别的写法,之后填充sql语句中的参数,通过调用SqlHelper类方法类型去进行判断,图中就是获取单一的数据,最后将错误抛出。如图4.11所示:图4.11创立方法示例4.2.4Common层这个层面的功能比较简单,主要是对一些数据进行辅助的验证。方法如图4.12所示:图4.12Common层数字验证示例4.3功能实现本节主要对各模块功能的实现过程和实现的功能需求做出详细的介绍。4.3.1.多用户的登陆实现多个用户的登陆管理,是诸多管理系统中的基础部分,要想实现这个基础的功能,需要步骤如下:在sql数据库中建立登陆所用的表,在建立表的时候需要通过系统所需要的内容去建立列,本章所需要的列名有,账号,密码,使用者名称,是否是学生,是否是老师,登陆的时间,当然在建立表的时候为了系统间不出错统一使用英文名称,在建立列时,需通过不同的需求去输入不同的类型比如在账号这个列中,如果需要参与数学运算,就需要选择整形,如果字符长度过大则需要选择varchar类型,而如果字符长度是固定的可以选择char类型,在本系统中,输入的类型如下:账号int型,密码和使用者名称vaechar(20),是否是学生、老师bit型,上次登陆时间SmallDateTime型,同时还要设置主键为账号。建立完成后刷新图表,可右键点击创建的表,选择编辑前200行,在表格中进行数据输入,也可在新建查询中通过sql语句输入数据,本次输入数据如表4.13所示:表4.13建立登陆用户表(2)先生成一个实例化的链接,这个部分在DBuitily层中的SqlHelper.cs类库中进行操作,先在窗体下面的App中输入如图示的公式,其中Source等于对应的数据库的地址,这里使用的是本机地址,查询方法是点开主机在点运行写入cmd进入本机的查询程序在输入ipconfig,之后本地计算机上会显示出该计算地址,复制粘贴即可,InitialCatalog这块填写在SqlSever中所填写的数据库,后面填写在sqlsever身份验证下所创立的用户名与密码,在App写完以后在SqlHelper生成链接字符串如图示,其实可以直接在SqlHelper中填写链接语句,但这样会把数据写死,直接封装起来,换一台机子以后很难使用原有代码,但App.config是C#系统自带的一个配置程序,不用进行封装,如果更换计算机,只需在其中填写新的链接数据,以及新建的数据库即可。注意在生成链接字符时需引用App.config的空间名System.Configuration(如图4.14所示)。之后就是在SqlHelper中建立调用数据库的俩种类型的增删改的三种方法。注意需要引用名称,如图4.15所示:图4.14APP中的链接语句图4.15SqlHelper链接字符与引用确定登陆窗体与主窗体的先后顺序,这个程序是在窗体应用自带的Program这个类里面写的,先将窗体实例化,然后展示登陆窗体,在登陆验证用过以后才展示主界面,方法如图4.16所示:图4.16实例化并展示窗体在SysAdmins类中输入数据库中的列,以及需要的类型。在SysAdminsServices类中写入进行基本的身份验证(见附录)和对用户名和密码的对错进行初步判断的含有sql语句的方法,如图4.17所示:图4.17判断密码正确的方法在完成前面的基础步骤以后在页面设计出点击登陆按钮,在触发按钮的框架内完成对数据的校验封装和基本的身份验证,如果成功就可以通过返回的值来判断基本的密码对错以此来进行下一步,如果程序可以运行但无法正常登时会弹出用户验证时身份出错,和具体系统的消息提示。方法如图4.18所示:图4.18数据分装和校验(7)判断学生和老师的身份在完成了基本的验证以后,需要对老师的和学生的身份进行基本的判断,并且显示欢迎老师或欢迎学生登陆的字样,想实现这个功能并不复杂,只需在下面添加判断语句就好,先通过上一个步骤返回进来的值去判断密码的对错,后在判断对错if语句下面在加入elseif的再次判断的语句去判断登陆用户是否为学生,如果值中判断显示是学生则显示欢迎学生使用,之后添加else语句对不是学生的用户显示欢迎老师登陆。方法如图4.19所示:(a)(b)图4.19添加判断句识别身份和密码对错4.3.2对用户登陆的判断提示和类型的优化对于用户来说基本的判断对错是无法让用户感觉到这是一个良好的系统,所以针对这个问题,在账号下端拖入一个label,将它的属性值AutoSize调为False,并更改Name,更改规则是lbl+想用的名称,通过这个label的text文本框可以展示出对用户的登陆验证细节进行了三个方面的优化。登陆账号是否为空判断账号是否为空是优化提示中最简单的,先写入一个布尔类型返回值的新方法,在里面添加判断语句去判断输入ID账号的文本框是否为空,如果是则提示文本框中就显示登陆账号不能为空的字样,并且将这个值进行反馈。方法如图4.20所示:图4.20密码是否为空判断登陆的id是否大于四位这个功能除了判断语句以外,还需要添加正则表达式,所以去Common中新建立一个类在这个类中输入一静态类布尔个类型返回值的方法,在其中输入正则表达式,图中这个正则表达式是表示只能输入数字的意思,很多的意思对应的正则表达式可以通过百度查询。然后在登陆窗体的程序设计中引用Common已经创建的方法下面,写入判断语句去判断文本框中输入的是否为数字且数字的长度是否=4,如果二者当中有一项不符合,则在提示文本框中显示密码必须是四位数字的字样。然后反馈这个值。方法如图4.21所示:图4.21判断id是否大于四密码是否大于六位因为密码不一定是纯数字或者纯字母,所以在这个功能中只需要在创建的方法下写入语句判断它输入的密码长度是否大于六位就可以l,之后在返回值。方法如图4.22所示:图4.22密码长度判断(4)细节优化在以上判断提示优化完成以后点击调试就会发现,下面的提示文本框必须通过点击登录按钮以后才可以发生变化,例如在账号中输入6位数字符直接点击登录,提示框会显示出”密码必须为四位“的字样,之后在文本框中输入一个正确的四位账号,下面的提示无法立刻消失,必须点击登录才能显示下一个判断,针对这个问题做出优化,在登录窗口的设计页面选中账号文本框,打开它的属性事件,找到名为TextChanged的事件点击后会自动进入程序界面系统会自动创建一个方法,在方法下面输入方法语句(如图示)让提示文本框跟随变化。方法如图4.23所示:图4.23文本框变化4.3.3主界面模块设计主界面其实更多的是外观上的设计,大体的功能其实只是在触发特定的模块按钮时弹出特定页面,但主窗体其实也有一些细节上的设计,接下来将详细介绍这些细节设计。在主界面的上展示使用者的名称和上次登陆的时间想实现这个功能先在基本的SysAdminsServices类里面的身份验证中添加上登陆用户表中的其他列,获得列以后就需要调用,俩个窗体之间的调用有俩种,一种是一个窗体调用另一个窗体,另一种是建立全局变量,因为本系统使用Program进行窗体调用的,所以采用第二种方式,在Program中定义一个全局变量。然后在登陆界面的程序中写入触发且验证通过以后,把值赋给全局变量,最后回到主界面,修改俩个label空间的Name右键后点击查看程序,在程序展示过程下面写入展示程序。方法如图4.24,图4.25所示:图4.24补全数据列(a)(b)图4.25赋值和展示所需名称和上次登陆时间修改上次登陆使用时间因为在数据库的用户登陆表中写入的时间不是实时更行的时间,因而主界面中展示的并不是一个随时更新的时间,所以需要实时的更改一个新的时间,因为获取的时间是在登陆界面获得的,所以应在登陆按钮下进行程序的修改,获取更改时间的方法,以及获取数据库中的时间,在SqlHelper中创建获取的时间地点(方法如图4.28所示)在DAL层中的SysAdminsServices类理用sql语句创建一个获取更改时间方法(如图4.26所示)在数据库中找到账号和上次登陆时间这一列,然后给它们重新赋值,之后在登陆界面的确定按钮里面通过写入try和catch语句,去更数据库做交互(方法如图4.27所示)从而完成对上次登陆时间的更改。图4.26建立一个更改方法图4.27与数据库进行交互图4.28获取数据库时间身份功能的开放学生因为和老师存在着身份等级的差别,所以在登陆完成信息识别以后,需要禁用学生8cm印章和10cm印章的使用权限,为了实现这个功能,只需要在主界面程序设计的展示过程中添加if语句进行判断,如果用户是学生则8cm和10cm印章模块按钮对其不可见即可。方法如图4.29所示:图4.29开放老师功能将副窗体展示于图片区域为了整体的美观效果,需要将副页面与主页面秩序给建立起来,应为使用者在看到很多个文本框弹出的时候会觉得系统设计的很乱,因此将副页面展示到主页面的图片区域,这样给用户的从使用开始到结束只会展示一个界面,实现这个功能,需在主界面程序中实例化相对应的窗体(方法如图4.31所示)在触发相应按钮的程序下面写入关闭Panel2中的图片,并且展示相对应的窗体即可。方法如图4.30所示:图4.30展示相应窗体图4.31窗体实例化语句4.3.4登陆日志的建立登陆日志,是数据库的一个表,这张表格的数据不可以去人为的去输入数据,而是需要通过系统上面所反馈的值去自动的建立一个数据实时动态更新的表,要想完成这张表格需要以下几个步骤;建立登陆日志表建立这个登陆日志的表,建议使用新建查询因为这里涉及到一个叫logId的序号列,这个列是从1开始依次递增的变量类型,这种类型在右键新建表的页面选择中没有,写入类型如下:序号列是intIdentity(1,1),账号列是int类型,使用者名字是varchar(20),登陆时间和结束时间都是SmallDateTime型,这里的主键是logId,但除了主键以外还要设立一个副键是loginId。在用户登陆成功以后写入使用者姓名,账号,登陆时间要想实现自动录入使用者姓名,账号,登陆时间这些数据,需要在Program定义一个当前登陆日期的Id来作为全局变量(方法如图4.33所示),在models里面新建一个类用于读取或写入这个表(如图4.32所示)需要注意的是,在这里面输入的数据类型应该与表中类型相对应,序列号和账号都为int类型,使用者的名称是string类型,登陆和结束的时间都为Datetime类型。在SysAdminsServices类中写入一个录入数据的方法,因为是在登陆成功以后录入数据,所以回到登陆界面,在登陆界面中先写入一条记录然后给当前的日志Id这个全局变量进行赋值(方法如图4.34所示)在写入这个日志的时候也需要注意,在UI展示层无法直接连接数据库通用访问类,所以在SysAdminsServices类中写入获取sqlsever数据库的时间,之后准备日志并且对其进行封装,通过try和catch语句进行判断(如图4.35所示:)判断以后写入数据库,写入完成后赋给全局变量值。图4.32建立登陆日志类图4.33定义变量图4.34写入日志方法图4.35准备日志类并进行封装判断在用户退出时写入结束时间这个功能需要先在SysAdminsServices类中写入一个结束时间的操作方法,因为只是单一的数据输入,所以直接点击结束按钮,在结束按钮的程序中通过try和catch语句进行判断,如出错则抛出带有写入退出时间错误+具体原因的消息框(如图4.36所示)当成功写入结束时间后,就完成了登陆日志表的建设。如表4.37所示:图4.36判断写入结束时间表4.37完成登陆日志4.3.5登陆查询窗口应用在完成登陆日志后,虽然可在sqlsever数据库中查看到使用者的姓名,账号,登陆时间与结束时间,但sqlsever数据库相当于这个系统的后台程序,所以使用本印章管理系统的用户无法直观的看见,所以需要设计出一个单独的登陆查询窗体来显示在sqlsever数据库中登陆日志表的数据,并提供相应的查询功能,要实现这个窗体的应用应分为以下几个步骤进行:获取登录的日志表在建立登陆的日志表时已经在models里写好了日志类,所以直接在SysAdminsServices类中写入获取数据库中登录日志表的sql方法语句,这里需要注意的是,这里所获取的类型是DateTable类型,所以需要在程序引用处引用SystemDate这个空间名,并且在()中填写获取数据类型时,应该用start和end去代替登陆时间和结束时间,并且用sql语句去判断@end>登陆时间要>s@tart(如图4.38所示)完成后回到查询窗口页面生成代码下面,初始化UI界面的表格,并且获取数据库中的登录日志表,在写入获取方法之前,需要重新引用DAL层和models层,并且实例化一个操作方法,定义一个DateTable,之后就可以写入获取并加载数这些数据的方法,里面需要填写的数据需要和获取日志表中的列名的个数相对应。方法如图4.39所示:图4.38获取登陆日志的方法图4.39实例化、定义、加载日志通过使用者的姓名,账号实现单独查找想要实现通过账号姓名进行查找这个功能,先在SysAdminsServices类中用sql语句创建一个通过账号获得使用者的名称的方法.回到登陆窗体页面设计中将俩个输入为本框的Name进行重新命名,命名方法为txt+更换名称。之后将名称填入加载数据方法中即可。方法如图4.40所示:图4.40获取并加载数这些数据的方法通过年月日天这些单选控件或者通过从一个日期到一个日期去进行查找更改相对应的控件的Name,更名方法为:单选控件是rb+更名,日期选择控件是dtp+更名,之后创建一个获取开始很结束时间的方法,在这个方法中先定义出一个时间数组,之后在下面添加if语句去写入当每个控件被触发的时候所对应的加载时间的方法,其[]中0表示开始1,表示结束。之后返回值,将数组的方法开始与结束名称写入加载数据的方法中去,之后绑定UI层表中的数据。这样就完成了登陆查询窗口应用的设计。方法如图4.41所示,详细程序见附录。图4.41时间数组4.3.6修改密码功能设计在给用户提供了印章权限,保证了印章使用的级别安全以后,也想提供一些基础的服务功能,比如一开始给用户输入初始密码,用户觉得密码太过于简单,想自行更改的话,需要联系管理者,在后台进行密码的更改,这样会给使用者和管理者都带来很多不便,为了节省时间,提高办公效率,因此设计出这个修改密码的模块,想要实现UI层面修改密码的功能,需要分以下三个部分进行设计:自动获取用户的账号和使用者名称想要实现这个功能,在修改密码的窗体页面设计中将俩个lable控件的属性名进行更改,并在SysAdminsServices类中创建通过账号获取使用者姓名的方法(如图4.42所示)之后在回到窗体的程序设计中,在它生成的程序下面填写语句,让文本框中显示的能容等于之前以及定义过的账号和密码俩个变量即可。如图4.43所示:图4.42通过账号获取姓名图4.43显示密码和姓名对用户输入的新密码和原密码进行校验在设计这个功能部分时,因为这个部分是修改密码界面的主要功能,所以在设计的时候需要明确以下三点要求:1.新密码不可与原密码一样。2.新密码的长度必须大于等于6位。3.俩次输入新密码必须一样。在明确了用户基本需求以后,需要先更改输入文本框的属性名,其次对原有密码进行基本验证,在SysAdminsServices类中用sql语句创建一个布尔类型的判断密码是否正确的方法,回到当前窗体程序设计中先实例化这个操作方法,在创建一个布尔类型更改方法,在下面输入if语句进行判断,如果有错则抛出原密码输入错误+系统消息,,在原密码校验合格以后,输入if进行判断,去判断新密码的文本框长度是否大于6位,如果不符合,则弹出输入新密码需要大于6位的字提示用户,在前俩个检验完成以后,在写入一条if语句判断原密码文本框输入内容是否等于新密码文本框1的输入内容,如果等于则弹出原密码不能与新密码相同的字样,在完成这个校验以后,在写入一个if语句判断新密码文本框1输入内容是否等于新密码文本框2中的内容,如果俩次内容不同,则弹出俩次新密码必须一致的字样,然后返回所有if语句中的值,之后点击确定按扭,进入按钮触发事件的程序中判断,是否通过了密码校验过程,如果不通过,则停止程序运行。方法如图4.44所示:图4.44密码校验:程序见附录向sql数据库输入更改以后的密码在达成更改条件以后,需要向数据库输入符合更改要求的新密码,明确需求后,在SysAdminsServices类中用sql语句创建一个更换密码的方法,回到确定按钮的程序下在try和catch框架中输入if语句去判断,新的账号和密码的值是否等于一,如果等于则弹出密码修改成功字样,如果失败,则抛出并显示密码修改异常+系统消息提示,完成这个步骤后,密码修改模块就完成。判断方法如图4.45所示:图4.45判断是否通过校验并赋值4.3.7打印功能设计打印模块是全自动印章管理系统的基础部分,也是整个系统重要部分,为了方便级别的运用管理,所以设置了三个尺寸按钮和三个尺寸页面,每个尺寸页面的上方会标明当前所在的尺寸区域,对于每个区域功能的设计需要完成以下几个需求:自动显示出打印者的名字和账号以及份数实现这个功能比较简单,因为在之前密码修改页面,做过类似的功能需求,所以直接更改页面的lable控件属性名,并且给俩个属性名赋值即可,份数字需要更改lable控件的文本框内容即可。模拟打印过程为了满足这个需求,需要新建一个等待页面在页面中放入计时控件,开启并写入程序进行时间控制,控制完成后,弹出打印成功的消息盒之后关闭等待窗体即可。方法如图4.46所示:图4.46等待窗体页面程序4.3.8信息模块设计这个模块部分是设计的最后一个部分,虽然建立了登陆查询的窗口,但查询窗口中无法显示显示老师或者学生的基本信息,这可能影响使用者的办事效率,根据这个原因,单独设计了俩块页面。显示一张具有账号,使用者姓名,工号或学号,联系方式与登录查询窗体设计相似,先在models层中新建一个读取写入的类(方法如图4.49所示)SysAdminsServices类中进行获取数据库中印章使用表的sql方法语句(如图4.47所示)在UI界面中重新引用DAL层和models层,并且实例化一个操作方法。(方法如图4.48所示)获取数据库中的印章使用表,之后写入获取并加载数这些数据的方法。如图所示,以下图片是以学生信息表来举例图4.47获取信息表的方法图4.48UI界面调用信息表图4.49models层中写入列名可以通过账号和使用者的名称,进行查询先进行属性名称的更改,账号和使用者的名称查询与登录查询方法相似,之后在SysAdminsServices类中写入查询方法,之后在UI界面调用即可。5设计总结全自动印章系统是基于c#软件和sqlsever数据库所设计出来的,该系统除了实现基本的多用户登陆以外,还可以实现对不同用户的身份级别做出判断,同时对其级别对应的印章实现权限管理,增加了用户的安全性,同时在此基础上也设计了一些基础的服务模块,如修改密码,登陆查询等服务模块,同时在一些细节的优化上面也可以体现本次设计出的全自动印章系统的人性化服务的特点。5.1设计难点(1)在初次建立数据链接进行基本的用户验证时,由于对软件操作不熟悉,导致在C#中给与的sa用户无法成功链接数据库。(2)在展示登陆的时间时,由于俩个系统存储和读取之间存在着字符差异,导致读取时间数据时比较繁琐。(3)由于该系统只用到了两款软件来进行设计与开发,这就会导致没实现一个功能,会编写大量程序,而且sql语句对于编写格式要求严格,也会给编写程序增加难度。(4)由于缺乏实物,需要模拟IO口的传导过程,这会给录入存储数据带来难度,而且会与实物调试存在一定的偏差。5.2设计创新点(1)基于C#和sqlsever数据库的后台权限操作系统。当该后台系统运行时,可以给使用该印章机的用户一个使用安全权限上的保证,也能切实缩短办事,办公时间,提高工作效率,同时也会给用户提供更改密码等提高安全性能的基础服务。(2)活动印章,可根据需要盖章的位置,去调整印章的结构位置。5.3设计不足(1)服务功能不足:最开始设计这个系统的时候,是出于对使用该印章机的用户的使用权限安全考虑作出来的,因此很多较为人性化的服务模块并没有被设计与开发。(2)出于对设计成本和软件操控熟悉度,以及软件本身的开发能力来考虑,并未能将这款印章机设计成可以自动换章,以及识别印章打印是否清楚等高端功能。(3)在设计之初,本想做出一个类似登陆查询的印章使用查询的页面,想做到由人查章,但因为实物缺失,用C#软件模拟该过程是无法很好的于原有登陆系统的信息进行匹配,之后便弃用了该页面。5.4展望我觉得全自动印章机在校园以及很多中小型的企业中会有很大的发展空间,一个体积不大的印章机,可以对公司货者学校不同级别的公章进行权限的管理,可以节省不少劳动时间,提高盖章办事的效率,在此次设计的系统中,存在着很多无法解决的技术缺陷,虽然时间紧迫和疫情带来的交流与指导上面的不便利会给与我这方面的压力,但是更多的还是自己对软件的操控程度和理解不够,一开始甚至有考虑过自动换章的这种高端操作,后来在自身设计和开发时才意识到其中所包含的困难,最后只能选择放弃。虽然我们的设计存在着很多不足之处,但我们确实运用到大学四年里所包含的知识,除此之外还学到了大学四年里未曾接触过的知识,为了开发这个系统,本人学习观看了很多管理系统的设计,同时也自学了很多C#与sqlsever数据库中的链接语句,以及数据库中表的类型和C#中管理系统开发的整体架构以及各个层的作用关系与运作。这也让我感受到了毕业设计所需要付出的精力与时间还有难度,但同时也实际的提升了我的学习能力,以及自己对新学知识的运用及探索过程。参考文献[1]杨榆.自动盖章机的设计与制作[D].红海学院,2008.[2]田晓健.中国公民出入境综合信息管理系统的开发[D].天津大学,2004[3]周涛,徐晓.基于SQLServer与C#的图书管理系统的设计与开发[J].智能计算机与应用,2018,8(04):199-202[4]司晓云,沈正,李伟,孙卫红,郭海俊,郑红梅,邓娜.基于SQLServer与C#患者信息管理系统的研究与实现[J].电脑与电信,2019(06):20-24+28[5]李茂川.后勤管理系统的设计与开发[D].电子科技大学,2014.[6]张昆.学生信息管理系统的设计与实现[D].吉林大学,2012.[7]余磊,聂纯,马晖,王毅,刘连照,徐宙.基于C#和SQLServer的信号接收机自动校准系统软件设计与实现[J].计算机测量与控制,2020,28(03):178-182.[8]张庆余,邵宁华,张苏林,靳志刚,徐发达.基于C#的驾驶机器人上位机软件开发[J].科技经济导刊,2019,27(33):7-9.[9]王东.基于C#的自动上料机监控软件开发[J].数字技术与应用,2019,37(10):8-9.[10]蔡毅.基于C#的羽毛球竞赛抽签软件的设计与实现[J].电脑知识与技术,2019,15(30):85-86.[11]齐荣贵,余岚岚,来永伟,孔庆虎.基于C#开发的交通位置图软件[J].中国煤炭地质,2018,30(S2):74-78.[12]刘宁波.基于c#+SQLserver羊场管理软件的开发与设计[C].中国畜牧兽医学会养羊学分会.2018年全国养羊生产与学术研讨会论文集.中国畜牧兽医学会养羊学分会:中国畜牧兽医学会养羊学分会,2018:88-89.[13]庄美美.基于SQLSever的旅行社管理系统设计[J].闽西职业技术学报,2017,19(02):113-115.[14]吴爽.基于VS+SQLSever减压阀测试系统设计[J].黑龙江科技信息,2016(36):44.[15]解蕾,卢永红,狄光智.基于C#/SQLSever的高校外事管理系统的设计与开发[J].山西大同大学学报(自然科学版),2016,32(04):13-15+50.[16]朱超.关于SQLSever数据库安全机制的研究与探讨[J].科学大众(科学教育),2016(08):186.[17]张成凤.水泥生产过程数据SQLServer存储方法研究[D].济南大学,2016.[18]SQLServer2005数据库应用系统开发/启明工作室编著,2007.7ISBN978-7-115-16200-7[19]ZhaiJianbo,LeiShasha,LiuLei,LiuYan,ZhangHongqin.[AutomaticDetectionSystemforCardiacPacemakersBasedonC].[J].Zhongguoyiliaoqixiezazhi=Chinesejournalofmedicalinstrumentation,2017,41(4).[20]Devraj,DeepakSingh,AdityaPratap.Onlinedatabaseandinformationsystemformungbeangermplasm.2016,39(3):349-354.[21]VipinKumarChoudhary,SunilKumar,LaxmanRamMeena,etal.DesignandImplementationofWeb-basedInformationSystemforRegion-SpecificSynthesisedIntegratedFarmingModelsinIndia.2019,10(1):9-19.[22]SiHaiZhao,WeiKangDong,GeGuo,etal.TheSoftwareDesignofUndergroundMinePersonnelManagementSystem.2013,2594:1763-1767.谢辞当我写入这个部分时,就意味着大学四年的时光的终点离我不远了,也说明了我的毕业设计进入了最后的阶段,在大学时光马上结束,即将要踏入社会的我来说,心中有很多感慨以及想要感谢的人,在这里向我这四年时光中各位敬爱的老师以及帮助过我的师兄师姐,同班同学,献上最诚挚的谢意,感谢你们在我困难时给与的建议与鼓励。经过了几个月的学习与奋斗,我们的全自动印章机设计与开发项目也基本完成,在这里首先我想感谢本次的毕设指导教师陈婷老师,受疫情的影响很多时候我们组的沟通和很多结构,页面布局的想法无法进行很好的交流,老师也无法面对面的指导学生,所以在此次毕设中,我们组遇到了很多困难,但陈婷老师非常有耐心的进行线上指导,了解每个人在设计过程中所产生的困难与疑惑,并进行指导和提出意见,有时在很晚遇到问题问她,虽然时间很晚,但老师依然会在线指导,其次很感谢在这次毕业设计时帮助过我的同学和师兄师姐,没有你们的帮助,很多技术难题我可能会花费更多时间才能解决,同时也感谢本文中所引用的参考文献作者。最后,要感谢我的毕设的组员们,谢谢你们与我一同努力,以及非常积极的配合我的工作,原我们以后日子工作顺利,生活繁花似锦。附录附录一各个窗体中的主要代码登陆窗体publicpartialclassfrmLogin:Form{publicSysAdminsServicesobjSysAdminsServices=newSysAdminsServices();publicfrmLogin(){InitializeComponent();}privatevoidbtnLogin_Click(objectsender,EventArgse){///对数据进行校验if(!CheckUserInput())return;///封装用户SysAdminsCurrentAdmins=newSysAdmins();CurrentAdmins.LoginId=Convert.ToInt32(txtLoginId.Text.Trim());CurrentAdmins.Loginpwd=txtLoginpwd.Text;///完成身份验证try{CurrentAdmins=objSysAdminsServices.Login(CurrentAdmins);}catch(Exceptionex){MessageBox.Show("用户验证身份时出错!具体错误;"+ex.Message,"系统消息",MessageBoxButtons.OK,MessageBoxIcon.Information);}///根据返回结果来判断if(CurrentAdmins==null){lblLoginInfo.Text="用户名或密码错误!";return;}elseif(CurrentAdmins.IsStudent){///把值付给全局变量Program.CurrentUser=CurrentAdmins;MessageBox.Show("欢迎学生使用");///更改当前时间try{if(objSysAdminsServices.UpdatelastLoginTime(Convert.ToInt32(txtLoginId.Text.Trim()))==1){}}catch(Exceptionex){MessageBox.Show(ex.Message);}//准备日志类LoginLogsobjLoginLogs=newLoginLogs(){LogInId=CurrentAdmins.LoginId,UserName=CurrentAdmins.UserName,LoginTime=objSysAdminsServices.GetServerTime(),};try{Program.CurrentLogId=objSysAdminsServices.WritingLoginLog(objLoginLogs);}catch(Exceptionex){MessageBox.Show("写入登陆日志出错!具体错误;"+ex.Message,"登陆消息",MessageBoxButtons.OK,MessageBoxIcon.Information);}this.DialogResult=DialogResult.OK;}else{Program.CurrentUser=CurrentAdmins;MessageBox.Show("欢迎老师使用");///更改当前时间try{if(objSysAdminsServices.UpdatelastLoginTime(Convert.ToInt32(txtLoginId.Text.Trim()))==1){}}catch(Exceptionex){MessageBox.Show(ex.Message);}//准备日志类LoginLogsobjLoginLogs=newLoginLogs(){LogInId=CurrentAdmins.LoginId,UserName=CurrentAdmins.UserName,LoginTime=objSysAdminsServices.GetServerTime(),};try{Program.CurrentLogId=objSysAdminsServices.WritingLoginLog(objLoginLogs);}catch(Exceptionex){MessageBox.Show("写入登陆日志出错!具体错误;"+ex.Message,"登陆消息",MessageBoxButtons.OK,MessageBoxIcon.Information);}this.DialogResult=DialogResult.OK;}}privatevoidbtncancel_Click(objectsender,EventArgse){Close();}privateboolCheckUserInput(){///登陆账号是否为空,4位数字if(string.IsNullOrWhiteSpace(txtLoginId.Text)){lblLoginInfo.Text="登陆账号不能为空";txtLoginId.Focus();returnfalse;}///判断四位数字if(!ValidateInput.IsInteger(txtLoginId.Text.Trim())||txtLoginId.Text.Trim().Length!=4){lblLoginInfo.Text="登陆必须是四位数字";txtLoginId.Focus();returnfalse;}///不许为空,必须要是6位if(txtLoginpwd.Text.Length<6){lblLoginInfo.Text="登陆密码必须要大于6位";txtLoginId.Focus();returnfalse;}returntrue;}privatevoidtxtLoginId_TextChanged(object

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论