VFP课程设计

广东工业大学华立学院

 课 程 设 计(论文)

 课程名称_____数据库原理及应用____

题目名称_____学生成绩管理系统___

学生学部(系)___会计学部_______

专业班级______09会计五班 ____

学    号______14010905035________

学生姓名________邱彬盛 _____________

指导教师________詹柳春 ___________

                                20##年  4月6日

广东工业大学华立学院

课程设计(论文)任务书

一、课程设计(论文)的内容

某班有n个学生,此系统负责管理他们的信息,信息内容包含:1)学生的学号;2)学生的姓名;3)学生的课程成绩。假设,现收集到了一个班的所有学生的信息,要求用VFP编写一个简单的学生成绩管理系统,可进行录入、查询、修改和报表输出等。学习相关开发工具和应用软件,熟悉系统建设过程。

二、课程设计(论文)的要求与数据

设计的主要内容应包括:①需求分析;②系统设计(数据库设计,数据结构设计);③系统编程开发:建立数据库和数据表,创建风格一致的类,系统界面的建立与编程,编译源程序;④系统测试与维护

三、课程设计(论文)应完成的工作

(1)根据上述要求完成一个功能完善学生成绩管理系统;

(2)采用模块化的程序设计方法,程序书写符合规范,程序设计应完善;

(3)对系统进行初步的错误和漏洞检测;

(4)根据设计规范撰写报告并按时提交;

(5)设计内容用A4纸打印并按要求装订。


四、课程设计(论文)进程安排

五、应收集的资料及主要参考文献

[1] 肖金秀.Visual Foxpro 9.0程序设计与实例教程.北京:冶金工业出版社,2006

[2] 谢膺白.Visual Foxpro 9.0 程序设计教程.西安:西安交通大学出版社,2007

[3] 史济发,汤观全.Visual Foxpro及其应用系统开发.北京:清华大学出版社,2006

[4] 李雁翎.数据库技术及应用----Visual Foxpro.高等教育出版社

摘要

学校成绩存储管理是学校管理现代化非常重要的一环,直接和学生管理、学校管理密切相关。随着学校规模的进一步扩大,学生人数逐年上升,学生的成绩管理也变得越来越繁重。为此,学校与教师对系统管理学生成绩和提高工作效率的强烈需求,学生成绩管理的信息化势在必行,对于促进学校的管理制度和提高学校的教学质量有着显著的意义。本课程设计就是设计出一个简化的学生成绩管理系统,包括学生学号、学生姓名、学生成绩等基本信息的管理。

    针对以上功能,学生成绩管理系统的特点具有:1、操作人性化。2、输入简单3、界面显示信息完整。

关键词:Visual Foxpro、表单、菜单

目录

1 序言……………………………………………………………………………….1

2系统分析与设计…………………………………………………………………..1

 2.1 系统需求分析…………………………………………………………………1

 2.2系统功能分析………………………………………………………………….1

   2.2.1 功能描述………………………………………………………………...2

   2.2.2 功能模块设计…………………………………………………………...2

3 数据库设计与实现……………………………………………………………….2

 3.1 数据库需求设计……………………………………………………………...2

 3.2 数据库表的设计……………………………………………………………...3

   3.2.1 学生档案信息表………………………………………………………...3

   3.2.2学生成绩表……………………………………………………………....3

4 系统的实现……………………………………………………………………….4

  4.1查询登陆界面设计………………………………………………………..4

4. 2 浏览信息程序设计……………………………………………………….5

4. 3成绩查询设计……………………………………………………………..6

总结………………………………………………………………………………….8

参考文献…………………………………………………………………………….8

1.序言

