基于VF的宿舍管理系统方案_第1页
基于VF的宿舍管理系统方案_第2页
基于VF的宿舍管理系统方案_第3页
基于VF的宿舍管理系统方案_第4页
基于VF的宿舍管理系统方案_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、 PAGE25 / NUMPAGES27课 程 设 计题 目:基于VF的宿舍管理系统学 院: 理 学 院 专 业: 信息与计算科学 班 级:小组成员:指导教师:设计时间:2013.1.71.18目 录TOC o 1-3 h z uHYPERLINK l _Toc3459603491.引言 PAGEREF _Toc345960349 h 1HYPERLINK l _Toc3459603502.开发工具介绍 PAGEREF _Toc345960350 h 1HYPERLINK l _Toc3459603513. 系统总体设计 PAGEREF _Toc345960351 h 2HYPERLINK l

2、 _Toc3459603523.1功能描述 PAGEREF _Toc345960352 h 2HYPERLINK l _Toc3459603533.2系统功能模块 PAGEREF _Toc345960353 h 2HYPERLINK l _Toc3459603543.3系统功能图 PAGEREF _Toc345960354 h 2HYPERLINK l _Toc3459603554. 项目的详细设计 PAGEREF _Toc345960355 h 3HYPERLINK l _Toc3459603564.1 数据库设计 PAGEREF _Toc345960356 h 3HYPERLINK l _

3、Toc3459603574.1.1数据表的设计 PAGEREF _Toc345960357 h 3HYPERLINK l _Toc3459603584.1.2 表间的索引与永久关系的设计 PAGEREF _Toc345960358 h 4HYPERLINK l _Toc3459603594.1.3 数据库完整性的设计 PAGEREF _Toc345960359 h 4HYPERLINK l _Toc3459603604.2 创建项目 PAGEREF _Toc345960360 h 5HYPERLINK l _Toc3459603614.3 软件的登录界面设计 PAGEREF _Toc34596

4、0361 h 5HYPERLINK l _Toc3459603624.4 主界面设计 PAGEREF _Toc345960362 h 7HYPERLINK l _Toc3459603634.5 查找、信息浏览界面设计 PAGEREF _Toc345960363 h 7HYPERLINK l _Toc3459603644.5.1 按查找界面、按学号查找界面 PAGEREF _Toc345960364 h 7HYPERLINK l _Toc3459603654.5.2 学生信息浏览界面 PAGEREF _Toc345960365 h 8HYPERLINK l _Toc3459603664.5.3

5、按寝室查找界面、按班级查找界面、按宿舍楼查找界面 PAGEREF _Toc345960366 h 9HYPERLINK l _Toc3459603674.6 学生信息更新界面设计 PAGEREF _Toc345960367 h 10HYPERLINK l _Toc3459603684.6.1添加学生界面 PAGEREF _Toc345960368 h 10HYPERLINK l _Toc3459603694.6.2 删除学生界面 PAGEREF _Toc345960369 h 11HYPERLINK l _Toc3459603704.6.3 修改学生信息界面 PAGEREF _Toc34596

6、0370 h 12HYPERLINK l _Toc3459603714.7 删除一个寝室界面、删除一个班界面设计 PAGEREF _Toc345960371 h 12HYPERLINK l _Toc3459603724.8 宿舍信息查询、浏览界面设计 PAGEREF _Toc345960372 h 14HYPERLINK l _Toc3459603734.8.1 宿舍信息查询界面设计 PAGEREF _Toc345960373 h 14HYPERLINK l _Toc3459603744.8.2 宿舍信息修改界面设计 PAGEREF _Toc345960374 h 14HYPERLINK l

7、_Toc3459603754.9 用户信息管理界面设计 PAGEREF _Toc345960375 h 15HYPERLINK l _Toc3459603764.9.1 修改用户信息界面设计 PAGEREF _Toc345960376 h 15HYPERLINK l _Toc3459603774.9.2 增加用户界面设计 PAGEREF _Toc345960377 h 17HYPERLINK l _Toc3459603784.10 主菜单设计 PAGEREF _Toc345960378 h 18HYPERLINK l _Toc3459603794.10主程序的编译与其运行 PAGEREF _T

