课题名称: 课题名称:学籍管理信息系统
一 系统分析
据本次课程设计指导老师的要求,需建立一个“学籍管理系统” ,以取代 人工管理。开发项目如: 1 能对与学籍管理有关的各类数据进行输入,修改,浏览与打印。 2 能根据需要查询学籍管理所需的各类数据。 3 打印学生学籍信息,奖学金,个人简历等报表。 了解了老师的要求,我详细查阅了图书馆的相关书籍,经过调查,设想, 我终于归纳出了目标系统,以满足数据需求和功能需求。
二
总体程序设计
总体
程序设计共分为三个层次, 系统功能需求可分为 4 方面。如功能界 面所示: (1)录入功能. (2)浏览功能 (3)查询功能 (4)报表打印功能.
三
报表设计
数据需求建立一个名为 xjgl 的项目,在此项目下建立一个名为 xjgl 的
数据库,它包括 4 个主表和 4 个自由表。用户需提供和输入的数据如下表所示: (1) 主表:学籍卡表,简历表,奖学金表,班级表 Xjk.dbf(,,性别,出生日期,民族,政治面貌,班级名称, 奖惩情况,特长生,照片,备注)
Jl.dbf(,起始时间,终止时间,所在单位,备注) Jxj.dbf(,,班级名称,第一学年,第二学年,第三学年, 第四学年,累计) Bj.dbf(班级名称,所属系部,入学年度,学制,备注) (2) 自由表:系部表,民族表,政治面貌表,毕业班级表 xb.dbf(系部 名称) zzmm.dbf(政治面貌) mz.dbf(民族) Bj.dbf(班级名称,所属系部,入学年度,学制,备注)
四
表单及代码
1 根据需要共建立了 8 个表单,分别是: “登陆系统”表单 、 “欢迎界
面”表单、功能界面表单、数据查询表单、学籍数据管理表单、报表打印表单、 班级基本信息表单、奖学金数据管理表单。截图如下: (1) “
登陆系统”表单
代码:
确定:do case case thisform.optiongroup1.value=1 if thisform.text1.value="aaa"and thisform.text2.value="111 messagebox("欢迎使用本
系统") do form 欢迎界面 thisform.release else i=i+1 if i<=3 messagebox("账号或密码错,重新输入") thisform.text1.value="" thisform.text2.value="" thisform.text1.setfocus else messagebox("信息有误,禁止进入!") quit endif endif case thisform.optiongroup1.value=2 ifthisform.text1.value="xxx"andthisform.text2.value="123" messagebox("欢迎使用本系统") do form 欢迎界面 thisform.release k=k+1 if k<=3
messagebox("账号或密码错,重新输入") .text1.value="" thisform.text2.value="" thisform.text1.setfocus else messagebox("信息有误,禁止进入!") quit endif endif endcase 退出; thisform.release
(2) “欢迎界面”表单:
代码 : timer1:if thisform.label1.left+thisform.label1.width<0 thisform.label1.left=thisform.width
else thisform.label1.left=thisform.label1.left-
10 endif timer2:if thisform.label1.left+thisform.label1.width<0 thisform.label1.left=thisform.width else thisform.label1.left=thisform.label1.left-10 endif
(3) “功能界面”表单:
代码: 学籍管理:do form 数据查询 thisform. Refresh 奖学金:do form 数据
查询 thisform. refres 学籍管理:do form 学籍管理 奖学金:do form 奖学金数据管理
个人简历:do form 最新简历 班级:do form 班级信息管理 个人简历:do form 个人简历报表的打印 奖学金:do form 奖学金报表的打印 学籍管理:do form 学籍报表的打印 退出系统:quit (4) “数据查询”表单:
按班级查询:select xjk set filter to xjk.班级名称=thisformbo1.value go top thisform.refresh 按查询:select xjk set filter to; alltrim(xjk.)==alltrim(thisform.text1.value)
count all to rs go top thisform.refresh if rs=0 messagebox(' endif form—active:thisformbo1.value=bj.班级名称 select