时代在进步,科学技术在不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。目前,学校学生成绩管理是教务管理中的一个极为重要的环节,它是整个管理的核心和基础。由于学校规模进一步扩大,学生人数逐年上升,学生情况的管理也变得越来越复杂。面对如此繁杂的任务。如果让个人去管理文档,就会显得费时费力。尤其在管理成绩时,任务更加繁重,就成绩管理本身来说,它是一项任务繁重、时效性较强的系统工作,它不但涉及学生个人成绩查询,更涉及到各教师的工作效率和质量。近年来随着计算机的迅速发展,计算机已经在社会各个领域显示了它巨大的作用。毋庸置疑,切实有效地把计算机管理引入学校学生成绩管理中,对于促进学校管理制度,提高学校教学质量与办学水平有着显著意义。

2.系统分析与设计

2.1系统需求分析

本项目的名称是学校成绩管理系统,设计的对象是学校管理方,主要用户是学校的工作人员,几乎所有功能操作以及对系统的维护工作都是面向学校工作人员的。因此设计项目的时候以教师的立场、工作重心和工作需求出发,系统的外观界面也是针对学校工作人员而设计。

根据要求,主要功能包括(1)学生信息录入功能(学生信息用文件保存)(2) 学生成绩信息浏览功能(3) 学生成绩查询功能:按学号查询(4) 学生成绩信息的修改:(按成绩修改,把55~59分之间的成绩都加上5分 )

系统的输入设备由一般的输入设备(即键盘、鼠标)组成,主要是从系统的弹出对话框输入帐户的数据信息。

系统的输出主要以对话框、编辑框以及列表显示于屏幕。

2.2 系统功能分析

2.2.1 功能描述

学生成绩管理系统应能够方便地实现学生成绩信息的录入、修改、编辑和浏览等功能,高效的完成各种学生成绩信息的统计功能,系统的更主要功能的要求如下:

(1)信息录入功能:学生基本信息、课程信息、学生成绩单、班级名单的录入。

(2) 浏览功能:浏览学生成绩等等。

(3)查询功能:按学号查询学生成绩等。

2.2.2 功能模块设计

根据功能描述,学生成绩管理系统可以分为4个模块,每一个模块有提供了更具体的功能。学生成绩管理系统的功能模块图如图1-1所示。


1-1

3 数据库设计与实现

3.1 数据库需求设计

通过对系统功能的分析可知,学生信息管理系统需要包含以下数据库信息:

(1)学生档案信息(学号,姓名,性别,出生年月,出生地,专业,综合考评,是否贷款,奖罚,照片)

(2)学生成绩(学号,高数,英语,计算机)

3.2 数据库表的设计

表2-1 学生档案信息表

表2-2 学生成绩表

4 系统的实现

4.1查询登陆界面设计

      根据设计目的要求,先设计表单界面,在form表单界面添加标签、文本框、按钮、表格等控件,最终界面效果如图3-1所示:

查询语句为:

select  * from  学生档案  where  学号=alltrim(thisform.text1.value)  into  cursor   we

if  reccount()<>0  thisform.text2.value=we.姓名

   else  = messagebox("没有这个人")

 Endif

                    

 3-1

4. 2 浏览信息程序设计

信息浏览语句:

Command1       Command2      Command3      Command4      Command5

go top           Skip -1          Skip +1         go bottom       Release thisform

thisform.refresh   thisform.refresh   thisform.refresh   thisform.refresh

  

4.3成绩查询设计

成绩查询语句:

a=alltrim(thisform.text1.value)

select * from 学生档案 where 姓名=a

if reccount()<>0

thisform.text1.value=姓名

 else

=messagebox("没有这个人")

Endif

总结

    课程设计是培养学生综合运用所学知识 ,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握程序开发技术是十分重要的,VFP又是最常见,功能最强大的一种高级语言,因此做好VFP课程设计是十分必要的。

编程是一件很枯燥很无聊的事情,但是出于完成作业,得到学分的压力,还必须强破自己坚持下去,按照老师所说的模块化思想,分部分的进行编写。而且编程是一件高精度、模范化的事情,稍有疏乎都会影响全局,也可能因为某一处的小的错误而导致整个程序的无法运行。所以认真仔细就是非常重要的了。开始的时候真的感觉编程是一件很无聊的事情,不过当一个程序运行成功的时候那种喜悦是无法言语的,那种成就感是无法比拟的。

     回顾起此次课程设计,我感慨良多,数据库在我们生活中的应用原来是这么广泛的,平时所接触的登录窗口,原来是这样做出来的,经过这个课程设计激起了我对数据库的兴趣,我以后还要多多研究VFP。

