资源描述
VF学生管理系统设计过程和代码
———————————————————————————————— 作者:
———————————————————————————————— 日期:
2
个人收集整理 勿做商业用途
综合练习
学生管理系统说明书
(1)4个表
学生信息表:
字 段
字 段 名
类 型
宽 度
小数位
索 引
排 序
Nulls
1
学号
C
8
升序
否
2
姓名
C
6
否
3
性别
C
2
否
4
出生年月
D
8
否
5
家庭住址
C
20
否
6
备注
M
10
否
学生成绩表:
字 段
字 段 名
类 型
宽 度
小数位
索引
排序
Nulls
1
学号
C
8
升序
否
2
姓名
C
6
否
3
数据库
N
5
1
否
4
高等数学
N
5
1
否
5
英语
N
5
1
否
6
总分
B
5
1
升序
否
口令表:
字 段
字 段 名
类 型
宽 度
小数位
索 引
排序
Nulls
1
Id
C
8
升序
否
2
Ps
C
12
否
日志表
字 段
字 段 名
类 型
宽 度
小数位
索引
排序
Nulls
1
学号
C
10
否
2
登陆时间
D
8
否
3
离开时间
D
8
否
(2)4个报表(打印按钮)
学生信息表;学生成绩表;口令表;日志表
(3)1个菜单
数据查询 数据浏览 系统维护 系统管理
信息表维护 口令设置
成绩表维护 帐户管理
系统日志
数据备份
数据恢复
退出系统
数据库系统的具体情况:
欢迎界面表单
要求:“欢迎使用”计时器控件
“学生管理系统”标签
“进入系统"按钮和“退出系统”按钮
点击“退出系统”按钮—-———-—-—返回到Windows界面
点击“进入系统"按钮进入系统登陆表单
要求:“学生管理系统登陆",“请输入用户"和“请输入密码”3个标签
2个文本框
“确认”和“退出”两个按钮
当输入帐户和密码正确时,点击“确认“按钮,进入主菜单
如果输入密码错误时,显示
当输入三次以后,显示
点击确定后,显示
点击“是”后,退出系统,返回Windows界面。
数据查询菜单
点击该菜单后,显示页面
要求:“数据查询”、“数据查询”、“查询方式”、“输入查询值”标签
“确定”、“退出”按钮
1个文本框
1个编辑框
2个选项按钮组
在“学生信息表"“学生成绩表”“按学号查询"“按姓名查询”四个选择2项后,在文本框中输入查询值,点击“确定”按钮后,在文本框中显示查询结果; 点击“退出”按钮,返回主菜单
数据浏览菜单
点击该菜单后,显示页面
要求:“学生数据浏览”、“今日的日期是”、“当前时间是”标签
1个页框(包含2个页面)
“退出”按钮
2个标签
1个timer控件(显示系统时间)
当点击“退出”按钮后,返回到主菜单。
在“学生成绩表”页面中
在这个页面中,包含:
“学号”、“姓名"、“数据库”、“高等数学”、“英语”、“总分”标签以及对应文本框
“首记录”、“上一条"、“下一条”、“尾记录”4个按钮
点击按钮时候,显示相应的学生成绩表中的记录。
在“学生信息表”页面中
在这个页面中,包含一个表格。
系统维护菜单
(1)子菜单:成绩表维护表单
要求:1个表格(显示学生成绩表)
“学号”、“姓名”、“数据库”、“高等数学”、“英语"、“总分”标签以及对应文本框
1个组合按钮(“首记录”,“上一个",“下一个”,“尾记录",“添加”,“编辑”,“删除",“打印”,“退出")
当点击“首记录",“上一个”,“下一个”,“尾记录”按钮时,在文本框中显示相应的记录;
当点击“添加”按钮后,显示
可以输入记录,点击“保存”按钮后,返回界面。
当点击“编辑”按钮后,显示
可以修改已经存在的记录,并点击“保存"返回。
当点击“删除”按钮后,显示
选择“是"后,对删除的记录作删除标记,当点击“退出”按钮后,删除作标记的记录。
当点击“打印”按钮后,显示(报表)
当点击“退出”按钮后,返回主菜单,同时删除已经做删除标记的记录。
(2)子菜单:信息表维护表单 (和成绩表维护表单相同)
系统管理菜单
(1)口令设置表单
要求:“修改密码”、“输入原密码"、“输出新密码”、“重输新密码”标签
3个文本框
“确定”、“退出”按钮
当点击“确定”按钮后改变当前用户的密码,点击“退出”按钮返回主菜单
(2)帐户管理表单
要求:1个表格(帐户表)
“姓名”、“密码”标签和文本框
一个命令按钮组(和前面相同)
(3)系统日志表单
点击“打印”按钮后,打印日志报表
点击“清除”按钮后,清除日志记录
点击“退出"按钮后,返回主菜单
(4)系统备份表单
要求:“请选择备份目录”“请选择备份目标目录”标签以及文本框
“开始备份”和“退出"按钮
2个“…”选择路径按钮
ActiveX控件中的进度条控件ProgressBar
通过路径的选择把一个文件复制到另一个路径下面后,点击“开始备份”按钮,使用进度条控件显示过程,当复制成功后,弹出“复制完成对话框",
点击“确定”按钮后返回该表单.
点击“退出”按钮,返回主表单
(5)数据恢复表单
要求: “选择需要恢复数据目录”“选择恢复数据的目标目录”标签和文本框
“开始恢复”“退出”按钮,以及2个“…”选择路径按钮
ActiveX控件中的进度条控件ProgressBar
(6)退出系统
选择“否”返回主菜单
选择“是”退出到Windows
制作过程,代码:
进入系统中写入:DO FORM 学生管理系统登陆。scx
thisform。release
退出系统中写入:
ask=messagebox(”确定要退出系统吗?”,4+32+256,”学生管理系统")
if ask=6
close all
quit
else
endif
数据环境中加入新口令表(存密码和账号的)
FORM1.INIT中写入:
Public errornumber,Ps
Errornumber=0
退出中写入
ask=messagebox(”确定要退出吗?",4+32+256,"学生管理系统")
if ask=6
thisform.release
else
endif
确定中写入:
use 新口令表
a=Thisform.text1。value
b=Thisform.text2.value
if a==”"
n=messagebox(”请输入用户名”,4+32,"学生管理系统登陆")
do case
case n=6
thisform。text1。value=””
thisform.text1.setfocus
case n=7
thisform。release
endcase
else
if b=="”
n=messagebox(”请输入密码",4+32,”学生管理系统登陆")
do case
case n=6
thisform。text2.value=””
thisform.text2.setfocus
case n=7
thisform.release
endcase
endif
endif
locate for alltrim(新口令表。Id)==alltrim(a)
if found()
if alltrim(新口令表。Ps)==alltrim(b)
do 学生管理系统。mpr
thisform。release
else
messagebox("密码错误,请重新输入”,64,"学生管理系统登陆”)
errornumber=errornumber+1
endif
else
messagebox("用户"+a+"不存在!",64,”学生管理系统登陆”)
errornumber=errornumber+1
endif
if errornumber=3
MESSAGEBOX(”您已经输入3次错误,请按确定退出",64,”学生管理系统")
ask=messagebox(”确定要退出吗?",4+32+256,"学生管理系统”)
if ask=6
close all
quit
else
endif
endif
数据查询中代码:
确定中写入:
no=alltrim(thisform。Text1。value)
if thisform。optiongroup1。value=1
if thisform.optiongroup2.value=1
if empty(no)
messagebox("对不起,学号不能为空。",16,”错误")
thisform.Text1.setfocus
return
endif
select 学生信息表
locate for alltrim(学生信息表。学号)=no
if not found()
messagebox(”没有找到你输入的学号。",16,"错误”)
thisform。Text1.setfocus
return
endif
thisform。Edit1.value=”学号”+” ”+学号
thisform.Edit2。value="姓名”+” "+学生信息表.姓名
thisform.Edit3.value="性别"+” "+学生信息表。性别
thisform.Edit4.value=”出生年月"+” "+dtoc(学生信息表。出生年月)
thisform。edit5.value=”家庭住址”+” ”+学生信息表。家庭住址
thisform.Edit6.value=”备注"+" "+学生信息表。备注
return
endif
select 学生信息表
locate for alltrim(学生信息表。姓名)=no
if not found()
messagebox(”没有找到您输入的姓名!”,16,”错误")
thisform。Text1.setfocus
return
endif
thisform。Edit1。value="学号"+” ”+学号
thisform.Edit2.value="姓名”+" "+学生信息表。姓名
thisform。Edit3.value=”性别”+” ”+学生信息表。性别
thisform。Edit4。value=”出生年月"+" "+dtoc(学生信息表.出生年月)
thisform.edit5.value=”家庭住址”+” "+学生信息表.家庭住址
thisform。Edit6。value="备注"+” "+学生信息表。备注
else
if thisform.optiongroup2.value=1
if empty(no)
messagebox(”对不起,学号不能为空!”,16,”错误”)
thisform。Text1.setfocus
return
endif
select 学生成绩表
locate for alltrim(学生信息表。学号)=no
if not found()
messagebox("没有找到你输入的学号!”,16,”错误”)
thisform.Text1。setfocus
return
endif
thisform.Edit1。value="学号"+” ”+学生成绩表。学号
thisform.Edit2.value=”姓名"+” ”+学生成绩表.性名
thisform。Edit3.value=”数据库”+” "+str(学生成绩表。数据库)
thisform.Edit4.value="高等数学"+" ”+str(学生成绩表。高等数学)
thisform。edit5.value="英语"+" "+str(学生成绩表。英语)
thisform。Edit6。value=”总分"+” "+str(学生成绩表.总分)
else
if empty(no)
messagebox(”对不起,姓名不能为空!",16,”错误")
thisform。Text1。setfocus
return
endif
select 学生成绩表
locate for alltrim(学生成绩表。性名)=no
if not found()
messagebox(”没有找到您输入的姓名!”,16,"错误”)
thisform.Text1。setfocus
return
endif
thisform。Edit1。value=”学号”+" "+学生成绩表.学号
thisform。Edit2.value="姓名"+” "+学生成绩表.性名
thisform.Edit3.value="数据库"+" ”+str(学生成绩表。数据库)
thisform.Edit4.value="高等数学"+" "+str(学生成绩表.高等数学)
thisform。edit5。value="英语”+” "+str(学生成绩表.英语)
thisform。Edit6。value="总分"+” "+str(学生成绩表。总分)
endif
endif
退出中写入:thisform.release
数据浏览中代码:
首记录:go top
Thisform.refresh
上一条:skip —1
Go top
If bof()
Thisform。refresh
下一条:
Skip 1
If eof()
Go top
Thisform。refresh
尾记录:
Go bottom
Thisform.refresh
计时器中TIMER1.TIMER中写入:
Thisform。label5。caption=dtoc(date())
Thisform.label6.caption=time()
退出中写入:
Thisform.release
数据环境中加入学生成绩表和学生信息表
学生信息表维护代码:
首记录,上一个,下一个,尾记录同上
添加中写入:append blank
Thisform,refresh
编辑中定入:thisform。txt学号。setfocus()
保存:messagebox(“已存入”,48,“警告”)
Thisform.refresh
删除中写入:delete from 学生信息表 where 学号=thisform。txt学号.value
Thisform.grid1.recordsource="”
Pack
Thisform.grid1.recordsource=”学生信息表"
Thisform。refresh
打印中写入:list to printer prompt
数据环境中加入学生信息表
学生成绩表维护同上的代码,数据环境中加入学生成绩表
学生账户管理中浏览学生密码的代码也同上,数据环境中加入口令表
口令表设置用于改密码,代码如下:
确定中写入:LOCAL jj
jj=0
for i=1 to 3
s="text"+alltrim(str(i))
d=”label"+alltrim(str(i))
if empty(thisform.&s。。value)
messagebox(thisform。&d..caption+"不能为空”,64,”系统提示”)
thisform。&s..setfocus
ELSE
IF s=”text3”
jj=1
ENDIF
ENDIF
ENDFOR
IF jj=1
select 新口令表
GO top
locate for alltrim(thisform.text1。value)=alltrim(新口令表。id)
if found()
if alltrim(thisform.text2.value)=alltrim(新口令表.ps)and alltrim(thisform.text3.value)=alltrim(thisform。text4.value)
replace 新口令表.ps with ALLTRIM(thisform.text3.Value)
MESSAGEBOX("密码修改成功",64,"系统提示")
thisform.text1。Value=""
thisform。text2。Value=”"
thisform.text3.Value="”
thisform。text4。value="”
thisform.text1.SetFocus
ELSE
MESSAGEBOX("密码不正确或两次输入密码不一致,请重新输入”,48,"系统提示")
thisform。text2.Value=""
thisform。text3。Value=""
thisform.text2.SetFocus
ENDIF
ELSE
MESSAGEBOX(”用户名"+ALLTRIM(thisform.text1.Value)+”不存在,请确认重新输入",48,”系统提示")
thisform。text1。setfocus
thisform。text1.SelStart=0
thisform.text1.SelLength=LEN(ALLTRIM(thisform.text1。Value))
thisform.text2.Value=””
thisform.text3。Value="”
ENDIF
ENDIF
退出中写入:thisform.release
数据环境中加入口令表
系统日志表单中代码:
清除按钮:y=messagebox(”您真的要删除吗?",4+32,"警告")
if y=6
delete from 日志表
thisform。grid1。recordsource=”"
pack
thisform.refresh
endif
打印中代码同上
退出中:thisform。release
一个菜单中:
打开菜单设计器,将数据查询,数据浏览的结果一项改为命令,选项中分别写入:
Do form 表单数据查询/表单学生数据浏览(要执行的表单名)
系统维护和系统管理中,点编辑
在信息表维护和成绩表维护中将结果选项改为命令,选项一项中写入:do form 在执行的表单名
然后运行菜单,保存即可。
要做出exe可执行文件,还要:
创建一个项目,在项目的不同位置中加入数据库,表,表单,报表,菜单,然后写一个主程序,创建一个主程序表单,如下:
项目管理器中代码选项中,选新建,写入代码:Set dele on
Set talk off
Set safety off
Set date ansi
set cent on
Set path to 学生管理系统
Do form 表单学生登陆系统
Read events
其中的Do form 表单学生登陆系统为首先要执行的表单,最后是其他选项中选择连编,连编可执行文件,重新编译全部文件,显示错误,完成后就可执行了。
展开阅读全文