VisualFoxPro课程设计报告南京理工大学经济管理学院2013-04项目名称学生信息管理系统学生专业经济管理学院经济学大类学生学号912107810234学生姓名提滨舟指导教师戴建华1.系统总体规划1.1系统任务学生信息管理是学校管理部门的日常工作,繁琐而细致。功能完善安全可靠的管理系统可以大大提高资源的利用率,有助于资料管理机构的运行。本系统旨在帮助学校相关部门管理学生信息,针对不同的使用人群分为客户端和管理员端两部分。1.2系统功能本系统主要实现与学生相关的各种信息的系统化、规范化和自动化。本学生信息管理系统完成的主要功能有:#基本数据管理。管理学生所在院系、所读专业信息以及班级信息和课程信息。#学生信息管理。管理学生信息的录入和修改。#学生成绩管理。管理学生成绩的录入和修改。#学生信息查询与统计。管理学生信息查询和成绩查询。#系统管理。用于管理系统用户。2.系统功能模块设计系统构架如下:1、学生端:(1)查询学生信息:根据学生班级、姓名、学号等查询(2)查询学生成绩:根据学生班级、姓名、学号等查询,还可打印报表(3)用户注册:可以注册新用户(不可注册管理员)(4)密码修改:更改密码。2、管理员端:(1)基本信息管理:添加和修改系、专业、班级和课程信息。(2)学生信息管理:可以录入和修改学生信息管理系统学生端查询学生信息查询学生成绩用户注册密码更改管理员端基本数据管理系管理专业管理班级管理课程管理学生信息管理学生信息录入学生信息修改学生成绩管理学生成绩录入学生成绩修改信息查询管理员信息管理(3)学生成绩管理:可以录入和修改学生成绩(4)信息查询:同学生端。(5)管理员信息管理:可以注册新管理员并修改密码。3.系统数据库设计3.1表结构设计本系统包含院系信息表、学生成绩表、学生信息表和用户信息表。表一院系信息表(deandma)表二学生成绩表(grade)表三学生信息表(students)表四用户信息表(yonghu)3.2数据库安全性设计本系统的访问者分为两级。第一级是学生端,具有查询学生信息和成绩以及注册新用户和修改密码等功能。第二级是管理员,具有录入、修改相关信息和注册管理员等功能。操作人员在登录时进行身份验证,学生端如有权限外操作会被禁止操作并警告。从而保护了数据库的安全。4.系统实施4.1系统流程为了实现以上功能,设计了若干个表单、程序、报表和一个主菜单,一个快捷菜单,由项目统一管理。从主程序进入系统,由主程序调用登陆表单,再通过登陆表单调用各用户权限所规定的用户界面,实现相应功能。流程图如下:4.2项目、数据库、数据库表建立如图所示建立项目文件夹:成功失败欢迎界面用户登陆身份验调用相应用户界面功能操作退出在project文件夹下建立数据库文件学生信息管理系统.dbc,在该数据库中建立前面所述的数据表。以上任务均通过项目管理器,数据库设计器,表设计器完成。4.3主程序设计主程序设计如下:这段主程序旨在设置运行环境,找到工作路径,调用欢迎表单,读入事件。这段程序的重点在于语句这两句程序可以自动找到工作路径并将默认路径设置为工作路径,增强了程序的可移植性,解决了路径问题。4.4主菜单和快捷菜单菜单名称结果选项基本数据管理子菜单系管理过程ifx1=.t.doformform\xglelsemessagebox(您无此权限!,64,提示)endif专业管理过程ifx1=.t.doformform\zyglelsemessagebox(您无此权限!,64,提示)endif班级管理过程ifx1=.t.doformform\bjglelsemessagebox(您无此权限!,64,提示)endif课程管理过程ifx1=.t.doformform\kcglelsemessagebox(您无此权限!,64,提示)endif学生信息管理子菜单学生信息录入过程ifx1=.t.doformform\xxlrelsemessagebox(您无此权限!,64,提示)endif学生信息修改过程ifx1=.t.doformform\xxxgelsemessagebox(您无此权限!,64,提示)endif学生成绩管理子菜单学生成绩录入过程ifx1=.t.doformform\cjlrelsemessagebox(您无此权限!,64,提示)endif学生成绩修改过程ifx1=.t.doformform\cjxgelsemessagebox(您无此权限!,64,提示)endif查询与统计子菜单学生信息查询命令doformform\xxcx学生成绩查询命令doformform\cjcx编辑子菜单撤消(\U)菜单项#_med_undo重做(\D)菜单项#_med_redo剪切(\T)菜单项#_med_cut复制(\C)菜单项#_med_copy粘贴(\P)菜单项#_med_paste清除(\A)菜单项#_med_clear系统管理子菜单关于系统命令doformform\gyxt用户注册命令doformform\yhzc修改密码命令doformform\mmxg退出系统过程nr=messagebox(你选择了退出登录,是否退出?,68,提示)ifnr=6quitcleareventsendif快捷菜单撤消(\U)菜单项#_med_undo重做(\D)菜单项#_med_redo剪切(\T)菜单项#_med_cut复制(\C)菜单项#_med_copy粘贴(\P)菜单项#_med_paste清除(\A)菜单项#_med_clear窗口主菜单:快捷菜单:5主要表单及事件代码设计总体说明:本程序表单遵循一定的设计标准,以保证程序界面的统一完整。其标准如下:1、为了美观以及和别的表单作出区分,最大的主窗口设计为1024×768大小。其他界面大多为800×600的分辨率。2、除了管理员主界面和一些较小的界面外一律将标题栏关闭,所有的窗口设置为固定边框。目的是保证界面的固定不被修改。3、隐藏VFP主窗口,将程序主界面设为顶层界面,其余设置为在顶层表单中打开。目的是为了保证程序界面显示正常。4、退出按钮等一些较为程式化的项目均遵循一定的程序构架。(1)欢迎表单欢迎表单是用户打开系统的第一个界面,本表单运用了一个timer控件,功能为在欢迎界面停留1.8秒就进入登录界面。Timer控件的click事件为它的部分属性为(2)登录表单首先为了保证身份认证的有效我们在表单的Init事件中定义了两个Public变量X1和n用以确认用户身份。而且应用了复选框来确认登录人权限。此check1的interactivechange事件如下在此表单的数据环境中添加了表yonghu进入按钮的click代码为取消按钮的click代码为管理员端(3)基本数据管理管理员端实现的第一个功能是基本数据管理,包括系管理、专业管理、班级管理和课程管理·。(3.1)系管理在此表单的数据环境中添加了表deandma本表单中使用了列表框,其init代码为其click代码为增加按钮的click代码为修改按钮的click代码为删除按钮的click代码为返回按钮的click代码便不再赘述,下面也是如此。(3.2)专业管理本表单运用了组合框控件,在其生成器中添加deandma表中的系字段,如下其click代码为本表单中的增加、修改、删除和返回按钮同系管理表单中的大致相同,在此不便赘述。(3.3)班级管理(3.4)课程管理由班级可以确定系和学期,因此班级组合框控件的click代码为(4)学生信息管理(4.1)学生信息录入性别组合框控件在生成器中选择手动输入数据,如下政治面貌组合框控件同此。增加按钮的click代码为重填按钮的click代码为(4.2)学生信息修改为了更快的找到学生信息,设置了定位查询按钮,定位查询按钮的click代码为第一条的click代码为上一条的click代码为下一条的click代码为最后一条的click代码为确定按钮的click代码为(5)学生成绩管理(5.1)学生成绩录入确定按钮的click代码为(5.2)学生成绩修改为了直观的显示学生姓名和学号,在姓名和学号标签后分别加了一个无标题的标签控件label9和label10班级组合框的click代码为学期组合框的click代码为快速查询按钮的click代码为修改按钮的click代码为管理员特有的功能还有一个就是管理员注册在登录时已经判断了登录人权限,如果是管理员登陆,则可以注册管理员,反之则只能注册普通学生端用户。此表单的init事件代码为注册按钮的click代码为其他管理员的功能与学生端相同学生端(6)查询与统计(6.1)学生信息查询班级组合框控件的interactivechange事件代码为定位查询按钮的click代码为(6.2)学生成绩查询本表单中的表格控件的recordsourcetype属性为4-SQL说明,recordsource属性为select*fromgrade班级组合框控件的click代码为学期组合框控件的click代码为定位查询按钮的click代码为成绩统计的click代码为(7)系统管理(7.1)关于系统(7.2)修改密码修改按钮的click代码为6班表设计报表主要用于打印工作。于是我制作了1张报表。7个人体会这次课程设计主要有以下几点体会:一是要有明确的开发目的和开发计划。首先要明晰开发目标,了解用户需求,熟悉事件流程;其次要将事件合理划分区块,构建系统框架结构,进而制定开发计划;再次是对各个模块之间的联系进行梳理,理清关系,按照事件流程来制定程序流程。二是要注重细节。首先要注重程序细节的处理,保证程序运行的稳定,高效。例如对于误操作行为进行判断,及时制止误操作行为,提醒用户进行更正。其次要注重用户体验和感受。对于用户操作的结果应当及时进行反馈,并引导用户进行下一步操作。界面设计应当符合用户的操作习惯,做到友好易用。再次,要注意程序的适用范围。三是时刻注意数据安全。首先我们的身份认证是贯穿于程序使用全过程的。在用户登录后,不同权限的用户见到的是不同的界面,保证了用户不会越权操作。其次严格控制对表数据的更改,在数据更改前进行数据有效性检测,更改前询问;在使用Grid控件时不使用拖放数据表进行定位,改用在相应的表单的Init事件中打开数据表,使用结束后及时关闭。总得来说,要编写一个优质的程序,必须以用户的需求为中心,关注用户体验,规范程序结构,重视数据安全。这样程序才能在使用过程中发挥应有的功能,提高工作效率。刚开始接到vfp课程设计作业的时候感觉无从下手,没有过这方面的经验。但通过看实验手册和向同学请教,慢慢了解到制作这个图书管理系统的一些方法。在实际的操作过程中,对于表单的设计要考虑的问题很多,站在管理系统使用者的角度来看问题才能制作出合乎常理的登录,查询等界面。而如果只是一味的照着实验要求来制作的话,实际运用的时候会出现很多问题,比如输入学号,一般都是输入正确的学号来登录系统,但实际上不能保证每次输入的都是正确的学号,这个时候就需要一个输入报错的代码。这些细节上的东西在这个课程设计作业里面体现的很多。在给一些表单里的一些控件更改属性还是很容易的,主要问题和难点就在于某些控件的代码要怎么写,对于某些代码在写的时候纠结了相当一段时间,这个时候就要翻书翻手册,向同学请教。在制作这个图书管理系统的时候学习到了一些之前不了解的知识,也温习了一些上学期讲过的知识,可以说收获是相当大的。当最后整个作品和实验报告出来的时候,看着自己制作的表单能够顺利运行的时候,还是感到相当兴奋和满足的,在这期间,边学边做的过程也锻炼了自己的自学能力。