参考文献

[1] 肖金秀.Visual Foxpro 9.0程序设计与实例教程.北京:冶金工业出版社,2006

[2] 谢膺白.Visual Foxpro 9.0 程序设计教程.西安:西安交通大学出版社,2007

[3] 史济发,汤观全.Visual Foxpro及其应用系统开发.北京:清华大学出版社,2006

[4] 李雁翎.数据库技术及应用----Visual Foxpro.高等教育出版社,2005

 

第二篇:[VFP课程设计] 学生成绩管理系统

学生成绩管理系统

摘要 本文通过用VFP编写学生成绩管理系统,利用软件工程原理,采用生命周期方法学,

其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面,实现了学生成绩数据库的创建及学生成绩的输入、浏览、维护和统计。

关键字 成绩管理 浏览 打印 维护 统计

1. 引言

每次考试结束,老师们总要统计大量的学生成绩,这些数据的归档、统计工作任务重,时间紧,统计结束后往往错误百出。长时间以后,将产生大量文件和资料,给查找、维护带来不少困难。随着学校信息化水平不断提高,不少学校开始利用计算机处理这些数据;可以用EXCLE统计数据,但是对于一些老师尤其老教师总有些复杂。

学生成绩管理系统是为了更好的管理学生考试成绩而开发的数据库管理软件。根据学校实际要求,即实现学生基本信息、成绩的录入,删除,查询,维护以及成绩的统计分析等几方面功能。管理员可以通过查询,实现删除、修改学生的基本信息;可根据实际需求,自由添加、删除课程;还能打印学生成绩表(总分成绩表和单课成绩表)。学生成绩管理系统可帮助老师们方便快捷地管理这些繁琐地数据。学生成绩管理系统具有手工管理无比优越的优点:查找方便,可靠性高,保密性好,成本低。

基于上述因素,利用软件工程原理,采用生命周期方法学,经过可行性研究,需求分析,总体设计,以及编码、测试和最后运行成功。微软公司地VISUAL FOXPROL具有强大的数据库管理功能,可以方便编写出小型的信息处理系统,能够有效地存储数据,满足用户的应用需求(信息要求和处理要求)。设计指导思想:一切为用户着想,界面美观大方,操作尽量简单明了,而且作为一个实用系统要有良好的容错性,在用户出现误操作时,及时给出警告,以便用户及时更正。下面介绍学生成绩管理系统的制作过程。

2.需求分析

需求分析简单的说就是分析用户的要求,通过调查、收集与分析,获得用户对数据库的如下要求:

2.1信息要求:指用户需要从数据库中获得信息的内容与性质。

本系统需要的输入数据:学生信息(学号,姓名,班级,性别,出生日期)、课程信息(课程名,满分)、考生成绩;输出数据:学生成绩报表、学生信息报表、课程报表、成绩报表。

2.2处理要求:指用户要完成什么处理功能。

本系统功能需求可归纳如下:

① 数据登记

登记功能用于把各种手填的数据及时登记系统定义表中,还能修改这些数据(学生信息、课程信息、成绩)。

② 数据浏览

能浏览学生信息、课程信息、成绩。

③ 数据打印

能打印学生信息表、课程信息表、成绩表(单课成绩和总分成绩)。

④ 数据统计

能统计各班学生总数和男女人数,统计各班学生的总分、排名,及各单课的排名。

2.3 性能要求:维护数据的安全性.

设定密码,限制非法用户的使用;还能修改密码,维护系统的安全性。

1

3.数据库设计

数据库设计的任务是确定系统所需的数据库。数据库是表的集合,通常一个系统只需一个数据库。建立本系统的数据库 数据data\test.dbc

VFP课程设计学生成绩管理系统

VFP课程设计学生成绩管理系统

3.1逻辑设计:确定数据库所含表及字段

