VFP课程设计总结

时间:2024.4.20

VFP课程设计总结

专业:物流管理

指导老师:

学号:

姓名:

目录

1.绪论

  1.1系统设计目标

  1.2系统开发关键技术

2.系统分析

3.VFP课程设计内容

  3.1设计目的

  3.2设计任务

4.系统设计

  4.1系统功能模块

  4.2数据库表设计结构

  4.3主要模块的设计说明和程序代码

5.主程序代码及显示

6.结论

7.总结与展望

1 绪论

1.1系统设计目标

该项目的设计目的在于开发一套教学信息管理系统,这能有效的帮助学校和老师掌握学生的情况,为学生提供成绩跟课程方面的查询,解决了在传统模式下利用人工进行学生信息管理,存在着较多的缺点,如:效率低,保密性差,时间一长将产生大量的文件和数据,更不便于查找,更新,维护等问题。同时该系统能够极大地提高学生信息管理的效率,也是学校的科学化、正规化管理,与世界接轨的重要条件。用计算机制作的学生信息管理系统还可以通过功能强大的Internet网及时的向学生的家长传递该生在校的最新成绩,有助于学校与家长的信息互动,为更好地把握学校的教育方针一定的促进作用!

1.2 系统开发关键技术

1. 开发工具 

       采用VFP6。0做为开发工具

2. 系统开发硬件平台 

表、数据库、项目、类

查询设计、菜单设计、表单设计

       3. 系统开发软件平台

         基于Windows平台的可视化数据库管理系统

表、数据库、项目、类的基本概念及基本操作

4.软件运行硬件平台要求

VFP6。0

奔腾3以上处理器,内存128M以上,硬盘20G以上。

5.软件运行系统平台要求

       Windows 2000/Xp或更高版本的操作系统

6. 软件功能

2 系统分析

(1)    修改密码:学生可以根据自行更改密码,用户名为学号,初始密码也是学号,确保自身信息的安全部外泄,在这里要提醒广大学生,尽快修改密码,并牢记新密码,不要随便把自己的登录信息告知他人。

(2)    系统信息:教师工作人员可以对系统内学生成绩进行及时更新,增删新旧信息。

(3)    教师任课情况:可以查询到具体课程有哪位老师教,课时数为多少,以及课程类别。

(4)    学生选修课程信息:学生可以查看自己选择了哪些课程,是否选上,以及每门课程考试成绩是多少。

(5)    学生总成绩:总成绩、平均成绩一目了然,更好的掌握自己目前的学习状况。

3  VFP课程设计内容

3.1 设计目的

通过两周的时间,使学生进一步掌握有关表、数据库、项目、类的基本概念及基本操作,在此基础上进行查询设计、菜单设计、表单设计,并掌握常用的属性、事件及方法的使用。

              

3.2 设计任务

1.设计项目:基于VFP课程设计的研究成果

2.设计功能:

(1)系统功能设计

 注:打印功能可以单独在菜单上列出,也可以直接在统计表单上添加打印按钮。

(2)数据库设计

1、教师情况表

工号 C5,姓名 C8,性别 C2,系名 C20,工龄 N2,,出生日期D8,,基本工资 N7,2,简历 M4

2、学生情况表

学号       C6,姓名C8,性别C2,系名C20

3、课程情况表

课程代码      C4,课程名 C30,课时数     N3,课程类别C20,任课教师工号  C5

4、学生选修课程及成绩表

学号 C6,课程代号C4,成绩N3

5、用户表

用户名  C 18,密码 C 20

(以上数据表,必须根据实际情况分别设置:‘格式’、‘输入掩码’,‘标题’,‘字段有效性规则’,‘记录有效性规则’,‘触发器’,‘索引’)

(3)菜单设计

见系统功能设计。

(4)模块详细设计

6、用户登录界面

l  用户信息维护,修改密码,进行密码登录次数限制。

7、数据管理

