高校学生宿舍管理系统

点赞:5098 浏览:18913 近期更新时间:2024-01-03 作者:网友分享原创网站原创

高校学生宿舍管理系统

——公寓管理,报表管理等模块设计

摘 要

高校学生管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面.对于后台数据库的建立和维护要求建立起数据一致性和完整性强,数据安全性好的库.而对于前端应用程序的开发则要求应用程序提供强大的数据操纵功能,界面友好,使用简单方便等特点.我们使用公司的6.0和MSSQLServer2000数据库开发工具,是比较完备的面向数据库开发工具同时它也利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,提供了强大的数据环境,更有利于对数据库和数据表的直接操作和处理提高了编程效率和可靠性.关 键 词: 目录摘 要II

ABSTRACTIII

引言1

第一章系统需求分析2

1.1功能需求2

1.1.1基本功能需求2

1.1.2报表需求2

1.1.3用户界面需求3

1.2性能需求3

1.3数据库选择3

1.4环境4

第二章相关知识点介绍5

2.1Delphi知识介绍5

2.2SQLServer2000知识介绍6

第三章宿舍管理系统详细设计9

3.1系统功能模块图9

3.1.1系统管理模块10

3.1.2公寓管理模块10

3.1.3学生管理模块10

3.1.4信息查询模块11

3.1.5出入登记模块11

3.1.6信息修改模块11

3.1.7报表管理模块12

3.1.8关于模块12

3.2系统E-R图13

3.3系统所需表14

3.3.1系统表14

3.3.2表的说明18

3.4具体模块设计19

3.4.1用户管理,修改模块功能详细设计19

3.4.2公寓管理模块详细设计22

3.4.3信息查询模块详细设计25

3.4.4报表管理模块详细设计29

第四章系统测试33

4.1所遇问题33

4.2系统测试34

第五章总结36

致谢37

2452;成.T-SQL的分类也有类似于SQL语言的分类,不过做了许多扩充.T-SQL语言的分类如下:变量说明语句,数据定义语言(用来建立数据库,数据库对象和定义其列,大部分是以CREATE开头的命令),数据操纵语言(用来操纵数据库中的数据的命令,如:SELECT,INSERT,DELETE等),数据控制语言(用来控制数据库组件的存取许可,存取权限等的命令,如:GRANT等),流程控制语言(用于设计应用程序的语句,如:If等While和Case等),内嵌函数(说明变量的命令),其他命令(嵌于命令中使用的标准函数).

在数据库中,数据查询是通过SELECT语句来完成的.SELECT语句可以从数据库中按用户要求检索数据,并将查询结果以表格的形式返回.当然用户在查询数据库时往往并不需要了解全部信息,而只需要其中一部分满足某些条件的信息.在这种情况下就需要在SELECT语句中加入条件以选择数据行,这时,就用到WHERE子句.WHERE子句中的条件是由表达式以及逻辑联结词AND,OR和NOT等组成.用户在进行查询时,会出现重复结果,这时就需要使用DISTINCT关键字来取消重复部分.在WHERE子句中,可以使用谓词LIKE来进行字符串的匹配检查.当用户要对查询结果进行排序时,就需要在SELECT语句中加入ORDERBY子句.在ORDERBY子句中,可以使用一个或多个排序,要求其优先级次序从左到右.

为了使数据库更加精简,最大限度的减少数据库冗余数据.可以使用连接查询来实现多个表的连接.连接查询可以分为等值连接查询,非等值连接查询,自身连接查询等.表之间的连接如果是通过相等的字段值连接起来的查询称为等值连接查询.在等值查询的连接条件中,不使用等号而使用其他比较运算符,就构成了非等值连接查询,可以使用的比较运算符有〉,〉等于,!等于等.连接不仅可以在表之间进行,也可以使一个表同其自身进行连接,这种连接成为自身连接,相应得查询成为自连接查询.

一个数据库能否保持信息的正确性,及时性,很大程度上依赖数据库的更新功能的强弱与数据库的实时更新能力,这些操作包括插入,删除,修改,也成为更新3种操作.

第三章宿舍管理系统详细设计

3.1系统功能模块图

图3.1系统功能模块图

在整体设计中,我们将宿舍管理系统分为八个大的模块:系统管理模块,公寓管理模块,学生管理模块,信息查询模块,出入登记模块,信息修改模块,报表管理模块,关于模块.每个模块将实现不同的功能.下面将具体进行介绍.

3.1.1系统管理模块

系统管理模块包括:超级用户登录,普通用户登录,用户修改,用户管理,退出系统五个部分.

1.超级用户登录:实现系统管理人员登录.

2.普通用户登录:实现一般管理人员登录.

3.用户管理:实现系统管理人员授予或取消一般用户登录该系统的用户名和.

4.修改:实现所用用户的更改功能.

5.退出系统:实现正常退出宿舍管理系统.

3.1.2公寓管理模块

公寓管理模块包括:楼房管理,宿舍管理,员工管理三个大的部分.

1.楼房管理:登记学校所有住宿楼情况.

2.宿舍管理:登记学校所有宿舍的情况.

3.员工原理:实现楼房管理人员的添加功能.

3.1.3学生管理模块

学生管理模块包括:学生基本信息录入,学生财物登记,学生学期注册,学生离校管理四项功能.

1.学生基本信息录入:实现学生基本信息情况的登记及宿舍的分配功能.

2.学生财物登记:登记学生在校期间所拥有的公共及私有贵重物品情况.

3.学生学期注册管理:登记学生在校期间每学期的宿舍缴费情况.

4.学生离校管理:实现学生毕业离校处理,注销该学生信息.

3.1.4信息查询模块

信息查询模块基本上包括:按学号进行查询,按姓名进行查询,按班级查询,按寝室号查询,每栋楼房住宿情况查询五个部分.

1.按学号进行查询:实现每个学生基本信息情况的查询功能.

2.按姓名查询:通过学生姓名查询学生基本信息情况.

3.按班级查询:通过班级查询某班级学生住宿情况及该班级学生信息.

4.按寝室号查询:查看每个宿舍所住学生信息情况.

5.楼房住宿情况查询:查询每栋楼房的所有宿舍的住宿情况及宿舍楼所住学生统计情况.

3.1.5出入登记模块

出入登记模块包括:进楼物品登记,出楼物品登记,人员来访登记,结束访问登记四个功能模块.

1.进楼物品登记:详细登记某学生搬入宿舍楼的物品情况.

2.出楼物品登记:详细登记某学生搬出宿舍楼的物品情况.

3.人员来访登记:详细登记进入宿舍楼的外来人员情况.

4.结束访问登记:详细登记外来人员的离开情况.

3.1.6信息修改模块

信息修改模块包括:学生基本信息修改,员工基本信息修改,个人财物信息修改三个大的功能.

1.学生基本信息修改:实现系统管理人员对学生基本信息情况所作的添加,修改,删除.

2.员工信息修改:实现系统管理人员对楼房员工的修改,删除功能.

3.个人财物修改:实现对学生个人财物的添加,修改,删除功能.

3.1.7报表管理模块

报表管理模块包括:学生信息打印,员工信息打印,宿舍交费情况打印,物品出入楼信息打印,某宿舍住宿情况打印五个功能.

1.学生信息:查询并打印每个学生的详细基本信息情况.

2.员工信息:查询并打印每栋宿舍楼的所有员工信息情况.

3.宿舍交费情况:查询并打印已交清或未交清住宿费的学生信息.

4.物品出入楼信息:查询并打印某学生的物品出入宿舍楼的信息情况.

