1、 Visual FoxPro 数据库程序设计课程 设计说明书 题目:学生成绩管理系统题目:学生成绩管理系统 1.系统总体设计 1.1 系统功能简介 数据录入:输入学生的学号,给出学生姓名;输入课程号,给出课程名;输入学生成绩。 数据修改:按课程号修改成绩。 成绩查询:按学号查询该同学的各科成绩;按课程号查询每名同学的成绩,并排序查询结 果。 1.2 系统功能结构图 学 生 成 绩 管 理 系 统 学生成绩录入 学生成绩修改 学生成绩查询 退出 按课程查询 按学号查询 2.数据库设计 2.1 建立数据库和基本表,并建立合理的约束 打开 Visual FoxPro,建立数据库,名为学生成绩管理系统
2、,并在数据库下建立三张 表:学生表、课程表、成绩表。表结构如下: 学生表(学号,姓名,性别,出生年月) 建立主索引:名为学号 表达式为:学号 课程表(课程名,课程号,学分,主讲教师) 建立主索引:名为课程号 表达式为:课程号 成绩表(学号,课程号,成绩) 建立普通索引:名为学号 表达式为:学号 建立普通索引:名为课程号 表达式为:课程号 学生表、课程表、成绩表相关联如图所示: 2.2 录入数据 学生表录入数据如下所示: 课程表录入数据如下所示: 成绩表录入数据如下所示: 3.程序设计界面 3.1 系统主界面 系统主界面设计如图所示: 1)菜单设计 1、按照系统功能结构图设计顶层菜单。 2、在
3、VFP 系统主菜单的“显示”菜单下,选择“常规选项”命令,在弹出的对话框中, 勾选顶层表单选项,将该菜单设置为顶层表单菜单。设计如下: 2)控件属性设置 图片 Image1 的路径属性 Picture 设置为 VFP 的默认路径。 标签 label1 的标题属性 Caption 设置为:三亚学院学生成绩管理系统,并设置相应 的字体、字号和颜色。 3)表单代码设计 表单的 Init 事件代码:DO 学生成绩.MPR WITH THIS 表单的 Destroy 事件代码:RELEASE MENU 学生成绩 EXTENDED 3.2 学生成绩录入 学生成绩录入表单设计如图所示: 1)控件属性设置 标
4、签:label1 学号 标题:Caption 设置为:学号 Label2 课程号 标题:Caption 设置为:课程号 Label3 成绩 标题:Caption 设置为:成绩 文本框:txt1 学号 数据源:ControlSource 设置为:成绩.学号 Txt2 课程号 数据源:ControlSource 设置为:成绩.课程号 Txt3 成绩 数据源:ControlSource 设置为:成绩.成绩 命令按钮:command1 标题:caption 设置为:追加 Command2 标题:caption 设置为:退出 2)代码设计 文本框 txt 学号的 GotFocus 事件代码: selec
5、t 成绩 append blank jlh=recno() 文本框 txt 学号的 LostFocus 事件代码: select 成绩 replace 学号 with thisform.txt 学号.value select 学生 locate for 学号=thisform.txt 学号.value thisform.label1.caption=“姓名: “+学生.姓名 select 成绩 文本框 txt 课程号的 getFocus 事件代码: select 成绩 thisform.txt 课程号.value= 文本框 txt 课程号的 LostFocus 事件代码: select 成绩
6、go jlh replace 课程号 with thisform.txt 课程号.value select 课程表 locate for 课程号=thisform.txt 课程号.value thisform.label2.caption=“课程名: “+课程表.课程名 select 成绩 go jlh thisform.txt 成绩.value=0 文本框 txt 成绩的 getFocus 事件代码: select 成绩 go jlh 文本框 txt 成绩的 LostFocus 事件代码: select 成绩 go jlh replace 成绩 with thisform.txt 成绩.value 命令按钮 command1 的 Click 事件代码: thisform.label1.caption=“ “ thisform.label2.caption=“ “ select 成绩 append blank thisform.txt 学号.setfocus thisform.refresh 命令按钮 command2 的 C