随着科技的进步,计算机知识在各个领域广泛应用,计算机程序在高校教育的系统里面也扮演了举足轻重的地位。近年来高校学生日益增多,高校每学期都组织科目考试。考试结束后,学生想要知道考试成绩,来检验自己一学期的听课质量,讲师想知道学生的考试成绩来改进自己的教学计划。在众多学生成绩中,进行人工查询实属不易。我们可以充分利用计算机带来的便利,借助Visual FoxPro 6.0计出大学生成绩查询系统。借助这样的系统,我们可以做到信息的规范管理、科学统计和快速查询,从而减少管理方面的工用量。此次我们小组使用Visual FoxPro 6.0编程,实现了大学生成绩查询系统的过程。本系统通过对大学生成绩查询系统进行可行性分析、需求分析和设计逐步将一个大学生成绩查询系统的实现过程呈现出来。该系统可以对学生的基本信息和成绩进行管理,最后本系统能对学生基本信息和成绩信息进行查询。
关键词:数据库;Visual FoxPro 6.0;管理;查询
本文根据《数据库应用与开发》课程要求而做。
课程作业要求如下:
用数据库管理系统开发工具(Visual FoxPro)开发一个实用的小型管理信息系统。根据课程设计时间选择适当规模大小的设计题目,按照系统开发的流程及方法,踏实地开展课程设计活动。课程设计活动中,撰写相关技术文档。最后提交详细的课程设计报告。开发出可上机运行的管理信息系统,通过上机检查。
要在有限的两周时间设计出一个小型的信息管理系统,考虑到我们知识面和视野以及信息系统的价值性,我们小组讨论决定设计一个大学生成绩查询系统比较合适。这个系统能够对大学生成绩进行查询和管理,比较贴近我们大学生的实际,具有较强的可行性、实践性和价值性。
设计该系统时,采用自底向上的设计方法。首先设计数据结构,然后设计表单、菜单、报表,最后设计主程序。
大学生成绩查询系统要实现对大学生的成绩进行查询和管理,应该有成绩管理功能。要退出系统,需要有退出功能。如果想打印成绩信息,应该提供打印功能。所以大学生成绩查询系统应该包括以下功能。
成绩管理功能
该模块实现成绩查询的功能。用户在查询学生成绩时,有时需要了解学生的基本信息,因此希望在查询出的内容中包括学生基本情况和成绩信息。有时用户需要查询学生的某些课程成绩,因此应该具有查询课程成绩的功能。有时用户需要查询学生的学期成绩,因此应该具有该功能。
退出系统
完成了对大学生成绩的查询的操作后,应该可以安全地离开该系统。通过该模块实现安全退出大学生成绩查询系统。
我主要组织了我组成员进行讨论,建立系统结构,并进行可行性分析。我参与了表单的绘制,并进行了学生平均成绩绩点查询和学生基本情况及成绩查询表单的设计和制作。我也进行了系统的修改和运行工作。同时参与了文档的录入、修改、排版和打印。
通过这学期对数据库这门课的学习,我对数据库有了基本的了解。学会了怎样制作表单,菜单等内容,这对以后的学习工作有了很重大的帮助。
通过这两周的课程设计,我参与了课程设计的选题,构思,讨论,分配任务,设计程序等工作,其中遇到了很多的困难,但是我们组员并没有退缩,而是团结一致参与讨论,解决问题,排除困难,这让我们明白了合作的重要性,更学习到了数据库的主要精华,又使我掌握了使用各种关系数据库为后台数据库设计一个信息管理系统。
总之,这次课程设计受益匪浅,不仅锻炼了我做事坚持不懈的心态,也慢慢地培养了我不懂就查书的好习惯,我的自学能力也有了一定的提高,我更明白了搞计算机程序设计,要学到真正的技术完全要靠自己,在课堂上只能学到最基本的东西,但这最基本的东西也一定要学好。
□优 □良 □中 □及格 □不及格
开发该系统前,先要有一个清晰的系统总体功能图。在大学生成绩查询系统中,由项目管理器统一管理系统中的表单、数据表、程序、报表以及主菜单。系统的整体结构是先运行主程序,由主程序调用用户 登陆界面。成功登陆后,调出本系统的主菜单,通过主菜单访问各个表单和报表。表单和报表中的数据来自数据表中的数据。
大学生成绩查询系统的总体功能流程如图2.1所示
图2.1 总体功能流程图
大学生成绩查询系统的总体E-R图如图2.2所示
图2.2 缺少图名
进行数据库总体设计首先要进行需求分析,由需求确定系统所需要的数据表,然后确定表所需的字段,最后确定各个表之间的关联。
大学生成绩查询系统主要包括用户登陆、成绩查询和成绩打印等功能。每个功能都要通过表单和报表来操作数据表中的数据,每个数据表存储了本系统所需要的数据信息。所以在进行数据库设计之前,要分析出系统所需要的数据表。
分析大学生成绩查询系统的情况,首先需要了解学生的基本信息,即需要基本状况表。登录系统需要密码,因此在基本状况表中需要有密码字段。用户需要查询学生的单科成绩和学期的总成绩,因此需要课程名称表。所以需要的数据表有基本状况表、课程名称表、课程成绩表和学期汇总表。
基本情况表用来记录学生的基本情况信息。主要包括学号、姓名、班级、性别、入学时间、密码等字段。课程名称表用来记录课程的名称信息,主要包括学期、课程代码和课程名称等字段。课程成绩表用来记录学生的课程成绩,主要包括学号、学期、课程代号、成绩、是否补考和补考成绩等字段。学期汇总表用来记录学生的学期汇总信息,主要包括学号、学期、总分、附加分数、学期汇总、原始名次和标准名次等字段。下面分别列出了各表的表结构,如表2.1-2.4所示。
表2.1 基本情况表结构
字段名 | 字段类型 | 字段宽度 | 小数位 | 索引否 | NULL |
学号 | 字符型 | 10 | 主索引 | ||
姓名 | 字符型 | 10 | |||
班级 | 字符型 | 10 | |||
性别 | 字符型 | 2 | |||
入学时间 | 日期型 | 8 | |||
密码 | 字符型 | 10 | |||
表2.2 课程名称表结构
字段名 | 字段类型 | 字段宽度 | 小数位 | 索引否 | NULL |
学期 | 字符型 | 10 | 普通索引 | ||
课程代号 | 字符型 | 10 | 主索引 | ||
课程名 | 字符型 | 20 | |||
表2.3 课程成绩表结构
字段名 | 字段类型 | 字段宽度 | 小数位 | 索引否 | NULL |
学号 | 字符型 | 10 | 普通索引 | ||
学期 | 字符型 | 4 | |||
课程代号 | 字符型 | 10 | 普通索引 | ||
成绩 | 数值型 | 6 | 2 | ||
是否补考 | 逻辑型 | 1 | |||
补考成绩 | 数值型 | 6 | 2 | ||
表2.4 学期汇总表结构
字段名 | 字段类型 | 字段宽度 | 小数位 | 索引表 | NULL |
学号 | 字符型 | 10 | 主索引 | ||
学期 | 字符型 | 10 | 普通索引 | ||
总分 | 数值型 | 8 | 2 | ||
附加分数 | 数值型 | 8 | 2 | ||
学期汇总 | 数值型 | 8 | 2 | ||
原始名次 | 整型 | 4 | |||
标准名次 | 整型 | 4 | |||
项目管理器是visual foxpro 提供的强大的管理工具,它负责管理和组织本系统所需要的数据库、菜单、报表、表单、程序以及一些其他的文件,它是系统中文件、数据、文档和对象的集合。项目管理器共有6个选项卡,分别是【全部】选项卡、【数据】选项卡、【文档】选项卡、【类】选项卡、【代码】选项卡和【其他】选项卡。每个选项卡按一定的顺序和逻辑关系管理着项目中的文件。项目文件以扩展名.pjx和.pjt进行保存。
通过项目管理器,用户可以快速、方便地存取存放在项目文件中的任何对象。建立项目管理器的步骤如下所示。
(1)启动visual foxpro ,进入程序主界面。单击菜单栏的【文件】 【新建】命令,在弹出的【新建】对话框中选择【项目】单选按钮,如图2.3所示。
图2.3缺少图名
(2)单击【新建文件】按钮。在弹出的【创建】对话框中设置一个文件名,文件名设为大学生成绩查询系统,单击【保存】按钮后即可弹出【项目管理器】对话框,这个新项目就在项目管理器中建立起来了,如图2.4所示。
图2.4缺少图名
在表之间建立关联的目的是为了保持数据的一致性。通过对数据表内容的分析,需要在课程名称表和课程成绩表的【课程代码】字段之间建立关联;在基本情况表和课程表成绩表的【学号】字段之间建立关联;在学期汇总表和课程成绩表的【学号】字段之间建立关联。
完成了系统的总体设计后,就开始进行系统的详细设计,设计项目管理器、数据库、数据表、表单、菜单、报表和主程序。
首先创建数据库,在项目管理器中创建数据库,保存数据库名为【成绩查询.dbc】。
我们要在数据库中建立表。在数据库设计器中建立基本情况表,课程名称表,课程成绩表和学期汇总表。
为了保持表中数据的一致性,需要在各数据表之间建立参照完整性。当插入、删除或者修改表中记录时,就会参照引用相关联的另外一个表中的数据。关系数据库管理系统一个重要的功能就是参照完整性。必须先建立表之间的关系的,才能使用参照完整性。
(此章过于简单)
登录表单提供用户登录接口。用户只有输入了正确的用户名和密码,才能登录进入系统。该表单使用基本情况表,其界面如图4.1所示。
图4.1缺少图名
登录表单中控件属性的说明如表4.1所示。
表4.1 表单中的控件设置
控件类型 | 控件名称及属性 | 说明 |
标签 | 登录表单fontsize属性值设为:18 | 标签 |
标签 | 学号 | 标签 |
标签 | 密码 | 标签 |
文本框 | No | 输入学号 |
文本框 | Password1,passwordchar属性为【*】 | 输入密码 |
命令按钮 | 确定 | 从登录界面进入下一界面 |
命令按钮 | 退出 | 退出登录界面 |
该表单的caption属性为【登录表单】,name属性:login
登录表单的设计步骤如下所示。
在【项目管理器】对话框淡定【文档】选项卡中,选中【表单】选项。单击【新建】按钮,弹出【新建表单】对话框,如图4.2所示。
图4.2缺少图名
单击【新建表单】按钮,弹出【表单设计器】窗口。一个名为form1 的空表单也随之出现在【表单设计器】窗口中。
右击【表单设计器】窗口,在弹出的快捷菜单中选择【数据环境】命令。
在弹出的【添加表或视图】对话框中,从【数据库中的表】列表中选择【基本情况】表如图4.3所示,单击【添加】按钮。然后单击【关闭】按钮,关闭【添加表或视图】对话框。
图4.3缺少图名
布局完成完登录表单的控件后,开始设计表单的方法和事件代码。
登陆表单如图4.4所示
图4.4缺少图名
学生平均成绩绩点查询表单方便用户查询自己的各科绩点,平均成绩及平均绩点。用户只有输入了自己的各科成绩和对应的学分,就能查询各科绩点、平均成绩及平均绩点。该表单界面如图4.5所示。
图4.5缺少图名
学生平均成绩及绩点表单中控件属性的说明如表4.2所示。
表4.2 表单中的控件设置
控件类型 | 控件名称及属性 | 说明 |
标签 | 平均成绩绩点查询表单fontsize属性值设为:14 | 标签 |
标签 | 请输入高数成绩 | 标签 |
标签 | 请输入大外成绩 | 标签 |
标签 | 请输入数据库成绩 | 标签 |
标签 | 请输入高数学分 | 标签 |
标签 | 请输入高数学分 | 标签 |
标签 | 请输入高数学分 | 标签 |
标签 | 高数绩点 | 标签 |
标签 | 大外绩点 | 标签 |
标签 | 数据库绩点 | 标签 |
标签 | 平均成绩 | 标签 |
标签 | 平均绩点 | 标签 |
文本框 | Text1 | 输入高数成绩 |
文本框 | Text2 | 输入大外成绩 |
文本框 | Text3 | 输入数据库成绩 |
文本框 | Text4 | 输入高数学分 |
文本框 | Text5 | 输入大外学分 |
文本框 | Text6 | 输入数据库学分 |
文本框 | Text7 | 显示高数绩点 |
文本框 | Text8 | 显示大外绩点 |
文本框 | Text9 | 显示数据库绩点 |
文本框 | Text10 | 显示平均成绩 |
文本框 | Text11 | 显示平均绩点 |
命令按钮 | 确定 | 显示结果 |
命令按钮 | 退出 | 退出界面 |
该表单的caption属性为【学生平均成绩及绩点查询】,name属性:login
登录表单的设计步骤如下所示。
在【项目管理器】对话框确定【文档】选项卡中,选中【表单】选项。单击【新建】按钮,弹出【新建表单】对话框,如图4.6 所示。
图4.6缺少图名
单击【新建表单】按钮,弹出【表单设计器】窗口。一个名为form1 的空表单也随之出现在【表单设计器】窗口中。
单击表单控件中的标签控件,添加标签,将它们caption属性分别设为平均成绩绩点查询表单、请输入高数成绩、输入大外成绩、输入数据库成绩、请输入高数学分、请输入大外学分、请输入数据库学分、高数绩点、大外绩点、数据库绩点、平均成绩、平均绩点,其中平均成绩绩点查询表单的fontsize属性值设为14
添加两个按钮,按钮caption属性分别为:【确定】和【退出】。
【确定】按钮的click事件的代码如下所示:
A=THISFORM.Text1.VALUE
B=THISFORM.Text2.VALUE
C=THISFORM.Text3.VALUE
D=THISFORM.Text4.VALUE
E=THISFORM.Text5.VALUE
F=THISFORM.Text6.VALUE
a=val(a)
b=val(b)
c=val(c)
d=val(d)
e=val(e)
f=val(f)
IF a>=60
aa=(a-60)/10+1
ELSE
aa=0
ENDIF
aaa=STR(aa,5,2)
THISFORM.Text7.VALUE=aaa
IF b>=60
bb=(b-60)/10+1
ELSE
bb=0
ENDIF
bbb=STR(bb,5,2)
THISFORM.Text8.VALUE=bbb
IF c>=60
cc=(c-60)/10+1
ELSE
cc=0
ENDIF
ccc=STR(cc,5,2)
THISFORM.Text9.VALUE=ccc
G=(a+b+c)/3
g=STR(G,5,2)
THISFORM.Text10.VALUE=g
H=(aa*d+bb*e+cc*f)/(d+e+f)
h=STR(H,5,2)
THISFORM.Text11.VALUE=h
THISFORM.REFRESH
【退出】按钮的click事件的代码如下所示:
THISFORM.RELEASE
关闭表单设计器,在弹出的保存对话框中保存表单。文件命名为【学生成绩绩点查询】。
在【项目管理器】对话框中,选择【文档】选项卡下的【表单】中的【学生成绩绩点查询】,单击【运行】按钮。运行后的登录表单,如图11所示。
图4.7缺少图名
学生基本情况及成绩表单方便用户通过该表单添加或者删除课程成绩信息,也可以查询或者打印成绩信息。学生输入了班级,学号,姓名后,就能查询学生基本情况及成绩。该表单使用课程成绩表和基本情况表,其界面如图4.8所示.
控件类型 | 控件名称及属性 | 说明 |
标签 | 课程成绩查询表单fontsize属性值设为:8 | 标签 |
标签 | 请输入学号 | 标签 |
标签 | 请输入姓名 | 标签 |
标签 | 请输入班级 | 标签 |
命令按钮 | 第一个 | 查询第一个成绩 |
命令按钮 | 前一个 | 查询前一个成绩 |
命令按钮 | 下一个 | 查询下一个成绩 |
命令按钮 | 最后一个 | 查询最后一个成绩 |
命令按钮 | 查找 | 查找需要的学生成绩 |
命令按钮 | 打印 | 打印当前学生成绩 |
命令按钮 | 添加 | 添加学生及成绩 |
命令按钮 | 编辑 | 编辑新内容 |
命令按钮 | 删除 | 删除学生成绩 |
命令按钮 | 退出 | 退出界面 |
图4.8缺少图名
用表单向导进行成绩表单的设计,在已经设计好的表单中适当调整各控件的位置。运行后的表单效果如图4.9所示。
图4.9缺少图名
登录表单的设计步骤如下所示。
在【项目管理器】对话框确定【文档】选项卡中,选中【表单】选项。单击【新建】按钮,弹出【新建表单】对话框,如图4.10所示。
图4.10缺少图名
单击【新建表单】按钮,弹出【表单设计器】窗口。一个名为form1 的空表单也随之出现在【表单设计器】窗口中。
单击表单控件中的标签控件,添加标签,将它们caption属性分别设为学号,姓名,班级。添加10个按钮分别为第一个,前一个,下一个,最后一个,查找,打印,添加,编辑,删除,退出。
【退出】按钮的click事件的代码如下所示:
THISFORM.RELEASE
关闭表单设计器,在弹出的保存对话框中保存表单。文件命名为【学生基本情况及成绩】。
在【项目管理器】对话框中,选择【文档】选项卡下的【表单】中的【学生成绩绩点查询】,单击【运行】按钮。运行后的登录表单即可。
用户可以通过该表单添加、删除、查询或者打印学期汇总信息。该表单使用学期汇总表和基本情况表。用表单向导进行成绩表单的设计,在已经设计好的表单中适当调整各控件的位置,运行后的表单效果如图4.11所示。
图4.11缺少图名
用户通过该表单可以添加、删除、查询、或打印学期汇总信息和课程成绩信息。该表单使用学期汇总表和课程成绩表。用表单向导进行成绩表单的设计,在已经设计好的表单中适当调整各控件的位置,运行后的表单效果如图4.12所示
图4.12缺少图名
菜单主要包括菜单的布局,创建自定义菜和菜单的使用。在该系统中,用户登录后就会出现菜单系统,通过菜单系统可以访问到系统的各个模块。本系统中,主要包含以下菜单。
●文件:新建、打开、关闭、保存、另存为、页面设置以及推出
●编辑:撤销、重做、剪切、复制以及粘贴。
●成绩查询:课程成绩、学期汇总以及学期汇总与课程成绩。
●成绩打印:报表设计和打印成绩表。
●退出系统
●帮助:帮助主题和关于。
在【项目管理器】对话框中,单击【运行】按钮,此时屏幕的最上面出现菜单名。例如单击菜单名【成绩查询】,会出现下一级菜单,如图4.13所示。
图4.13缺少图名
由于需要打印成绩信息,所以首先要设计出成绩报表。通过报表向导进行报表设计,在已经设计好的报表中适当调整各控件的位置,最终的报表形式如图4.14所示。运行后的报表效果如图4.15所示。
图4.14缺少图名
图4.15缺少图名
在visual foxpro 6.0中。应用程序的入口称作主文件,是数据库管理系统的最先执行的程序。
主程序一般具有以下功能。
●对系统进行初始化,设置系统的运行状态参数
●定义全局变量
●设置系统栏
●调用系统登录界面
●结束时清理环境
进行程序设计,首先建立主程序,在设置主文件。被设置的文件以粗体形式显示,如图5.1所示。
图5.1缺少图名
把应用程序中所用到的组件都添加到项目管理器中后,才能开始连编应用程序。完成系统连编后,在磁盘上可以找到该系统的可执行程序。运行后的界面如图5.2所示。
图5.2缺少图名
在本次课程设计中,通过我们小组组员的团结合作,课程设计工作得以圆满的结束了。这两个星期的准备和设计制作,让我们小组成员学习到很多东西,尤其是对数据库的基本知识与实践能力。在这次课程设计过程中我们不仅是做了数据库学生成绩查询系统,更重要的是在我们准备这次课程设计过程中通过讨论学习我们接触到了以前在书本上学不到的知识。这次课程设计我们也遇到了很多困难,也有停滞不前的时候,但是我们都没有放弃,而是分工合作,查询资料,相互讨论研究,询问其他同学,在一次次的实践当中摸索前进,遇到的一个个困难给了我们一次次重新学习、再次思索的机会。通过不断的整理完善,让我们重新又对数据库这门课程有了新的认识,对目前所掌握的知识进行审理,进行了再次的纠正或者完善,我们明白了光学会理论知识是不行的,理论的知识都是为现实当中的实践活动服务的。理论联系实际就在这里自然地得到实现。这使我们巩固已学知识,而且巩固动手操作的能力也大有进步。
此次课程设计用到的程序是VFP语言,我们就对VFP有了系统的了解,这个程序可以说是运用很广泛的程序,在很多领域中都可以用到。如果我们没有真正的去学习并操作,如果没有这次课程设计,那我们就不会真正掌握VFP的编程技巧呢,就不会用VFP搞前台界面,因此,这次我们在这次课程设计当中得到了宝贵的财富,这将在我们以后学习工作中给与我们力量,是我们光从书本上理解不了的。在这里,真诚的感谢刘老师给了我们这次宝贵的机会。
大学生成绩查询系统能够顺利完成,离不老师的悉心指导和周围同学的帮助。
老师的指导和帮助对我能够顺利完成这次毕业设计起到了关键性的作用,在这里表示最真诚的感谢和敬意。非常感谢我团队同学的团结协作,在大家的共同努力下,我们能够顺利攻破每个难题完成数据库系统应用课程设计。
[1] 金敏力,刘多林,田兆福. 数据库原理与应用教程——Visual Foxpro9.0[M]. 辽宁:东北大学出版社,2009.
[2] 夏邦贵,河海宾. Visual Foxpro6.0数据库开发经典实例精解[M].北京:机械工业出版社,2006.1
[3] 金敏力,田兆福,刘多林. Visual Foxpro6.0中文版实用教程[M]. 北京:机械工业出版社,2004
[4] 马军,王岩. Visual Foxpro毕业项目指南与项目实践[M].北京:科学出版社
本文来源:https://www.2haoxitong.net/k/doc/db7825f8bf64783e0912a21614791711cd7979fa.html
文档为doc格式