您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > VFP应用程序设计实例--学生学籍管理系统
VFP应用程序设计实例--学生学籍管理系统(1)电脑笔记2007-10-2916:43阅读2402评论4字号:大中小图1MIS是英文ManagementInformationSystem的英文缩写,意思是信息管理系统,该系统可用于中小型企事业单位业务处理和信息交流,从而大大提高了企业运作的效率。微软公司的VisualFoxPro可视化面向对象的编程软件是一个设计MIS系统即简单又快捷的好软件。下面,就以VFP6.0为开发环境,讲述设计学生学籍管理系统的详细设计过程,也为在看过了前面非表单设计的学生学籍管理系统的朋友们继续了解并学习采用表单(Form)的方式设计MIS系统的方法。一、设计思路:学生学籍管理系统的运行以封面表单开始,如图1所示,要求用户输入登录密码,并设置三次检查功能,若三次输入的密码均有错,则自动退出系统;否则出现系统菜单,接收用户的操作,操作完毕后用户可以从系统菜单中退出系统。二、系统功能:系统的功能主要分成十个功能模块,它们是:录入数据、修改数据、删除数据、查询数据、统计数据、显示数据、打印数据、导出数据、导入数据和清空数据。录入数据可以实现学生信息的录入;修改数据可以实现学生信息的修改;删除数据可以实现学生数据的删除;查询数据可以实现学生信息的查询;统计数据可以实现学生人数、党员人数、学生总平均成绩、高数平均成绩、英语平均成绩和VFP平均成绩的统计;显示数据可以实现以字段分布和二维表两种方式显示学生信息;打印数据可以实现用报表的形式打印学生的信息;导出数据可以实现学生数据的备份,防止数据丢失;导入数据可以实现学生数据的还原,保证数据的正确性;清空数据可以实现学生数据的清空操作。三、菜单结构框架图四、数据库结构:(可定义表名为xj.dbf)字段名类型宽度小数位数学号字符型2姓名字符型6性别字符型2出生年月字符型10邮编字符型6高数数值型51英语数值型51VFP数值型51是否党员字符型2电话字符型8通信地址字符型30备注备注型4五、具体设计:(给出源代码,表单属性可参照图示在VFP属性框中设置,所有程序文件和表单文件均通过VFP项目管理器建立)1、学生学籍管理系统主程序源代码(可定义程序名为main.prg)_SCREEN.WINDOWSTATE=2&&设置窗口规格为第2种系统窗口_SCREEN.CAPTION=学生学籍管理系统&&设置窗口标题为“学生学籍管理系统”_SCREEN.CLOSABLE=.T.&&去掉关闭按钮_SCREEN.CONTROLBOX=.F.&&去掉控制按钮_SCREEN.MAXBUTTON=.F.&&去掉最大化按钮_SCREEN.MINBUTTON=.F.&&去掉最小化按钮_SCREEN.BACKCOLOR=RGB(50,100,128)&&设置窗口的背景色CLOSEALLCLEARALLCLEARSETSYSMENUOFFSETSYSMENUTOSETTALKOFFSETSAFETYOFFSETSTATUSBAROFF&&关闭VisualFoxpro的状态栏DOFORMA:\封面.SCX&&调用系统登录“封面”表单READEVENT&&响应用户输入DOA:\菜单.MPX&&运行系统菜单READEVENTSETSYSMENUTODEFAULT&&恢复VisualFoxpro的系统菜单的默认值SETSYSMENUON&&显示VisualFoxpro的系统菜单SETSTATUSBARON&&显示VisualFoxpro的状态栏CLOSEALL&&关闭所有文件CLEARALLRETURN&&返回2、封面表单源代码(A:\封面.sct)PROCEDUREClick&&确定按钮的单击事件过程SETEXACTON&&设置精确比较命令IFTHISFORM.text1.VALUE=8888&&如果文本框的值是8888THISFORM.RELEASE&&那么释放封面表单DOA:\菜单.MPX&&运行菜单程序ELSE&&否则THISFORM.NO=THISFORM.NO+1&&将自定义属性NO的值由0加1IFTHISFORM.NO=3&&如果自定义属性NO的值为3=MESSAGEBOX(密码三次输错,您不能使用本系统!,0+16+0,学生学籍管理系统)&&那么弹出内容为“密码三次输错,您不能使用本系统!”的对话框QUIT&&结束程序的运行ELSE&&否则=MESSAGEBOX(密码错误!,48+0+0,警告)&&弹出内容为“密码错误!”的对话框THISFORM.text1.VALUE=&&设置文本框的内容为空THISFORM.text1.SETFOCUS&&并将光标定位到文本框中THISFORM.REFRESH&&刷新封面表单ENDIFENDIFSETEXACTOFF&&设置关闭精确比较命令ENDPROCPROCEDUREClick&&取消按钮的单击事件过程THISFORM.RELEASE&&释放封面表单CLOSEALL&&关闭所有文件CLEAREVENTquitENDPROC(未完)图23、录入数据表单源代码(A:\录入.sct,如图2所示)PROCEDUREInit&&录入数据表单的初始化事件过程SETTALKOFFTHISFORM.commandgroup1.command4.ENABLED=.f.&&设置第四个按钮为不可用状态THISFORM.commandgroup1.command5.ENABLED=.f.&&设置第五个按钮为不可用状态THISFORM.txt学号.ENABLED=.f.&&设置学号文本框为不可用状态THISFORM.txt姓名.ENABLED=.f.&&设置姓名文本框为不可用状态THISFORM.combo1.ENABLED=.f.&&设置组合框1为不可用状态THISFORM.combo2.ENABLED=.f.&&设置组合框2为不可用状态THISFORM.combo3.ENABLED=.f.&&设置组合框3为不可用状态THISFORM.combo4.ENABLED=.f.&&设置组合框4为不可用状态THISFORM.txt邮编.ENABLED=.f.&&设置邮编文本框为不可用状态THISFORM.txt高数.ENABLED=.f.&&设置高数文本框为不可用状态THISFORM.txt英语.ENABLED=.f.&&设置英语文本框为不可用状态THISFORM.txtVfp.ENABLED=.f.&&设置VFP文本框为不可用状态THISFORM.combo5.ENABLED=.f.&&设置组合框5为不可用状态THISFORM.txt电话.ENABLED=.f.&&设置电话文本框为不可用状态THISFORM.txt通信地址.ENABLED=.f.&&设置通信地址文本框为不可用状态THISFORM.edt备注.ENABLED=.f.&&设置备注编辑框为不可用状态ENDPROCPROCEDURELoad&&录入数据表单的加载事件过程CLOSEDATA&&关闭所有数据库USEA:\XJ存&&打开A盘中的XJ.DBF表文件SETMULTILOCKSON&&设置锁定一组记录=CURSORSETPROP('buffering',5,'XJ')&&打开开放式表缓冲ENDPROCPROCEDUREInteractiveChange&&录入数据表单的交互改变事件过程REPL出生年月WITHTHISFORM.combo2.displayvalue+.+THISFORM.combo3.displayvalue+.+THISFORM.combo4.displayvalue&&用组合框的值替换出生年月字段THISFORM.REFRESH&&刷新录入数据表单ENDPROCPROCEDURECommand1.Click&&单击命令按钮1的事件过程APPENDBLANK&&添加一空白记录THISFORM.REFRESH&&刷新录入数据表单THISFORM.commandgroup1.command1.ENABLED=.f.&&设置命令按钮1为不可用状态THISFORM.commandgroup1.command2.ENABLED=.f.&&设置命令按钮2为不可用状态THISFORM.commandgroup1.command3.ENABLED=.f.&&设置命令按钮3为不可用状态THISFORM.commandgroup1.command4.ENABLED=.t.&&设置命令按钮4为可用状态THISFORM.commandgroup1.command5.ENABLED=.t.&&设置命令按钮5为可用状态THISFORM.commandgroup1.command6.ENABLED=.f.&&设置命令按钮6为不可用状态THISFORM.txt学号.ENABLED=.t.THISFORM.txt姓名.ENABLED=.t.THISFORM.combo1.ENABLED=.t.THISFORM.combo2.ENABLED=.t.THISFORM.combo3.ENABLED=.t.THISFORM.combo4.ENABLED=.t.THISFORM.txt邮编.ENABLED=.t.THISFORM.txt高数.ENABLED=.t.THISFORM.txt英语.ENABLED=.t.THISFORM.txtVfp.ENABLED=.t.THISFORM.combo5.ENABLED=.t.THISFORM.txt电话.ENABLED=.t.THISFORM.txt通信地址.ENABLED=.t.THISFORM.edt备注.ENABLED=.t.THISFORM.txt学号.SETFOCUSENDPROCPROCEDURECommand2.Click&&单击命令按钮2的事件过程SETDELETEON&&设置打开删除命令DELETE&&删除当前记录YN=MESSAGEBOX('确实要删除这条记录?',4+32+256,'删除确认')&&弹出内容为“确实要删除这条记录?”的对话框DOCASE&&运行条件判断语句CASEYN=6&&当单击“是”按钮时=TABLEUPDATE(.T.)&&执行更新表函数,删除当前记录CASEYN=7&&当单击“否”按钮时RECALL&&恢复已作了删除标记的当前记录ENDCASETHISFORM.REFRESHENDPROCPROCEDURECommand3.Click&&单击命令按钮3的事件过程THISFORM.commandgroup1.command1.ENABLED=.f.THISFORM.commandgroup1.command2.ENABLED=.f.THISFORM.commandgroup1.command3.ENABLED=.f.THISFORM.commandgroup1.command4.ENABLED=.t.THISFORM.commandgroup1.command5.ENABLED=.t.THISFORM.commandgroup1.command6.ENABLED=.f.ENDPROCPROCEDURECommand4.Click&&单击命令按钮4的事件过程=TABLEUPDATE(.T.)THISFORM.commandgroup1.command1.ENABLED=.t.THISFORM.commandgroup1.command2.ENABLED=.t.THISFORM.commandgroup1.command3.ENABLED=.t.THISFORM.commandgroup1.command4.ENABLED=.f.THISFORM.commandgroup1.command5.ENABLED=.f.THISFORM.commandgroup1.command6.ENABLED=.t.ENDPROCPROCEDURECommand5.Click&&单击命令按钮5的事件过程=TABLEREVERT(.T.)THISFORM.co
本文标题:VFP应用程序设计实例--学生学籍管理系统
链接地址:https://www.777doc.com/doc-5596729 .html