5.宿舍住宿情况:查询并打印某个宿舍的详细住宿情况.

6.人员来访情况:查询并打印某个时间段的人员来访情况.

3.1.8关于模块

此模块是对学生宿舍管理系统开发者相关信息的一个简单介绍.

3.2系统E-R图

在我所设计的模块中,主要涉及到员工,楼房,寝室这三个实体,所以在E-R图中我只是将这三个实体的属性进行了详细说明.

图3.2系统E-R图

3.3系统所需表

综合以上分析,要实现上面的所有功能模块,共需要设计九个表,它们分别是:学生基本情况表,寝室表,员工表,楼房表,人员来访表,学生财产表,学期注册表,权限表,物品出入楼表.

3.3.1系统表

1.用户表:登记管理人员的用户名,及登录权限.

2.学生基本情况表:详细登记学生基本信息及学生住宿情况.

3.寝室表:登记所有宿舍的详细情况.

4.员工表:登记所有管理人员的详细情况.

5.人员来访表:登记所有来访人员的详细情况.

6.物品出入表:详细登记学生物品出楼信息.

7.楼房表:登记所有住宿楼情况.

8.学期注册表:登记学生每学期的注册情况.

9.学生财产表:登记学生物品情况.

表3.1用户表(LoginIn)

字段名描述数据类型数据长度NULLPrimarykeyUserName用户名char10NYUserId用户char10NYUserPower用户权限char20NN

表3.2学生基本情况表(Student)

字段名描述数据类型数据长度NULLPrimarykeyStu_Id学号char20NYandFStu_Name姓名char10YNStu_Sex性别char10YNDor_Id寝室号char10NFStu_Enr入学日期datetime10YNStu_Birth出生日期datetime10YNStu_Study所学专业char10YNStu_Class班级char10YNStu_Polit政治面貌char10YNStu_Add家庭住址char50YNStu_Telchar10YNStu_Sta状态char10YNStu_Des备注char50YN

表3.3寝室表(Dorm)

字段名描述数据类型数据长度NULLPrimarykeyDor_Id寝室号char10NYDor_Sex居住性别char10YNDor_Num应住人数char10YNDor_Fact实住人数char10YNDor_Price住宿费用char10YNDor_Telchar10YNDor_Des备注char50YN 表3.4员工表(Employee)

字段名描述数据类型数据长度NULLPrimarykeyEmp_Id员工号char20NYEmp_Name姓名char10YNEmp_Age年龄char10YNEmp_Sex性别char10YNHou_Id楼房号char10NFEmp_Job职位char10YNEmp_Add家庭住址char50YNEmp_Telchar10YNEmp_Des备注char50YN

表3.5人员来访表(Visit)

字段名描述数据类型数据长度NULLPrimarykeyVis_Name来访人姓名char10NNVis_Host被访人姓名char10YNDor_Id宿舍char10NFRelation所属关系char10YNVis_Data来访日期datetime10YNVis_Time来访时间datetime10YNLea_Time离开时间datetime10YNVis_Watch值班人char10YNVis_Cred名称char10YNVis_Des备注char50YN

表3.6物品出入楼表(Goodove)

字段名描述数据类型数据长度NULLPrimarykeyStu_Id学号char20NYG_In进楼物品char10YNG_Out出楼物品char10YNG_Date时间datetime10YNWatch值班人char10YNG_Des备注char50YN

表3.7楼房表(House)

字段名描述数据类型数据长度NULLPrimarykeyHou_Id楼房号char20NYHou_Num楼层数char10YNHou_Rom房间数char10YNHou_Peo应住人数char10YNHou_Des备注char50YN

表3.8学期注册表(Enroll)

字段名描述数据类型数据长度NULLPrimarykeyStu_Id学号char20NYDor_Id寝室char10NFEnr_Date注册日期datetime10YNEnr_Price所交费用char10YNEnr_Sta交费情况char10YNEnr_Year所交年度datetime10YYEnr_Des备注char50YN

表3.9学生财产表(Riches)

字段名描述数据类型数据长度NULLPrimarykeyStu_Id学号char20NYDor_Id寝室char10YFBed床位char10YNStool凳子号Char10YNDesk桌子号char10YNTelphonechar10YNKeySend钥匙发否char10YNBox箱子char10YNBedding被子char10YNDescription备注char50YN

3.3.2表的说明

本管理系统共用到九个表:用户表(LoginIn),学生基本情况表(Student),寝室表(Dorm),员工表(Employee),人员来访表(Visit),物品出入楼表(Goodove),楼房表(House),学生财产表(Riches),学期注册表(Enroll),各表之间均有一定的关系,可以进行关联.

1.学生基本情况表(Student),学生财产表(Riches),学期注册表(Enroll),物品出入楼表(Goodove)这四个表里面都有一个相同的字段:学号(Stu_Id),通过学号这个字段就可以将系统的这四个表关联了起来.当某个表发生插入,修改,删除等方面的改动时,相联的表之间也要进行相应的改动.学生基本情况表(Student)和寝室表(Dorm)也有一个相同的字段:寝室号(Dor_Id)将两表相关联.

2.由于员工是负责管理某栋楼房的,因此员工表(Employee),楼房表(House)这两个表之间有一个相同的字段:楼房号(Hou_Id)来进行关联.3.4具体模块设计

在系统功能模块介绍时,我们把整个系统分为系统管理模块,公寓管理模块,学生管理模块,信息查询模块,出入登记模块,信息修改模块,报表管理模块,关于模块八个基本模块.其中系统管理模块中的用户管理和修改,公寓管理模块,信息查询模块,报表管理模块是由我具体来完成的.如下图是我们学生宿舍管理系统的主界面:

图3.3宿舍管理系统主界面

3.4.1用户管理,修改模块功能详细设计

1.用户管理

图3.4用户管理界面

设计思想:

当宿舍管理系统需要加入新管理员时,具有使用该功能权限的超级用户授予新管理员以登录该系统的用户名称,用户和用户权限.像我们的后勤怎么写作总公司中的管理人员就应该具有系统管理员的权限,宿舍楼房管理人员就应该具有一般用户的权限.一般用户的权限是系统管理员授予的.当然如果某管理人员离职,那么他将不能再登录该系统,因此管理员有权收回授予其的管理权限.

具体实现:

(1).在实现该功能时,需要用到权限表LoginIn,因此需要添加一个TADOQuery控件实现窗体与数据库之间的相关联.

(2).在新增用户时,考虑到在登录该系统时,用户名及其用户是必须输入不能为空的,因此我们在实现具体添加新用户时,不能允许用户名及其为空.还有重要一点就是用户权限也是必须选择的,因为这关系到用户在使用宿舍管理系统时所具有权限问题.

(3).在删除用户时,还需要通过编码判断一下系统管理人员所要删除的用户到底存不存在.如果没有该用户那么也许是因为管理人员的输入错误,造成所删用户不存在,可以重新输入,实现删除功能.

2.修改

图3.5修改界面

设计思想:

为了防止被恶意盗用可以经常性的修改你的以增强系统的安全性,修改对于所有具有访问该系统的用户来说都可以使用.

具体实现:

(1).首先通过TADOQuery控件实现该功能模块与数据库的关联.

(2).其次为了确保该功能的完整性,在点击确认之后,需要判断一下所有的编辑框中的输入都不能为空.

(3).最后在确认时,还需要编程实现的是判断原始用户名和是否一致,只有一致才有权限修改你的.同是为了确保新的正确性,还添加了一个确认框,新和确认两者所输内容是要求完全一样,方能修改成功.

3.4.2公寓管理模块详细设计