l  教师基本信息:按JS表的内容建立表单,利用该表单进行教师基本信息的添加、更新、删除及查询、第一条、下一条、上一条、最后一条等处理。

l  学生基本信息:按XS表的内容建立表单,利用该表单进行学生基本信息的添加、更新、删除及查询、第一条、下一条、上一条、最后一条等处理。

l  课程基本信息:按KC表的内容建立表单,利用该表单进行课程基本信息的添加、删除及查询、第一条、下一条、上一条、最后一条等处理。

l  用户信息维护:按YH表的内容建立表单,利用该表单进行课程基本信息的添加、删除及查询、第一条、下一条、上一条、最后一条等处理。

注意:这三个表单中用到的工具条要创建成类,然后把它添加到表单中

8、查询设计

l  教师任课情况:以一对多的形式,在页框第一页的表格中选择教师双击后,页框自动切换到第二页并在第二页的表格中显示该教师的任课情况。

l  学生选修课程信息:创建一个一对多表单,当在一个下拉组合框中选择学生后,在下面的GRID中反映该学生选修的课程名、课时数、任课教师以及该门课的成绩。

9、统计处理

l  各教师的任课时数:创建一个视图,该视图用来反映每个教师上了几门课,总课时是多少,并将该视图加到表单的数据环境中,创建一个教师情况查询表单。

l  课程选课情况:利用查询设计器设计一个查询,查各门课程学生选修人数、最好成绩、最差成绩、平均成绩

l  学生成绩统计:创建一个视图,该视图用来反映每个学生选修了几门课,总成绩多少,并将该视图加到表单的数据环境中,创建一个学生总成绩查询表单,勇气用页框来实现,第一页反映学生的总成绩,第二页反映学生的明细成绩。

10、            打印输出

先在报表设计器中设计一个学生总成绩报表,然后在学生总成绩查询表单上添加一个打印按钮,当按下该按钮时,调用上述创建的报表。

4. 系统设计

4.1 系统功能模块

学生管理信息系统是一套功能完整操作简便的面向江苏科技大学南徐学院全体在校生的综合系统,包括学生学籍信息管理、教学计划管理、已修课程管理、学分绩点测算、学业预警管理、计划完成情况管理6大功能,可实现学生信息的自主查询。

模块功能:

(1)学生学习成绩信息管理系统

这个管理系统包括学生选修课程成绩以及相关的任课教师

所运用数据:学生情况表学生的学号(主索引),课程成绩表的学号,课程代号,课程情况表的课程代号

(2)教学计划管理系统

在这个管理系统中,学生不仅可以了解课程的基本信息,还可以帮助老师查出自己的任课门数

(3)数据的管理,数据的统计,数据的查询以及打印相关的数据

      该功能主要是运用相关表的数据,运用相关的程序代码将相关的表连起来

(4)已修课程管理系统

 这个管理系统包括已修课程信息浏览与查询2个模块,可以完成已修课程基本信息查询功能。

(5)计划完成情况系统

在这个系统中,学生可以直接查询教学计划中已经完成的课程的详细信息。

4.2  数据库表设计结构

        表及设计过程如下:

 

4.3 主要模块的设计说明和程序代码

登陆界面:

首先为这张表单增加一个属性“n”,可以用来做计数器,

      表单的“load”中添加代码如下:

           thisform.AddProperty("n",0)

   “确定”按钮的“click”事件中添加代码如下:

SELECT yh

LOCATE FOR yhm=ALLTRIM(thisform.Text1.value)

IF FOUND()   

IF ALLTRIM(thisform.Text2.value)=ALLTRIM(yh.mm)

messagebox("欢迎您使用!")

do 教学管理系统.mpr

thisform.release

else

MESSAGEBOX("密码错误,请重新输入!",48,"提示")

thisform.Text2.value = ""

thisform.Text2.setfocus()

thisform.n=thisform.n+1

endif

else

MESSAGEBOX("您输入的用户名不存在,请核实!",48,"提示")

endif

