Visual FoxPro 课程设计实验报告_商业计划书免费下载

 

 

 

http://www.word98.com/

 

中国商务办公文案的下载基地......

免费电影下载 在线电影观看......

超多FLASH游戏免费玩......


Visual FoxPro 课程设计实验报告

——“学生信息管理系统

 

国贸2

200204074224

佘楷

 

.设计题目

学生信息管理系统

.开发软件

VFP6.0

.课题要求

(1) 掌握课堂讲授的基本数据库知识和VFP的基本技巧:

   1. 数据库管理系统合数据库应用系统;

   2. VFP的界面组成与操作;

   3. VFP的工作方式;

   4. 标的基本操作(表的建立与修改、表达式、维护命令);

   5. 表的查询与统计(排序与索引,SELECT-SQL查询,数据库于视图);

   6. 程序设计初步(程序文件,程序的控制,多模块程序)。

(2) 自学部分书本关于VFP的内容:

   1. 菜单设计;

   2. 表单设计;

   3. 表单控件设计;

   4. 实例:汽车修理管理系统的开发。

(3) 要求能够独立设计。完成一个简单的学生信息管理系统,此系统必须有如下基本功能:

   1. 数据的查询;

   2. 记录的增加,删除,修改等功能;

   3. 系统界面良好;

   4. 操作方便,运行稳定。

.目的

掌握基本的数据库知识,熟悉VFP的使用。学习VFP数据库应用系统开发的一般步骤:

1.       需求分析

2.       数据库设计

3.       应用程序设计

4.       软件的运行测试

通过简单的系统设计、开发,激发学生的学习兴趣和动手能力。

.设计时间

12——19

.设计主要流程

流程图:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(1) 数据库设计

根据此系统需要建立数据库sexxdb.dbc,数据库中有如下几个数据表:student.dbfcourse.dbfscore.dbfpassword.dbfpasswordm.dbf

student..dbf记录的是学生的个人信息,如:学号、姓名、性别、民族、出生日期、所在专业、籍贯

Course.dbf记录的是有关课程的信息,如:课程编号、课程名称、学分、任课老师。

Score.dbf记录的是每个同学不同科目的考试成绩,有以下这些内容:课程编号、课程名称、学号、成绩。

Password.dbf记录系统普通用户的用户名和密码。

Passwordm.dbf记录系统管理员的用户名和密码。

(2) 应用程序设计

由于本系统是多用户登陆,当是管理员登陆时此系统的所有功能都可能用,当是普通用户登陆时此系统时将无法使用系统的维护功能。下面就各个表单功能和使用作如下简述:

1. 用户登录

先选择用户类型:普通用户、管理员,输入密码,按确定键进入(按重写键重新填写;按退出键退出系统)。主要代码如下:

optiongroup1.click事件:

do case

   case this.value=0

     thisform.combo1.rowsource=""

   case this.value=1

     thisform.combo1.rowsource="password.用户名"

   case this.value=2

     thisform.combo1.rowsource="passwordm.管理员"

endcase

确定command1.click事件:

public guest

private Password1

do case

   case thisform.optiongroup1.value=1

     select password

     password1=alltrim(thisform.text1.value)

     locate for alltrim(用户名)==alltrim(thisform.combo1.value)

       if found() and password1==alltrim(密码)

      guest=2

          thisform.release

          do form main.scx

       else

            =messagebox("用户名或密码错误,请重新输入!")

            thisform.text1.setfocus

       endif

   case thisform.optiongroup1.value=2

     select passwordm

     password1=alltrim(thisform.text1.value)

     locate for alltrim(管理员)==alltrim(thisform.combo1.value)

       if found() and password1==alltrim(密码)

       guest=1

          thisform.release

          do form main.scx

       else

            =messagebox("用户名或密码错误,请重新输入!")

            thisform.text1.setfocus

       endif

endcase

在此代码中定义了公共变量guest,是为了判断用户类型以确定进入系统界面后维护键是否可用。

重写command2.click事件:

thisform.combo1.value=""

thisform.text1.value=""

thisform.text1.setfocus

退出command3.click事件:

thisform.release

2. 系统界面

当使用者是普通用户时,系统界面中的维护键是不可用的

当管理员登陆时则可以使用维护键。

维护键可否使用是通过form.activate来实现的:

if guest=1

  thisform.Command2.enabled=.t.

  else

  thisform.Command2.enabled=.f.

endif

查询维护统计退出键的click代码分别为:

do form chaxun.scx

do form weihu.scx

do form statistic.scx

thisform.release

do form logo

3. 查询界面

用户可以在此查询学生信息、课程信息和成绩信息。

查询学生信息时确定键的代码是:

thisform.pageframe1.page1.grid1.recordsource=""

XH=alltrim(thisform.pageframe1.page1.text1.value)

thisform.pageframe1.page1.grid1.recordsource="select student.学号, student.姓名, student.性别, student.民族, student.出生日期, student.专业, student.籍贯 from student where alltrim(学号)==XH or alltrim(姓名)==XH into cursor temp"

thisform.pageframe1.page1.text1.value=""

查询课程信息时的代码为:

kcmc=alltrim(thisform.pageframe1.page2.text1.value)