1.楼房管理

图3.6楼房管理界面

设计思想:

楼房管理是对每栋宿舍楼的基本信息进行录入,在学校建设完新的宿舍楼时可以通过此窗体把该楼房的信息添加到数据库中去.

具体实现:

(1).由于需要和数据库表(楼房表House)相关联,所以也添加了一个TADOQuery控件实现两者之间的关联.

(2).在具体实现时需要设置像楼房号这样的具有唯一确定性的字段是不能为空的.其他字段在输入时没有太大限制,录入人员在录入时需根据自身情况再进行添加.

(3).我们还设置了一个'备注'字段,是为了方便学校登记该楼房的其他相关情况.

2.宿舍管理

图3.7宿舍管理界面

设计思想:

宿舍管理是对每栋楼房所有宿舍的一个详细情况登记,每个宿舍在数据库里面的信息都是就静态的只有里面的实住人数是动态增加的,当某个宿舍增加或减少一个学生实住人数会自动加1或减1,实现动态增减.

具体实现:

(1).首先通过TADOQuery实现数据库和窗体的相关联,再通过TDatasouse控件实现TDBGrid和宿舍表(Dorm)的相关联,那么Dorm表中的数据就会在TDBGrid中显示了,可以随时看到表中数据的动态变化.(2).在具体设计时,首先将实住人数编辑框属性设为ReadOnly型,因为该字段是动态添加,每当为一个学生分配一个宿舍,那么该宿舍的实住人数会自动加一,无需手工录入.住宿费是必须输入的,因为这和学生注册管理是相关联的.学生在学期注册时,需要根据该生所住的宿舍号来查看其应交的住宿费用.居住性别也要输入,当为某学生分配宿舍时,需要根据该生性别查一下,还能入住男生或女生的宿舍有哪些,根据所查情况再为他们分配宿舍.以免盲目分配,出现错住造成管理混乱.

3.员工管理

图3.8员工管理界面

设计思想:

员工管理是对楼房管理人员,清洁工,保卫人员进行的登记管理.该模块是有系统管理员来完成的,普通用户没有使用该项功能的权限.当某栋楼房调来新员工时,系统管理员可以通过此功能来添加员工基本信息.

具体实现:

(1).首先通过TADOQuery实现数据库和功能模块的相关联,再通过TDatasouse控件实现TDBGrid表格和员工信息表(Employee)的相关联,那么员工信息表中的数据就会在TDBgrid中显示了,可以随时看到表中数据添加,删除,修改等的动态变化.

(2).在该功能中需编程将'楼房号'所对应得下拉列表框中的属性值动态的从楼房信息表(House)中获得的.通过动态添加可以实现当楼房表中每增加一栋楼,在员工窗体的'楼房号'的下拉列表框中的会自动添加一栋,实现两个表之间的动态关联.

3.4.3信息查询模块详细设计

按学号进行查询,按姓名进行查询,按班级查询,按寝室号查询这四个功能模块在具体编程实现上基本上是一样的,因为都是针对学生信息的查询.因此我们仅以'按学号进行查询'为例来说明一下这四个功能模块的详细实现过程.其余三个模块仅介绍其实现思想.

Y

图3.9信息查询流程图

1.按学号进行查询

图3.10信息查询界面

设计思想:

按学号查询是具体的查询某学生的详细信息,包括学生的基本信息及其住宿情况.在需要调查学生的详细情况时,可以采用该功能来实现.

具体实现:

(1).首先通过TADOQuery控件实现数据库和该功能模块的关联,再通过TDatasourse实现学生信息表(Student)和TDBGrid的关联,把学生信息显示在下面的表格中.

(2).其次我还为窗体添加了一个TDBNigator控件,可以实现数据的最上一条,上一条,下一条,最下一条浏览查看.当然像按学号来查询的话也许用不到该控件,但要是按班级查询或姓名等其他查询,这个控件是非常有用的.因为通过班级或姓名查出来的学生信息数据量会非常大,所以需要通过该按钮来方便,快捷的查看.

(3).在按学号查询时首先要通过编程判断一下,数据库的学生信息表中是否存在该编号的学生,如果没有系统会提醒你'学号不存在是不是输入错误,检查一下再重新输入',所以只有存在学号才能进行查询.

(4).上述完成之后,输入所查询的学号,那么所需学生信息就会在下面表格中显示出来了.上图所显示的是所有学生信息情况.

2.按姓名进行查询

设计思想:按学生姓名实现的查询,虽然这样查出来的学生有可能不止一名,但在有些情况下(比如家人,朋友来访时,只记得学生姓名,在不清楚其学号,宿舍号的情况下,可以通过学生信息中的其它信息确定所要找的学生)可以调用此功能来实现.

3.按班级进行查询

设计思想:实现某个班级所有学生基本信息及住宿情况的查询.通过该功能模块我们可以统计某个班级的宿舍分配情况,这个班级的学生都住在哪些寝室中.

4.按寝室号查询

设计思想:在输入寝室号时可以把该宿舍所住的所有学生的信息都统计出来,方便详细了解某宿舍的学生住宿情况.

5.住宿情况查询

图3.11住宿情况查询界面

设计思想:

点击多选框里的按楼房号查询按钮可以查看某栋楼房所有宿舍的住宿情况,看看还有哪些宿舍还有空的床位,可以入住学生.还可以查看某个宿舍的详细情况.同时该模块还能够统计某栋楼房的所有学生人数.

具体实现:

(1).首先通过TADOQuery控件实现数据库和该功能模块的关联,再通过TDatasourse实现寝室表(Dorm)和TDBGrid显示表格的关联,把宿舍信息显示在下面的表格中.

(2).其次放置一个复选按钮键,可以方便实现按楼房号和按宿舍号两种方式的查询.在右边放置一个查询框,进行查询条件的输入.在按楼房号查询时,用到了模糊查询.模糊查询的在本部分的基本原理就是:我们在刚开始建库时考虑到管理方便和减少冗余,在对学生进行宿舍号登记时是这么描述的如:6-502,将其楼房号和宿舍号放一个字段中,并没有将其分开操作.所以在查询这部分当需要按楼房号进行查询时,就要注意了.检测如我们要查5号楼的住宿情况,那么在TDBGrid表格中的显示就应该是5-***,而6-502虽然也包含了5这个字符,但它不属于5号楼,所以要将其排除在外.因此我们采用了模糊查询,查询结果只显示所需信息.

(3).在住宿统计的实现上,我们使用的SQL集函数SUM()来实现的.它的主要功能就是计算一列值得总和(此列必须是数值型).将要查的楼房号,输入到查询条件中时,还需要判断该楼房号到底存不存在,如果存在在点击该模块中的'住宿统计按钮',那么该楼房所有学生的总人数会在'住宿统计'按钮右边的Memo文本显示控件里面进行显示了,同时该楼房的详细住宿情况会在表格中进行具体显示.

3.4.4报表管理模块详细设计

报表是数据库应用程序设计中非常重要的一部份,数据库应用程序通常都要生成报表,并且把所需信息打印出来,方便用户存档等得方面上的管理.由于该模块中各小模块实现的都是报表管理,所以宿舍交费情况报表管理,学生信息报表,员工信息报表,学生物品出入报表,住宿信息报表,来访信息报表这六个小功能模块只是在功能思想上不太一样,其具体设计实现时操作基本上是差不多的,因此这里只是详细介绍宿舍交费情况的具体设计实现,其他模块仅介绍其设计思想.

1.宿舍交费情况报表管理

图3.12宿舍交费情况报表管理界面

设计思想:

该模块实现的是对学生每学期所交纳住宿费的一个详细情况的查询.在学生即将毕业离校时可以通过该功能模块来查询一下,那些同学还欠有学校住宿费,在其交清之前将不准其离校,已交清的同学就可以进行离校手续的了.一般来说我们真正需要并且有用的信息就是未交清住宿费的学生清单,在学生毕业时可以通过此单来收取学生补交的住宿费等.

具体实现:

(1).首先通过TADOQuery控件实现数据库和该窗体的关联,再通过TDataSourse实现学生注册表(Enroll)和TDBGrid的关联,把学生交费信息显示在列表中.

(2).在作报表时我使用的是TQuickRep组件,通过该组件可以方便的把报表和代码联系起来,生成美观的图文报表.当然还可以用TQReport页上的控件给一个报表添加标题,页眉,页脚,等功能.还可以自动进行求和,计算均值等统计功能.报表设计时可以点击选中TQuickRep控件快捷菜单的Preview,即可在设计阶段预览打印结果.

(3).我们为每个报表管理窗体设置四个TButton功能按钮:查询,报表预览,打印报表,退出.报表管理,再打印报表之前首先查询一下用户所需信息,查询出来后可以预览一下信息是否正确,确定无误之后可以点击打印按钮,那么所有所需信息就会详细的详细地显示在纸张上,供用户查看了.

(4).在学生注册表里的'交费情况'字段我们规定它只能选择两种情况:已交清或未交清.在编辑框中输入已交清或未交清两种情况的一种,点击查询按钮,那么所需信息就会详细的显示在窗体表中.防止用户在查询时输入错误,我们需要编程实现提示功能.

下面我们以未交清住宿费的学生为例,演示一下其报表预览情况.

在上述窗体中输入'未交清'字段,则其报表显示情况如下:

图3.13报表预览图

2.学生信息报表

图3.14学生信息报表界面

设计思想:能够实现某学生详细基本情况的查询打印.当因为某些原因需要查询某学生信息时,可以调用该功能模块来实现.

3.员工信息报表

设计思想:能够实现某栋楼房所有员工情况的查询打印,如果想了解某宿舍楼工作人员的详细情况,可以调用该模块来实现.

4.学生物品出入报表

设计思想:能够实现查询某学生物品出入宿舍楼房的详细信息.如果想查看一下该学生一段时间内的出楼情况,可以通过该窗口来实现.

5.住宿信息报表

设计思想:能够将某宿舍的详细学生住宿情况打印出来.在某些情况下如果需要查看某个宿舍的详细学生情况可以调用该窗体实现报表打印功能.

6.来访信息报表

设计思想:主要实现的是将某个时间内所有来访人员的详细信息打印出来,以便于查询某些信息.

第四章系统测试

4.1所遇问题

一个系统功能的实现,需要经过这么几步,首先把大致的骨架给设计好,然后根据系统要求写代码,接着是调试程序,最后完善总结.其中最重要的两步就是中间的两步.在此次毕业设计中,给我印象最深的就是系统的调试.在调试过程中,遇到了不少的问题,不过经过我不断的查阅资料,老师的指导,同学的商讨,这些问题都逐渐得到了解决,现将整个的调试过程总结如下:

1.首先就是SQLServer数据库和Delphi开发环境的相关联.我原先使用的是BDE控件来实现SQLServer数据库和Delphi的关联,这中间要用到ODBC数据源,每次进行数据库和ODBC的相联都会发生许多错误.最后我在看书时发现Delphi中新的数据访问组件都采用了ADO技术,可以不通过BDE就能使用现行的数据控件如TDBGrid和TDBEdit对数据进行直接访问,因此缩短了ADO/OLE-DB的运行时间,更重要的是,使用ADO可以避免用户在使用程序之前手动设置BDE和ODBC属性,以免产生不必要的错误.因些通过ADO我可以方便快捷的将其进行了关联.

2.其次就是查询中出现的错误.检测设我们查询5号楼情况(如5-205,6-205,5或6代表5或6号楼,205代表宿舍号),需要程序来判断你所查询的是前面的数字,即使6-205中带有5这个字符也不能将其查询出来,因为我需要是5栋楼的详细信息.刚开始每次都犯上述错误,将6号楼中带5的宿舍也给查出来了,最后我采用了SQL中的模糊查询,模式匹配过程中,常规字符必须与字符串中指定的字符完全匹配.但可以使用字符串的任意片段匹配通配符(%或_).与使用等于和!等于字符串比较运算符相比,使用通配符可使like运算符更加灵活.通过使用like模糊查询,终于将该功能实现了.

3.在做报表过程中也出现了不少错误.我在TQuickReport组件上放置了一个显示标题的TitleBand控件,一个显示数据列名的ColumnHeaderBand和显示数据的Detail组件,但在具体实现时每次都是只显示标题和数据,不显示数据列名.最后我发现这是因为TQuickReport中的属性设定错误.我将其Dataset设置为和TADOquery1相关联后,列名终于显示出来了.


在编程过程中虽然遇到了不少困难,但在老师,同学及自己的反复研究下,最后问题都得到了解决.在解决问题的过程中我也是收获不小,同样的问题也许在不同的模块中会重复出现,通过上次调试中的所获,这次我就可以轻松解决.克服一个难题的喜悦是无法用言语可以表达的,它让我感受到了真正学到知识的那种充实感.

4.2系统测试

经过好几个月的努力,我们的的毕业设计高校学生宿舍管理系统也终于接近了尾声,不过在系统测试时可让我们花了好多功夫,为了使系统变得更加完善,我们测试了一遍又一遍.

在测试之初,由于数据库中的数据都是刚开始编程时随便输入的,一点实用性也没有,所以我们又把数据库中的数据全部清理了一下,输入了一些真实可用的数据,以便完成后面的数据测试.

在系统管理员进行用户的删除时,刚开始时是用户名正确就可以进行删除,测试时才发现也许系统中存在重名的用户名,所以不能只凭借用户名,用户,用户权限中的一个或两个正确就可以将该用户删除,必须要三者都对应起来才能完成用户的删除.还进行完善了的一点就是当管理员输入错误的用户名时,系统能够对其进行提示'本用户信息不存在,注意核对'.

再有一点就是,在员工信息录入窗口中有一个字段'楼房号',在开始的系统实现时,我是将学校所有的住宿楼都添在了'楼房号'的下拉列表框的Item属性中,是固定的.在真正系统测试时才发现,如果我们学校新建一栋宿舍楼,并且为其分配管理人员,在具体添加时就不可能为该管理人员找到其应该管理的楼房号,因为以前添加是静态的,并没有将新建宿舍楼房加入进去.所以我将这一部分进行了重新编程,实现了动态添加.当楼房管理模块中新增一栋住宿楼后,员工管理模块的楼房号会自动添加一栋.

当然在系统测试阶段,我还完善了许多细节性的东西.比如在查询模块,报表管理模块里面如果按学号进行查询,刚开始只是判断输入的学号不能为空.后来才发现在用户输入学号后,系统应该还能够进行判断该学号到底存不存在,如果没有就应该提示用户输入了不存在的学号,应该重新进行输入.

经过一段时间的系统测试之后,我们的宿舍管理系统在整体上完善了许多,在设计上也更加具有人性化了,那么对于用户来说会更加容易适应本系统的各项操作.

第五章总结

历时一个学期的毕业设计现在已经接近尾声了,回想起这一个学期的日子,感觉收获颇多.我们这次毕业设计的任务是建立一个学生宿舍管理系统,它用到的开发工具是Delphi语言,SQLServer数据库.