if thisform.n>=3

MESSAGEBOX("违规登陆!",48,"提示")

thisform.release

Endif

修改密码:

  “新密码”按钮的“click”事件中添加代码如下:

SELECT yh

LOCATE FOR yhm=ALLTRIM(thisform.Text1.value)

IF FOUND()   

       IF ALLTRIM(thisform.Text2.value)<>ALLTRIM(yh.mm)

       MESSAGEBOX("密码错误,请重新输入!",48,"提示")

              thisform.Text2.value = ""

              thisform.Text2.setfocus()

       ENDIF

       ELSE 

       MESSAGEBOX("无此用户名,请重新输入!",48,"提示")

       thisform.Text2.value= ""

       thisform.Text2.setfocus()

ENDIF

   

“确定”按钮的“click”事件中添加代码如下:

IF thisform.text3.value == thisform.text4.value

       REPLACE mm WITH ALLTRIM(thisform.text3.value)

       MESSAGEBOX("密码更改成功!请牢记新密码。",64,"提示")

       ELSE

       MESSAGEBOX("您两次输入的密码不同,不能更改密码,请重新输入!",48,"提示")

       thisform.text3.value       =""

       thisform.text4.value       =""

ENDIF

教师情况表单:

“第一条,上一条,下一条,最后一条”命令按钮组的“click”事件中添加代码:

do case

case this.value=1

  goto top

  this.command1.enabled=.F.

  this.command2.enabled=.F.

  this.command3.enabled=.T.

  this.command4.enabled=.T.

case this.value=2

  if!bof()

  skip -1

  endif

  this.command1.enabled=.T.

  this.command2.enabled=.T.

  this.command3.enabled=.T.

  this.command4.enabled=.T.

case this.value=3

  if!eof()

  skip

  endif

  this.command1.enabled=.T.

  this.command2.enabled=.T.

  this.command3.enabled=.T.

  this.command4.enabled=.T.

case this.value=4

goto bottom

  this.command1.enabled=.T.

  this.command2.enabled=.T.

  this.command3.enabled=.F.

  this.command4.enabled=.F.

endcase

Thisform.refresh

“添加”的“click”事件:Append

“更新”的“click”事件:Thisform.refresh

“删除”的“click”事件:

If Messagebox("是否确定删除此记录?",4+32+256,"警告")=6

    Delete

    Skip   

    This.Parent.Parent.Refresh

Endif

“查询”的“click”事件:

if allt(thisform.text1.value)==""

messagebox("请输入工号!",64,"提示")

thisform.text1.setfocus

else

sele js

locate for allt(gh)=allt(thisform.text1.value)

if found()

go recn()

else

wait window at 18,38 nowait '没有找到你要查询的信息!'

endif

endif

Thisform.refresh

教师任课情况表单:

学生选修课程信息表单:

教师任课课时数视图:

     课程选课情况查询:

    

学生总成绩查询表单:

    

     学生总成绩报表:

     

菜单设计:

  

  5 主程序代码

CLEAR

close all

set date to long

set century on

set delete on

set safe off

set exclusive on

close all

set date to long

set century on

set delete on

set safe off

set exclusive on

public vfpcaption

vfpcaption='《学生成绩管理系统》Version 1.0, Copyright 2004'

**************设置VFP主窗口属性*********

WITH _SCREEN

       .Caption=vfpcaption

       .picture='6791780_122429089381_2.jpg'

       .WINDOWSTATE=2

       .controlbox=.t.

    .closable=.t.

       .visible=.t.

       .autocenter=.t.

       on shutdown do myQuit

ENDWITH    

************************************

set sysmenu off

do form 用户登录

read events

return

************************************

function myQuit

    on error *

    close all

    clear all

    declare long ExitThread in win32api long

    ExitThread(0)

endfunc

6 结论

