学籍管理系统.doc_第1页
学籍管理系统.doc_第2页
学籍管理系统.doc_第3页
学籍管理系统.doc_第4页
学籍管理系统.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

.河南城建学院数据库技术及应用 课 程 设 计 说 明 书 专业:工程造价 班级:0524101 学号:052410112 姓名:王克娟 目录前言 3第1章 :概述 31.1 vfp的使用 31.2 Microsoft VFP的使用 3第2章 :系统分析 4 2.1 系统需求分析 42.2 系统的可行性研究 42.3 系统分析 4第3章 :设计思路及表单源代码3.1数据库 53.2 进入表单 73.3登录表单 83.4主功能界面表单103.5录入数据表单133.6修改数据表单 153.7查询数据表单173.8删除数据表193.9打印表单21 前言 学籍 管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学籍管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学籍信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。 第一章 概述1 开发工具的应用1.1 vfp的使用 vfp 是Microsoft 公司推出的一个可视化的面向对象的应用程序开发工具。由于vfp继承了语言简单、易学的优点,又增强了可视化、数据库及Internet编程功能,因此很快便成为开发Windows应用程序的有效工具。在本次设计中只所以采用vfp进行开发,主要是以为VB具有以下两大特点:1.面向对象编程传统的结构化语言都是采用面向过程的编程方法来解决问题。在面向过程的编程方法中,代码和数据是分离的,由此带来了很多缺陷,其中最重要的就是程序的可维护性差。面向对象编程(OOP:Object Oriented Programming)则把数据和处理数据的代码封装到一个类中,类的实例就是对象。与面向对象的编程方法相比,面向对象编程方法有三个优点:1)程序易于阅读和理解;2)程序易于修改;3)对象能重复使用多次,即程序员可以随时根据需要将对象插入到程序中去。2.事件驱动的编程机制在面向对象的编程方法中,每个程序通常包含一个主程序和若干个子程序,由某个子程序来处理某个小问题,再由主程序自顶向下调用各个子程序来逐步解决整个问题。VFP彻底解决了这种编程机制。在 VFP中,没有传统意义上的主程序,程序执行通过事件来驱动,即只有在事件发生时,程序才执行,若没有发生任何事件,则处于停滞等待状态。 事件驱动使得用VFP编程没有必要建立明显的开始和结束程序,而只需编写若干微小的子程序,这些子程序分别由各种事件来驱动执行。由于子程序规模不大、功能单一,因此编程难度得意大大降低。本次毕业设计需要用一种新软件来开发学习,但是接触一门新的软件往往上手容易,使用起来很困难,而且这次毕业设计时间短,任务重。显然使用非常复杂的软进行开发是不太现实的。而VFP简单易懂,控件操作简单方便,且集成了多种开发和应用软件,使用的人比较多,方便在一起讨论学习,所以在这次设计中,我们采用了VB作为我们主要的开发工具。1.2 Microsoft VFP的使用VFP作为Microsoft的office套件产品,目前已经成为世界上最流行的桌面数据库系统。Access与许多优秀的关系数据库一样,可以让你很容易地连接相关的信息而且还对其他的数据库系统有所补充。它能操作其它来源的资料,包括许多流行的PC数据库程序(如Paradox,Microsoft FoxPro)和服务器、小型积极大型机上的许多SQL数据库。VFP还提供windows操作系统的高级应用程序开发系统。Access与其它数据库开发系统之间相当显著的区别就是:您不用写一行代码,就可以在很短的时间里开发出一个功能强大而且相当专业的数据库应用程序,并且这一愉快的过程是完全可视的!如果您能给它加上简短的VBA代码,那么您的程序决不比专业程序员潜心开发的程序差。在本次设计中,需要建立一个数据库系统,并且在开发中希望能够建立一个专业的数据库系统,但是去系统地去学习编程时间和精力上不允许,并且写SQL语句,也是一项比较麻烦的工作。而微软公司开发的VFP软件很好的解决了这方面的问题,所以在本系统的开发中,数据库的建立就是使用了微软公司开发的Microsoft VFP软件。第二章 系统分析2.1 系统需求分析伴随社会的高速发展,全国各高校的学生数量一直在增加,在这样的形式下,必须要求学校有一种高效有序的方法来管理学生的信息。通过调查,要求系统需要有以下功能: 由于操作人员的计算机知识普遍较差,要求有良好的人机界面; 由于该系统的使用对象多,要求有较好的权限管理; 原始数据修改简单方便,支持多条件修 方便的数据查询,支持多条件查询; 在相应的权限下,删除数据方便简单,数据稳定性好; 数据计算自动完成,尽量减少人工干预;2.2 系统的可行性研究2.2.1技术上的可行性由于VFP语言简单、易学的优点,又增强了可视化、数据库及Internet编程功能,很容易就可以进行系统开发。因此系统开发工具可以采用VFP进行开发。而对数据库的建立,由于建立的数据库主要是对光纤的信息进行管理,所以可以采用微软公司开发的Microsoft VFP。该软件简单易懂,应用广泛,比较适合新手上路使用,而且建立的数据库较为安全。2.2.2管理上的可行性因为系统主要应用于学院内部,而不具备网络查找功能,因此在实现时可以做成单机版,对管理员赋予数据录入、查询、修改以及对数据库的清零等功能。2.2.3安全上的可行性在建立数据库时可以通过对数据库的设计用户名和密码进行保密,以及在建立数据库以后可以对数据进行压缩等技术,保证数据的安全,使数据库具有安全保障。2.3 系统分析 学生学籍管理系统主要功能是对经济管理学院学生进行各种信息的管理,因此,该系统需要具备的功能如下:系统管理:包括用户信息(用户名、密码等)的添加,更改、删除和退出系统等功能。成绩管理:包括学生成绩管理(课程号、课程名、学号、成绩)的添加、更改、删除和查询(按学号、班级和查询全部)等功能。学生管理:包括学生基本信息管理。其中学生基本信息管理包括学生基本信息(学生编号、姓名、性别、生日、所在专业等)的添加、更改、删除和查询(按学号、班级、专业、院系)等功能。课程管理:包括课程信息(课程号、课程名称和授课老师)的添加和删除。打印报表:包括输出学生自然状况、学生的各科成绩和补考学生报表2.3.1系统功能分析 权限功能:为用户设置权限功能,用户只能对授权范围内进行相应修改及删除。录入功能:,为用户提供对所有信息的录入功能。 查询功能:为用户提供查询的功能,可查询允许范围内的所有信息。 维护功能:为用户提供查询及相应的修改,删除功能。 打印功能:能打印全校学生的信息及积各班信息,科目成绩等。 退出功能:结束并关闭系统对上述各功能进行集中、分块、按照结构化程序设计的要求 第三章:设计思路及程序源代码MIS是英文Management Information System的英文缩写,意思是信息管理系统,该系统可用于中小型企事业单位业务处理和信息交流,从而大大提高了企业运作的效率。微软公司的VisualFoxPro可视化面向对象的编程软件是一个设计MIS系统即简单又快捷的好软件。下面,就以VFP 6.0为开发环境,讲述设计学生学籍管理系统的详细设计过程,也为在看过了前面非表单设计的学生学籍管理系统的朋友们继续了解并学习采用表单(Form)的方式设计MIS系统的方法。一、设计思路:学生学籍管理系统的运行以封面表单开始,如图1所示,要求用户输入登录密码,并设置三次检查功能,若三次输入的密码均有错,则自动退出系统;否则出现系统菜单,接收用户的操作,操作完毕后用户可以从系统菜单中退出系统。 二、系统功能:系统的功能主要分成十个功能模块,它们是:录入数据、修改数据、删除数据、查询数据、统计数据、显示数据、打印数据、导出数据、导入数据和清空数据。录入数据可以实现学生信息的录入;修改数据可以实现学生信息的修改;删除数据可以实现学生数据的删除;查询数据可以实现学生信息的查询;统计数据可以实现学生人数、党员人数、学生总平均成绩、高数平均成绩、英语平均成绩和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) &设置窗口的背景色 CLOSE ALL CLEAR ALL CLEAR SET SYSMENU OFF SET SYSMENU TO SET TALK OFF SET SAFETY OFF SET STATUS BAR OFF &关闭Visual Foxpro的状态栏 DO FORM A:进入表单.SCX &调用系统登录“进入表单”表单 READ EVENT &响应用户输入 DO D:学生学籍管理系统菜单.MPR &运行系统菜单 READ EVENT SET SYSMENU TO DEFAULT &恢复Visual Foxpro的系统菜单的默认值 SET SYSMENU ON &显示Visual Foxpro的系统菜单 SET STATUS BAR ON &显示Visual Foxpro的状态栏 CLOSE ALL &关闭所有文件 CLEAR ALL RETURN &返回 2. 登录表单源代码 图1单击确定按钮时的click事件:do form 登陆表单单机删除按钮时的click事件:thisform。Release 3、封面表单源代码(A:进入表单.sct) ENDPROC 图2do case case thisform.optiongroup1.value=1 if thisform.text1.value=aaa and thisform.text2.value=123456 messagebox(欢迎使用本系统) do form 主功能界面表单 thisform.release else i=i+1 if i=3 messagebox(账号或密码错,重新输入) thisform.text1.value= thisform.text2.value= thisform.text1.setfocus else messagebox(信息有误,禁止进入!) quit endif endif case thisform.optiongroup1.value=2 if thisform.text1.value=bbb and thisform.text2.value=654321 messagebox(欢迎使用本系统) do form 浏览表单 thisform.release else k=k+1 if k=3 messagebox(账号或密码错,重新输入) thisform.text1.value= thisform.text2.value= thisform.text1.setfocus else messagebox(信息有误,禁止进入!) quit endif endif 4、 主功能界面表单5、 录入数据表单源代码(A:录入.sct,如图3所示) PROCEDURE Init &录入数据表单的初始化事件过程 图3SET TALK OFF THISFORM.mand4.ENABLED=.f. &设置第四个按钮为不可用状态 THISFORM.mand5.ENABLED=.f.&设置第五个按钮为不可用状态 THISFORM.txt学号.ENABLED=.f. &设置学号文本框为不可用状态THISFORM.txt班级.ENABLED=.f. &设置学号文本框为不可用状态 THISFORM.txt姓名.ENABLED=.f. &设置姓名文本框为不可用状态 THISFORM.txt性别.ENABLED=.f. &设置组合框1为不可用状态 THISFORM.txt出生年月.ENABLED=.f. &设置组合框2为不可用状态 THISFORM.txt年级.ENABLED=.f. &设置组合框3为不可用状态 THISFORM.txt专业.ENABLED=.f. &设置组合框4为不可用状态 THISFORM.txt电话.ENABLED=.f. &设置邮编文本框为不可用状态 THISFORM.txt家庭住址.ENABLED=.f. &设置高数文本框为不可用状态 THISFORM.txt身份证号.ENABLED=.f. &设置英语文本框为不THISFORM.edt备注.ENABLED=.f. &设置备注编辑框为不可用状态 PROCEDURE PROCEDURE Command1.Click &单击命令按钮1的事件过程 APPEND BLANK&添加一空白记录 THISFORM.REFRESH &刷新录入数据表单 THISFORM.mand1.ENABLED=.f. &设置命令按钮1为不可用状态 THISFORM.mand2.ENABLED=.f. &设置命令按钮2为不可用状态 THISFORM.mand3.ENABLED=.f. &设置命令按钮3为不可用状态 THISFORM.mand4.ENABLED=.t.&设置命令按钮4为可用状态 THISFORM.mand5.ENABLED=.t. &设置命令按钮5为可用状态 THISFORM.mand6.ENABLED=.f. &设置命令按钮6为不可用状态 THISFORM.mand5.ENABLED=.f.&设置第五个按钮为不可用状态 THISFORM.txt学号.ENABLED=.t. &设置学号文本框为不可用状态THISFORM.txt班级.ENABLED=.t. &设置学号文本框为不可用状态 THISFORM.txt姓名.ENABLED=.t. &设置姓名文本框为不可用状态 THISFORM.txt性别.ENABLED=.t. &设置组合框1为不可用状态 THISFORM.txt出生年月.ENABLED=.t. &设置组合框2为不可用状态 THISFORM.txt年级.ENABLED=.t. &设置组合框3为不可用状态 THISFORM.txt专业.ENABLED=.t. &设置组合框4为不可用状态 THISFORM.txt电话.ENABLED=.t. &设置邮编文本框为不可用状态 THISFORM.txt家庭住址.ENABLED=.t. &设置高数文本框为不可用状态 THISFORM.txt身份证号.ENABLED=.t. &设置英语文本框为不THISFORM.edt备注.ENABLED=.t. &设置备注编辑框为不可用状态 THISFORM.chk是否党员.ENABLED=.t.PROCEDURE Command2.Click &单击命令按钮2的事件过程 DELETE &删除当前记录 YN=MESSAGEBOX(确实要删除这条记录?,4+32+256,删除确认) &弹出内容为“确实要删除这条记录?”的对话框 DO CASE &运行条件判断语句 CASE YN=6 &当单击“是”按钮时 =TABLEUPDATE(.T.) &执行更新表函数,删除当前记录 CASE YN=7 &当单击“否”按钮时 RECALL &恢复已作了删除标记的当前记录 ENDCASE THISFORM.REFRESH PROCEDURE Command3.Click &单击命令按钮3的事件过程 THISFORM.mand1.ENABLED=.f. THISFORM.mand2.ENABLED=.f. THISFORM.mand3.ENABLED=.f. THISFORM.mand4.ENABLED=.t. THISFORM.mand5.ENABLED=.t. THISFORM.mand6.ENABLED=.f. ENDPROC PROCEDURE Command4.Click &单击命令按钮4的事件过程 =TABLEUPDATE(.T.) THISFORM.mand1.ENABLED=.t. THISFORM.mand2.ENABLED=.t. THISFORM.mand3.ENABLED=.t. THISFORM.mand4.ENABLED=.f. THISFORM.mand5.ENABLED=.f. THISFORM.mand6.ENABLED=.t. PROCEDURE Command5.Click &单击命令按钮5的事件过程 =TABLEREVERT(.T.) THISFORM.mand1.ENABLED=.t. THISFORM.mand2.ENABLED=.t. THISFORM.mand3.ENABLED=.t. THISFORM.mand4.ENABLED=.f. THISFORM.mand5.ENABLED=.f. THISFORM.mand6.ENABLED=.t. PROCEDURE Command6.Click &单击命令按钮6的事件过程 SELE 1&选择1号工作区 USE A:XJ EXCLUSIVE打开A盘中的XJ.DBF数据表 PACK &彻底删除已作了删除标记的记录 THISFORM.RELEASE &释放录入数据表单 5、修改数据表单源代码(修改.sct)图4PROCEDURE Command1.Click IF NOT BOF() &如果记录指针没有到记录的开头 SKIP 1 &向上跳转一个记录 THISFORM.REFRESH THISFORM.mand2.ENABLED=.t. ELSE WAIT WINDOW 已经是第一条记录了! &系统给出内容为“已经是第一条记录了!”提示窗口 ENDIF ENDPROC PROCEDURE Command2.Click IF NOT EOF() &如果记录指针没有到记录的结尾 SKIP &向下跳转一个记录 THISFORM.REFRESH THISFORM.mand1.ENABLED=.t. ELSE WAIT WINDOW 已经是最后一条记录了! ENDIF ENDPROC PROCEDURE Command3.Click GO TOP &将记录指针移到记录的开头 THISFORM.REFRESH THISFORM.mand1.ENABLED=.f. THISFORM.mand2.ENABLED=.t. ENDPROC PROCEDURE Command4.Click GO BOTTOM &将记录指针移到记录的结尾 THISFORM.REFRESH THISFORM.mand1.ENABLED=.t. THISFORM.mand2.ENABLED=.f. ENDPROC PROCEDURE Command5.Click =TABLEUPDATE(.T.) THISFORM.mand1.ENABLED=.t. THISFORM.mand2.ENABLED=.t. THISFORM.mand3.ENABLED=.t. THISFORM.mand4.ENABLED=.t. THISFORM.mand5.ENABLED=.f. THISFORM.mand6.ENABLED=.f. THISFORM.mand7.ENABLED=.t. ENDPROC PROCEDURE Command6.Click =TABLEREVERT(.T.) &启用表缓冲,放弃表中对所有记录所做的修改函数 THISFORM.mand1.ENABLED=.t. THISFORM.mand2.ENABLED=.t. THISFORM.mand3.ENABLED=.t. THISFORM.mand4.ENABLED=.t. THISFORM.mand5.ENABLED=.f. THISFORM.mand6.ENABLED=.f. THISFORM.mand7.ENABLED=.t. ENDPROC PROCEDURE Command7.Click USE A:XJ EXCLUSIVE PACK THISFORM.RELEASE ENDPROC PROCEDURE Click IF EMPTY(THISFORM.combo1.VALUE) &如果组合框1的值为空 =MESSAGEBOX(请选择学号!,48+0+0,学生学籍管理系统) &系统给出内容为“请选择学号!”的对话框 ENDIF AA=RECNO() &用显示记录号的函数将记录号赋给变量AA GO AA &将记录指针移到当前记录号 THISFORM.txt学号.REFRESH &刷新学号文本框的内容 THISFORM.txt姓名.REFRESH &刷新姓名文本框的内容 THISFORM.txt性别.REFRESH &刷新性别文本框的内容 THISFORM.txt出生年月.REFRESH &刷新出生年月文本框的内容 THISFORM.txt邮编.REFRESH &刷新邮编文本框的内容 THISFORM.txt高数.REFRESH &刷新高数文本框的内容 THISFORM.txt英语.REFRESH &刷新英语文本框的内容 THISFORM.txtVfp.REFRESH &刷新VFP文本框的内容 THISFORM.txt是否党员.REFRESH &刷新是否党员文本框的内容 THISFORM.txt电话.REFRESH &刷新电话文本框的内容 THISFORM.txt通信地址.REFRESH &刷新通信地址文本框的内容 THISFORM.edt备注.REFRESH &刷新备注编辑框的内容 THISFORM.mand5.ENABLED=.t. THISFORM.mand6.ENABLED=.t. ENDPROC6、查询数据表单源代码(A:查询.sct)图5PROCEDURE Click IF EMPTY(THISFORM.combo1.VALUE) =MESSAGEBOX(请选择学号!,48+0+0,学生学籍管理系统) ENDIF AA=RECNO() GO AA THISFORM.txt班级.REFRESH THISFORM.txt姓名.REFRESH THISFORM.txt性别.REFRESH THISFORM.txt出生年月.REFRESH THISFORM.txt学号.REFRESH THISFORM.txt专业.REFRESH THISFORM.txt家庭住址.REFRESH THISFORM.txt电话.REFRESH THISFORM.txt身份证号.REFRESH THISFORM.edt备注.REFRESH 7、统计系统源代码图6PROCEDURE Click &单击“统计记录总数”按钮时的事件过程 COUNT TO AA FOR 是否党员=是 &对党员计数,并将计数结果赋给变量AA THISFORM.text5.value=AA &将变量AA的值赋给文本框5 THISFORM.text5.REFRESH ENDPROC PROCEDURE Click &单击“统计英语平均成绩”按钮时的事件过程 AVERAGE 英语 TO AA &对所有记录的英语成绩求平均,并将平均值赋给变量AA THISFORM.text3.value=AA &将变量AA的值赋给文本框3 THISFORM.text3.REFRESH ENDPROC PROCEDURE Click &单击“统计高数平均成绩”按钮时的事件过程 AVERAGE 高数 TO AA &对所有记录的够高数成绩求平均,并将平均值赋给变量AA THISFORM.text4.value=AA &将变量AA的值赋给文本框4 THISFORM.text4.REFRESH ENDPROC PROCEDURE Click &单击“统计建筑力学平均成绩”按钮时的事件过程 AVERAGE 建筑力学 TO AA &对所有记录的VFP成绩求平均,并将平均值赋给变量AA THISFORM.text5.value=AA &将变量AA的值赋给文本框4 THISFORM.text5.REFRESH PROCEDURE Click &单击“统计财务管理平均成绩”按钮时的事件过程 AVERAGE 财务管理 TO AA &对所有记录的财务管理成绩求平均,并将平均值赋给变量AA THISFORM.text6.value=AA &将变量AA的值赋给文本框4 THISFORM.text6.REFRESH 8、查询数据表单源代码显示.sct)图7PROCEDURE Command1.click &单击显示按钮的事件过程 IF EMPTY(THISFORM.combo1.VALUE) =MESSAGEBOX(请选择学号!,48+0+0,学生学籍管理系统) ENDIF AA=RECNO() GO AA THISFORM.txt班级.REFRESH THISFORM.txt姓名.REFRESH THISFORM.txt性别.REFRESH THISFORM.txt出生年月.REFRESH THISFORM.txt学号.REFRESH THISFORM.txt专业.REFRESH THISFORM.txt家庭住址.REFRESH THISFORM.txt电话.REFRESH THISFORM.txt身份证号.REFRESH THISFORM.edt备注.REFRESH 9、删除数据表单源代码(D:删除.sct)图8PROCEDURE Click &单击“显示”按钮的事件过程 IF EMPTY(THISFORM.combo1.VALUE) =MESSAGEBOX(请选择学号!,48+0+0

温馨提示

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

评论

0/150

提交评论