在设计的开始阶段为了尽快熟悉Delphi语言,我详细翻阅有关该方面的资料,对书中的基本理论知识逐章逐节地分析,同时还上机操作来加深理解.特别是对书中的一些典型实例,认真学习它的编程思想,吸取它的编程技巧,弄懂程序中每句话的含义.在对所要应用的技术有了一个基本认识之后,就开始构思自己的系统设计.认真听老师对设计要求的讲解,根据任务书的要求将整个系统分为几个模块,每个模块具体又要实现哪些功能,然后就逐个模块去一一详细设计,设计的过程中不时地翻阅资料,用一些巧妙的技术来优化程序.程序代码完成之后,要进行运行调试,刚开始由于没有调试经验和方法效率很低,最后在老师和同学的帮助下,终于顺利完成了,自己也从中学到了不少东西.

总之,通过几个月的毕业设计,让我感受了软件开发的整个过程.毕业设计不仅是对我在大学所学知识的一个综合运用,也是一次增长知识和经验的好机会,同时也使我学会了许多处理,解决问题的方法,大大提高了自己的动手能力,为即将走上工作岗位打下了良好的基础.

致谢

转眼间,三个多月的毕业设计就要结束了,在参加设计的这段时间里,能够完成这次毕业设计,除了我自己的努力外,老师和同学们也给予了我非常大的的帮助.

首先要感谢我们的指导老师缑西梅老师,在初次见面时,缑老师就耐心的为我们分析该系统,告诉我们目前宿舍管理上的种种弊端,让我们在就具体设计该系统时尽可能的考虑全面,使我们对整个设计有了一个初步的认识.对我们进行全面,具体的指导,并给了我们许多宝贵的意见.

在设计刚开始时,对许多东西都是陌生的,Delphi语言之前都没有接触过,都是我们的指导老师给予了我耐心的指导,使我对陌生的开发环境产生了浓厚的学习兴趣.

毕业设计能够顺利完成,我非常感谢缑老师不辞辛苦的对我们的帮助,同时也感谢我的同组同学苏新勇,在该系统的完成过程他也给我提供了不少的意见.同时也感谢机房的老师给我们提供了一个好的环境,休息日也照常开放,每次关门时,老师都不厌其烦地等我们到最后才走.

总之,在老师们尽心尽力的帮助下,我们的毕业设计才能如期顺利完成,并且,我们的导师就我的论文的编排和书写格式也为我提出了不少的修改意见.在此,我衷心的感激他们,真诚的向他们说一声"谢谢"!

yname('UserId').AsString:等于newpasswordedit.Text,

post,

showmessage('新修改成功,请记牢!'),

UserNameEdit.Text:等于'',

OldPassWordEdit.Text:等于'',

NewPasswordEdit.Text:等于'',

submitEdit.Text:等于'',

end,

end,

end,

end,

procedureTUserChange.BtCancelClick(Sender:TObject),

begin

close,

end,

end,

--------------------------------公寓管理模块源代码--------------------------------

1.楼房管理源代码

procedureTHouseForm.Button1Click(Sender:TObject),

begin

ifedit1.Text等于''then

begin

MessageBox(handle,'楼房编号不能为空!','警告',MB_OK+MB_ICONWARNING),

edit1.SetFocus,

exit,

end,

//检查系统中是否存在该学号的学生datamd.ADOHouse.Close,

datamd.ADOHouse.SQL.Clear,

