数据库原理与应用实践报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库原理及应用

实践报告

1 数据库功能描述

基本实现学生信息的管理,包括系统的登录、学生信息的录入、学生信息的浏览、学生信息的查询、学生信息的修改和学生信息的删除。

2 数据库设计

2.1 系统需求分析

通过设计一个简单学生成绩管理系统来方便成绩的管理,主要容是能够在学生表、教师表、班级表、课程表、成绩表等添加记录;能够查询到学生基本情况、全局情况(浏览表)、按学生查询、课程浏览、多项组合查询等功能;能够统计按个人统计成绩、按单科成绩统计成绩等;能够修改课程信息、学生信息、成绩信息等。最后通过主表单或顶层表单的菜单等方法将各模块表单合理地连接,形成完整的系统。整个系统中包含四个功能模块:添加模块、查询模块、统计模块、修改模块。

2.2 数据库逻辑结构设计

3 数据库实施

3.1 数据库架构图

3.2 数据表生成脚本初始数据录入脚本

学生数据表如表1所示。

表1 学生数据表(student.dbf)

字段名类型宽度索引索引名索引类型索引表达式学号字符型10 升序学号主索引学号字符型8

性别字符型 2

出生日期日期型8

班级字符型 4 升序班级普通索引班级

表2 班级数据表(classes.dbf)

字段名类型宽度小数位索引索引名索引类型索引表达式班级字符型 4 升序班级主索引班级年级x 字符型 2

专业字符型10

系代码字符型 1

学制字符型 1

类型字符型 4

表3 教师数据表(teacher.dbf)

表4 课程数据表(course.dbf)

表5 学习成绩数据表(score.dbf)

3.3初始录入脚本

4 应用程序设计

表一:登录

用户名和密码存放在数据表中,使用时不能连续输入错误3次的登录表单。步骤为:

1、首先在项目管理器的界面中选择创建一个表单,命名为:登陆.Scx

2、在空白表单界面上用常用工具绘制相应控件,属性如下图所示:

表单中对象的属性设置

其中需要在表单的数据环境中添加密码表。密码表设有两个字段,YHM和MM。

3、为对象添加代码。

在form1的load 事件中添加

public n

n=0

Command1的click事件

locate for alltrim(mm.yhm)==alltrim(bo1.value)

if found()

if alltrim(thisform.text1.value)==alltrim(mm.mm)

thisform.release

do form 主控表单.scx

else

messagebox('你输入的密码不正确,请重新输入',48,'登录信息') thisform.text1.value=''

n=n+1

if n=3

messagebox('登录失败!',16,'提示信息')

quit

endif

endif

else

messagebox('对不起,你不是合法用户')

endif

Command2的click事件

bo1.value=''

thisform.text1.value=''

Command3的click事件

answer=messagebox('确认退出吗?',1+32+0,'确认退出')

if answer=1

thisform.release

quit

endif

表二:

以表单向导开发信息录入新表单。

按“新建”,弹出对话框,选择“表单向导”按钮。

选择第一种类型(单表表单),并点击“确定”按钮。系统会打开相应的对话框,一步一步地向用户询问一些简单的问题,并根据用户的回答自己创建表单。最后点击“完成”按钮出现保存表单的对话框。最后运行一下表单。

表三:

1、首先在项目管理器的界面中选择创建一个表单,命名为:修改.Scx

2、在空白表单界面上用常用工具绘制相应控件:一个标签、一个页框(含有3页)、两个命令按钮。其中学生页面上有一个Combo1,六个标签,五个文本框,课程页面上有一个Combo1,五个标签,四个文本框,成绩页面上有一个Combo1,四个标签,三个文本框。为表单设置数据环境,为student.dbf、course.dbf、score.dbf 属性如下图所示:

表1 修改表单.scx中对象的属性设置

表2 page1中对象的属性设置

表3 Page2中对象的属性设置

表4 Page3中对象的属性设置

3、为对象添加代码。

combo1的interactivechange事件代码:sele student

this.parent.text1.value=学号

this.parent.text2.value=

this.parent.text3.value=班级

this.parent.text4.value=性别

this.parent.text5.value=出生日期

thisform.refresh

command1的click事件的代码:

a=MESSAGEBOX("确定修改?")

if a=1

sele student

b=this.parent.text2.value

c=this.parent.text3.value

d=this.parent.text4.value

e=this.parent.text5.value

replace with b

replace 性别 with d

replace 出生日期 with e

replace 班级 with c

MESSAGEBOX("记录修改成功!")

Endif

page2中对象的事件设置:

combo1的interactivechange事件代码:sele course

this.parent.text1.value=课程代码

this.parent.text2.value=课程名称

this.parent.text3.value=类别

this.parent.text4.value=教师代码

thisform.refresh

command1的click事件的代码:

a=MESSAGEBOX("确定修改?")

if a=1

sele course

b=this.parent.text2.value

c=this.parent.text3.value

d=this.parent.text4.value

replace 课程名称 with b

replace 类别 with c

replace 教师代码 with d

MESSAGEBOX("记录修改成功!")

endif

page3中对象的事件设置:

combo1的interactivechange事件代码: sele score

相关文档
最新文档