8、oc345960379 h 19HYPERLINK l _Toc3459603805.运行结果 PAGEREF _Toc345960380 h 20HYPERLINK l _Toc3459603815.1 登录界面 PAGEREF _Toc345960381 h 20HYPERLINK l _Toc3459603825.2 主界面 PAGEREF _Toc345960382 h 20HYPERLINK l _Toc3459603835.3查询功能 PAGEREF _Toc345960383 h 21HYPERLINK l _Toc3459603845.4 数据更新功能 PAGEREF _Toc

9、345960384 h 22HYPERLINK l _Toc3459603855.4 用户信息管理 PAGEREF _Toc345960385 h 23HYPERLINK l _Toc3459603866.遇到的问题与解决办法 PAGEREF _Toc345960386 h 23HYPERLINK l _Toc345960387参考文献 PAGEREF _Toc345960387 h 24基于VF的宿舍管理系统引 言数据库应用系统是在数据库管理系统(DBMS)支持下建立的计算机应用系统,简写为DBAS。数据库应用系统是由数据库系统、应用程序系统、用户组成的,具体包括:数据库、数据库管理系统、数

10、据库管理员、硬件平台、软件平台、应用软件、应用界面。例如以数据库为基础的财务管理系统、人事管理系统、图书管理系统等等。本例以VF为开发平台,做一个学生宿舍管理系统。目前好多学校还停留在宿舍管理人员手工记录数据的最初阶段,当查找和修改记录时,由于数据量庞大,造成错误率高,效率很低。因此,针对大学的学生宿舍情况,我们设计了一个学生宿舍管理系统。学生宿舍管理系统采用的是计算机化管理,系统尽量做到智能化、人性化,逐步摆脱当前学生宿舍管理的人工管理方式,提高学生宿舍管理效率。此系统包括宿舍学生基本信息管理、宿舍楼基本信息管理、寝室基本信息管理等功能模块,并提供了对各功能模块的数据进行查询和更新功能。 关

11、键字:数据库 宿舍 管理系统 查询 更新开发工具介绍Visual FoxPro 简称VFP,是Microsoft公司推出的数据库开发软件,它引入了可视化编程技术,提供众多的工具,使得对一些常用功能的操作更为简单直观。其独具特色的数据库容器为交互式用户和应用程序开发者提供了集中的数据管理功能,它不仅支持面向对象的编程方法,可生成真正事件驱动的应用程序,可方便地与其他应用程序共享和交换数据,具有客户/服务器能力。 Visual FoxPro 6.0与其中文版是可运行于Windows 95和Windows NT平台的32位数据库开发系统,它不仅可以简化数据库管理,而且能使应用程序的开发流程更为合理。

12、Visual FoxPro 6.0使组织数据、定义 HYPERLINK :/baike.baidu /view/1088.htm t _blank 数据库规则和建立应用程序等工作变得简单易行。利用可视化的设计工具和向导,用户可以快速创建 HYPERLINK :/baike.baidu /view/296684.htm t _blank 表单、查询和打印报表。VFP 6.0在语言方面作了强大的扩充,支持面向对象可视化编程技术,是用户收集信息、查询数据、创建集成数据库系统、进行实用系统开发较为理想的工具软件。SQL(结构化查询语言)是一种一体化的语言,它包括了数据定义、数据操作和数据控制等方面的功

13、能,它可以完成数据库活动的全部工作。SQL是一种非过程化的语言,它一次处理一条记录,对数据提供自动导航,允许用户在更高在更高层次大的数据结构中工作。SQL言语非常简洁。在 Visual FoxPro 6.0中,并不支持所有的SQL言语(不支持数据库控制功能),它只支持其中的子集。这些子集中的命令对于数据库维护和查询是十分重要的,这些言语包括SESECT-SQL、ALTER、TABLE-SQL、CREATE、DELECT-SQL、UPDATA-SQL、INSERT-SQL等命令。3. 系统总体设计3.1功能描述本课题要实现的是高校学生宿舍管理系统,在涉与该系统时,应尽可能的贴近生活,便于用户操作

