VFP课程设计总结

VFP课程设计总结

专业:旅游管理

班级:09428183

学号:0942818311

姓名:宋苗

一.目录

1.建立数据库、项目以及表

2.添加类

3.做表单,把类添加到表单控件上

4.建立系统菜单,把菜单添加到表单上

5.查询和视图设计

6.设计报表、主程序

7.连编

二.内容

(一)数据库设计

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

(二)添加类

添加一个类,命令按钮为第一条、上一条、下一条、最后一条、添加、退出等。

VFP课程设计总结

(三)设计表单

1、用户登录界面

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

VFP课程设计总结

2、数据管理

(1)教师情况查询表:按jsqkb的内容建立表单,利用该表单进行教师基本信息的添加、更新、删除及查询、第一条、下一条、上一条、最后一条等处理。 (2)学生情况查询表:按xsqkb的内容建立表单,利用该表单进行学生基本信息的添加、更新、删除及查询、第一条、下一条、上一条、最后一条等处理。

(3)课程情况查询表:按kcqkb的内容建立表单,利用该表单进行学生基本信 息的添加、更新、删除及查询、第一条、下一条、上一条、最后一条等处理。 (4)学生选修课程及成绩查询表:按xsxxkcjcjb 的内容建立表单,利用该表单

进行学生基本信息的添加、更新、删除及查询、第一条、下一条、上一条、最后一条等处理。

VFP课程设计总结

VFP课程设计总结

(五)查询和视图设计

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

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

VFP课程设计总结

VFP课程设计总结

(六)报表

根据视图建立一个报表

VFP课程设计总结

三.设计总结

这次课程设计用了近两个星期的时间,由于之前对这门课不是很懂,所以课程设计遇到了不少的麻烦,还好同学和老师给我讲了。前期主要是建立数据库,并输入数据。然后做了类,这里主要是写代码,代码基本上不会写,上课的时候记了一点,老师又给我们发了几条,这样,改改就差不多了,可是,里面仍有错的,基本上可以执行了。

课程设计的时间比较短,再加上要准备考试,所以做得不是很理想,没有添加背景什么的。不过,经过这一个多星期的课程设计,真的学到了很多。在课程设计过程中,我做了一次又一次,改了一次又一次,可是,还是有很多不懂的地方。我问了同学,也上网查了,基本上弄懂了,做完之后,一种满足感油然而生。这次的课程设计做的不是很好,所以,我想把总结写的好一点,可是,似乎还是不大好。可是,我已经努力了,也尽力了,这就够了,我想,这也就达到了课程设计的目的。

经过近两个星期的学习,我进一步掌握有关表、数据库、项目、类的基本概念及基本操作,并在此基础上进行查询设计、菜单设计、表单设计,并掌握常用的属性、事件及方法的使用。也许,有很多地方我做的不够好,但我已经尽了我最大的努力,同时也学会了很多以前不懂的知识。

 

第二篇:VFP课程设计总结

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。两个部分中间用“.”连接起来,需要注意的是标明控件的唯一名字,同时更要注意控件父子关系。

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

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

相关推荐