datamd.ADOHouse.SQL.Text:等于'selecthou_Idfromhousewherehou_Id等于'''+edit1.Text+'''',

datamd.ADOHouse.Prepared,

datamd.ADOHouse.Open,

ifnotdatamd.ADOHouse.IsEmptythen

begin

MessageBox(handle,'该楼房信息已经存入数据库!','警告',MB_OK+MB_ICONWARNING),

edit1.Text:等于'',

edit2.Text:等于'',

edit3.Text:等于'',

edit4.Text:等于'',

edit5.Text:等于'',

edit1.SetFocus,

exit,

end,

datamd.ADOHouse.Close,datamd.ADOHouse.SQL.Clear,

datamd.ADOHouse.SQL.Text:等于'select*fromhouse',

datamd.ADOHouse.Prepared,

datamd.ADOHouse.Open,

datamd.ADOHouse.Insert,

datamd.ADOHouse.FieldByName('hou_id').AsString:等于trim(edit1.Text),

datamd.ADOHouse.FieldByName('hou_Num').AsString:等于trim(edit2.Text),

datamd.ADOHouse.FieldByName('hou_Rom').AsString:等于trim(edit3.Text),

datamd.ADOHouse.FieldByName('hou_Peo').AsString:等于trim(edit4.Text),

datamd.ADOHouse.FieldByName('hou_Des').AsString:等于trim(edit5.Text),

ifmessagedlg('请确认输入的数据无误!',mtconfirmation,[mbYes,mbNO],1)等于mryesthen

begin

datamd.ADOHouse.Post,

ShowMessage('楼房信息登记完毕!'),

edit1.Text:等于'',

edit2.Text:等于'',

edit3.Text:等于'',

edit4.Text:等于'',

edit5.Text:等于'',

end

else

begin

showmessage('操作已取消,请重新输入'),

datamd.ADOHouse.cancel,

edit1.Text:等于'',

edit2.Text:等于'',

edit3.Text:等于'',

edit4.Text:等于'',

edit5.Text:等于'',

end,

end,

procedureTHouseForm.Button2Click(Sender:TObject),

begin

close,

end,

end.

2.宿舍管理源代码

procedureTDormForm.BitBtn1Click(Sender:TObject),

begin

ifedit1.Text等于''then

begin

messagedlg('请输入寝室号!',mtinformation,[mbok],0),

exit,

end,

ifedit2.Text等于''then

begin

messagedlg('请输入寝室应住人数!',mtinformation,[mbok],0),

exit,

end,

ifedit4.Text等于''then

begin

messagedlg('请为该寝室确定住宿费用!',mtinformation,[mbok],0),

exit,

end,

ifComboBox2.Text等于''then

begin

messagedlg('请选择居住性别!',mtinformation,[mbok],0),

exit,

end,

//检查系统中是否存在该寝室号

datamd.ADODorm.Close,

datamd.ADODorm.SQL.Clear,

datamd.ADODorm.SQL.Text:等于'selectDor_IdfromDormwhereDor_Id等于'''+Edit1.Text+'''',

datamd.ADODorm.Prepared,

datamd.ADODorm.Open,

ifnotdatamd.ADODorm.IsEmptythen

begin

MessageBox(handle,'该寝室号已录入!','警告',MB_OK+MB_ICONWARNING),

Edit1.SetFocus,

exit,

end,

//寝室信息录入

datamd.ADODorm.Close,

datamd.ADODorm.SQL.Clear,

datamd.ADODorm.SQL.Add('select*fromdorm'),

datamd.ADODorm.Open,

datamd.ADODorm.Insert,

datamd.ADODorm.FieldByName('Dor_Id').AsString:等于trim(edit1.Text),

datamd.ADODorm.FieldByName('Dor_Num').AsString:等于trim(edit2.Text),

datamd.ADODorm.FieldByName('Dor_Price').AsString:等于trim(edit4.Text),datamd.ADODorm.FieldByName('Dor_sex').AsString:等于trim(ComboBox2.Text),

datamd.ADODorm.FieldByName('Dor_Tel').AsString:等于trim(edit5.Text),

datamd.ADODorm.FieldByName('Dor_Des').AsString:等于trim(edit6.Text),datamd.ADODorm.Post,

ShowMessage('宿舍信息插入完毕!'),

edit1.Text:等于'',

edit2.Text:等于'',

edit4.Text:等于'',

edit5.Text:等于'',

edit6.Text:等于'',

end,

procedureTDormForm.BitBtn2Click(Sender:TObject),

begin

close,

end,

procedureTDormForm.FormShow(Sender:TObject),

begin

datamd.ADODorm.Close,

datamd.ADODorm.SQL.Clear,

datamd.ADODorm.SQL.Add('select*fromdormorderbydor_idasc'),

datamd.ADODorm.Open,

end,

end.

3.员工管理源代码

//通过查询自动获得相应的公寓楼房数

procedureTEmployeeForm.ComboBox3DropDown(Sender:TObject),

var

I:integer,

begin

withdatamd.ADOHousedo

begin

close,

sql.Clear,

sql.Add('select*fromHouse'),

open,

bobox3.Clear,

ifRecordCount>,0then

begin

first,

fori:等于0toRecordCount-1do

begin

bobox3.Items.Add(fieldbyname('Hou_Id').AsString),

next,

end,

end

else

showmessage('没有记录,请管理员录入数据信息'),

end,

end,

procedureTEmployeeForm.Button1Click(Sender:TObject),

begin

ifedit1.Text等于''then

begin

messagedlg('员工号不能为空,请输入!',mtinformation,[mbok],0),

edit1.SetFocus,

exit,

end,

ifedit2.Text等于''then

begin

messagedlg('员工姓名不能为空,请输入!',mtinformation,[mbok],0),

edit2.SetFocus,

exit,

end,

ifComboBox3.Text等于''then

begin

messagedlg('请为员工选择所管理的楼房,请输入!',mtinformation,[mbok],0),

ComboBox3.SetFocus,

exit,

end,

ifComboBox2.Text等于''then

begin

messagedlg('员工职位不能为空,请输入!',mtinformation,[mbok],0),

ComboBox2.SetFocus,

exit,

end,

//判断员工编号是否已经存在

ifDataMD.ADOEmployee.Locate('Emp_Id',edit1.text,[])等于falsethen

withDataMD.ADOEmployeedo

begin

append,datamd.ADOEmployee.FieldByName('Emp_Id').AsString:等于trim(edit1.Text),datamd.ADOEmployee.FieldByName('Emp_Name').AsString:等于trim(edit2.Text),datamd.ADOEmployee.FieldByName('Emp_Age').AsString:等于trim(edit4.Text),datamd.ADOEmployee.FieldByName('Emp_sex').AsString:等于trim(ComboBox1.Text),datamd.ADOEmployee.FieldByName('Hou_Id').AsString:等于trim(ComboBox3.Text),datamd.ADOEmployee.FieldByName('Emp_Job').AsString:等于trim(ComboBox2.Text),datamd.ADOEmployee.FieldByName('Emp_Add').AsString:等于trim(edit3.Text),datamd.ADOEmployee.FieldByName('Emp_Tel').AsString:等于trim(edit6.Text),datamd.ADOEmployee.FieldByName('Emp_Des').AsString:等于trim(edit7.Text),

IfMessageDlg('请确认些记录是否正确',mtconfirmation,[mbYes,mbNo],0)等于mrYesthenbegin

post,

refresh,

messagedlg('数据已成功入库!',mtinformation,[mbok],0),

edit1.Clear,

edit2.Clear,

edit4.Clear,

ComboBox1.Clear,

ComboBox3.Clear,

ComboBox2.Clear,

edit3.Clear,

edit6.Clear,

edit7.Clear,

edit1.SetFocus,//获得焦点

end

else

cancel,

edit1.Clear,

edit2.Clear,

edit4.Clear,

ComboBox1.Clear,

ComboBox3.Clear,

ComboBox2.Clear,

edit3.Clear,

edit6.Clear,

edit7.Clear,

edit1.SetFocus,

end

else

messagedlg('记录已经存在,请从新输入!',mterror,[mbok],0),

edit1.Clear,

edit2.Clear,

edit4.Clear,

ComboBox1.Clear,

ComboBox3.Clear,

ComboBox2.Clear,

edit3.Clear,

edit6.Clear,

edit7.Clear,

edit1.SetFocus,//获得焦点

end,

procedureTEmployeeForm.Button3Click(Sender:TObject),

begin

close,

end,

end.

----------------------------------信息查询模块源代码------------------------------

高校学生宿舍管理系统参考属性评定
有关论文范文主题研究: 关于数据库的论文范文 大学生适用: 研究生毕业论文、自考论文
相关参考文献下载数量: 29 写作解决问题: 学术论文怎么写
毕业论文开题报告: 论文提纲、论文题目 职称论文适用: 技师论文、高级职称
所属大学生专业类别: 学术论文怎么写 论文题目推荐度: 免费选题

1.按学号进行查询

procedureTDemandForm.Button1Click(Sender:TObject),

varStuId:string,

begin

ifedit1.Text等于''then

begin

messagedlg('请输入所要查询学生的学号!',mtinformation,[mbok],0),

exit,

end,

//检查系统中是否存在该学号的学生

ADOId.Connection:等于DataMd.ADOConnection,

ADOId.Close,

ADOId.SQL.Clear,

ADOId.SQL.Add('select*fromstudentwherestu_id等于'''+Edit1.Text+''''),

ADOId.Prepared,

ADOId.Open,

ifADOId.Eofthen

begin

MessageBox(handle,'该学号的学生信息不存在,请重新输入!','警告',MB_OK+MB_ICONWARNING),

Datamd.ADOStudent.Close,

Datamd.ADOStudent.SQL.Clear,

Datamd.ADOStudent.SQL.Add('select*fromenroll'),

Datamd.ADOStudent.Prepared,

Datamd.ADOStudent.Open,

edit1.Text:等于'',

Edit1.SelectAll,

exit,

end,

StuId:等于Edit1.Text,

ADOId.Close,

ADOId.SQL.Clear,

ADOId.SQL.Add('select*fromstudent'),

ADOId.SQL.Add('whereStu_Id等于'''+StuId+''''),

ADOId.Prepared,

ADOId.Open,

edit1.Text:等于'',

end,

procedureTDemandForm.BitBtn1Click(Sender:TObject),

begin

close,

end,

end,

2.按姓名进行查询

procedureTDemandForm.Button2Click(Sender:TObject),

varStuName:string,

begin

ifedit2.Text等于''then

begin

messagedlg('请输入所要查询学生的姓名!',mtinformation,[mbok],0),

exit,

end,

ADOId.Connection:等于DataMd.ADOConnection,

ADOId.Close,

ADOId.SQL.Clear,

ADOId.SQL.Add('select*fromstudentwherestu_Name等于'''+Edit2.Text+''''),

ADOId.Prepared,

ADOId.Open,

ifADOId.Eofthen

begin

MessageBox(handle,'该姓名的学生信息不存在,请重新输入!','警告',MB_OK+MB_ICONWARNING),

Datamd.ADOStudent.Close,

Datamd.ADOStudent.SQL.Clear,

Datamd.ADOStudent.SQL.Add('select*fromenroll'),

Datamd.ADOStudent.Prepared,

Datamd.ADOStudent.Open,

edit2.Text:等于'',

Edit2.SelectAll,

exit,

end,

StuName:等于Edit2.Text,

ADOId.Close,

ADOId.SQL.Clear,

ADOId.SQL.Add('select*fromstudent'),

ADOId.SQL.Add('whereStu_Name等于'''+StuName+''''),

ADOId.Prepared,

ADOId.Open,

edit2.Text:等于'',

end,

procedureTDemandForm.BitBtn2Click(Sender:TObject),

begin

close,

end,

end,

3.按寝室号进行查询

procedureTDemandForm.Button3Click(Sender:TObject),

varDormId:string,

begin

ifedit3.Text等于''then

begin

messagedlg('请输入该生所住寝室号!',mtinformation,[mbok],0),

exit,

end,

ADOId.Connection:等于DataMd.ADOConnection,

ADOId.Close,

ADOId.SQL.Clear,

ADOId.SQL.Add('select*fromstudentwhereDor_Id等于'''+Edit3.Text+''''),

ADOId.Prepared,

ADOId.Open,

ifADOId.Eofthen

begin

MessageBox(handle,'该寝室还没有入住学生或寝室不存在,请重新输入!','警告',MB_OK+MB_ICONWARNING),

Datamd.ADOStudent.Close,

Datamd.ADOStudent.SQL.Clear,

Datamd.ADOStudent.SQL.Add('select*fromenroll'),

Datamd.ADOStudent.Prepared,

Datamd.ADOStudent.Open,

edit3.Text:等于'',

Edit3.SelectAll,

exit,

end,

DormId:等于Edit3.Text,

ADOId.Close,

ADOId.SQL.Clear,

ADOId.SQL.Add('select*fromstudent'),

ADOId.SQL.Add('whereDor_Id等于'''+DormId+''''),

ADOId.Prepared,

ADOId.Open,

edit3.Text:等于'',

end,

procedureTDemandForm.BitBtn3Click(Sender:TObject),

begin

close,

end,

end,

4.按班级进行查询

procedureTDemandForm.Button4Click(Sender:TObject),

varStuClass:string,

begin

ifedit4.Text等于''then

begin

messagedlg('请输入该生所在班级!',mtinformation,[mbok],0),

exit,

end,

ADOId.Connection:等于DataMd.ADOConnection,

ADOId.Close,

ADOId.SQL.Clear,

ADOId.SQL.Add('select*fromstudentwherestu_Class等于'''+Edit4.Text+''''),

ADOId.Prepared,

ADOId.Open,

ifADOId.Eofthen

begin

MessageBox(handle,'不存在该班级,请重新输入!','警告',MB_OK+MB_ICONWARNING),

Datamd.ADOStudent.Close,

Datamd.ADOStudent.SQL.Clear,

Datamd.ADOStudent.SQL.Add('select*fromenroll'),

Datamd.ADOStudent.Prepared,

Datamd.ADOStudent.Open,

edit4.Text:等于'',

Edit4.SelectAll,

exit,

end,

StuClass:等于Edit4.Text,

ADOId.Close,

ADOId.SQL.Clear,

ADOId.SQL.Add('select*fromstudent'),

ADOId.SQL.Add('whereStu_Class等于'''+edit4.Text+''''),

ADOId.Prepared,

ADOId.Open,

edit4.Text:等于'',

end,

procedureTDemandForm.BitBtn4Click(Sender:TObject),

begin

close,

end,

procedureTDemandForm.PageControl1Change(Sender:TObject),

begin

ADOId.Close,

ADOId.SQL.Clear,

ADOId.SQL.Add('select*fromstudent'),

ADOId.Prepared,

ADOId.Open,

end,

end.

5.住宿查询源代码

procedureTQueDormForm.BitBtn2Click(Sender:TObject),

begin

close,

end,

procedureTQueDormForm.BitBtn1Click(Sender:TObject),

begin

ifRadioGroup1.ItemIndex等于0then

begin

ifEdit1.Text等于''then

begin

MessageBox(handle,'请输入查询条件!','警告',MB_OK+MB_ICONWARNING),

Edit1.SetFocus,

exit,

end,

ADOQuery1.Close,

ADOQuery1.SQL.Clear,

ADOQuery1.SQL.Add('select*fromdormwhereDor_Idlike'''+edit1.text+'%''and'),