14、。系统在实现上具有如下功能:系统要求用户必须输入正确的用户名和密码才能进入系统,并能管理用户信息。系统应提供查询功能,以方便用户对学生基本信息的查询(实现多种条件的查询)与楼房信息的查询。系统还应具有添加、修改、删除学生基本信息和楼栋信息的功能。3.2系统功能模块用户账号(1)实现系统管理人员的登录;(2)实现用户的修改用户名和密码、增加用户的功能。宿舍管理(1)登记学校所有住宿楼情况;(2)登记所有退宿学生情况;(3)登记所有宿舍楼值班人员情况。信息查询(1)实现每个学生基本信息情况的查询;(2)对宿舍和班级的信息进行浏览;(3)浏览每栋楼的所有宿舍的住宿情况与。信息更新(1)学生基本情况添

15、加、修改和删除;(2)宿舍管理人员信息的添加添加、修改和删除。学生信息查询用户登录界面主界面学生信息更新宿舍信息查询宿舍信息更新退出系统用户信息管理3.3系统功能图4. 项目的详细设计4.1 数据库设计4.1.1数据表的设计 (1)学生信息表:学生信息与住宿情况 (2)宿舍楼信息表:宿舍楼信息、宿舍管理人员的详细信息 (3)寝室表信息表:寝室人数等信息(4)管理员表:管理人员的用户名、密码、权限。 在此表中我们初始设置了两个管理员的数据: a)用户名:admin 密码:111111 b)用户名:宿管 密码:1234564.1.2 表间的索引与永久关系的设计4.1.3 数据库完整性的设计(1)为

16、各个数据表中的一些关键字段设置为不允许空值; (2)为永久关联中各个表的关联字段建立参照性完整性4.2 创建项目(1)先创建一个文件夹,名为“学生宿舍管理系统”本例创建d:学生宿舍管理系统;(2)将VFP中的默认目录设置为当前创建的目录,把所需要的所有文件都放入此目录; (3)创建项目文件:文件新建项目学生宿舍管理系统项目;(4)把建好的数据库添加进此项目中;(5)建立所需的各个表单、菜单等文件。4.3 软件的登录界面设计 (1)为表单Form1设置属性,并添加合适的控件。主要修改过的属性如下表:对 象属 性属 性 值说 明Form1Caption登录界面指定对象标题文本NameForm1指定

17、在代码中用以引用对象的名称Hight300指定对象高度Width600指定对象宽度AlwayOnBottom.T. 真防止其他窗口被表单窗口覆盖AlwayOnTop.T. 真防止其他窗口遮挡表单AutoCenter.T. 真指定Form对象在首次显示时,时候自动在VFP主窗口居中Pictured:学生宿舍管理系统登录界面背景.jpg指定显示在控件上的图形文件或字段MaxButton.F. 假指定表单是否有最大化按钮ShowWindow1 在顶层表单中指定在创建过程中表单窗口显示表单或工具栏ShowTips.T. - 真指定对象上的控件是否显示工具提示Caption退出系统指定对象标题文本Com

18、mand1 Click Event用户自定义过程但用户按下并释放鼠标控件,或用编程方式触发改时间时发生BackColor255,128,255指定对象文本和图形的背景颜色Text2BorderStyle0 无指定对象的边框样式SelectedBackColor128,255,255指定选定文本的背景颜色Caption 进入系统指定对象标题文本PasswordChar*显示密码占位符注:Command2和Command2,Text1和Text2的属性基本一样,故不列出来。(2)控件的代码:对象:Command1(退出系统) 过程:Click 代码: thisform.release对象:Comm