thisform.pageframe1.page2.grid1.recordsource="select course.课程编号, course.课程名称, course.学分, course.任课老师 from course where alltrim(课程名称)=kcmc or alltrim(课程编号)=kcmc into cursor temp"

thisform.pageframe1.page2.text1.value=""

查询成绩信息时的代码为:

xh=alltrim(thisform.pageframe1.page3.text1.value)

thisform.pageframe1.page3.grid1.recordsource="select student.学号,student.姓名,course.课程名称,score.成绩 from student,course,score where alltrim(score.学号)==xh and alltrim(student.学号)==alltrim(score.学号) and alltrim(course.课程编号)==alltrim(score.课程编号) into cursor temp"

thisform.pageframe1.page3.text1.value=""

4. 维护界面

只有管理员才能进入此界面。

进入此界面后,选择组合框里的一项可以查询此项的数据,但不能修改,只有按下进行修改键后才能进行修改,修改后按确定键确认修改。按退出键退出此界面。

此界面中optiongroup1click事件代码为:

do case

case thisform.optiongroup1.option1.value=1

thisform.grid1.recordsource="student"

thisform.grid1.refresh

case thisform.optiongroup1.option2.value=1

thisform.grid1.recordsource="course"

thisform.grid1.refresh

case thisform.optiongroup1.option3.value=1

thisform.grid1.recordsource="score"

thisform.grid1.refresh

endcase

thisform.command1.enabled=.t.

thisform.command2.enabled=.t.

thisform.command3.enabled=.t.

进行修改键的click代码为:

thisform.grid1.enabled=.t.

thisform.grid1.readonly=.f.

thisform.grid1.allowaddnew=.t.

thisform.grid1.setfocus

thisform.command1.enabled=.f.

确定键的click代码为:

use

thisform.grid1.enabled=.t.

thisform.grid1.allowaddnew=.f.

thisform.grid1.readonly=.t.

&&thisform.grid1.recordsource=""

thisform.grid1.refresh

thisform.command1.enabled=.t.

thisform.command2.enabled=.f.

thisform.command3.enabled=.f.

5. 统计界面

通过选择组合框中的选项,可以统计个人成绩或某一课程的成绩。

此界面中optiongroup1click事件代码为:

Do case

Case this.value=0

  Thisform.combo1.rowsource=""

Case this.value=1

  Thisform.combo1.rowsource="student.学号"

Case this.value=2

  Thisform.combo1.rowsource="course.课程名称"

Endcase

确定键的click代码为:

do case

  case thisform.optiongroup1.value=1

xh=alltrim(thisform.combo1.value)

select score

calculate max(成绩),min(成绩),avg(成绩),cnt();

        for 学号=xh to a1,a2,a3,a4

&&显示统计结果

Thisform.text1.value=alltrim(str(a1))

Thisform.text2.value=alltrim(str(a2))

Thisform.text3.value=alltrim(str(a3))

Thisform.text4.value=alltrim(str(a4))

Case thisform.optiongroup1.value=2

   Kcmc=alltrim(thisform.combo1.value)

   Select course

   Locate for 课程名称=kcmc

  Select score

   Calculate max(成绩),min(成绩),avg(成绩),cnt();

     For 课程名称=kcmc to a1,a2,a3,a4

   &&显示统计结果

Thisform.text1.value=alltrim(str(a1))

Thisform.text2.value=alltrim(str(a2))

Thisform.text3.value=alltrim(str(a3))

Thisform.text4.value=alltrim(str(a4))

Endcase

(3) 程序测试

登陆系统,选择选项按钮组中的普通用户,在组合框中选择用户(如用 王仪登陆,密码为111111),查看能否登陆。以此相同方法查看管理员选项。查看重写退出按钮是否有效。

进入系统界面,查看维护键是否可用(用户为管理员时才可用);点击查询键进入查询界面,点击页框的学生信息一项,在文本框中输入学号或姓名(如1或王仪),单击确定,查看列表框中是否显示相应的信息。依此方法查看课程信息成绩信息。然后单击退出

点击统计进入统计界面,选择选项按钮组中的个人统计选项,在组合框中选择学号(如1),单击,确定,查看右侧文本框中的数据是否正确。以相同方法检查课程统计选项。然后单击退出

点击维护(当用户为管理员时),选择选项按钮组中的学生信息选项,然后单击列表,检查能否修改(正常应当无法修改);然后单击进行修改按钮,在检查列表能否修改(正常应当可以修改);单击确定确认修改,在查看列表能否修改(正常应当无法修改)。以此方法检查课程信息成绩信息选项。

七.系统实现的功能

  查询、统计、维护(添加、删除、修改)

八.设计中遇到的主要问题,解决方法

主要问题:代码编写问题、数据表的关联、数据环境

解决方法:注意中英文输入法切换;注意主索引的设置;添加数据表。

九.心得体会

符号输入不可用中文输入法

出现错误时从使用挂起,查看代码何处发生错误,查看控件属性。

十.系统需要改善之处,改善方法的构思

该系统比较简单,功能较少;

可添加报表功能、用户注册功能、修改密码功能;

可使用菜单。