学生信息表:xs(学号,姓名,班级,性别,出生日期)

课程信息表:kc(课程号,课程名,满分)

考生成绩表:cj(学号,姓名,班级,课程名,成绩,名次)

括号外字符号是表名,括号内是字段名,有下划线的字段为关联关键字

3.2物理设计

学生信息表:(data\xs.dbf) xs(xh c(7),xm c(8),bj c(10),xb c(2),csrq d)

课程信息表:(data\kc.dbf) kc(kch c(5),kcm c(20),mf n )

考生成绩表:(data\cj.dbf) cj(xh c(7),xm c(8),bj c(10),kcm c(20),

cj n(5,1) ,mc n)

自由表: (data\pass.dbf) pass(pass c(10))

4.总体设计

按功能分类是总体设计的常用方法,用层次图(Hierarchy Chart 简称HC图)表示,自上而下分层

4.1数据维护模块

包括对学生信息表、课程信息表、考生成绩表的插入、修改、删除、搜索等。

4.2数据浏览模块

包括对学生信息表、课程信息表、考生成绩表的选择浏览、打印。

4.3成绩管理模块

包括对学生成绩的输入,总分和单课的统计和排名,分析各分数段人数的分布情况。

5.初始用户界面设计

系统层对应菜单文件,子系统层对应菜单标题,功能层对应子菜单项

2

VFP课程设计学生成绩管理系统

6.1主文件(data\main.prg) 设计系统环境,调用登录表单

代码如下:

SET TALK off

set sysmenu off *关闭系统菜单

set cent on *年份的世纪部分用4位输出

_screen.windowstate=2

_screen.icon="icons\happy.ico" *系统图标

_screen.maxbutton=0

_screen.minbutton=1

_screen.closable=.f.

_screen.picture="picture\jjfz.jpe" *系统背景画

MODIFY WINDOW SCREEN TITLE " 学生成绩管理系统 今天是:"+dtoc(date())+" "+cdow(date())

ZOOM WINDOW SCREEN MAX

open database data\数据test.dbc

do form forms\pass

read even *建立事件循环

quit

6.2菜单程序(mpr\menu.mpr)的建立

往命令窗口键入命令modi menu menu 出现菜单设计窗口

①“退出”菜单项 命令 clear events *停止事件循环,

转去执行read event后的命令

②调用各表单命令 如调用修改密码表单(forms\xiu.scx) do form forms\xiu.scx

③插入分隔符 菜单名称 \- 结果 菜单项#

④设计快捷键

对于菜单项 在菜单命令后加(\<字母)如系统功能(\<s)。

对于子菜单项 单击选项 ->提示选项对话框,在键标签中键入CTRL+字母(J除外)。

6.3 数据库中的数据需要以表单的形式显示,本系统需建立以下表单:

a. 系统登陆表单 b.密码修改表单 c.维护学生信息表单 d.维护课程信息表单 e.维护考生成绩表单 f.浏览学生信息表单 g.浏览课程信息表单 h.浏览成绩表单 i.成绩输入表单 j.总分成绩统计表单 k.单课成绩统计表单 l.成绩统计表单

设计表单步骤:

①在项目管理器中,文档->表单->新建。

②设计表单属性 重要属性有 Caption AutoCenter Height Width WindowType Icon ③添加各标签、文本框,设定文本框与源表中源字段的绑定 有代码的写代码 如属性InteractiveChange Event 当用鼠标或键盘修改控件的值时发生的事件 3

④创建命令按钮

详细介绍:

a.系统登陆表单 forms\pass.scx

功能:用户名和密码三次输入错误,自动退出系统;

限制了非法用户的使用,维护了系统数据的安全。

构成:三个标签(工作人员登录,用户名,密码)两个文本框

两个命令按钮(取消 登录)

命令按钮 登录

use data\pass

go top

if thisform.user.value="guan" and thisform.pass.value=pass.pass do menu\menu.mpr*若用户名和密码正确,则进入本系统。

thisform.release

else