学生信息管理系统是学校信息管理系统的一个重要组成部分。他为其他系统(如学校图书管理系统、学校档案管理系统、教学管理系统、总务后勤管理系统等)提供学生的基本信息,同时它也需要如教学管理系统提供课程设置数据等。这些系统在具体应用中构成一个大系统,相互调用对方的数据。由以上分析,我们可以充分认识到设计并开发一个学生信息管理系统的必要性和迫切性,本次设计和开发的学生信息管理系统应符合学校学生信息管理的规定,满足对学校学生信息管理的需要,并达到操作过程中的直观,方便,实用,安全等要求。系统采用模块化程序设计的方法,既便于系统功能的组合和修改,又便于未参与系统开发的技术维护人员补充和维护。SIMS通过教育网络或互联网把整个学校的学生信息汇聚起来,为学校教育主管部门提供全面及时的学生信息,方便管理,同时亦可通过校园网扩展各类信息化应用,共享学生信息。

7 总结与展望

  为期一周的课程设计已经画上句号,至于它的完美程度,应该是因人而异吧。在这短短的一周时间里,我真正做到了理论实践的结合。以前我对VFP的掌握和了解很肤浅,也很不全面,经过一周的上机时间操作,我加深了对它的掌握程度。在结束语中,我想分享一下自己的心得:

1. 数据库方面:这是最主要的、也是最基础的。数据是管理的对象,一切具体编程都是以数据库为中心,任何时候都应把对数据的处理作为重点,对数据库的原理应作到心中有数。数据库是包含表在内的一个容器,包含的更多的信息和拓展了功能,包括了数据库内各个表之间的关系、校验规则,许多原来需要在程序中设置的工作可以在设计数据库时包容进去,随着对数据库概念的了解和深入,我们会发现数据库的重要性。

2. 语言方面:对语言大概有个了解,当遇到一个问题时首先要想的是解决方法,使用的语言能不能处理,然后再查看相关的帮助文件或者语言手册,根据提示的语法规范编写命令。同时对语言的掌握应注重它所能完成的功能,这样当学习其他语言时事半功倍,提高效率。例如变量定义、书写规范、常用函数、循环语句等等,这些是编程的基础。我们时常还会用到FOR、DO、USE、BROWS等语句,所以在以后的语言书写时应该遵循一定的原则。

 3.面向对象的编程:包括面向对象的编程方法,面对大量的属性、方法和事件的处理。

1.关于属性、方法和事件。表单是一个大集合,控件就是一个小集合,它包含着自己的表现特征、用户对它进行控制和触发的事件和方法。学习属性、方法和事件要结合控件。如控件的高度(height)、宽度(width)、背景颜色(backcolor)、字体(font)、字号(fontsize)、点击事件(Click)、清除事件(Destory)等等共同拥有的属性、方法和事件,这需要对Windows平台的感官效果和操作方法上去理解。我们应该熟悉控件的属性。

2.关于控件与数据库结合。对于表单应设置数据环境,在数据环境中设置当前表单所用到的数据库表或者自由表,由于数据环境中的表是随表单的打开和关闭而自动打开和关闭的,可以解决编程时处理工作区和表而有可能所带来的差错。控件与表字段的结合是通过控件的controlsource属性设置的,一般使用Text控件与字段联系。

3.面向对象编程语言的使用。代码放入控件的事件中,对库的操作时用标准的foxpro命令来实现,但对表单和控件的控制就要用到面向对象的编程语言,例如:关闭按钮的click事件中的thisform.releaase命令如何理解。一种对控件进行控制的方法,基本上可以分为两部分:1.控件的名称,例如thisform、thisform.command1,this.parent.text1;2.控件的属性、方法和事件的名称,如width=100、click()、refresh、release。两个部分中间用“.”连接起来,需要注意的是标明控件的唯一名字,同时更要注意控件父子关系。

   以上是我在这次课程设计中所学到的一些知识,这些也是我在平时的学习中所没有学到的或者说这些东西是平时最容易忽略的知识点。这次的课程设计让我真正明白了“脚踏实地”,“一份耕耘,一份收获”的人生哲理,也体会到了技术开发人员思维的严密性和吃苦耐劳的精神。课程设计结束也就意味着江苏省计算机二级考试即将来临,我会好好把握考试前复习的时间,将所学的知识有效地结合起来。我相信在以后的日子里,在该课程上,我会取得更大的进步。

   在本次的课程设计中,我们从指导老师身上学到了很多东西。老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我们受益匪浅。老师无论在理论上还是在实践中,都给予我们很大的帮助,使我们得到不少的提高,这对于我们以后的工作和学习都有巨大的帮助,感谢他们耐心的辅导。同时,也感谢学校能给我们这样的一个锻炼机会,让我们有个锻炼提升自己的平台。 

