实验六简单学生信息查询系统的设计与实现.docx
《实验六简单学生信息查询系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《实验六简单学生信息查询系统的设计与实现.docx(17页珍藏版)》请在冰豆网上搜索。
![实验六简单学生信息查询系统的设计与实现.docx](https://file1.bdocx.com/fileroot1/2023-1/23/0fd722ad-dfc3-494e-b315-65ea9f7403bd/0fd722ad-dfc3-494e-b315-65ea9f7403bd1.gif)
实验六简单学生信息查询系统的设计与实现
实验四简单“学生信息查询系统”的设计与实现
实验题目
简单的“学生信息查询系统”的设计与实现
日期
2013.9.23
一、实验目的
1、掌握应用程序设计规划的基本方法;
2、掌握使用VFP设计简单的查询系统;
3、掌握数据表的建立,及表单控件与数据源的连接方法;
4、掌握查询、修改、添加、删除记录的基本实现方法。
二、设备与环境
PC兼容机、Windows系列操作系统、VisualFoxPro数据库编程环境
三、实验内容
(一)设计简单的“学生信息查询系统”;
要求:
设计一个简单的“学生信息查询系统”,其功能包括系统的登陆、学生信息的添加/删除、根据不同条件进行模糊查询等。
(二)设计3个自由表;
包括:
密码表、系表、学生信息表,表中记录自行输入,记录应尽量真实,每个表记录数不得少于5条。
表结构如下。
1.密码表——passwd.dbf
字段名
字段类型
字段宽度
说明
用户名
字符型
10
字符
密码
字符型
10
英文字母或数字
2.系表——department.dbf
字段名
字段类型
字段宽度
说明
系编号
字符型
6
字符型(数字)
系名
字符型
20
汉字
联系电话
字
型
20
数字
3.学生信息表——student_info.dbf
字段名
字段类型
字段宽度
说明
学号
字符型
8
数字
姓名
字符型
8
汉字
性别
字符型
2
汉字
年龄
数值型
2
数值
系编号
字符型
6
字符型(数字)
(三)欢迎界面
要求:
设计时可参考图
1.创建系统欢迎界面,单击窗口开始系统登陆
2.设计查询登陆系统
(四)查询系统登陆界面
要求:
1.填入正确的用户名和密码,登陆系统;
2.假若用户名或密码错误,应给出相应提示;
3.重试次数不得超过三次;
4.加入“重新填写”功能;
5.设计时可参考给出的图。
(五)系统主界面
要求:
“学生信息查询系统”主界面包括四个按钮;
1.学生信息查询;
2.信息的修改/添加;
3.信息的删除;
4.退出。
(六)查询模块
要求:
1.查询能够实现按照不同条件进行查询;
2.查找到的信息显示在查询内容下方的列表中;
3.当没有找到符合条件的记录时,能够给出友好的提示信息。
(七)信息添加/修改界面
要求:
1.完成信息的添加/修改操作;
2.实现将不同系部的学生分类显示。
(八)记录的删除界面
要求:
1.了解逻辑删除和物理删除的区别;
2.编程实现逻辑删除、物理删除两种删除方式的选择。
四、实验结果及分析
(一)自由表
图一:
密码表
图二:
系表
图三:
学生信息表
(二)欢迎界面
欢迎界面
属性设置:
对象
属性名
值
作用
Form
Caption
欢迎使用学生信息查询系统
设置欢迎界面表达标题内容
Piture
瓢虫.Jpg
为表单插入图画背景
Label1
Caption
学生信息查询系统
界面标题1内容
Autosize
.t.
区域大小自
适应标题
Backstyle
0透明
标签与表单颜色一致
Fontname
楷体
指定用于显示文本的字体名
Fontsize
36
指定对象文本的字体大小
Forecolor
128,0,255
指定用于显示对象文本和图形的前景色
Label2
Caption
单击窗口开始登陆
界面标题2内容
Autosize
.t.
区域大小自动适应标题
Backstyle
0透明
标签与表单颜色一致
Fontname
楷体
指定用于显示文本的字体名
Fontsize
20
指定对象文
的字体大小
Forecolor
0.128.255
指定用于显示对象文本和图形的前景色
代码:
Label2的click的事件代码:
doformpass.scx
(3)学生信息查询系统登陆界面
图五:
登陆界面
属性设置:
对象
属性名
值
作用
Form
Caption
Pass
设置表单的标题内容
Label1
Caption
学生信息查询登陆系统
标签1的内容
Autosize
.t.
区域大小自动适应标题
Backstyle
0透明
标签与表单颜色一致
Fontname
黑体
指定用于显示文本的字体名
Fontsize
20
指定对象文本的字体大小
Label2
Caption
用户名
标签2的内容
Autosize
.t.
区域大小自动适应标题
Backstyle
0透明
标签与表单颜色一致
Fontsize
12
指定对象文本的字体大小
Label3
Caption
密码
标签3的内容
Autosize
.t.
区域大小自动适应标题
Backstyle
0透明
标签与表单颜色一致
Fontsize
12
指定对象文本的字体大小
文本框1
Caption
Text1
设置文本框标识
Value
无
清空文本框
文本框2
Caption
Text2
设置文本框标识
Value
无
清空文本框
Command1
Name
确定
设置密令按钮的标题
Command2
Name
重新填写
设置密令按钮的标题
Command3
Name
退出
设置密令按钮的标题
代码:
Command1(确定)的click事件:
j=j+1
dowhilenoteof()
ifthisform.text1.value=用户名
username=.t.
ifthisform.text2.value=密码
userpassword=.t.
exit
else
i=i+1
exit
endif
else
skip
endif
enddo
gotop
ifusername=.t.
ifuserpassword=.t.
messagebox("欢迎使用学生信息查询系统!
")
thisform.release
doform主界面
else
ifi<3
messagebox("密码错误,请重新输入密码!
")
thisform.text2.value=""
thisform.text2.setfocus
else
messagebox("密码尝试超过3次,退出系统!
")
thisform.release
quit
endif
endif
else
ifj<3
messagebox("用户名输入错误,请重新输入!
")
thisform.text1.value=""
thisform.text2.setfocus
else
messagebox("用户名尝试超过3次,退出系统!
")
thisform.release
quit
endif
endif
command2(重新填写)的click事件:
thisform.text1.value=""
thisform.text2.value=""
thisform.text1.setfocus
command3(退出)的click事件
thisform.release
(四)系统主界面
图六:
主界面
属性设置:
对象
属性名
值
作用
Form1
Caption
系统主界面
设置表单的标题内容
Command1
Caption
学生信息查询
设置命令按钮的标题
Command2
Caption
信息的修改/添加
设置命令按钮的标题
Command3
Caption
信息的删除
设置命令按钮的标题
Command4
Caption
退出
设置命令按钮的标题
代码:
Command1(学生信息查询)的click事件:
doform信息查询
Command2(信息的修改/添加)的click事件:
doform信息的添加与修改
Command3(信息的删除)的click事件;
doform信息的删除
Command4(退出)的click事件;
thisform.release
(五)学生信息查询模块
此模块需要插入表单,添加学生信息表到数据环境并进行设置
图七:
查询界面
属性设置:
对象
属性名
值
作用
Form1
Caption
学生信息查询模块
设置表单的标题
Label1
Caption
请选择学生信息查询方式:
标签1的内容
Backstyle
0透明
标签的背景透明
Autosize
.t.
区域大小自动适应标题内容
Label2
Caption
填入待查询的内容
标签2的内容
Backstyle
0透明
标签的背景透明
Autosize
.t.
区域大小自动适应标题内容
Optiongroup1
Backstyle
0透明
选项按钮组的背景透明
Text1
Name
Text1
设置文本框标识
Command1
Caption
确定查找
设置命令按钮1的标题
Autosize
.t.
区域大小自动适应标题内容
Command2
Caption
取消并退出
设置命令按钮2的标题
Autosize
.t.
区域大小自动适应标题内容
代码:
optiongroup1的click事件:
LPARAMETERScName,cClass
Option1
setfilterto学号=allt(thisform.text1.value)
Option2
setfilterto姓名=allt(thisform.text1.value)
Option3
setfilterto性别=allt(thisform.text1.value)
Option4
setfilterto年龄=val(allt(thisform.text1.value))
Option5
setfilterto系编号=allt(thisform.text1.value)
command1(确定查找)的click事件:
thisform.refresh
command2(取消并退出)的click事件:
thisform.release
(6)信息的添加修改
图八;信息的添加修改
1.打开“文件”中的新建命令,选定“表单”中的“向导”按钮;
2.打开“表单向导”,选择“一对多表单向导”;
3.从父表中选定字段:
单击“数据库和表”的对话按钮,在“打开”对话框中选定“系表”,然后将“可用字段”中的所有字段移到“选定字段”列表框中,选定“下一步”;
4.从字表中选定字段:
单击“数据库和表”的对话按钮,在“打开”对话框中选定“学生信息表”,然后将“可用字段”中的所有字段移到“选定字段”列表框中,选定“下一步”;
5.建立表之间的关系:
选定“下一步”;
6.设置完成对话框:
在“请键入表单标题”文本框中输入“信息的添加修改”选定“完成”;
7.运行并进行调试;
8.表单“信息的添加修改”执行后,父表提供分类数据,子表数据则显示在表格中,用按钮翻页时子表的内容随父表变化。
属性设置:
对象
属性名
值
作用
From1
Caption
信息的添加修改
设置表单的标题内容
Label1
Caption
系编号
标签1的内容
Label2
Caption
系名
标签2的内容
Label3
Caption
系联系电话
标签3的内容
Text1
Caption
系编号1
文本框1的内容
Controlsouce
系表.系编号
指定与对象建立联系的数据源
Text2
Caption
系名1
文本框2的内容
Controlsouce
系表.系名
指定与对象建立联系的数据源
Text2
Caption
系联系电话1
文本框3的内容
Controlsouce
系表.系联系电话
指定与对象建立联系的数据源
(7)信息的删除
图九:
信息的删除
属性设置:
对象
属性名
值
作用
Form
Caption
信息的删除
设置表单的标题
Label1
Caption
系编号
标签1的内容
Autosize
.t.
区域大小自动适应标题内容
Backstyle
0透明
标签的背景透明
Label2
Caption
系名称
标签2的内容
Autosize
.t.
区域大小自动适应标题内容
Backstyle
0透明
标签的背景透明
Label3
Caption
系联系电话
标签3的内容
Autosize
.t.
区域大小自动适应标题内容
Backstyle
0透明
标签的背景透明
Gird1
Recordsource
学生信息表
指定数据的来源
Command1
Caption
下一个
设置命令按钮1的标题
Command2
Caption
上一个
设置命令按钮2的标题
Command3
Caption
仅从表中删除
设置命令按钮3的标题
Command4
Caption
从磁盘中删除
设置命令按钮4的标题
Command5
Caption
退出
设置命令按钮5的标题
代码:
command1(仅从列表中删除数据)的click事件:
use学生信息表
deleteall
command2(从磁盘上删除数据)的click事件:
use学生信息表
zap
错误分析:
在“学生信息查询模块”中单击“按学号查询”时,系统没有反应。
解决方法:
将代码中的过程由click改为init