#define missmatch_loc "用户或口令错,请重新登录!"

wait window missmatch_loc timeout 1 *系统延时

thisform.user.value=''

thisform.pass.value=''

thisform.user.setfocus

numcount=numcount+1

if numcount=4 *表单初始化事件有:public numcount numcount=0 mess =messagebox("三次口令错,将退出程序!",4+16+2,"退出") clear event

release thisform

endif

endif

b.密码修改表单

功能:可以随时修改密码,维护系统安全。

构成:四个标签(请输入,旧密码,新密码,确认新密码)三个文本框

两个命令按钮(修改,退出)

c.维护成绩表单 forms\cj.scx

功能:能查询到某位学生成绩,可以对它修改,删除,

还可以清空整个cj.dbf的数据。

属性设计如图1

VFP课程设计学生成绩管理系统

4

命令按钮 删除

use data\cj excl *以独占的方式打开cj.dbf

locate for xh=this.parent.text1.value .and.kcm=this.parent.text4.value delete

mess=messagebox('彻底删除吗?',4+16+0,'删除') *弹出信息对话框 if mess=6

pack *如果确定,则彻底删除

else

recall *否则恢复

endif

thisform.refresh

下一个 skip 1

if eof() *如果到了末记录

=messagebox("已是末记录!",48,"信息窗口")

skip -1

this.enabled=.f.

else

this.enabled=.t.

endif

if !bof()

mand3.enabled=.t.

else

mand3.enabled=.f.

endif

thisform.refresh

d.维护学生信息表单

功能:根据学号能快捷查询到某个学生,对其进行修改,删除操作,

还能添加学生记录。

构成:六个标签(学号,姓名,班级,出生日期,性别)四个文本框

一个选项按钮(性别) 命令按钮同图1

e.维护课程信息表单

功能:根据课程号能快捷查询到某门课程,对其进行修改,删除操作,

还能添加课程记录。

构成:四个标签(课程号,课程名,满分,课程表)

四个文本框 命令按钮同图1

f.浏览学生信息表单

功能:统计出全体学生人数,男女人数和各班级人数和男女人数;

打印出各班级学生信息

构成:一个页框(全体学生,各班学生)一个退出按钮 每页一个表格

全体学生页:三个标签(学生总数,男生总数,女生总数)

三个文本框 打印按钮

5

各班学生页:四个标签(班级,学生总数,男生总数,女生总数)

三个文本框 打印按钮 一个组合框(班级)

组合框combo1.Interactivechange 代码

set filt to bj=allt(thisform.bo1.value)

count to thisform.pageframe1.page2.text1.value

count for xb="男" to thisform.pageframe1.page2.text2.value count for xb="女" to thisform.pageframe1.page2.text3.value

thisform.pageframe1.page2.grid1.refresh

g.浏览课程信息表单

功能:可以浏览、打印课程信息。

构成:一个标签(课程名)一个组合框 两个命令按钮(打印,退出)一个表格 h.浏览成绩表单 forms\scj.scx

功能:能够根据学号,姓名,课程名,班级,浏览学生成绩;还能浏览优秀学生

成绩(成绩>满分*0.85)不及格学生成绩(成绩<满分*0.6)

并且能打印出选择的记录。

构成:一个含三页的页框(学号姓名查询,班级课程查询,高级查询) 学号姓名查询页:两个标签(学号,姓名) 两个文本框 一个表格

四个命令按钮(两个查询,两个导出文本文件,一个打印)

班级课程查询页:一个文本框(班级)一个组合框(课程名)

两个标签(班级,课程)一个表格

三个命令按钮(查询,打印,导出文本文件)

高级查询页:五个命令按钮(全体学生,成绩优秀者,不及格者,

两个导出文本文件,打印) 一个表格

查询代码:set filter to <逻辑表达式>

导出文本文件代码:copy to <文件名>[<范围>][fields<字段名>][for<条件>]

[while<条件>] sdf

i.成绩输入表单 forms\incj.scx

功能:方便的输入学生的成绩,下一个按钮 可实现学号+1;如果没选课程,学