ADOQuery1.SQL.Add('dor_fact<,dor_num'),

ADOQuery1.Prepared,

ADOQuery1.Open,

edit1.Text:等于'',

END

else

begin

ADOQuery1.Close,

ADOQuery1.SQL.Clear,

ADOQuery1.SQL.Add('select*fromdormwhereDor_Id等于'''+edit1.Text+'''and'),

ADOQuery1.SQL.Add('dor_fact<,dor_num'),

ADOQuery1.Prepared,

ADOQuery1.Open,

edit1.Text:等于'',

end,

end,

procedureTQueDormForm.RadioGroup1Click(Sender:TObject),

begin

ADOQuery1.Close,

ADOQuery1.SQL.Clear,

ADOQuery1.SQL.Add('select*fromdorm'),

ADOQuery1.Prepared,

ADOQuery1.Open,

end,

procedureTQueDormForm.BitBtn4Click(Sender:TObject),

begin

ifEdit1.Text等于''then

begin

MessageBox(handle,'请输入您所要统计的楼房号!','警告',MB_OK+MB_ICONWARNING),

Edit1.SetFocus,

exit,

end,

ADOQuery1.Close,

ADOQuery1.SQL.Clear,

ADOQuery1.SQL.Add('SELECTSUM(Dor_Fact)assummyFROMDormWHERE(Dor_IDLIKE'''+edit1.text+'%'')'),

ADOQuery1.Prepared,

ADOQuery1.Open,

memo1.Lines.Add('该楼房学生总人数:'),

Memo1.Lines.Add(adoquery1.FieldValues['summy']),

ADOQuery1.Close,

ADOQuery1.SQL.Clear,

ADOQuery1.SQL.Add('select*fromdormwhereDor_Idlike'''+edit1.text+'%'''),

ADOQuery1.Prepared,

ADOQuery1.Open,

end,

procedureTQueDormForm.FormShow(Sender:TObject),

begin

ADOQuery1.Close,

ADOQuery1.SQL.Clear,

ADOQuery1.SQL.Add('select*fromdorm'),

ADOQuery1.Prepared,

ADOQuery1.Open,

end,

end.

------------------------------报表管理模块源代码---------------------------

1.学生信息报表

procedureTReportForm1.BitBtn1Click(Sender:TObject),

begin

Adoquery1.Close,

Adoquery1.SQL.Clear,

