课程设计内容和课程设计要求系统管理设计书.doc_第1页
课程设计内容和课程设计要求系统管理设计书.doc_第2页
课程设计内容和课程设计要求系统管理设计书.doc_第3页
课程设计内容和课程设计要求系统管理设计书.doc_第4页
课程设计内容和课程设计要求系统管理设计书.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

课程设计内容和课程设计要求系统管理设计方案一、需求分析根据任务书给定的“课程设计内容”和“课程设计要求”作如下的需求分析。该系统是一个较典型的数据管理系统,其使用者被假定为某办公室的学生成绩管理人员,系统应该具有安全、稳定、功能齐全的特点。1. 安全性分析系统管理的数据涉及到学院的所有同学,数据量较大且是一种基础性数据,能够为其它方面的学生管理工作提供重要参考,所以要通过设置密码等手段确保数据不能被随意的删减和修改。2. 稳定性分析指系统比较健壮,只要是用户的合理操作,系统都应给出合理正确的回应,而不是出现令用户感到意外的系统错误或系统崩溃。3. 主要功能分析(1)系统登录:允许用户输入编号、密码等进入系统。(2)数据维护:该模块是针对于管理员操作,一般包括浏览、修改等,对于输入的数据,或被修改的数据应该保存到某个磁盘文件中,实现永久存储。(3)数据查询:用户输入查询条件,系统规则地在界面显示查询结果,且显示的数据尽量全面。当输入学号时,可查询到该学生的学号、姓名、各门课程成绩等信息;当输入成绩时,可查询到关于当前课程与此成绩匹配的学生名单。(4)功能界面:主要分析本系统的功能界面的主要特点,及实现的具体功能。二、系统主要功能模块学生管理系统基于Visual FoxPro 6.0中文版开发,VFP在数据库开发方面具有方面,实用,简单,直接等优点,同时其也具有一定的局限性。本系统主要面向班级指导员和班级学生开发使用,因此主要侧重于系统的使用性和方便性,同时在安全性方面,我们也十分重视。特别是操作员级别的划分等密码管理,我们都做了仔细的分析研究。1. “学生信息管理系统”的模块结构图(如图1)图1 系统模块划分2、本系统的主要内容(如图2)图 2 项目管理器三、数据库设计数据库设计是总体设计阶段非常重要的环节,数据库结构的变化会造成编码的改动,所以必须认真设计数据库结构后再进行编码,从而避免无谓的重复工作。本系统的数据库包括4个表,即学生基本信息表,学生成绩表等。1.学生基本信息表(rsb.dbf)学生基本信息表(rsb.dbf)用于记录学号、姓名、班级等信息,其逻辑结构如表1所示。表1 学生基本信息表字段名称字段类型宽度小数位NULL学号C12否姓名C8否性别C2否专业C10贷款否L2备注M42.学生成绩表(cjb.dbf)学生基成绩表(cjb.dbf)用于成绩的基本等信息,包括学号、课程编号、课程名称、成绩等信息,其逻辑结构如表2所示。表2 学生成绩表字段名称字段类型宽度小数位NULL学号C12否课程名称C8否成绩N41否3.用户表(yonghu.dbf)用于记录系统用户的基本信息,包括用户名,密码等,其逻辑结构如表3所示。表3 用户表字段名称字段类型宽度小数位NULL用户名C8否密码C6否四、各功能模块的具体设计根据系统规划和需要分析,把系统划分为学生信息管理,学生成绩查询,系统管理三个模块。本系统用到的主要有以下文件:主控程序main.prg、启动界面(封面)face.scx、系统登录界面(口令验证窗口)pass.scx、,主菜单main_menu.mpr。程序的调用关系如下:主控程序main.prg中调用界面表单face.scx,封面中调用“口令验证窗口”表单pass.scx,口令正确则调用系统菜单main_menu.mpr。各菜单项调用相对应的表单。1主控程序main.prg的代码实现为:CLEAR &清屏CLEAR ALL &从内存中释放所有的内存变量CLOSE ALL &关闭各种类型的文件SET ESCAPE OFF &禁止运行的程序和命令在按 Esc 键后被中断SET SAFETY OFF &指定在改写已有文件时不显示对话框SET DELETE ON &使用范围子句处理记录的命令忽略标有删除标记的记录SET SYSMENU OFF &在程序执行期间废止 Visual FoxPro 主菜单栏RELEASE WINDOW 常用 &关闭常用工具栏SET CENTURY ON &年份以四位显示SET DATE TO ymd &日期格式为年、月、日SET MARK TO - &指定日期分隔字符SET HOURS TO 24 &指定为 24-小时时间格式_SCREEN.Visible=.t._SCREEN.Caption=05计专学生管理系统 &系统窗口标题_SCREEN.Icon=.dod.ico &系统标题栏图标*判断显示器当前分辨率_SCREEN.Width=SYSMETRIC(1) _SCREEN.Height=SYSMETRIC(2)*根据分辨率不同,为系统设置不同的背景图片IF SYSMETRIC(1)=1024 _SCREEN.Picture=.imgbj.jpgELSE _SCREEN.Picture=.imgbj.jpgENDIFDO FORM .face.scx &调用登录界面表单On ShutDown do OnShutdown &退出系统时调用函数onshutdown() READ EVENTS &建立事件循环 On ShutDown &释放当前的On ShutDown命令*按菜单的“关闭”按钮退出时,出现的提示框FUNCTION OnShutdown() sel=MESSAGEBOX(真的要退出吗?,4+32+256,提示)IF sel=6 *SELECT 0 *USE .dbsystemLOG *GO BOTTOM *REPLACE 离开时间 WITH DATETIME() &退出系统时记录操作员退出时间 CLOSE ALL CLEAR EVENTS &退出事件循环 QUIT &结束当前 Visual FoxPro 工作期,并将控制权返回给操作系统ENDIFENDFUNC2、运行主程序后,系统调用登陆界面表单(face.scx)(图3)图3 系统调用界面1) 将用户表添加到系统调用表单的数据环境中。2) 系统调用界面中主要控件属性如表4所示。表4 系统调用界面表单控件属性对象名称属性名称属性值Form1caption05计专学生管理系统AutoCenter.T.Timer1Interival1000Timer2Interival1000Timer3Interival1000Command1caption登陆系统3)主要事件代码:FORM1的INIT事件代码:SET BELL ONSET BELL TO .MUSICwelcome.wav,2?CHR(7)FORM1的UNLOAD事件代码:SET BELL TO MUSICSILENT.WAV,2?CHR(7)此两项功能分别为在打开表单时调用的音乐文件和关闭表单时调用的音乐文件。Command1的mouseup事件代码:LPARAMETERS nButton, nShift, nXCoord, nYCoordrelease thisformDO FORM .mainpass.scxTimer1的timer事件代码:release thisformDO FORM .mainpass.scxTimer2的timer事件代码:为了实现五角星的闪动:IF THISFORM.label5.visible thisform.label5.visible=.f. else thisform.label5.visible=.t.endifTimer3的timer事件代码:为了实现五角星的闪动:IF THISFORM.label5.visible thisform.label5.visible=.t. else thisform.label5.visible=.t.endifTimer4的timer事件代码:为了实现五角星的闪动:IF THISFORM.label5.visible thisform.label5.visible=.t else thisform.label5.visible=.t.endif同时在每个五角星的颜色也做了设置。3.系统登陆表单(pass.scx)界面设计密码验证作为系统最基本的安全管理步骤。用户如果不输入合法的用户名和密码,系统是不能进入的。当用户输入合法的用户名和密码时,系统管理会自动判断此用户,使用户的操作具有合法性。密码验证页包括操作员姓名和密码两个部分。具体的代码实现也将在详细设计书说明。下面是密码登陆页的图示(图4):用户在文本框输入操作员及口令,若正确则调用系统主界面(菜单)。允许输入三次,若三次均不正确刚自动退出系统。若用户输入的操作员姓名及口令正确,要完成下列工作:图4 登陆界面1) 要参数设置(1) 设置一个全局变量operat,用于记录登陆系统的操作员姓名,系统中有3个地方要用到操作员的姓名和代号:一是进入主界面后在标题栏显示的操作员姓名;二是操作员在系统管理模块的口令设置中更改自己的口令,系统要知道是哪个操作员;三是退出系统时系统日志中要记录操作员的退出时间。(2) 在系统日志表log.dbf中增加一条记录,并同时记录此操作员的登录系统的时间。从权限表menuright.dbf中读出此操作员对应各菜单项的权限,并赋值给数组。调用菜单文件,显示系统主界面。2) 登陆表单界面中主要控件属性如表5所示。表5 登陆表单控件属性对象名称属性名称属性值Form1caption口令输入窗口AutoCenter.T.Command1caption确定Command2caption退出3)事件代码:Form1的init事件代码:SET EXACT ON &精确比较PUBLIC ARRAY rr18 &数组用于实现菜单项权限PUBLIC i &i用于记录用户名及口令输入次数PUBLIC operat &operat用于保存操作员姓名 i=0THISFORM.Text1.Setfocus“确定”按钮(COMMAND1)CLICK事件代码:*判断密码是否正确i=i+1SELECT operatorLOCATE FOR 操作员姓名=ALLTRIM(THISFORM.Text1.Value)DO CASECASE i=3 AND FOUND() AND THISFORM.Text2.Value=operator.口令 *输入次数未超过3次且用户名正确、口令正确 operat=THISFORM.Text1.ValueINSERT INTO log(操作员代号,操作员姓名,登录时间) VALUES(operator.操作;员代号,operator.操作员姓名,DATETIME()_SCREEN.Caption=05计专学生管理系;统+SPACE(40)+DTOC(DATE()+SPACE(40)+操作员:+operatSELECT 权限 FROM menuright INTO ARRAY rr WHERE 操作员代号;=operator.操作员代号 ORDER BY 菜单项编号 RELEASE THISFORM DO .mainmain_menu.mprCASE i=3 AND FOUND() AND THISFORM.Text2.Value!=operator.口令 *输入次数未超过3次且用户名正确、口令不正确 MESSAGEBOX(密码错误,请重输!,警告) THISFORM.Text2.Value= THISFORM.Text2.Setfocus CASE i3 &输入次数超过3次 MESSAGEBOX(禁止进入系统!,警告) THISFORM.ReleaseENDCASE 退出按钮(COMMAND2)CLICK事件代码:RELEASE THISFORMCLEAR EVENTS4.系统主界面当操作员的名称和密码均正确的时候,系统便会进入系统主界面使用主菜单。主菜单共分为三个分菜单项:学生信息管理,学生成绩管理,系统管理。如图(5)图5 主界面在学生信息管理中分为学生信息维护和学生信息查询两个菜单项,在学生成绩管理中含有学生成绩查询打印菜单项,在系统管理中分为:操作员管理、口令设置、权限管理、系统日志、数据备份、数据恢复、 退出系统七项。5系统菜单设计1、 学生信息管理系统的菜单在应用系统中,各个了模块是通过菜单组织在一起的。通过对人事工资管理系统功能模块的设计,可以交系统划分为3大模块:学生信息管理、学生成绩查询、系统管理,具体的菜单设计见表6:表6 系统菜单学生信息管理学生成绩管理系统管理学生信息维护学生成绩查询操作员管理口令设置学生信息查询权限管理系统日志数据备份数据恢复退出系统在菜单设计器中实现权限设置在菜单项设计器中,通过提示选项对话框设置菜单项的跳过条件可以实现用户权限。每个操作员对每个菜单项有两种权限:0或1。“0”表示此操作员对该菜单项没有操作权,系统运行后,该菜单项为灰色。不能打开对应的表单,“1”代表该操作员对该菜单项具有操作权,系统运行后,该菜单项可用,鼠标单击菜单项能打开对应的表单。操作员对各菜单项的权限保存在表文件menuright.dbf中,在登录系统时读出该操作员对应各菜单项的权限,并赋值给一个数组RR。本系统共10个菜单项,所以定义的数组也包含10个元素。5. 学生数据维护表单(weihu.scx)学生信息维护表单(如图6)包换下列功能:数据录入、修改、删除、查询、浏览、保存、打印等。本表单左边是浏览窗口,便于用户浏览数据;右边是编辑窗口,主要用于输入修改数据。图6学生数据维护界面1) 在表单数据环境中添加表:rsb.dbf、cjb.dbf。学生人事表和成绩表的结构请打开数据库表查看。在表单数据环境的BRFOREOPENTABLES事件中添加代码:this.cursor1.exclusive=.t.2) 学生数据维护表单界面中主要控件属性如表7所示。表7 学生数据维护表单控件属性对象名称属性名称属性值Form1caption05计专学生数据维护AutoCenter.T.Grid1recordsourcetype1-别名recordsourcersbCommandgroup1buttoncount10value13) 事件代码:FORM1的INIT事件代码:THISFORM.COMMANDGROUP1.CMDTOP.ENABLED=.F.THISFORM.COMMANDGROUP1.CMDPREV.ENABLED=.F.THISFORM.COMMANDGROUP1.CMDNEXT.ENABLED=.T.THISFORM.COMMANDGROUP1.CMDBOTTOM.ENABLED=.T.THISFORM.COMMANDGROUP1.CMDADD.ENABLED=.T.THISFORM.COMMANDGROUP1.CMDEDIT.ENABLED=.T.THISFORM.COMMANDGROUP1.CMDDELETE.ENABLED=.T.THISFORM.COMMANDGROUP1.CMDFIND.ENABLED=.T.THISFORM.COMMANDGROUP1.CMDPRINT.ENABLED=.T.THISFORM.COMMANDGROUP1.CMDEXIT.ENABLED=.T.THISFORM.TEXT1.READONLY=.T.THISFORM.TEXT2.READONLY=.T.THISFORM.OPTIONGROUP1.ENABLED=.F.THISFORM.TEXT3.READONLY=.T.THISFORM.TEXT4.READONLY=.T.THISFORM.TEXT5.READONLY=.T.THISFORM.TEXT6.READONLY=.T.THISFORM.CHECK1.READONLY=.T.THISFORM.EDIT1.READONLY=.T.THISFORM.GRID1.READONLY=.T.THISFORM.COMMAND1.visible=.T.THISFORM.LABEL11.visible=.F.THISFORM.TEXT7.visible=.F.FORM1的CLICK事件代码:THISFORM.LABEL11.visible=.F.THISFORM.TEXT7.visible=.F. GRID1的afterrowclochange事件代码:LPARAMETERS nColIndexthis.setall(dynamicbackcolor,IIF(This.activerowrecno(),rgb(255,;255,255),;rgb(0,255,0),column)select rsbthisform.refresh 此代码实现不现颜色显示选中的GRID对象的行及列。“第一个“按钮的CLICK事件代码:select rsbgo mandgroup1.cmdtop.enabled=.mandgroup1.cmdprev.enabled=.f.if not eof()mandgroup1.cmdnext.enabled=.mandgroup1.cmdbottom.enabled=.t.endifthisform.refresh“前一个“按钮的CLICK事件代码:select rsbskip -1if bof()go mandgroup1.cmdtop.enabled=.mandgroup1.cmdprev.enabled=.f.endifif not eof()mandgroup1.cmdnext.enabled=.mandgroup1.cmdbottom.enabled=.t.endifthisform.refresh“下一个“按钮的CLICK事件代码:select rsbskipif eof()go mandgroup1.cmdnext.enabled=.mandgroup1.cmdbottom.enabled=.f.endifif not bof()mandgroup1.cmdtop.enabled=.mandgroup1.cmdprev.enabled=.t.endifthisform.refresh“最后一个“按钮的CLICK事件代码:select rsbgo mandgroup1.cmdnext.enabled=.mandgroup1.cmdbottom.enabled=.f.if not bof()mandgroup1.cmdtop.enabled=.mandgroup1.cmdprev.enabled=.t.endifthisform.refresh“增加“按钮的CLICK事件代码:if this.caption=增加this.caption=保存THISFORM.COMMANDGROUP1.CMDTOP.ENABLED=.F.THISFORM.COMMANDGROUP1.CMDPREV.ENABLED=.F.THISFORM.COMMANDGROUP1.CMDNEXT.ENABLED=.F.THISFORM.COMMANDGROUP1.CMDBOTTOM.ENABLED=.F.THISFORM.COMMANDGROUP1.CMDADD.ENABLED=.T.THISFORM.COMMANDGROUP1.CMDEDIT.ENABLED=.F.THISFORM.COMMANDGROUP1.CMDDELETE.ENABLED=.F.THISFORM.COMMANDGROUP1.CMDFIND.ENABLED=.F.THISFORM.COMMANDGROUP1.CMDPRINT.ENABLED=.F.THISFORM.COMMANDGROUP1.CMDEXIT.ENABLED=.F.THISFORM.TEXT1.READONLY=.F.THISFORM.TEXT2.READONLY=.F.THISFORM.OPTIONGROUP1.ENABLED=.T.THISFORM.TEXT3.READONLY=.F.THISFORM.TEXT4.READONLY=.F.THISFORM.TEXT5.READONLY=.F.THISFORM.TEXT6.READONLY=.F.THISFORM.CHECK1.READONLY=.F.THISFORM.EDIT1.READONLY=.F.THISFORM.COMMAND1.VISIBLE=.F.SELECT RSBAPPEND BLANKGO BOTTOMTHISFORM.TEXT1.SETFOCUS()THISFORM.REFRESHELSETHIS.CAPTION=增加THISFORM.COMMANDGROUP1.CMDTOP.ENABLED=.t.THISFORM.COMMANDGROUP1.CMDPREV.ENABLED=.t.THISFORM.COMMANDGROUP1.CMDNEXT.ENABLED=.t.THISFORM.COMMANDGROUP1.CMDBOTTOM.ENABLED=.t.THISFORM.COMMANDGROUP1.CMDADD.ENABLED=.t.THISFORM.COMMANDGROUP1.CMDEDIT.ENABLED=.t.THISFORM.COMMANDGROUP1.CMDDELETE.ENABLED=.t.THISFORM.COMMANDGROUP1.CMDFIND.ENABLED=.t.THISFORM.COMMANDGROUP1.CMDPRINT.ENABLED=.t.THISFORM.COMMANDGROUP1.CMDEXIT.ENABLED=.t.THISFORM.TEXT1.READONLY=.t.THISFORM.TEXT2.READONLY=.t.THISFORM.OPTIONGROUP1.ENABLED=.f.THISFORM.TEXT3.READONLY=.t.THISFORM.TEXT4.READONLY=.t.THISFORM.TEXT5.READONLY=.t.THISFORM.TEXT6.READONLY=.t.THISFORM.CHECK1.READONLY=.t.THISFORM.EDIT1.READONLY=.mand1.visible=.t.endif“删除“按钮的CLICK事件代码:SELECT RSBXH=RSB.学号sel=messagebox(该记录学号为:+XH+chr(13)+真的要删除;吗?,4+32+256,提示)if sel=6deleteendif“查找“按钮的CLICK事件代码:thisform.label11.visible=.t.thisform.text7.visible=.t.thisform.text7.value=thisform.text7.setfocus()“打印“按钮的CLICK事件代码:report form .menu1rsb_bb1.frx preview for rsb.学;号=alltrim(thisform.text1.value)“退出“按钮的CLICK事件代码:select rsbpackthisform.release“TEXT7”的valid事件代码为:select rsbset filter to 学号=alltrim(thisform.text7.value) or ;学生姓名=alltrim(thisform.text7.value)locate for 学号=alltrim(thisform.text7.value) or ;学生姓名=alltrim(thisform.text7.value)thisform.refreshset filter to6、运行界面:(如图7)图7学生数据维护6.学生信息查询表单(chaxun)的设计学生人事信息的查询如图8,是基于RSB.dbf表,提供学号,姓名,全体查询。分别利用不同的命令代码方式实现查询打印功能。功能是便于指导员和老师,学生用户的检索查询。图8学生信息查询表单1) 学生信息查询表单界面中主要控件属性如表8所示。表8学生信息查询表单控件属性对象名称属性名称属性值Form1caption学生信息查询AutoCenter.T.Grid1recordsourcetype1-别名recordsourcersbOptiongroup1buttoncount4value1Command1caption查询2) 各事件的代码如下:FORM1的INIT事件代码:*输入编号、姓名提示标签及文本框THISFORM.Label2.Visible=.F.THISFORM.Text1.Visible=.F.THISFORM.Text1.Setfocus()*输入起始日期、截止日期提示标签及文本框不可见THISFORM.Label4.Visible=.F.THISFORM.Label5.Visible=.F.THISFORM.Text2.Visible=.F.THISFORM.Text3.Visible=.F.THISFORM.Command4.Visible=.F.*表格数据不可修改THISFORM.Grid1.Readonly=.T.Optiongroup1的CLICK事件代码:*选定查询类别后,设置各控件是否可见DO CASE CASE THIS.Value=1 &按学号查询 THISFORM.Label2.Visible=.T. THISFORM.Text1.Visible=.T. THISFORM.Label4.Visible=.F. THISFORM.Label5.Visible=.F.THISFORM.Text2.Visible=.F.THISFORM.Text3.Visible=.F.THISFORM.Command4.Visible=.F. THISFORM.Label2.Caption=请输入要查询的学号: THISFORM.Text1.Value= THISFORM.Text1.Setfocus CASE THIS.Value=2 &按姓名查询 THISFORM.Label2.Visible=.T. THISFORM.Text1.Visible=.T. THISFORM.Label4.Visible=.F.THISFORM.Label5.Visible=.F.THISFORM.Text2.Visible=.F.THISFORM.Text3.Visible=.F.THISFORM.Command4.Visible=.F. THISFORM.Label2.Caption=请输入学生姓名: THISFORM.Text1.Value= THISFORM.Text1.Setfocus() CASE THIS.Value=3 &按出生日期查询 THISFORM.Label2.Visible=.F. THISFORM.Text1.Visible=.F. THISFORM.Label4.Visible=.T. THISFORM.Label5.Visible=.T. THISFORM.Text2.Visible=.T. THISFORM.Text3.Visible=.T. THISFORM.Command4.Visible=.T. THISFORM.Text2.Setfocus CASE THIS.Value=4 &显示全体记录 THISFORM.Label2.Visible=.F. THISFORM.Text1.Visible=.F. THISFORM.Label4.Visible=.F.THISFORM.Label5.Visible=.F.THISFORM.Text2.Visible=.F.THISFORM.Text3.Visible=.F.THISFORM.Command4.Visible=.F. SET FILTER TO GO TOP THISFORM.Grid1.RefreshENDCASEGRID1的数据连接连接RSB表。一一对应该对应的数据项,COMMAND4(查询)的CLICK事件代码:*按输入的日期条件在表格中显示查询的记录SELECT rsbPUBLIC qsrq,jzrqqsrq=THISFORM.Text2.Valuejzrq=TH

温馨提示

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

评论

0/150

提交评论