更多相关推荐:
建筑结构课程设计设计总结

工程结构设计心得课程设计对学生而言是其对所学课程内容掌握情况的一次自我验证,从而有着极其重要的意义。通过课程设计能提高学生对所学知识的综合应用能力,能全面检查并掌握所学内容;《建筑结构》从课程性质上讲是一门专业…

课程设计心得体会

心得体会通过这次课程设计,让我更加深刻了解课本知识,和以往对知识的疏忽得以补充,在设计过程中遇到一些模糊的公式和专业用语,比如说经济刮板运输机及皮带运输的选择,在选择选择刮板皮带运输选型时,在使用手册时,有的数…

课程设计个人小结

个人小结三周的课程设计结束了,我和同学们一起度过了这段忙碌而充实的时光。这次的课程设计深刻的反映出实践是检验真理的唯一标准这句话的真谛。课程设计是我们专业课程知识综合应用的实践训练,是我们迈向社会,从事职业工作…

信息工程学院课程设计总结

通过近两周的奋斗,课程设计接近了尾声。经过两周的奋战我的课程设计终于完成了。在没有做课程设计以前觉得课程设计只是对信号与系统这门课程所学知识的单纯总结,但是通过这次做课程设计发现自己的看法有点太片面。课程设计不…

课程设计心得体会(通用)

课程设计心得体会通用通过此次课程设计使我更加扎实的掌握了有关方面的知识在设计过程中虽然遇到了一些问题但经过一次又一次的思考一遍又一遍的检查终于找出了原因所在也暴露出了前期我在这方面的知识欠缺和经验不足实践出真知...

课程设计总结模板

两周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合…

万能课程设计心得体会2个

1两周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了…

asp net 课程设计小结

课程设计小结又过去了一周这次aspnet的课程设计中学习到了很多通过这次的课程设计检验和巩固了我平时所学的知识让我知道了平时学习中的不足教会了我如何去完整地完成简单的系统在设计的过程之中遇见问题是一定的有时候就...

数据结构课程设计总结

课程设计说明书课程名:《数据结构课程设计》题目:一元多项式运算系统20##年1月一、课程认识数据结构课程主要是研究非数值计算的程序设计问题中所出现的计算机操作对象以及它们之间的关系和操作的学科。数据结构是介于数…

课程设计心得

嵌入式系统开发课程设计题目基于6410ARM的嵌入式WEB服务器的移植院系信息工程学院专业班级11计科特色班学生姓名邵飞飞学号1142157115设计地点13号楼605指导教师王华本起止时间20xx年4月21日...

课程设计心得感想体会29篇

课程设计心得感想体会在做实验前一定要将课本上的知识吃透因为这是做实验的基础否则在老师讲解时就会听不懂这将使你在做实验时的难度加大浪费做实验的宝贵时间比如做应变片的实验你要清楚电桥的各种接法如果你不清楚在做实验时...

课程设计心得

课程设计心得篇一课程设计心得本学期实时测量技术实验以电子设计大赛的形式老师命题学生可以选择老师的题目也可以自己命题并且组队操作其他的事情包括设计总体方案硬件电路软件设计焊接调试等工作趣味性强同时也可以学到很多东...

课程设计设计总结(40篇)