19、and2(进入系统) 过程:Click代码: if len(alltrim(thisform.text1.value)=4 .and.len(alltrim(thisform.text2.value)=6use 管理员表locate for 用户名=alltrim(thisform.text1.value)if found()locate for 密码=alltrim(thisform.text2.value)if found()do form 主界面.scxthisform.hideelsemessagebox(输入用户名或密码错误,请重新输入!,0,错误)thisform.text2.va

20、lue=Endifelsemessagebox(输入用户名或密码错误,请重新输入!,0,错误)thisform.text2.value=useendifelsemessagebox(输入用户名或密码错误,请重新输入!,0,错误)endif4.4 主界面设计注:(1)以后的表单的大小都统一为HightWidth=500800(2)以后的表单日期格式DateFormat:12 年月日(1)为表单设置属性,并添加合适的控件Caption:主界面 Name:Form1 Hight:500 Width:800Picture d:学生宿舍管理系统主界面背景.jpgShowWindow 2-作为顶层表单Ma

21、xButton .F.-假 指定表单是否有最大化按钮(由于画图表浪费时间,此处使用截图,主要修改过的属性为黑体字,下同)(2)代码实现:对象:Form1 过程:Init 代码:do 主菜单.mpr with this,.t.对象:Form1 过程:Activate代码: read events对象:Form1 过程:QueryUnload 代码: clear events4.5 查找、信息浏览界面设计查找界面共有学生信息浏览界面、按查找界面、按学号查找界面、按寝室查找界面、按班级查找界面、按宿舍楼查找界面。这些界面有些有很多共同的特征,可分为三组。4.5.1 按查找界面、按学号查找界面这两个界

22、面的设置小异,具体代码就是把改为学号。(1)属性设置:(2)代码实现对象:Command1 过程:Click 代码:scan if =alltrim(thisform.text1.value) thisform.Text1.value= thisform.refresh return endifendscanmessagebox(该学生不存在,0,查找失败)thisform.Text1.value=thisform.refresh对象:Command2 过程:Click 代码:thisform.release4.5.2 学生信息浏览界面(1)属性设置:数据环境:学生信息表Grid1:Scrol

23、lBars(滚动条类型): 2-垂直 (2)代码实现:对象:Form1 过程:Init 代码:thisform.release对象:Grid1 过程: ActivateCell 代码: LPARAMETERS nRow, nCol对象:Label1 过程:Click 代码:thisform.release4.5.3 按寝室查找界面、按班级查找界面、按宿舍楼查找界面(1)属性设置:数据环境为学生信息表。主要属性和上述学生信息浏览界面一样。(2)代码实现:对象:Command1 (开始查询) 过程:Click 代码:select 学生信息表set filter to 寝室号=thisform.te

24、xt1.valuethisform.grid1.refresh对象:Command2 (退出查询) 过程:Click 代码:thisform.release4.6 学生信息更新界面设计4.6.1添加学生界面(1)属性设置:其他控件属性略,其效果如上图所示Form1:其他属性为默认,就是布局改变,如下图所示:注:各个文本框控件Text的属性中Format(功能:指定一个控件的Value属性的输入和输出格式) 属性设置为“无”,InputMask(如何输入和显示数据)属性设置为“无”,即把属性值清空。(2)代码实现:对象:Command1 (确认增加) 过程:Click 代码:if thisfor

25、m.Text1.valuemessagebox(学号输入不正确,请重新输入)thisform.Text1.value=0elseinsert into 学生信息表 values(thisform.Text1.value,alltrim(thisform.text2.value),thisform.text3.value,thisform.text4.value,alltrim(thisform.text5.value),thisform.text6.value,thisform.text7.value)messagebox(添加成功)endifthisform.refresh对象:Comman

26、d2(取消) 过程:Click 代码:thisform.Text1.value=0thisform.text2.value=thisform.text3.value=0thisform.text4.value=0thisform.text5.value=thisform.text6.value=0对象:Command3(退出) 过程:Click 代码:thisform.release4.6.2 删除学生界面此界面先对学生信息进行学号查询,然后将其查询到的学生信息删除。界面属性设置与上添加学生界面基本上一样。但注意:除了文本控件Text1之外,其他的文本控件的ReadOnly(只读)属性均设置为

27、.T.(真)。现将其主要控件的实现代码写出如下:对象:Command1 (开始查询) 过程:Click 代码:scan if 学号=thisform.Text1.value thisform.Text1.value=0 thisform.refresh return endifendscanmessagebox(该学号不存在,0,查找失败)对象:Command2 (确认删除) 过程:Click 代码:ans=messagebox(确定删除当前记录吗?,4+32,确认删除)SET EXCLUSIVE ON if ans=6deletepackendifthisform.refreshflush对

28、象:Command3(退出) 过程:Click 代码:thisform.release4.6.3 修改学生信息界面此界面先对学生信息进行学号查询,然后再对该学生的信息进行修改。界面属性设置与上添加学生界面基本一样。但注意:此界面中所有文本控件(Text)的ReadOnly(只读)属性均设置为.F.(假)。现将其主要控件的实现代码写出如下:对象:Command1 (开始查询) 过程:Click 代码:scan if 学号=thisform.Text1.value thisform.Text1.value=0 thisform.refresh return endifendscanmessageb

29、ox(该学号不存在,0,查找失败)对象:Command2 (确认修改) 过程:Click 代码:ans=messagebox(确定修改当前记录吗?,4+32,确认修改)SET EXCLUSIVE ON if ans=6thisform.refreshflushendif对象:Command3(退出) 过程:Click 代码:thisform.release4.7 删除一个寝室界面、删除一个班界面设计 删除一个寝室或删除一个班界面和方法一样,在此只介绍删除一个寝室界面。(1)主要属性设置:Form1属性:Grid1属性:ReadOnly:.T.- 真; RecordSource:(无)Text1

30、:InputMask:(无) Format:(无) BorderStyle:0 - 无(2)实现代码:对象:Command1 (确认删除) 过程:Click 代码:if thisform.text1.value100000messagebox(输入寝室号不正确,请输入5位寝室号)elseans=messagebox(确定删除当前班级吗?,4+32,确认删除)if ans=6SET EXCLUSIVE ON use 学生信息表delete for 寝室号=thisform.text1.valuethisform.Text1.value=0messagebox(删除成功)packthisform.

31、releasedo form 删除一个寝室界面.scxendifendif对象:Command2(退出) 过程:Click 代码:thisform.release 删除一个寝室的代码如下:对象:Command1 (确认删除) 过程:Click 代码:if thisform.text1.value100000messagebox(输入寝室号不正确,请输入5位寝室号)elseans=messagebox(确定删除当前寝室的学生吗?,4+32,确认删除)if ans=6SET EXCLUSIVE ON use 学生信息表delete for 寝室号=thisform.text1.valuethisf

32、orm.Text1.value=0messagebox(删除成功)packthisform.releasedo form 删除一个寝室界面.scxendifendif4.8 宿舍信息查询、浏览界面设计4.8.1 宿舍信息查询界面设计(1)主要属性设置:对 象属 性属 性 值说 明Form1Init Event用户自定义过程创建一个对象时发生BackColor0,255,255指定对象文本图形的背景颜色BorderStyle1 单线边框指定对象的边框样式MaxButton.F. 假指定表单是否有最大化按钮ShowWindow1 在顶层表单中指定在创建过程中表单窗口显示表单或工具栏TitleBar

33、0 关闭指定表单标题是否可见Grid1Left0最左边相对于父对象位置SplitBar.F. 假指定表格中是否有拆分条Label2Caption点击此处退出宿舍信息浏览窗口指定对象标题文本WordWrap.T. 真沿纵向或横向扩展Fontname隶书指定用于文本的字体名(2)实现代码:对象:Label2 过程:Click 代码:thisform.release对象:Grid1 过程:ActivateCell 代码:LPARAMETERS nRow, nCol4.8.2 宿舍信息修改界面设计(1)主要属性设置:主要属性和宿舍信息浏览界面相似,就是增加了一些命令按钮,其效果如下:(2)实现代码:对

34、象:Form1 过程:Init 代码:public statestate=0对象:Command1 (增加记录) 过程:Click代码:this.enabled=.F.state=1SET EXCLUSIVE ON thisform.grid1.readonly=.F.append blankthisform.grid1.setfocus对象:Command2 (修改记录) 过程:Click代码:SET EXCLUSIVE ON this.enabled=.F.state=2thisform.grid1.readonly=.F.thisform.grid1.readonly=.F.对象:Com

35、mand3(删除记录) 过程:Click代码:ans=messagebox(确定删除当前记录吗?,4+32,确认删除)if ans=6SET EXCLUSIVE ON deletepackthisform.releasedo form 宿舍楼信息修改界面.scxendifthisform.refresh对象:Command4 (保存记录) 过程:Click代码:if state=1.or.state=2flusHendif对象:Command5 (退出) 过程:Click 代码:thisform.release4.9 用户信息管理界面设计4.9.1 修改用户信息界面设计(1)主要属性设置:Fo

36、rm1:Command1:效果如下图所示:(2)实现代码:对象:Command1 (确认修改) 过程:Click代码:if empty(thisform.text1.value).or.empty(thisform.text2.value).or.empty(thisform.text3.value).or.empty(thisform.text4.value) =messagebox(文本框不能为空!,0+64,提示) else use 管理员表 if not eof() loca for 用户名=allt(thisform.text1.value).and.密码=allt(thisform

37、.text2.value) if 用户名=allt(thisform.text1.value).and.密码=allt(thisform.text2.value) if messagebox(要保存修改吗?,32+4+256,询问;)=6 repla 用户名 with allt(thisform.text3.value),密码 with allt(thisform.text4.value) if messagebox(修改已完成,是否退出?,32+4+256,询问)=6 use thisform.release endif endif else messagebox(密码或用户名有误,请重新输

38、入!,0+48,警告) endif endifendifusethisform.text1.value= thisform.text2.value= thisform.text3.value= thisform.text4.value= thisform.text1.setfocus对象:Command2 (退出) 过程:Click 代码:thisform.release4.9.2 增加用户界面设计(1)主要属性设置:主要属性和用户信息修改界面相似,效果如下图所示(2)实现代码:对象:Command1 (确认添加) 过程:Click代码:if len(alltrim(thisform.text

39、1.value)=4 .and.len(alltrim(thisform.text2.value)=6 .and.alltrim(thisform.text3.value)=alltrim(thisform.text2.value)insert into 管理员表 values(alltrim(thisform.text1.value),alltrim(thisform.text2.value)messagebox(添加成功!)thisform.refreshelsemessagebox(输入正确的用户名和密码!,0,错误)thisform.text1.value=thisform.text2

40、.value=thisform.text3.value=endif对象:Command2 (退出) 过程:Click 代码:thisform.release4.10 主菜单设计部分代码如下:宿舍信息浏览:do form 宿舍楼信息浏览界面.scx宿舍信息修改:do form 宿舍楼信息浏览界面.scx退出系统:close allrelease allclear events4.10主程序的编译与其运行主程序,并设置为主文件,代码如下:clearclear all_screen.visible=.f.set century onset date ymdset hour to 24set esca

41、pe off set talk offset safety offdo form 用户登录界面.scxread eventsquit在主程序中加入一个文件:Confiog.fpw,此文件的代码为:Screen=off。用来实现程序脱离VFP环境下运行。运行结果经过反复的修改表单的属性和代码,反复调试程序,我们实现了我们设计的所有功能。具体运行效果如下面的几组图片所示。5.1 登录界面5.2 主界面查询功能 查看全部: 按学号查询:按班级查询:宿舍楼信息浏览:5.4 数据更新功能学生信息更新,包括增加、修改和删除,其中删除又可以删除一个学生、删除一个班的学生和删除一个寝室的学生。宿舍楼信息的更新功能:用户信息管理遇到的问题与解决办法在此课程设计中由于我们队VFP学习得不够好,用VFP编程的基础还欠佳,所以我们遇到了很多麻烦,通过仔细阅读参考书或者使用因特网搜索解决方案,我们解决了一个个的问题。我们的程序做得还不够完善,但鉴于时间等条件的限制,我们也只能做成这个样子,希望老师多多指点,让我们把它做得更好。下面是我们遇到的一些主要问题与其解决方法:(1)在设计

温馨提示

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

评论

0/150

提交评论