1、VF学生管理系统设计过程和代码 作者: 日期:2 个人收集整理 勿做商业用途综合练习学生管理系统说明书(1)4个表学生信息表:字段字 段 名类型宽度小数位索引排序Nulls1学号C8升序否2姓名C6否3性别C2否4出生年月D8否5家庭住址C20否6备注M10否学生成绩表:字段字 段 名类型宽度小数位索引排序Nulls1学号C8升序否2姓名C6否3数据库N51否4高等数学N51否5英语N51否6总分B51升序否口令表:字段字 段 名类型宽度小数位索引排序Nulls1IdC8升序否2PsC12否日志表字段字 段 名类型宽度小数位索引排序Nulls1学号C10否2登陆时间D8否3离开时间D8否(2)
2、4个报表(打印按钮)学生信息表;学生成绩表;口令表;日志表(3)1个菜单数据查询 数据浏览 系统维护 系统管理信息表维护 口令设置成绩表维护 帐户管理系统日志数据备份数据恢复退出系统数据库系统的具体情况:欢迎界面表单要求:“欢迎使用”计时器控件 “学生管理系统”标签 “进入系统按钮和“退出系统”按钮 点击“退出系统”按钮-返回到Windows界面 点击“进入系统按钮进入系统登陆表单要求:“学生管理系统登陆,“请输入用户和“请输入密码”3个标签 2个文本框 “确认”和“退出”两个按钮 当输入帐户和密码正确时,点击“确认“按钮,进入主菜单如果输入密码错误时,显示当输入三次以后,显示点击确定后,显示
3、点击“是”后,退出系统,返回Windows界面。数据查询菜单点击该菜单后,显示页面要求:“数据查询”、“数据查询”、“查询方式”、“输入查询值”标签 “确定”、“退出”按钮 1个文本框 1个编辑框 2个选项按钮组 在“学生信息表“学生成绩表”“按学号查询“按姓名查询”四个选择2项后,在文本框中输入查询值,点击“确定”按钮后,在文本框中显示查询结果; 点击“退出”按钮,返回主菜单数据浏览菜单点击该菜单后,显示页面要求:“学生数据浏览”、“今日的日期是”、“当前时间是”标签 1个页框(包含2个页面) “退出”按钮 2个标签 1个timer控件(显示系统时间)当点击“退出”按钮后,返回到主菜单。在“
4、学生成绩表”页面中在这个页面中,包含:“学号”、“姓名、“数据库”、“高等数学”、“英语”、“总分”标签以及对应文本框“首记录”、“上一条、“下一条”、“尾记录”4个按钮点击按钮时候,显示相应的学生成绩表中的记录。在“学生信息表”页面中在这个页面中,包含一个表格。系统维护菜单(1)子菜单:成绩表维护表单要求:1个表格(显示学生成绩表) “学号”、“姓名”、“数据库”、“高等数学”、“英语、“总分”标签以及对应文本框 1个组合按钮(“首记录”,“上一个,“下一个”,“尾记录,“添加”,“编辑”,“删除,“打印”,“退出) 当点击“首记录,“上一个”,“下一个”,“尾记录”按钮时,在文本框中显示相
5、应的记录; 当点击“添加”按钮后,显示可以输入记录,点击“保存”按钮后,返回界面。当点击“编辑”按钮后,显示可以修改已经存在的记录,并点击“保存返回。当点击“删除”按钮后,显示选择“是后,对删除的记录作删除标记,当点击“退出”按钮后,删除作标记的记录。 当点击“打印”按钮后,显示(报表) 当点击“退出”按钮后,返回主菜单,同时删除已经做删除标记的记录。(2)子菜单:信息表维护表单 (和成绩表维护表单相同)系统管理菜单(1)口令设置表单 要求:“修改密码”、“输入原密码、“输出新密码”、“重输新密码”标签 3个文本框 “确定”、“退出”按钮 当点击“确定”按钮后改变当前用户的密码,点击“退出”按
6、钮返回主菜单(2)帐户管理表单要求:1个表格(帐户表) “姓名”、“密码”标签和文本框 一个命令按钮组(和前面相同)(3)系统日志表单点击“打印”按钮后,打印日志报表点击“清除”按钮后,清除日志记录点击“退出按钮后,返回主菜单(4)系统备份表单要求:“请选择备份目录”“请选择备份目标目录”标签以及文本框 “开始备份”和“退出按钮 2个“”选择路径按钮 ActiveX控件中的进度条控件ProgressBar通过路径的选择把一个文件复制到另一个路径下面后,点击“开始备份”按钮,使用进度条控件显示过程,当复制成功后,弹出“复制完成对话框,点击“确定”按钮后返回该表单. 点击“退出”按钮,返回主表单(
7、5)数据恢复表单要求: “选择需要恢复数据目录”“选择恢复数据的目标目录”标签和文本框 “开始恢复”“退出”按钮,以及2个“”选择路径按钮 ActiveX控件中的进度条控件ProgressBar(6)退出系统选择“否”返回主菜单选择“是”退出到Windows制作过程,代码: 进入系统中写入:DO FORM 学生管理系统登陆。scx thisform。release退出系统中写入: ask=messagebox(”确定要退出系统吗?”,4+32+256,”学生管理系统)if ask=6 close allquitelse endif数据环境中加入新口令表(存密码和账号的)FORM1.INIT中写
8、入:Public errornumber,PsErrornumber=0退出中写入ask=messagebox(”确定要退出吗?,4+32+256,学生管理系统)if ask=6 thisform.releaseelse endif确定中写入:use 新口令表a=Thisform.text1。valueb=Thisform.text2.valueif a=”n=messagebox(”请输入用户名”,4+32,学生管理系统登陆)do casecase n=6thisform。text1。value=”thisform.text1.setfocuscase n=7thisform。release
9、endcaseelseif b=”n=messagebox(”请输入密码,4+32,”学生管理系统登陆)do casecase n=6thisform。text2.value=”thisform.text2.setfocuscase n=7thisform.releaseendcaseendifendiflocate for alltrim(新口令表。Id)=alltrim(a)if found() if alltrim(新口令表。Ps)=alltrim(b) do 学生管理系统。mpr thisform。release else messagebox(密码错误,请重新输入”,64,学生管理系
10、统登陆”) 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=6close all quitelse endif endif数据查询中代码:确定中写入:no=alltrim(thisform。Text1。value)if thi
11、sform。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=”学号”+” ”+
12、学号 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(”没有找到您输入的姓名!”,
13、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=备注+” +学生信息表。备注elseif thisform.optiongrou
14、p2.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=”姓名+” ”+学生成绩表.性名
15、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(学生成绩表。性名)
16、=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。
17、Edit6。value=总分+” +str(学生成绩表。总分) endif endif退出中写入:thisform.release数据浏览中代码:首记录:go top Thisform.refresh上一条:skip 1Go topIf bof()Thisform。refresh下一条:Skip 1If eof()Go top Thisform。refresh尾记录:Go bottomThisform.refresh计时器中TIMER1.TIMER中写入:Thisform。label5。caption=dtoc(date())Thisform.label6.caption=time()退出中写
18、入:Thisform.release数据环境中加入学生成绩表和学生信息表学生信息表维护代码:首记录,上一个,下一个,尾记录同上添加中写入:append blankThisform,refresh编辑中定入:thisform。txt学号。setfocus()保存:messagebox(“已存入”,48,“警告”)Thisform.refresh删除中写入:delete from 学生信息表 where 学号=thisform。txt学号.valueThisform.grid1.recordsource=”PackThisform.grid1.recordsource=”学生信息表Thisform
19、。refresh打印中写入:list to printer prompt数据环境中加入学生信息表学生成绩表维护同上的代码,数据环境中加入学生成绩表学生账户管理中浏览学生密码的代码也同上,数据环境中加入口令表口令表设置用于改密码,代码如下:确定中写入:LOCAL jjjj=0for 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
20、 s=”text3” jj=1 ENDIF ENDIFENDFORIF 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) MESSAGE
21、BOX(密码修改成功,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
22、.Value)+”不存在,请确认重新输入,48,”系统提示) thisform。text1。setfocus thisform。text1.SelStart=0 thisform.text1.SelLength=LEN(ALLTRIM(thisform.text1。Value) thisform.text2.Value=” thisform.text3。Value=” ENDIFENDIF退出中写入:thisform.release数据环境中加入口令表系统日志表单中代码:清除按钮:y=messagebox(”您真的要删除吗?,4+32,警告)if y=6delete from 日志表thisf
23、orm。grid1。recordsource=”packthisform.refreshendif打印中代码同上退出中:thisform。release一个菜单中:打开菜单设计器,将数据查询,数据浏览的结果一项改为命令,选项中分别写入:Do form 表单数据查询/表单学生数据浏览(要执行的表单名)系统维护和系统管理中,点编辑在信息表维护和成绩表维护中将结果选项改为命令,选项一项中写入:do form 在执行的表单名然后运行菜单,保存即可。要做出exe可执行文件,还要:创建一个项目,在项目的不同位置中加入数据库,表,表单,报表,菜单,然后写一个主程序,创建一个主程序表单,如下:项目管理器中代码选项中,选新建,写入代码:Set dele onSet talk offSet safety offSet date ansiset cent on Set path to 学生管理系统Do form 表单学生登陆系统Read events其中的Do form 表单学生登陆系统为首先要执行的表单,最后是其他选项中选择连编,连编可执行文件,重新编译全部文件,显示错误,完成后就可执行了。