vb 学生公寓管理系统

vb 学生公寓管理系统

ID:12141179

大小:3.51 MB

页数:41页

时间:2018-07-15

上传者:xinshengwencai
vb 学生公寓管理系统_第1页
vb 学生公寓管理系统_第2页
vb 学生公寓管理系统_第3页
vb 学生公寓管理系统_第4页
vb 学生公寓管理系统_第5页
资源描述:

《vb 学生公寓管理系统》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

中文摘要随着电脑的普及与使用,现在的管理也提升了一个档次,渐渐实现了无纸化办公,即从原来的人工记录管理模式转变为电脑一体化管理。高校是科研的阵地,后勤的公寓管理也应该一改传统的人工管理,更加信息化,时代化,节省人力物力,提高效率。基于这一点,开发此学生公寓管理软件。学生公寓管理软件,是以高校的管理方式为实例而设计的一种实用型管理系统。本系统最大的特点是通用性、简单操作性,适用于同行业以及一些同类型的企业管理。随着学校寄宿人员的增多,公寓管理人员的负担越来越重,为了让所有公寓管理人员能从繁重的工作中解脱出来,实现无纸化办公;使工作更有条理,更方便,更有效率而开发出这套公寓管理软件。软件从对学生的分房开始到最后的公寓管理全部电脑化。它主要包括:公寓、寝室的配置、住宿人员登记、卫生检查、公寓资产、学生违纪、值班老师记录以及对学生住宿情况查询,可以更快地了解到每个学生的住宿情况,使公寓的管理效率更高,做的更好!关键字:配置、登记、检查AbstractWiththepopularizationanduseofthecomputer,presentmanagementhasbeenpromotedmuch,moreandmorejobshavebeendonebycomputer.Itnamelychangestheoriginalartificialrecordmanagementmodeintocomputer'sintegratingandmanaging.Theuniversityisthepositionofscientificresearch,theapartmentmanagementshouldchangetraditionalmanagingartificiallytoo,fortheefficiency.So,developthemanagementsoftwareofstudent'sapartment.StudentApartmentManagementSystemisautilitymanagementsystembasedonthemanagingmodeofmanyuniversitiesandcolleges.Universalandeasy-operatingarethegreatestfeaturesofthesystem,whichisalsoapplicableforenterprisesofthesametype.Apartmentkeepersbearaincreasinglyheavyburdenbecauseofthegraduallyaddednumberofroomers.Inordertofreeapartmentkeepersfromtheheavework,andmaketheworkmoreconvienentandefficient.Theapartmentmanagementsystemisdeveloped.Thesystemcomputerizedalltheprocessesconcerningtheapartmentmanagementwhichincludeapartment,dormitorydistribution,roomerregistration,santitationexamination,andthequeryforapartmentproperty,students'violationofdiscipline,teachers'recordsandroomingsituation.Itmakestheapartmentmanagementmoreefficientandmuchbetter.Keyword:dispose、register、check 目录引言3第一章系统分析11.1开发工具简介及系统运行环境11.2开发的必要性11.3系统开发的可行性21.4数据来源2第二章数据库设计5第三章功能模块设计83.1新系统功能结构图及运行图如下:83.2系统设置:93.3公寓管理93.4卫生检查103.5公寓资产103.6记录查看与记录删除103.7值班记录103.8帮助制作11第四章程序设计12主程序流程图124.1登录界面124.2程序主界面144.3系统设置184.4公寓管理34第五章系统测试37参考文献38 引言随着电脑的普及与应用,现在的管理也需要提升一个档次。即从原来的手工记录管理模式转变为电脑一体化管理。这样会给公寓的管理人员带来很多好处,让他们管理的效率更高、效果更好,管理起来更方便。由此而产生了本管理软件――学生公寓管理软件。学生公寓管理软件是用MicrosoftVisualBasic编写完成。由于VisualBasic率先采用了可视化(VISUAL)的程序设计方法。所以利用系统提供的大量可视化控件,可以方便的以可视化方式直接绘制用户图形界面,并可直观,动态的调整界面的风格和样式,直到满意为止,从而克服了以前必须用大量代码去描述界面元素的外观和位置的传统编程模式。做起来方便,使用起来更为快捷。作为一个学生公寓的管理软件,要十分全面的贴近以及适合大学公寓的管理方法。本软件的参考资料主要有两种来源:一是参考本学校公寓的管理结构,管理方法。如各个公寓的分布特色,以及公寓的各种管理制度。这些资料是本软件的主要依据,也可以说这些资料来源于普通的生活,比较真实一些。二是来源于网络上的各种同类软件,通过这些软件可以看出一个公寓最低需要哪些管理与设置,在这些软件中,有些软件功能比较齐全,但是在管理上显的非常的不方便,使用起来十分麻烦、繁琐,有些虽然简单,但是功能上又不是十分完善,对这些软件首先要进行取其精华,弃其糟粕,从而进行编写。本软件主要包括以下方面:系统设置、公寓管理、卫生检查、公寓资产、记录查看、记录删除、值班记录、帮助制作。学生公寓管理软件目前版本为1.0.1,为一个测试版本。它目前在功能上,以及操作的简便上有很大的改进。但是还是存在一些不足,在有些功能的实现上还不是十分的理想,这也是本人在时间和精力上留下的遗憾。但是相信这些会在以后的版本中得到完善,使这个软件成为一个功能上最全,使用上最简捷方便的管理软件。 第一章系统分析系统采用MICROSOFT公司的VISUALBASIC语言编写的学生公寓管理系统,本系统在研制开发过程中,严格遵循软件工程方法,完全采用结构化程序设计方法。本系统的主要功能可以方便的对学生公寓进行管理,系统采用ACCESS数据库使数据具有较强的完整性、较好的数据安全性等特点以及提供了标准的帮助,使用户方便的获得所需的帮助。界面友好、操作简单、功能齐全、具有较好的人机接口界面是本系统的最大优点。1.1开发工具简介及系统运行环境1.1.1VB6简介本软件的开发工具为VISUALBASIC,作为一种开发语言,VISUALBASIC率先采用了可视化(VISUAL)的程序设计方法。利用系统提供的大量可视化控件,可以方便的以可视化方式直接绘制用户图形界面,并可直观、动态的调整界面的风格和样式,直到满意为止,从而克服了以前必须用大量代码去描述界面元素的外观和位置的传统编程模式。它还拥有面向对象的编程方法。面向对象的程序设计是伴随WIDNOWS图形界面的诞生而产生的一种新的程序设计思想,与传统程序设计有着较大的区别,VISUALBASIC采用了面向对象的程序设计思想。所谓“对象”就是现实生活中的每个一人,每一个可见的实体。同样,在VISUALBASIC中,用来构成用户图形界面的可视化控件,也可视为是一个对象。不同的对象,在程序中所赋给它的功能是不同的,比如,在图形界面上有两个命令按钮,一个用来实现数据的统计计算,另一个用来实现数据的打印,这两个按钮就可视为是两个不同的对象,为了实现这两个对象各自不同的功能,接下来就应该分别针对这两个对象编写程序代码,这种编程的思想和方法即为所谓的“面向对象的程序设计”。它还支持第三方软件商为其开发的可视化控制对象,如本例中就用到了一个。这些可视化控件对应的文件扩展名这OCX。只要拥有控件的OCX文件,就可将其加入到VB系统中,从而大大增强VB的编程实力。使软件做起来会更加得心应手。1.1.2HELP制作制作help文档需要一个专业制作软件,本人使用的是破解版的QuickCHM,此软件无论在功能上还在是操作上用起来都是很方便。它属于一个傻瓜型的制作软件,利用它可以快速的制作出各种你所需要的帮助文档。但是如果想制作出帮助文档,就需要使用制作网页的软件把内容先做成html形式,本人使用Dreamweaver制作的网页,然后在用此软件进行加载,最后生成chm文档。1.2开发的必要性信息资源已成为各个部门的重要财富和资源,建立一个满足各级部门信息处理需要的信息系统,也一个企业或组织生存越来越重要的信息资源。长期以来,使用传统人工的方法管理高校公寓,这种管理方式存在着许多缺点,如:效率低。而且时间一长,将产生大量的文件和数据,这对于查找、更新、维护都带来了不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥越来越重要的作用。学生公寓管理软件,是以高校的管理方式为实例而设计的一种实用型管理软件。本系统最大的特点是通用性、简单操作性。随着学校寄宿人员的增多,公寓管理人员的负担越来越重,为了让所有公寓管理人员能从繁重的工作中解脱出来,实现无纸化办公,使工作更有条理、 更方便、更有效率,而开发出这套公寓管理软件。1.3系统开发的可行性1.3.1技术上的可行性我们正走进一个信息时代,信息技术将从根本上改变人类社会的生产方式和生活方式,各行各业的业务管理现在都已经相继使用计算机来处理,可以说用计算机进行信息管理是一个总趋势。学生公寓管理软件主要是对公寓、寝室的配置、住宿人员登记、卫生检查、公寓资产、学生违纪、值班老师记录以及对学生住宿情况查询,修改,更新等。可以更快地了解到每个学生的住宿情况。开发一个学生公寓管理系统可以达到事半功倍的效果。随着数据库管理系统的普及以及可视化编程软件的出现,使数据库管理信息系统的开发变得更为简单,因此开发一个学生公寓管理系统是完全可行的。1.3.2经济上的可行性本单位有自己的微机室可以使用,不必重新购置计算机,不需要花费大量资金,是一个节约人力物力的好办法。1.3.3组织管理上的可行性本单位的领导干部具有较高的素质,它们对管理现代化有较高的认识水平,并且有各级领导的大力支持和重视。综上所述,建立一个学生公寓管理软件与人工操作相比具有速度更快,操作更准确,更节约开支等有利之处,因此建立一个学生公寓管理软件是必要可行。1.4数据来源作为一个学生公寓的管理软件,要十分全面的贴近以及适合大学公寓的管理方法。本软件的参考资料主要有两种来源:一是参考本学校公寓的管理结构,管理方法,这些资料是本软件的主要依据,也可以说这些资料来源于普通的生活,比较真实一些。二是来源于网络上的各种同类软件,通过这些软件可以看出一个公寓最低需要哪些管理与设置,在这些软件中,有些软件功能比较齐全,但是在管理上显的非常的不方便,使用起来十分麻烦、繁琐,有些虽然简单,但是功能上又不是十分完善,对这些软件首先要进行取其精华,弃其糟粕,从而进行编写。1.5新系统数据流程图 图1.1数据流程图数据字典图1.2数据元素注:其它数据元素略图1.3数据流注:其它数据流略 图1.4加工注:其它加工略注:其它数据存储略 第二章数据库设计1、E—R图图2.1E—R图2、信息的数量越来越大,数据库的作用越发突出,所以数据库的建立是系统施实的主要部分之一,它关系到整个系统的运行情况,是整个系统的重要组成部分。本系统数据库为db.mdb,在数据库中包括十个表。分别是:用户表、公寓表、班级表、寝室表、卫生等级表、学生基本情况表、学生请假情况表、学生违规情况表、寝室卫生情况表、资产表。下面介绍几个主要的表:⑴学生基本情况表主要是存放学生的基本情况,字段包括:姓名、性别、学号、班级、公寓、寝室、入学时间、年制、寝室电话、个人电话、备注。数据结构如下表:字段名数据类型数据长度姓名文本8性别文本2学号文本10班级文本10公寓文本20寝室文本10入学时间文本14年制文本8个人电话文本15备注备注⑵学生请假情况表主要存放学生请假情况,字段包括:日期、姓名、班级、公寓、寝室、天数、原因、老师、备注。数据结构如下表: 字段名数据类型数据长度日期文本14姓名文本8班级文本10公寓文本20寝室文本10天数文本10原因备注老师文本8备注备注⑶学生违规情况表主要存放学生违规情况,字段包括:日期、姓名、班级、公寓、寝室、原因、程度、处罚、备注。数据结构如下表:字段名数据类型数据长度日期文本14姓名文本8班级文本10公寓文本20寝室文本10原因备注程度备注处罚备注备注备注⑷卫生情况表主要存放寝室卫生情况,字段包括:日期、公寓、寝室、检查1到5、得分、减分、等级、备注。其中检查1到5是为了在没有使用者想输入的记录的情况下自己输入而设计的,保证了系统的可修改性、可扩展性。数据结构如下表:字段名数据类型数据长度日期文本14公寓文本20寝室文本10检查1文本40检查2文本40检查3文本40检查4文本40检查5文本40得分文本4减分文本4等级文本6备注备注⑸资产表主要存放寝室新增资产情况,字段包括:日期、公寓、名称、数量、单价、总价、用途、备注。数据结构如下表: 字段名数据类型数据长度日期文本14公寓文本20名称文本20数量文本4单价文本10总价文本10用途备注备注备注 第三章功能模块设计3.1新系统功能结构图及运行图如下:1、系统功能结构图:图3.1系统功能结构图2、系统功能结构图运行图:图3.2系统功能结构运行图 经过系统分析,确定了本软件主要包括以下方面:系统设置、公寓管理、卫生检查、公寓资产、记录查看、记录删除、值班记录、帮助制作。3.2系统设置:主要完成:用户管理、公寓设置、数据备份、数据转换、退出的功能。运行图如下:图3.3系统设置运行图3.2.1用户管理可以进行管理人员的添加和修改以及删除操作。添加人员可以分为两类:普通用户、管理员。可以视不同人员而添加。管理员拥有所有权力,对整个系统的操作。普通用户只有浏览、及一些简单的添加操作权力。无用户设置、公寓设置及记录删除等权力。3.2.2公寓设置分为三个主要的操作:公寓设置、寝室设置、班级设置。在这里可以添加学校所有的公寓、所有班级、每个公寓的所有寝室,也可以用此软件管理一幢公寓。这样操作起来会更简单、操作一目了然。3.2.3数据备份这是一个数据管理软件所必不可少的一部分,利用它可以及时的备份当前的数据库以及在出现故障后利用已保存的数据进行恢复。3.2.4数据转换利用数据转换将当前数据库中的表转换成Excel表格的形式,显示更为直观,可以进行打印等操作。3.3公寓管理主要完成:学生请假、学生违规、床位设置的功能。运行图如下:图3.4公寓管理运行图3.3.1学生请假主要是对学生请假记录做一个添加。利用它可以把学生的基本的请假资料保存起来。3.3.2学生违规主要是对学生违规记录做一个添加。利用它可以把学生的基本的违规资料保存起来。3.3.3床位设置 通过床位设置可以简单查看每个公寓每个寝室的床位使用情况以及床位剩余情况。还可以通过详细查看,查看到某个公寓某个寝室住宿人员的人数,以及具体的住宿人员的名字。3.4卫生检查主要完成:添加检查记录的功能。卫生检查可以对卫生检查的结果进行记录。这里的卫生标准一共有五项可以填写,在每一项里已经基本设置了所不合标准的记录,你可以在下拉列表框中进行选择即可,但是如果没有你想输入的记录的话,也可以自己输入。运行图如下:图3.5卫生检查运行图3.5公寓资产主要完成:添加新增物品的功能。可以对公寓资产的收入或其它物品的入库进行记录。运行图如下:图3.6公寓资产运行图3.6记录查看与记录删除主要是对学生请假、学生违规、卫生记录,公寓资产等记录所进行的操作,利用这两个功能可以对任一记录进行查看与删除。运行图如下:图3.7记录查看图3.8记录删除运行图3.7值班记录它的功能主要是针对值班人员开发出来的,在这里可以让值班人员对当天值班情况进行一个小记,以便日后查看。运行图如下: 图3.9值班记录运行图3.8帮助制作对于一个稍显正规的软件来说帮助的制作都是必不可少的内容,本程序也不例外,制作了此帮助文档。在程序中可以按F1或点击帮助菜单来显示此help.Chm文档。以便对本软件进行快速操作。运行图如下:图3.10帮助运行图 第四章程序设计主程序流程图4.1登录界面此界面是由Photoshop制作而成。在做这个登录面的时候想了很多,最后选择了这种,感觉它看起来干净,整齐。又不失其庄雅。加上本单位最有特色的建筑,会让人一目了然。4.1.1登录图片显示 图4.1登录界面4.1.2界面制作与实现在这个界面中,主要处理的是判断当前用户输入的信息是否正确。如果正确,那么它属于哪种类型用户。因为此管理软件在登录后不同类型的用户显示的窗体与实现的功能都不是一样的,它们会有所差别!(1)浮动按钮的实现确定和取消两个按钮在鼠标没有放上去之前看上去只是一个普通的平面字效果,但是当你把鼠标放在这几个字上面后,它会显示凸出的效果,按下后呈现凹陷的效果。总体实现立体的感觉。原理主要是在鼠标mousemove事件与线的颜色变化组合来实现。主要代码如下:在窗体中的鼠标移动过程中,以及在窗体初始化的时候,要把添加的线的.Visible属性设置为False,只有在鼠标按下的时候在改变其颜色即可。PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,xAsSingle,YAsSingle)Line1.Visible=FalseLine2.Visible=FalseLine3.Visible=FalseLine4.Visible=FalseLine5.Visible=FalseLine6.Visible=FalseLine7.Visible=FalseLine8.Visible=FalseEndSub鼠标按下的时候设置线条的颜色如下:PrivateSubLabel3_MouseDown(ButtonAsInteger,ShiftAsInteger,xAsSingle,YAsSingle)Line1.BorderColor=&H808080Line2.BorderColor=&H808080Line3.BorderColor=&HE0E0E0Line4.BorderColor=&HE0E0E0EndSub鼠标移动到标签的时候设置线条的颜色如下:PrivateSubLabel3_MouseMove(ButtonAsInteger,ShiftAsInteger,xAsSingle,YAsSingle)Line1.BorderColor=&HE0E0E0Line2.BorderColor=&HE0E0E0Line3.BorderColor=&H808080Line4.BorderColor=&H808080 Line1.Visible=TrueLine2.Visible=TrueLine3.Visible=TrueLine4.Visible=TrueEndSub(2)用户类型判断在数据库中建了一人yonghu表。在添加管理人员时有两种默认级别。管理员、普通用户。管理员拥有对数据库操作的一切权限。普通用户只有普通的查看,数据转换等。没有删除等操作功能。前用户成功登录后,会在主窗体的状态栏中显示出当前用户及其用户类型。主要代码如下:设置当前控件连接的数据库DimproviderAsStringDimdatasourceAsStringprovider="provider=Microsoft.jet.oledb.4.0"datasource="datasource="&App.Path&"DB.mdb"WithAdodc1.Mode=adModeReadWrite.ConnectionString=provider&";"&datasource.CommandType=adCmdTable.RecordSource="yonghu".Refresh.Recordset.MoveFirstEndWith对用户进行判断IfText1.Text=""ThenMsgBox"请输入用户名!",48,"提示"ExitSubEndIfAdodc1.Recordset.Find"用户='"&Text1.Text&"'"IfAdodc1.Recordset.EOF=FalseAndText2.Text=Trim(Adodc1.Recordset.Fields("pass"))Thenmain.Text1.Text=Adodc1.Recordset.Fields("级别")main.Text2.Text=Adodc1.Recordset.Fields("用户")main.ShowUnloadMeElseText1.Text=""Text2.Text=""MsgBox"登录不成功,请重新登录!",48,"提示"EndIf4.2程序主界面程序主界面为本软件的显示的核心部分。一切主要操作及显示都通过这里完成。整个界面主要由五部分组成。菜单部分、工具栏、左侧操作栏、右侧显示栏以及状态栏。①界面效果图如下: 图4.2程序主界面菜单栏的详见附录内容,这里就不提了。左侧操作栏和右侧显示栏会在下面的内容中做介绍,现在只简单介绍一下工具栏和状态栏,以及主窗体的各个事件。工具栏主要是由coolbar制作而成。由它制做的工具栏的显示效果会更有立体感一些。这里只列出了几个常用的按钮。其中的添加按钮是用来对公寓住宿人员进行添加,修改也是对所住宿人员进行修改,想要进行修改时必须显示所有记录时才可以进行。在这里值得一提的是删除DataGrid的操作,由于不知道它的当前数据源是哪个,所以在删除前要确定它的数据源,也就是它所链接的adodc1的数据源,或者是其它ado控件对它的数据源进行重新绑定后的数据库表,也有可能是经过一个查询后得到的记录。②它的实现方法如下所示:DimoAsAdodcSeto=DataGrid1.datasourceo.Recordset.Deleteo.Recordset.Update这里主要是用到了ado对像的方法。用这个方法得到数据源。下面是整个工具栏运行时代码:SelectCaseButton.IndexCase1sel.Show1Case3add.Show1Case5OnErrorGoTonext2DimsAsAdodcSets=DataGrid1.datasourceIfs.RecordSource="users"Thenedit.Show1EndIfnext2: Case7OnErrorResumeNextDimoAsAdodcSeto=DataGrid1.datasourceo.Recordset.Deleteo.Recordset.UpdateCase9back.Show1Case11WithAdodc1.Mode=adModeReadWrite.ConnectionString=provider&";"&datasource.CommandType=adCmdTable.RecordSource="users"'.RefreshEndWithSetDataGrid1.datasource=Adodc1DataGrid1.RefreshCalldxCase13UnloadMeEndSelect状态栏分四个部分。第一个为固定显示当前所用软件名称及作者。其中第二个和第三部分为动态显示的,它会显示出每次用户登录名称及其管理模式。由上图可以看出,lf为本软件管理员。第四部分为日期与时间的显示。其中第三部分的代码实现如下:main.Text1.Text=Adodc1.Recordset.Fields("级别")main.Text2.Text=Adodc1.Recordset.Fields("用户")StatusBar1.Panels(2).Text="当前用户:"&Text2.TextStatusBar1.Panels(3).Text="用户模式:"&Text1.TextStatusBar1.Panels(4).Text=Date&""&Time'设置普通用户模式IfText1.Text="普通用户"Thenyhgl.Visible=Falseg1.Visible=Falsejlsc.Visible=Falsegysz.Visible=FalseToolbar1.Buttons(5).Visible=FalseToolbar1.Buttons(6).Visible=FalseToolbar1.Buttons(7).Visible=FalseToolbar1.Buttons(8).Visible=FalseEndIf主窗体在程序运行中会遇到不断改变其大小,最小化,最大化,以及用鼠标来改变,这里需要在窗体的Resize事件中添加代码,让程序中用到的各个控件随时可以适应窗体改变后的大小,在这里改变的控件主要有DataGrid、TreeView系列及Frame控件、StatusBar。下面就是设置它们大小的程序代码:DataGrid1.Width=main.Width-SSTab1.Width DataGrid1.Height=main.Height-StatusBar1.Height-CoolBar1.Height-750SSTab1.Height=main.Height-StatusBar1.Height-CoolBar1.Height-750Frame1.Height=main.Height-StatusBar1.Height-CoolBar1.Height-1200Frame2.Height=main.Height-StatusBar1.Height-CoolBar1.Height-1200Frame3.Height=main.Height-StatusBar1.Height-CoolBar1.Height-1200TreeView1.Height=main.Height-StatusBar1.Height-CoolBar1.Height-1500TreeView2.Height=main.Height-StatusBar1.Height-CoolBar1.Height-1500TreeView3.Height=main.Height-StatusBar1.Height-CoolBar1.Height-1500Y=main.Widthx=(Y-z)/4StatusBar1.Panels(1).Width=u+xStatusBar1.Panels(2).Width=v+xStatusBar1.Panels(3).Width=w+xStatusBar1.Panels(4).Width=m+x这个软件的主要部分都在这里运行、查看,所以在主窗体的load事件里要把所用的到的东西都要加载进来,例如所在程序运行时所用到的表,左侧treeview部分树形显示的初始化。在这里几乎用到了所有的表,如下所示:provider="provider=Microsoft.jet.oledb.4.0"datasource="datasource="&App.Path&"DB.mdb"WithAdodc1.Mode=adModeReadWrite.ConnectionString=provider&";"&datasource.CommandType=adCmdTable.RecordSource="users"'.RefreshEndWithWithAdodc2.Mode=adModeReadWrite.ConnectionString=provider&";"&datasource.CommandType=adCmdTable.RecordSource="gongyu".RefreshEndWithWithAdodc3.Mode=adModeReadWrite.ConnectionString=provider&";"&datasource.CommandType=adCmdTable.RecordSource="class".RefreshEndWithWithAdodc4.Mode=adModeReadWrite.ConnectionString=provider&";"&datasource .CommandType=adCmdTable.RecordSource="weisheng".RefreshEndWithWithAdodc5.Mode=adModeReadWrite.ConnectionString=provider&";"&datasourceEndWithWithAdodc6.Mode=adModeReadWrite.ConnectionString=provider&";"&datasource.CommandType=adCmdTable.RecordSource="dengji".RefreshEndWithWithAdodc7.Mode=adModeReadWrite.ConnectionString=provider&";"&datasource.CommandType=adCmdTable.RecordSource="qinshi".RefreshEndWithWithAdodc9.Mode=adModeReadWrite.ConnectionString=provider&";"&datasource.CommandType=adCmdTable.RecordSource="zichan".RefreshEndWithtreeview部分树形显示的初始化在这里已经做了几个过程,调用即可。4.3系统设置4.3.1用户管理①界面效果图 图4.3用户管理②界面制作与实现方法这个界面总体来说各个控件比较简单,但是作为一个添加删除管理员的操作,它已经连接到了数据库,与数据库的yonghu表相联。各个控件也与数据库中表的字段绑定。在窗体初始化的时候要判断当前数据库表中是否有记录,如果没有记录那么有些按钮将会被设置成为失效状态,否则会出现错误。设置代码如下:DimproviderAsStringDimdatasourceAsStringprovider="provider=Microsoft.jet.oledb.4.0"datasource="datasource="&App.Path&"DB.mdb"WithAdodc1.Mode=adModeReadWrite.ConnectionString=provider&";"&datasource.CommandType=adCmdTable.RecordSource="yonghu".RefreshEndWithOption1.Enabled=FalseOption2.Enabled=FalseIfAdodc1.Recordset.RecordCount=0ThenCommand2.Enabled=FalseCommand3.Enabled=FalseCommand5.Enabled=FalseCommand6.Enabled=FalseEndIfText2.Text=Text3.Text上一条与下一条的功能一目了然,它们可以对当前表进行上一条记录或下一条记录依次查看。当找到记录后,可以对其进行相对的删除、修改等操作。上一条记录与下一条的记录在查看时有一个判断。当表中记录移到最前面(BOF)或最后面(EOF)时,会把上一条或下一条其中的一个按钮的enable属性设置为true。即不可以前查看或向后查看。上一条与下一条主要代码如下:Adodc1.Recordset.MovePrevious'移动记录 Command6.Enabled=TrueIfAdodc1.Recordset.BOFThenAdodc1.Recordset.MoveFirstCommand5.Enabled=FalseEndIfAdodc1.Recordset.MoveNext'移动记录Command5.Enabled=TrueIfAdodc1.Recordset.EOFThenAdodc1.Recordset.MoveLastCommand6.Enabled=FalseEndIf添加用户可以添加使用该管理软件的用户。添加的时候可以选择所添加人物的级别。软件默认为两个级别:管理员、普通用户。管理员拥有对此软件管理操作等一切的权力。普通用户,只有普通的查看、查询、备份、添加等权力。没有对记录删除等权力。在添加用户时你可以选择一个且必须选择一个。然后输入此用户的用户名和密码即可!添加用户主要代码:IfCommand1.Caption="添加"ThenCommand2.Enabled=FalseCommand5.Enabled=FalseCommand6.Enabled=FalseCommand1.Caption="确定"Command3.Caption="取消"Adodc1.Recordset.AddNewOption1.Enabled=TrueOption2.Enabled=TrueText1.Enabled=TrueText2.Enabled=TrueText3.Enabled=TrueText2.Text=""ElseIfText1.Text=""ThenMsgBox"用户名不能为空!",48,"提示"ElseIfText2.Text=""ThenMsgBox"密码不能为空!",48,"提示"ElseIfText2.Text<>Text3.TextThenMsgBox"密码两次需一致!",48,"提示"ElseIfText4.Text=""ThenMsgBox"请选择所建用户类型!",48,"提示"ElseCommand2.Enabled=TrueCommand3.Enabled=TrueCommand5.Enabled=TrueCommand6.Enabled=TrueCommand3.Caption="编辑"Command1.Caption="添加"Adodc1.Recordset.UpdateText1.Enabled=False Text2.Enabled=FalseText3.Enabled=FalseText4.Enabled=FalseOption1.Value=FalseOption2.Value=FalseOption1.Enabled=FalseOption2.Enabled=FalseEndIf删除操作可以把当前记录删除掉。一经删除即不可以在恢复。所以在操作前要想好。删除操作部分代码:IfAdodc1.Recordset.RecordCount=1ThenCommand2.Enabled=FalseEndIfIf(MsgBox("你真的想删除当前记录吗?",vbOKCancel,"系统提示"))=vbOKThenAdodc1.Recordset.DeleteAdodc1.Recordset.MoveFirstAdodc1.RefreshEndIf编辑操作可以对当前所选择的用户进行编辑,可以修改其用户名与密码。当当前用户感觉自己用户名称或密码有泄露时,可以进行修改。修改记录即更新表中的某一条记录。编辑操作主要代码如下:Command2.Enabled=FalseText1.Enabled=TrueText2.Enabled=TrueText3.Enabled=TrueText4.Enabled=TrueOption1.Enabled=TrueOption2.Enabled=TrueCommand1.Caption="确定"ElseIfCommand3.Caption="取消"ThenCommand3.Caption="编辑"Command1.Caption="添加"Command2.Enabled=TrueCommand5.Enabled=TrueCommand6.Enabled=TrueText2.Text=Text3.TextText1.Enabled=FalseText2.Enabled=FalseText3.Enabled=FalseText4.Enabled=FalseOption1.Value=FalseOption2.Value=FalseOption1.Enabled=FalseOption2.Enabled=FalseEndIf4.3.2公寓设置 公寓设置可以说是本程序中一关键部分。因为所有的设置都在此进行。包括公寓添加、修改、删除。寝室的添加、修改、删除以及班级的添加、修改和删除操作。只有正确的对这些设置进行添加修改,才能输入正确的记录。这里主要涉及到的问题是datagrid的显示,以及treeview及时形成新的结构。还有一些就是对表记录的复杂操作。在点击sstab各版的时候,要在这时重新生成寝室设置中的树型结构,SelectCasePreviousTabCase0Callstartree1Case1Combo1.ClearDimIAsIntegerI=1IfAdodc1.Recordset.RecordCount<>0ThenAdodc1.Recordset.MoveFirstDoWhileI"M"ThenEndIfrstschema.MoveNextLoopcnn1.CloseOnErrorGoToerrPathName=App.Path&"db.MDB"dbasize=FileLen(PathName)err:ExitSub数据备份部分在本程序中用到了一个模块,在模块中有一个方法,dobackup。点击备份按钮后开始备份,代码如下:IftxtDestination<>""ThenDoBackupPathName,txtDestinationMsgBox"备份成功!",,"提示"ElseIftxtDestination=""ThenMsgBox"Youmustspecifyadistinationforthebackup",vbCritical其中DoBackup为模块中已定义的方法,在这里进行调用。Dobackup实现方法代码如下所示:DimlFileOpAsLongDimlresultAsLongDimlFlagsAsLongDimSHFileOpAsSHFILEOPSTRUCTDimstrSourceDirAsStringDimstrDestinationDirAsStringScreen.MousePointer=vbHourglassBackupFolderName=strDestinationPathMkDirBackupFolderName&"Backup-"&Format(Date,"yyyy.mm.dd")lFileOp=FO_COPYlFlags=lFlagsAndNotFOF_SILENTlFlags=lFlagsOrFOF_NOCONFIRMATIONlFlags=lFlagsOrFOF_NOCONFIRMMKDIRlFlags=lFlagsOrFOF_FILESONLYWithSHFileOp.wFunc=lFileOp.pFrom=strSourcePath&vbNullChar.pTo=strDestinationPath&"Backup-"&Format(Date,"yyyy.mm.dd")&vbNullChar.fFlags=lFlags EndWithlresult=SHFileOperation(SHFileOp)Screen.MousePointer=vbDefaultfrmBackupDba.lblStatus="BackupComplete"在备份分前先要选择一个备份路径,点击…那个按钮开始进行选择,实现方法如下:DimstrTempAsStringstrTemp=fBrowseForFolder(Me.hwnd,"Selectbackuppath")IfstrTemp<>""ThentxtDestination=strTempEndIf数据恢复界面同上,它的功能主要是在当前数据库遭到破坏后,可以利用它来进行数据恢复,在数据恢复前要选择所要恢复的数据库路径,如下:DimstrTempAsStringstrTemp=fBrowseForFolder(Me.hwnd,"RestoreFrom")IfstrTemp<>""ThentxtSource=strTempdbasize2=FileLen(txtSource&"db.MDB")lblSelectedDba="SelectedBackupDatabaseis:"&Format((dbasize2/1024)/1024,"standard")&"MB."cmdRestore.Enabled=TrueEndIfErro:SelectCaseerr.NumberCase53'FileNotFoundlblSelectedDba="NoBackupatthislocation"Toolbar2.Enabled=FalseEndSelect它主要是查看数据库是否存在,如果所恢复的数据不存在,则会提示错误。数据恢复也用到了一个方法,在模块中也已经定义了该方法DoRestore。数据恢复代码如下:IfMsgBox("Restoringdatabasefromlocation"&txtSource&"willreplaceexistingdatabasefiles.DoyouwanttoContunue",vbYesNo)=vbYesThenDoRestoretxtSource.Text,App.PathIfNoDba=TrueThenMsgBox"DatabaseRestoredClickOktoExitProgram"frmRestoreDba.HideUnloadfrmRestoreDbaEndIfElselblStatus.Caption="DatabaseRestoreCanceled"EndIf其中DoRestore实现的功能源码如下所示:DEFSOURCE="PROVIDER=Microsoft.jet.oledb.4.0;PersistSecurityInfo=False;DataSource="DBName="db.MDB;JetOLEDB:DatabasePassword=matrix-se;"SetDb=NewADODB.ConnectionDb.OpenDEFSOURCE&App.Path&DBNameDimlFileOpAsLong DimlresultAsLongDimlFlagsAsLongDimSHFileOpAsSHFILEOPSTRUCTDimstrSourceDirAsStringDimstrDestinationDirAsStringDb.CloseScreen.MousePointer=vbHourglassBackupFolderName=strDestinationPathlFileOp=FO_COPYlFlags=lFlagsAndNotFOF_SILENTlFlags=lFlagsOrFOF_NOCONFIRMATIONlFlags=lFlagsOrFOF_NOCONFIRMMKDIRlFlags=lFlagsOrFOF_FILESONLYWithSHFileOp.wFunc=lFileOp.pFrom=strSourcePath&"db.MDB"&vbNullChar.pTo=strDestinationPath&vbNullChar.fFlags=lFlagsEndWithlresult=SHFileOperation(SHFileOp)SetDb=NewADODB.ConnectionDb.OpenDEFSOURCE&App.Path&DBNameScreen.MousePointer=vbDefaultfrmRestoreDba.lblStatus="RestoreComplete"说明:本程序中此部分内容参考了网上的同类型代码,对其进行修改后得到此成型作品,从功能上来讲,它已经实现了它所要完成的工作,经过测试已经没有问题,但是实现的源代码,也只有部分掌握。这实属本人精力与能力有限所置。4.3.4数据转换这个功能可以把当前列表框中的任何一个表转换成excel形式,转换后你可以看到表中的内容,也可以对表进行操作,保存,修改,打印等。①界面效果图图4.8数据转换效果图②实现方法在这里用到了一个显示gif图片的控件。选择左面list中的一个表后,点击导出后即可完成,进度条中显示当前转换进度程度。 首先要在list中加载各表名。以便进行选择转换。添加表名部分在load进行加载,其中的导出与取消按钮是由coolbar制作而成。Form的load事件处理内容如下:TMaxAni1.FileName=App.Path&"iconfind.gif"TMaxAni1.ShowGifDimcnn1AsADODB.ConnectionDimrstschemaAsADODB.RecordsetDimstrcnnAsStringSetcnn1=NewADODB.Connectionstrcnn="provider=Microsoft.jet.oledb.4.0;"&"datasource="&App.Path&"db.mdb"cnn1.OpenstrcnnSetrstschema=cnn1.OpenSchema(adSchemaTables)DoUntilrstschema.EOFtemp=rstschema!Table_NameIfLeft(temp,1)<>"M"ThenList2.AddItemtempEndIfrstschema.MoveNextLoopcnn1.CloseList2.ListIndex=0OnErrorGoToerrPathName=App.Path&"db.MDB"dbasize=FileLen(PathName)数据转换成excel用到了一个部件,在引用中用到了MicrosoftExcel9.0Objectlibrary。转换代码如下:SelectCaseButton.IndexCase1DimproviderAsStringDimdatasourceAsStringprovider="provider=Microsoft.jet.oledb.4.0"datasource="datasource="&App.Path&"DB.mdb"WithAdodc1.Mode=adModeReadWrite.ConnectionString=provider&";"&datasource.CommandType=adCmdTable.RecordSource=List2.Text.RefreshEndWithProgressBar1.Max=Adodc1.Recordset.RecordCountProgressBar1.Min=0'开始转换DimIrow,IcolAsIntegerDimIrowcount,IcolcountAsIntegerDimFieldlen()DimxlAppAsExcel.Application DimxlBookAsExcel.WorkbookDimxlSheetAsExcel.WorksheetSetxlApp=CreateObject("Excel.Application")SetxlBook=xlApp.Workbooks.addSetxlSheet=xlBook.Worksheets(1)WithAdodc1.Recordset.MoveLastIf.RecordCount<1ThenMsgBox("Error!")ExitSubEndIfIrowcount=.RecordCountIcolcount=.Fields.CountReDimFieldlen(Icolcount).MoveFirstForIrow=1ToIrowcount+1ForIcol=1ToIcolcountSelectCaseIrowCase1xlSheet.Cells(Irow,Icol).Value=.Fields(Icol-1).NameCase2IfIsNull(.Fields(Icol-1))=TrueThenFieldlen(Icol)=LenB(.Fields(Icol-1).Name)ElseFieldlen(Icol)=LenB(.Fields(Icol-1))EndIfxlSheet.Columns(Icol).ColumnWidth=Fieldlen(Icol)xlSheet.Cells(Irow,Icol).Value=.Fields(Icol-1)CaseElseFieldlen1=LenB(.Fields(Icol-1))IfFieldlen(Icol)1ThenIfNot.EOFThen.MoveNextProgressBar1.Value=ProgressBar1.Value+1EndIfNextWithxlSheet.Range(.Cells(1,1),.Cells(1,Icol-1)).Font.Name="黑体" .Range(.Cells(1,1),.Cells(1,Icol-1)).Font.Bold=True.Range(.Cells(1,1),.Cells(Irow,Icol-1)).Borders.LineStyle=xlContinuousEndWithxlApp.Visible=True'xlBook.Save'xlBook.CloseSetxlApp=NothingAdodc1.Recordset.ActiveConnection=NothingEndWithToolbar4.Buttons(1).Enabled=FalseCase2UnloadMeEndSelect4.4公寓管理4.4.1学生请假学生请假与违规在一个公寓管理中是最常见的问题了,所以在此软件中加上了这两项功能。用它们可以随时记录请假记录。①学生请假记录图片显示图4.9学生请假效果图②界面制作与实现此界面主要是对学生请假记录做一个添加。利用它可以把学生的基本的请假资料保存起来。其中的日期是系统当前的日期,它是不可以进行更改的,然后在其它文本框中输入其它详细资料即可以。这里的添加操作用的是Adodc控件,所有的文本框在初始的时候没有同Adodc绑定,而是在代码中与数据库中表的字段进行的绑定,然后进行添加操作。这样做在使用的时候有很大的方便之处。第一是窗体在初始化时不会显示任何记录,不用设置文本框为空等一系列的操作。第二是当进行记录输入时,发现问题不用输入时,不按添加按钮记录就不会进行添加。注意的是,在添加前要确定所有的文本框都要进行详细填写,否则会提示输入详细信息。添加主要代码如下:IfText1.Text=""OrText2.Text=""OrText3.Text=""OrText4.Text=""OrText5.Text=""OrText6.Text=""OrText7.Text=""OrText8.Text=""OrText9.Text=""ThenMsgBox"请输入详细信息!",,"系统提示"Else WithAdodc1.Recordset.AddNew.Recordset.Fields(0).Value=Text1.Text.Recordset.Fields(1).Value=Text2.Text.Recordset.Fields(2).Value=Text3.Text.Recordset.Fields(3).Value=Text4.Text.Recordset.Fields(4).Value=Text5.Text.Recordset.Fields(5).Value=Text6.Text.Recordset.Fields(6).Value=Text7.Text.Recordset.Fields(7).Value=Text8.Text.Recordset.Fields(8).Value=Text9.Text.Recordset.UpdateEndWithSetmain.DataGrid1.datasource=Adodc1main.DataGrid1.RefreshEndIf4.4.2学生违规①学生违规记录图片显示图4.10学生违规效果图此界面与上面的请假记录差不多。它主要是对学生的违规记录做一个添加。其中的日期也是系统当前的日期,它是不可以进行更改的,然后在其它文本框中输入其它详细资料即可以这里的违规操作用的也是Adodc控件,所有的文本框在初始的时候也没有同Adodc绑定,它也是在代码中与数据库中表的字段进行的绑定,然后进行添加操作。其它操作同上面基本是一致的,对于违规在主界面的左侧并没有快速显示操作,只可以用记录查看里面的违规查看进行选择查看。在这里所添写的记录也要全面一些,主要是为了以后查找更为方便,如果不全,系统会提示的!②违规部分代码如下:在load事件里对数据库链接的处理,以及日期文本框的设置,代码如下:provider="provider=Microsoft.jet.oledb.4.0"datasource="datasource="&App.Path&"DB.mdb"WithAdodc1.Mode=adModeReadWrite .ConnectionString=provider&";"&datasource.CommandType=adCmdTable.RecordSource="qingjia".RefreshEndWithText1.Text=DateText1.Enabled=False确定无误后,进行添加,代码如下:IfText1.Text=""OrText2.Text=""OrText3.Text=""OrText4.Text=""OrText5.Text=""OrText6.Text=""OrText7.Text=""OrText8.Text=""OrText9.Text=""ThenMsgBox"请输入详细信息!",,"系统提示"ElseWithAdodc1.Recordset.AddNew.Recordset.Fields(0).Value=Text1.Text.Recordset.Fields(1).Value=Text2.Text.Recordset.Fields(2).Value=Text3.Text.Recordset.Fields(3).Value=Text4.Text.Recordset.Fields(4).Value=Text5.Text.Recordset.Fields(5).Value=Text6.Text.Recordset.Fields(6).Value=Text7.Text.Recordset.Fields(7).Value=Text8.Text.Recordset.Fields(8).Value=Text9.Text.Recordset.UpdateEndWithSetmain.DataGrid1.datasource=Adodc1main.DataGrid1.Refresh 第五章系统测试编写出的各功能模块需要进行测试,对于模块化应用程序,软件开发的最后一部分便是不断的测试程序最终编译成可执行的.exe文件,该阶段主要对系统的正确性及完整性等方面进行测试。主要进行:功能确认测试、运行测试、健壮性测试、安全性测试以及查错方面的测试等,系统测试的测试人员由测试组成员(或质量保证人员)或测试组成员与用户共同测试,在整个系统开发完成,即将交付用户使用前进行。在这一阶段,对整个系统进行测试,系统测试结束后我们应该打软件打包,使其脱离VB的环境下也能正常运行。打包应将所有程序需要的文件加载进去,如数据库(DB.MDB),每日一记和帮助的文件都要进行加载。在调试程序过程中,由于某些内在的错误影响程序的运行,在采用上述调试方法对程序进行调试后,程序运行情况良好,达到了预期的设计目标,基本上满足了用户的需要。 参考文献[1]VisualBasic程序设计王栋清华大学出版社[2]VisualBasic高级编程宋伟吴建国清华大学出版社[3]VisualBasic6.0入门与提高戴红陈哲清华大学出版社[4]VisualBasic6.0应用指南何斌王运坚冯峰刘醒人民邮电出版社[5]VisualBasic高级编程技术陈明杨劲松北京希望电子出版社[6]VisualBasic实用教程陈弘原中国水利水电出版社[7]数据库系统概论   萨师煊、王珊高等教育出版社 [8]软件系统开发技术潘锦平施小姚西安电子科技大学出版

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