号不存在,学生该门课的成绩已存在,都会给出错误提示;

右表格显示该门课全体学生的成绩。

构成: 如下图

VFP课程设计学生成绩管理系统

6

命令按钮 输入

if empty(thisform.combo1.value)

mess=messagebox("课程名不能为空!",0+48+0,"警告")

else

locate for cj.xh=allt(thisform.text2.value) ;

and cj.kcm=allt(thisform.combo1.value)

if recno()>reccount() *若符合输入条件,则输入记录。

insert into data\cj (xh,xm,bj,kcm,cj,mc);

allt(thisform.text3.value),allt(thisform.text1.value),;

allt(thisform.combo1.; value),thisform.text4.value,reccount()+1) go top

set filter to cj.kcm=allt(thisform.combo1.value)

thisform.grid1.refresh

thisform.grid1.setfocus *表格标题改变

thisform.grid1.column3.header1.caption=allt(thisform.combo1.value) thisform.command1.enabled=.f.

thisform.command3.enabled=.t.

thisform.command4.enabled=.t.

else

mess=messagebox("此记录已存在!",0+48+0,"警告")

endif

endif

命令按钮 定位

thisform.command1.enabled=.t.

if empty(thisform.text2.value)

mess=messagebox("学号不能为空!",48,"警告")

else

go top

locate for xs.xh=allt(thisform.text2.value)

if recno()>reccount()

mess=messagebox("该学号不存在!",48,"警告")

thisform.command1.enabled=.f.

else

thisform.text1.value=xs.bj

thisform.text3.value=xs.xm

endif

endif

thisform.refresh

命令按钮 下一个(主要代码)

thisform.text2.value=str(val(thisform.text2.value)+1) *实现学号自动加一 j.总分成绩统计表单forms\tscj.scx

功能:求出选择班级学生的总分,并且统计出排名(相同成绩,名次相同) 构成:三个标签(总分成绩排名,班级,参考人数)组合框(班级)

文本框(参考人数) 一幅图像

7

六个命令按钮(统计总分,成绩排名,文本文件,打印,浏览,退出)thisform.combo1 的 InteractiveChange Event 代码

use data\cj

mand2.enabled=.f.

mand3.enabled=.f.

mand5.enabled=.f.

mand6.enabled=.f.

erase sort1.dbf *删除文件sort1.dbf

use

命令按钮 打印 调用程序 do prg\sprt.prg sprt.prg的代码在后面 命令按钮 统计总分

use

use data\cj

set safe off *重写文件,系统不给提示信息

total to sum1 on xh fields cj for bj=bo1.value set safe on *按学号统计各班学生总分,生成文件sum1.dbf

mand5.enabled=.t.

t=1 ?

use

use sum1

this.parent.text1.value=reccount() *统计各班级参加考试的人数 use

命令按钮 成绩排名

use

use sum1 excl

set safety off

sort to sort1 on cj desc fields xh,bj,xm,cj,mc *生成排名文件sort1.dbf set safety on

use

erase sum1.dbf

use sort1 excl

repl all mc with recno() *能够对相同分数的考生得出相同的名次 go top

do while .not.eof()

t=cj

p=mc *定义临时变量p

skip 1

if t=cj

repl mc with p

endif

enddo

use

mand2.enabled=.t.

mand3.enabled=.t.

8

mand6.enabled=.t.

use

k.单课成绩统计表单 data\tdcj.scx

功能:统计出全年级、各班级学生各门课排名。

构成:三个标签(单课成绩统计表单,学科,班级) 文本框(学科)

组合框(学科)选项按钮组(班级排名 年级排名) 一幅图像

四个按钮(统计,文本文件,打印,退出)

l.成绩分析表 data\cjfx.scx

功能:通过输入班级、课程名和分数段值,统计出各分数段的人数,

并求出最高分、最低分。

构成:11个标签(课科名,班级,满分,分数段,最高分,最低分,

分数段一~分数段五)一个组合框(班级)两个按钮(设定,退出) 命令按钮 设定

