高校学生学籍管理系统设计说明.docx
《高校学生学籍管理系统设计说明.docx》由会员分享,可在线阅读,更多相关《高校学生学籍管理系统设计说明.docx(15页珍藏版)》请在冰点文库上搜索。
高校学生学籍管理系统设计说明
高校学生学籍管理系统设计和开发说明
学生学籍管理系统的设计和开发
【摘 要】通过使用MicrosoftVisualFoxPro6.0软件开发形成一个小型学生学籍管理系统,该系统可实现对学生成绩的循环查询、修改、添加、删除以及档案管理等功能,以此来巩固我们所学的数据库管理知识。
使用系统时,可以通过系统菜单进行各种操作,菜单元素主要是表格和表单组成。
表单的实现是经过程序实现的。
【关键字】学生成绩档案 管理 程序 执行
【正 文】
VisualFoxPro命令一览表:
CREATEDATABASE:
建立并打开一个数据库文件命令
CREATEFORM:
打开表单设计器命令
APPANDFROM:
从另一个文件添加记录到当前表的末尾命令
CREATE:
创建一个新的VisualFoxPro数据库表命令
COUNT:
统计表中的记录数命令
BLANK:
清除当前记录中字段的数据命令
DELETE:
为指定记录加上删除标记命令
PACK:
永久性的删除当前表中加有删除标记的记录命令
DELETEFILE:
从磁盘中删除指定的文件命令
DIR:
显示一个目录或文件夹中的文件信息命令
DISPLAY:
在窗口中显示当前表的信息命令
DISPLAYFILES:
显示文件的有关信息命令
DISPLAYMEMORY:
显示当前内存变量和数组元素的内容命令
EDIT:
显示要编辑的字段命令
EXIT:
退出DOWHILE、FOR、DCAN循环语句结构的命令
IF…ENDIF:
根据逻辑表达式的值有条件地执行一组命令
INDEX:
建立一个索引文件,按某个逻辑顺序显示和访问表中的记录命令
INSERT:
在当前表中插入一条新记录,然后显示该记录并进行编辑命令
LIST:
显示库文件命令
HELP:
打开帮助窗口命令
DOCASE…ENDCASE:
将执行第一个逻辑表达式中为真的那个分支后面的一组
FOR…ENDFOR:
将一组命令反复执行指定的次数
DOWHILE…ENDDO:
根据指定的条件循环执行一组指定的命令
GO/GOTO:
移动记录指针到指定记录号的记录中命令
MODIFYDATABASE:
打开数据库设计器,允许用户按交互方式编辑当前数据库
MODIFYCOMMAND:
打开编辑窗口,以便能编辑或者建立程序文件
RENAME:
更换一个文件的名称
MODIFYSTRUCTURE:
打开表设计器,以便修改表的结构
REINDEX:
重建当前打开的索引文件
RECALL:
去除当前表中记录的删除标记
SET:
打开数据会话窗口
SEEK:
查找表中索引关键字值和指定的表达式相匹配的第一条记录
SELECT:
选择指定工作区
REPLACE:
更新表中记录
APPEND:
添加一个或多个新记录到表的末尾
BROWSE:
打开窗口并显示当前表或指定表的记录
LOCATE:
顺序查找表中满足指定条件的第一条记录
CONTINUE:
继续执行以前的LOCATE命令
SETTALKON…SETTALKOFF:
确定VisualFoxPro是否显示命令的结果
SETDELETEDON…SETDELETEDOFF:
指示是否处理带有删除标记的记录
1题目
学生学籍管理系统的设计和开发
2问题描述
本课程设计的主要任务是编写一个小型的学生学籍管理系统程序,能够完成学生成绩的输入、修改、汇总和排名;统计学校内教师的分布及任课情况;班级信息和学生信息的建立和修改以及查询及各学期课程的开设和修改;
2.1业务流程
输入学生的学号及密码后,可自动进入学生学籍管理系统进行相关的操作,具体的操作流程如下:
2.3功能要求
学籍管理系统实现如下信息的管理:
学生基本信息管理 用于班级信息和学生信息的建立和修改以及查询;
课程管理 用于各学期课程的开设和修改;
成绩管理 用于成绩的查询、输入、修改、汇总和排名;
教师管理 用于查看,统计学校内教师的分布及任课情况。
3分析和设计
3.1系统分析
该系统可以达到以下几个目的:
学生基本资料查询;档案添加和删除,学生个人信息查询,学生成绩修改、查洵、添加、汇总和排名以及校内教师的分布及任课情况。
帮助和退出系统。
在软件开发分析阶段,信息收集是决定软件项目可行性的重要环节。
程序设计者要通过对开发项目信息的收集,确定系统目标,软件开发的总体思路。
3.2系统设计
3.2.1数据库文件设计
1.用程序文件建立数据库文件“成绩.dbf”,程序如下;
Createtable成绩.dbf(学号char(10),管理学nume(10,2),人力资源管理nume(10,2),生产;和运做nume(10,2), ERPnume(10,2),物流管理nume(10,2),会计基础nume(10,2),数据库管理技术;nume(10,2),开课时间Date(8)
字段名称
字段类型
字段宽度
小数位数
是否索引
学号
字符型
10
0
普通索引
管理学
数值型
10
2
无
人力资源管理
数值型
10
2
无
生产和运做
数值型
10
2
无
ERP
数值型
10
2
无
物流管理
数值型
10
2
无
会计基础
数值型
10
2
无
数据库管理技术
数值型
10
2
无
开课时间
日期型
8
0
无
2.用程序文件建立数据库文件“xs.dbf”,程序如下;
Createtablexs.dbf(学号char(10),性别char
(2),姓名char(10),班级char(10),出生年月date(8),;籍贯char(10),系编号char(10),照片memo,联系方式char(10)
字段名称
字段类型
字段宽度
小数位数
是否索引
学号
字符型
10
0
普通索引
性别
字符型
2
0
无
姓名
字符型
10
0
无
班级
字符型
10
0
无
出生年月
日期型
8
0
无
籍贯
字符型
10
0
无
系编号
字符型
10
0
无
照片
通用型
4
0
无
联系方式
字符型
10
0
无
3.建立“登录.dbf”
字段名称
字段类型
字段宽度
小数位数
是否索引
学号
字符型
10
0
无
密码
字符型
10
0
无
3.2.2结构设计
在结构设计中要求设计整体结构即菜单的结构,菜单下的各个环节的结构以及各个环节又包含了什么元素等。
在进入菜单以前系统具有安全性能,必须经过登录表单才能进入系统菜单。
登录表单的结构如图1:
各控件属性及其程序
label1的timer程序如下:
ifthisform.label1.left=-thisform.width
thisform.label1.left=thisform.width-8
else
thisform.label1.left=thisform.label1.left-10
endif
登录按钮的click程序如下:
ifthisform.text1.value=alltrim("0361017")andthisform.text2.value=alltrim("111111")
messagebox("登录成功!
",0+48+0,”对话窗口”)
else
messagebox("重新登录",0+48+0,”对话窗口”)
thisform.text1.value=""
thisform.text1.setfocus
endif
取消按钮的click程序如下:
releasethisform
菜单结构如图2:
3.2.3程序设计
在程序设计里完成各个查询,档案的新建和删除,信息查看,成绩修改和查看,教师和课程的安排,退出程序的程序设计。
VF不但拥有大量的交互式数据管理工具,而且还拥有一套功能完善的程序语言系统,以及过程式设计和面向对象可视化程序编写工具。
虽然是面向对象的可视化编写软件但是程序仍然是软件开发的重点和基础,是不可缺少的部分,开发此系统的饿目的也是需要我们能够独立编写简单的程序,打好程序编写的基础。
下面是每个环节的程序原代码。
本系统的程序语法简单易懂,没有错误,可以完成基本的程序要求。
3.2.4系统菜单下查询的程序
结构如图3:
全部学生查看的程序如下:
DOform成绩查询.scx
DOform成绩录入.scx
DOform成绩修改.scx
DOform课程查询.scx
DOform档案查询.scx
DOform档案新建.scx
DOform档案删除.scx
DOform班级信息查询.scx
3.2.5 学生成绩查询程序
学号和姓名是不变的只是要求实现成绩的修改,所以学号和姓名数据绑定后readonly的值是.t.,其他文本框数据绑定后readonly值是.f.。
表单的四个按钮的程序和信息查看表单程序是一样的所以不再赘述。
其结构如图4所示
因为它的功能就是实现一般的信息查看,所以他们要有数据环境,各个文本框都有数据绑定且不能对其值进行修改,所以它们的readonly值是.t.。
四个按钮的程序分别是:
第一个
gotop
thisform.refresh
this.enabled=.f.
mand2.enabled=.f.
mand3.enabled=.t.
mand4.enabled=.t.
上一个
ifbof()=.t.
this.enabled=.f.
mand1.enabled=.f.
else
skip-1
mand4.enabled=.t.
mand3.enabled=.t.
mand1.enabled=.t.
thisform.refresh
endif
下一个
ifeof()=.t.
this.enabled=.f.
mand4.enabled=.f.
else
skip1
mand1.enabled=.t.
mand2.enabled=.t.
mand4.enabled=.t.
thisform.refresh
endif
最后一个
gobottom
thisform.refresh
this.enabled=.f.
mand3.enabled=.f.
mand1.enabled=.t.
mand2.enabled=.t.
3.2.6 学生成绩录入表单
定义取消按钮控件的“click”事件代码如下:
releasethisform
3.2.7 学生成绩修改表单
定义添加按钮控件的“click”事件代码如下:
iflen(allt(this.parent.parent.txt学号.value))=0then
gobottom
dele
pac
waitwindow"学号不能为空!
"timeout1
endif
appeblank
thisform.refresh
定义删除按钮控件的“click”事件代码如下:
ifmessagebox("确实要删除本记录吗?
",1+64+256,"提示")=1
delete
pack
skip-1
thisform.refresh
endif
3.2.8 学生档案管理表单
定义保存按钮控件的“click”事件代码如下:
select资料
locatefor学号=alltrim(thisform.text1.value)
iffound()
messagebox("你输入的学号已经存在,请重新编号")
thisform.text1.value=""
thisform.text1.setfocus
else
insertinto资料values(thisform.text1.value,thisform.text2.value,"男","19",thisform.text3.value)
insertinto档案values(thisform.text1.value,thisform.text4.value,bo1.value,"否","501","")
insertinto成绩values(thisform.text1.value,00.00,00.00,00.00,00.00,00.00)
releasethisform
endif
取消按钮的程序如下:
releasethisform
3.2.9 学生档案查询表单
确定按钮的程序如下:
select档案
locatefor学号=alltrim(thisform.text1.value)
iffound()
delete
pack
else
messagebox("已经删除或无此人")
thisform.text1.value="
thisform.text1.setfocus
endif
select资料
locatefor学号=alltrim(thisform.text1.value)
iffound()
delete
pack
endif
select成绩
locatefor学号=alltrim(thisform.text1.value)
iffound()
delete
pack
endif
3.3. 退出系统
退出系统的程序如下:
quit
clearevents
3.4 主表单的程序
主表单的init事件下的程序如下:
do系统菜单.mprwiththis
主表单的unload事件下的程序如下:
clearevents *即退出循环*
3.5 main主程序
每一个系统都有一个主程序,就是系统开始执行的地方在主程序里必须建立循环,其次是调用开始执行的程序或者是表单等。
要是不建立循环那么系统建立好了以后在使用的时候,打开程序是就是一闪而过,不会出现界面。
上面说到的主表单的unload里面要清理循环是因为不清理循环,将无法退出系统。
在主程序里面还要考虑到系统后面的窗口,通常我们开发的系统后面会默认自动带上一个窗口,非常影响视觉效果,我们可以根据自己的要求选择把它去掉或者保留。
main主程序的程序如下:
application.visible=.f. *是去掉开发后系统后默认窗口*
doform主表单 *是调用主表单*
readevents *是建立循环*
3.6 系统实施
在软件开发实施阶段,要按系统的思想,把程序对象视为一个大的系统,然后将这个的大系统分为若干个小的系统,保证高级控制程序能够控制各个功能模块。
一般采用“自顶向下的“的设计思想开发高级控制程序,并逐级控制更低一层的模块,每一模块执行一个独立、精确的任务,而且受控和高级程序。
此系统简单容易阅读,易维护,达到了各个模块间的接口数目尽量小的原则。
3.7 系统测试
在软件维护阶段,要经常修正系统程序的缺陷,增加新的性能。
在这个阶段测试系统的性能尤为关键,要通过调式检查语法错误和算法错误,并加以改正。
此系统也是按照以上的原则开发的,经过测试基本可以满足以上要求。
4总结
4.1设计题目分析
这次课设有一定难度。
比如要用代码来完成一些操作,中间还设计到老师的排课问题。
以及课程的安排问题,成绩的查询、计算等。
通过设计和实现,基本完成了课设任务,取得了较大收获。
4.2需要完善之处
在设计过程中,感觉有以下几点可以进行完善
有几项任务如:
档案的查询、修改、添加、和删除完全可以用一个表单实现,虽然有几项命令要执行;以数据库形式进行数据的保存和处理,可能会获得更好的效果;课程管理应该包括学生的基本信息和对应的课程,及课程对应的老师;成绩单的打印输出及个人资料能生成合成个人简历的输出和打印。
4.3未完成的工作
在登录系统表单填写时不能把密码写成******的形式,而是能够看到数据这一不经过查阅资料和同学讨论始终未能完成,可我已经建立了学号和密码的数据表但是还是只能用我自己定义的学号和密码才能登录,还没有完成用户注册的功能,只能用固定的用户名和密码
我还有几个表单未完成如:
课程查询和班级信息查询。
因为和成绩查询和档案查询有密切的联系,用的数据基本相同。
我全部采用菜单形式来执行各项命令所以每一个子菜单都牵扯一个表单,我还没找到一个比较好的方法能让有限的表单能充分的利用。
4.4总结
经过一个礼拜的设计和开发,学生档案管理系统基本开发完毕。
其功能基本符合需求,能够完成学生学籍的存储和成绩的查询以及各类相关报表的打印。
并提供部分系统维护功能,使用户方便进行数据备份和恢复、数据删除。
,对于数据的一致性的问题也通过程序进行了有效的解决。
但是由于设计时间较短,所以该系统还有许多不尽如人意的地方,比如用户界面不够美观,出错处理不够等多方面问题。
这些都有待进一步改善。
在本次课程设计中,我从中使对VisualFoxPro有了更深一层的理解,除自己翻阅资料外我门还在一起讨论,有好多的好的思想,但是我无法把他表达出来,我对VF运用还不熟练,我想通过自己的努力在以后作的更好。