Adoquery1.SQL.Add('select*fromstudentwherestu_Id等于'''+Edit1.Text+''''),

Adoquery1.Prepared,

Adoquery1.Open,

ifAdoquery1.Eofthen

begin

MessageBox(handle,'无该学号,请重新输入!','警告',MB_OK+MB_ICONWARNING),

Adoquery1.Close,

Adoquery1.SQL.Clear,

Adoquery1.SQL.Add('select*fromstudent'),

Adoquery1.Open,

edit1.Text:等于'',

Edit1.SelectAll,

exit,

end,

Adoquery1.Close,

Adoquery1.SQL.Clear,

Adoquery1.SQL.Add('select*fromstudentwherestu_Id等于'''+edit1.text+''''),

Adoquery1.Open,

edit1.Text:等于'',

end,

procedureTReportForm1.BitBtn2Click(Sender:TObject),

begin

baobiaoform1.QuickRep1.Preview,

end,

procedureTReportForm1.BitBtn3Click(Sender:TObject),

begin

ifapplication.MessageBox('是否现在打印宿舍信息报表单','确认',MB_OKCANCEL)等于IDOKTHEN

BaobiaoForm1.QuickRep1.Print,

end,

procedureTReportForm1.BitBtn4Click(Sender:TObject),

begin

close,

end,

procedureTReportForm1.FormShow(Sender:TObject),

begin

Adoquery1.Close,

Adoquery1.SQL.Clear,

Adoquery1.SQL.Add('select*fromstudent'),

Adoquery1.Open,

end,

end.

2.宿舍信息报表

procedureTReportForm2.BitBtn1Click(Sender:TObject),

begin

Adoquery1.Close,

Adoquery1.SQL.Clear,

Adoquery1.SQL.Add('selectstu_Id,stu_Name,Dor_Id,stu_Study,stu_class,stu_telfromstudentwheredor_Id等于'''+Edit1.Text+''''),

Adoquery1.Prepared,

Adoquery1.Open,

ifAdoquery1.Eofthen

begin

MessageBox(handle,'无该宿舍号,请重新输入!','警告',MB_OK+MB_ICONWARNING),

Adoquery1.Close,

Adoquery1.SQL.Clear,

Adoquery1.SQL.Add('selectstu_Id,stu_Name,Dor_Id,stu_Study,stu_class,stu_telfromstudent'),

Adoquery1.Open,

edit1.Text:等于'',

Edit1.SelectAll,

exit,

end,

ADOQuery1.Close,

ADOQuery1.SQL.Clear,

ADOQuery1.SQL.Add('selectstu_Id,stu_Name,Dor_Id,stu_Study,stu_class,stu_telfromstudentwhereDor_Id等于'''+edit1.text+''''),

ADOQuery1.Prepared,

ADOQuery1.Open,

edit1.Text:等于'',

end,

procedureTReportForm2.BitBtn2Click(Sender:TObject),

begin

baobiaoForm2.QuickRep1.Preview,

end,

procedureTReportForm2.BitBtn3Click(Sender:TObject),

begin

ifapplication.MessageBox('是否现在打印宿舍信息报','',MB_OKCANCEL)等于IDOKTHEN

BaobiaoForm2.QuickRep1.Print,

end,

procedureTReportForm2.BitBtn4Click(Sender:TObject),

begin

close,

end,

procedureTReportForm2.FormShow(Sender:TObject),

begin

ADOQuery1.Close,

ADOQuery1.SQL.Clear,

ADOQuery1.SQL.Add('selectstu_Id,stu_Name,Dor_Id,stu_Study,stu_class,stu_telfromstudent'),

ADOQuery1.Prepared,

ADOQuery1.Open,

end,

end.

3.缴费情况报表

procedureTReportForm3.BitBtn1Click(Sender:TObject),

begin

Adoquery1.Close,

Adoquery1.SQL.Clear,

Adoquery1.SQL.Add('selectstu_Id,stu_Name,Dor_Id,Enr_Sta,enr_price,Enr_YearfromEnrollwhereEnr_sta等于'''+Edit1.Text+''''),

Adoquery1.Prepared,

Adoquery1.Open,

ifAdoquery1.Eofthen

begin

MessageBox(handle,'请输入[已交清]或[未交清]再进行查询!','警告',MB_OK+MB_ICONWARNING),

Adoquery1.Close,

Adoquery1.SQL.Clear,

Adoquery1.SQL.Add('selectstu_Id,stu_Name,Dor_Id,Enr_Sta,enr_price,Enr_YearfromEnroll'),

Adoquery1.Open,

edit1.Text:等于'',

Edit1.SelectAll,

exit,

end,

ADOQuery1.Close,

ADOQuery1.SQL.Clear,

ADOQuery1.SQL.Add('selectstu_Id,stu_Name,Dor_Id,Enr_Sta,enr_price,Enr_YearfromEnrollwhereEnr_Sta等于'''+edit1.text+''''),

ADOQuery1.Prepared,

ADOQuery1.Open,

end,

procedureTReportForm3.BitBtn2Click(Sender:TObject),

begin

baobiaoForm3.QuickRep1.Preview,

end,

procedureTReportForm3.BitBtn4Click(Sender:TObject),

begin

close,

end,

procedureTReportForm3.BitBtn3Click(Sender:TObject),

begin

ifapplication.MessageBox('是否现在打印交费报表单','确认',MB_OKCANCEL)等于IDOKTHEN

BaobiaoForm3.QuickRep1.Print,

end,

procedureTReportForm3.FormShow(Sender:TObject),

begin

ADOQuery1.Close,

ADOQuery1.SQL.Clear,

ADOQuery1.SQL.Add('selectstu_Id,stu_Name,Dor_Id,Enr_Sta,enr_price,Enr_YearfromEnroll'),

ADOQuery1.Prepared,

ADOQuery1.Open,

end,

end.

4.楼房员工信息模块

procedureTReportForm4.BitBtn1Click(Sender:TObject),

begin

Adoquery1.Close,

Adoquery1.SQL.Clear,

Adoquery1.SQL.Add('select*frommployeewhereHou_Id等于'''+Edit1.Text+''''),

Adoquery1.Prepared,

Adoquery1.Open,

ifAdoquery1.Eofthen

begin

MessageBox(handle,'该楼房号不存在,请重新输入!','警告',MB_OK+MB_ICONWARNING),

Adoquery1.Close,

Adoquery1.SQL.Clear,

Adoquery1.SQL.Add('select*fromEmployee'),

Adoquery1.Open,

edit1.Text:等于'',

Edit1.SelectAll,

exit,

end,

ADOQuery1.Close,

ADOQuery1.SQL.Clear,

ADOQuery1.SQL.Add('select*fromEmployeewherehou_Id等于'''+edit1.text+''''),

ADOQuery1.Prepared,

ADOQuery1.Open,

edit1.Text:等于'',

end,

procedureTReportForm4.BitBtn4Click(Sender:TObject),

begin

close,

end,

procedureTReportForm4.BitBtn2Click(Sender:TObject),

begin

BaobiaoForm4.QuickRep1.Preview,

end,

procedureTReportForm4.BitBtn3Click(Sender:TObject),

begin

ifapplication.MessageBox('是否现在打印楼房员工报表单','确认',MB_OKCANCEL)等于IDOKTHEN

BaobiaoForm4.QuickRep1.Print,

end,

procedureTReportForm4.FormShow(Sender:TObject),

begin

ADOQuery1.Close,

ADOQuery1.SQL.Clear,

ADOQuery1.SQL.Add('select*fromEmployee'),

ADOQuery1.Prepared,

ADOQuery1.Open,

end,

end.

5.出楼物品信息报表

procedureTReportForm5.BitBtn1Click(Sender:TObject),

begin

Adoquery1.Close,

Adoquery1.SQL.Clear,

Adoquery1.SQL.Add('select*fromgoodovewherestu_Id等于'''+edit1.text+''''),

Adoquery1.Prepared,

Adoquery1.Open,

ifAdoquery1.Eofthen

begin

MessageBox(handle,'该学生无物品出入,请重新输入!','警告',MB_OK+MB_ICONWARNING),

Adoquery1.Close,

Adoquery1.SQL.Clear,

Adoquery1.SQL.Add('select*fromgoodove'),

Adoquery1.Open,

edit1.Text:等于'',

Edit1.SelectAll,

exit,

end,

ADOQuery1.Close,

ADOQuery1.SQL.Clear,

ADOQuery1.SQL.Add('select*fromgoodovewherestu_Id等于'''+edit1.text+''''),

ADOQuery1.Prepared,

ADOQuery1.Open,

edit1.Text:等于'',

end,

procedureTReportForm5.BitBtn2Click(Sender:TObject),

begin

BaobiaoForm5.QuickRep1.Preview,

end,

procedureTReportForm5.BitBtn3Click(Sender:TObject),

begin

ifapplication.MessageBox('是否现在打印出楼物品报表