m=thisform.text2.value

n=thisform.text3.value

p=thisform.combo1.value

q=thisform.text1.value

count to thisform.text4.value for cj.cj<=m and cj.cj>=(m-n) and cj.kcm=allt(p) and cj.bj=allt(q) *求出第一分数段的人数

count to thisform.text5.value for cj.cj<(m-n) and cj.cj>=(m-2*n) and cj.kcm=allt(p) and cj.bj=allt(q) *求出第二分数段的人数

count to thisform.text6.value for cj.cj<(m-2*n) and cj.cj>=(m-3*n) and cj.kcm=allt(p) and cj.bj=allt(q) *求出第三分数段的人数

count to thisform.text7.value for cj.cj<(m-3*n) and cj.cj>=(m-4*n) and cj.kcm=allt(p) and cj.bj=allt(q) *求出第四分数段的人数

count to thisform.text8.value forcj.cj<(m-4*n) and cj.kcm=allt(p) and cj.bj=allt(q) *求出第五分数段的人数

thisform.label4.caption=allt(str(m))+'--'+allt(str(m-n))

*改变label4的标题

thisform.label5.caption=allt(str(m-n))+'--'+allt(str(m-2*n)) thisform.label6.caption=allt(str(m-2*n))+'--'+allt(str(m-3*n)) thisform.label7.caption=allt(str(m-3*n))+'--'+allt(str(m-4*n)) thisform.label8.caption='<'+allt(str(m-4*n))

go top

max1=0 *以下求出最高分数和最低分数

min1=m

locate for cj.kcm=allt(p) and cj.bj=allt(q)

do while recno()<=reccount()

if cj.cj>max1

max1=cj.cj

endif

if cj.cj<min1

min1=cj.cj

endif

9

continue

enddo

thisform.text9.value=max1

thisform.text10.value=min1

6.4 打印总分成绩排名的程序 prg\sprt.prg

功能:针对产生的排名数据表sort1dbf,不用建立报表,可方便打印出数据 set talk off

set safe off

set console off &&关闭到屏幕的输出

use sort1

lin=1

zt="font '宋体',14"

set print on &&传送输出结果到打印机打印

?bj+"学生成绩单"font '黑体',20 && 设计表头

?" ====================================="

?""

?" 学号 姓名 总分 名次 "&zt && 采用宏代换 do while not eof()

?"│"+xh+"│"+xm+"│"++str(cj,5)+"│"+str(mc,4)+"│"&zt lin=lin+1

skip

if lin>30

eject &&打印机输出命令 ?" 学号 姓名 总分 名次 "&zt lin=1

endif

enddo

eject

set print off

use sort1

set console on &&打开到屏幕的输出

set safe on

set talk on

return

6.5学生成绩报表 frx\cj.frx

① 创建报表 modify report cj 打开报表设计器

② 设计标题 学生成绩表 报表表达式 date()

③ 设计页标头 学号 姓名 成绩名 成绩 班级

④ 添加数据环境 data\cj.scx

⑤ 在细节中,添加域控件xh,xm,kcm,cj,bj

⑥ 在页注脚中,添加"页码 " + ALLTRIM(STR(_PAGENO))

课程信息报表 frx\kc.frx 学生信息报表 frx\xs.frx

制造过程与学生成绩报表的相同

10

7.结束语

连编生成可执行程序,在windows98,visual foxfro6.0环境下,调试成功。它实现了学生基本信息的管理,成绩的输入、浏览、统计、打印和维护。它可以按班级统计学生的总分,并对其排名,还可以对单课成绩排名,通过编写总分成绩排名的程序,实现打印成绩排名表。如果能把总分成绩和单课成绩组成一个报表,就更好了。

参考文献

【1】 萨师煊 《数据库系统概论》 高等教育出版社 2000.02

【2】 赵茂祥 《foxpro原理与程序设计》 石油大学出版社 1999.06

【3】 张海藩

清华大学出版社 2001.05 11 《软件工程导论》

相关推荐