刘菲菲.docx
- 文档编号:7839563
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:54
- 大小:1.48MB
刘菲菲.docx
《刘菲菲.docx》由会员分享,可在线阅读,更多相关《刘菲菲.docx(54页珍藏版)》请在冰豆网上搜索。
刘菲菲
信息工程系
课程设计报告
课程名称:
数据库原理及VFP
设计课题:
学籍管理系统
班级:
07计应大专
姓名:
刘菲菲
指导教师:
连育英
设计时间:
2009.6.17
课程设计任务书
专业:
计算机应用 班级:
07计应大专
设计课题
学籍管理系统
指导教师
连育英
设计起止时间
2009.6.8------2009.6.19
共2周
课程设计的目的与任务
一、信息需求:
一个学校有多个系部,培养学生有大专、中专等不同的层次,各个层次由设多个专业,每个专业开多门课程,每个专业有多个班级,每个班有多名学生。
二、功能要求:
1.系部、专业、学生层次、课程、班级、学生等信息的录入。
2.每学期学生成绩录入并打印输出。
3.按学号和姓名查询学生的个人情况并打印输出。
4.按学号和姓名查询学生的个人成绩,并打印输出。
5.按班级查询各门课程全班同学的成绩,并打印输出。
6.登录界面、菜单。
课程设计报告内容要求
内容:
1.需求分析。
2.数据库设计
1)概念模型
2)数据库模型(基本表、视图表)
3)程序设计
4)包括过程、表单、菜单、报表等
要求:
主要叙述各功能模块的设计思路
用A4纸张,小四号宋体排版
指导教师评语
课程设计成绩
指导教师签字
年月日
目录
需求分析及数据库设计……………………………1
系部设置……………………………………………3
专业设置……………………………………………7
班级设置……………………………………………10
类别设置……………………………………………14
课程设置……………………………………………16
学生个人信息………………………………………19
学生成绩表单………………………………………24
成绩录入表单………………………………………26
按班级查询成绩……………………………………33
学生个人信息查询…………………………………36
登录界面……………………………………………44
主菜单………………………………………………46
信息工程系计算机应用技术20721班
《数据库》课程设计报告
题目:
学籍管理系统
要求:
A.需求分析
一个学校有多个系部,培养学生有打专、中专等不同的层次,各个层次由设多个专业,每个专业开多门课程,每个专业有多个班级,每个班有多名学生。
数据库设计器图如下:
项目管理器如图所示:
B.数据库设计
㈠概念模型
a)对象
系部(系号,系名,主任)
专业(专业号,专业名)
类别(类别号,类别名)
课程(课程号,课程名)
班级(班级名,入学年份)
学生(学号,姓名,性别,年龄,出生日期,入学成绩,籍贯,家庭成员,民族,政治面貌,个人简历,婚否,照片)
(2)E——R图
b)关系模型
系部(系号,系名,主任)
专业(专业号,专业名,系部)
类别(类加号,类别名,专业)
课程(课程号,课程名,专业)
班级(班名,专业,入学年份)
学生(学号,姓名,年龄,民族,性别,出生日期,入学成绩,籍贯,家庭成员,政治面貌,个人简历,婚否,照片,班级)
选修(课程,学号,成绩)
C、程序设计
一、应用实例:
“系部设置”表单设计
表单文件名:
xbsz.scx
功能:
为数据库表xb.dbc追加数据
界面:
设计步骤:
1、新建表单
2、添加数据环境:
数据库表xb.dbc
3、界面设计:
●4个标签:
字体、字号、背景色、对齐方式
●1个表格:
数据源数据库表xb.dbc
●3个文本框:
主要属性name分别:
txtxh,txtxm,txtzr
ControlSource:
分别为全局变量:
xjl
(1),xjl
(2),xjl(3)
●5个命令按钮command1(追加)、command2(结束)、command3(删除)、command4(修改)、command5(修改确认)
4、事件过程
●form1.load过程
Selectxb&&选择当前工作区
Setordertoxh&&设置主索引
Publicxjl(3),m_xg&&定义全局变量,默认值为逻辑假
Xjl=""&&为数组元素赋初值,字符型
Setdeleteon&&设置逻辑删除有效
●Txtxm.GotFocus过程
ifm_xg=.f.&&判断是否修改操作
xjl
(1)=allt(xjl
(1))&&去掉字符数据的左右空格
seekxjl
(1)&&索引查询
IF!
EOF()
=messagebox("代号重复",0,"错误")&&对话框
xjl
(1)=""
thisform.txtxh.SetFocus&&设置焦点即光标位置
thisform.refresh&&重画表单或控件,并刷新所有值
endif
endif
●Command1.click过程
xjl
(2)=allt(xjl
(2))
IFLEN(xjl
(2))=0
=messagebox("系部名不能空!
",0,"错误")
thisform.txtXM.SetFocus
else
insertintoxbfromarrayxjl&&向表中追加插入数据
xjl=""
thisform.txtXH.SetFocus
endif
thisform.refresh
●Command2.click过程
Thisform.release&&从内存中释放表单集或表单
●Command3.click过程
m_xh=xh&&记录当前记录的主码值
deletefromxbwherexh=m_xh&&删除记录
thisform.refresh
●Command4.click过程
m_xg=.t.&&修改标志
THISFORM.grdXB.Enabled=.f.&&表格不可操作,为不让用户改变当前记录
scattertoxjl&&将当前记录值赋给数组
thisform.txtxh.Enabled=.f.
thisform.txtxm.SetFocus
mand1.visible=.f.
mand3.visible=.f.
mand4.visible=.f.
mand5.visible=.t.
thisform.refresh
●Command5.click过程
m_xg=.f.&&取消修改标志
m_xh=xh
updatexbsetxm=xjl
(2),zr=xjl(3)wherexh=m_xh&&修改当前记录
THISFORM.grdXB.Enabled=.t.
THISFORM.txtXH.Enabled=.t.
scattertoxjlblank
thisform.txtxh.SetFocus
mand1.visible=.t.
mand1.visible=.t.
mand3.visible=.t.
mand4.visible=.t.
mand5.visible=.f.
thisform.refresh
二、专业设置表单
功能:
为基本表ZY.DBF追加记录
设计思路:
该表单的重点是如何保证两表的参照完整性。
”ZY”表中的外码“XB”让用户在已有的(“XB”表)值中进行选择,不要从键盘输入。
为此采用一个组合框来实现。
另外用组合框和表格实现1:
n联系的两表中数据的关联,来显示各系部已有的专业。
数据环境:
XB.DBFZY.DBF
界面设计:
PROCEDURELoad
PUBLICXJL(3)
scattertoxjlblank
ENDPROC
主要控件
1、组合框:
Combo1
步骤:
新建组合框----右击鼠标----生成器----选定字段----选定值
主要属性
BoundColumn=2
ColumnCount=2
RowSourceType=6
RowSource="xb.xm,xh"
ControlSource="xb.xh"
FirstElement=1
Name="Combo1"
2、表格:
grdZy
设计步骤:
从数据环境中将表zy拖入表单----生成器----选定字段----选定值
主要属性如下:
BolumnCount=3
ChildOrder="Xb"
LinkMaster="Xb"
RecordSource="zy"
RecordSourceType=1
RelationalExpr="Xh"
Name="grdZy"
Column1.ControlSource="zy.zyh"
Column1.Name="Column1"
Column2.ControlSource="zy.zym"
Column2.Name="Column2"
Column3.ControlSource="zy.xb"
Column3.Name="Column3"
3、文本框:
Text1
ControlSource="xjl
(1)"
Name="Text1"
4、文本框:
Text2
ControlSource="xjl
(2)"
Name="Text2"
5、命令按钮组:
Commandgroup1
ButtonCount=2
Name="Commandgroup1"
Command1.FontName="楷体"
Command1.FontSize=10
Command1.Caption="追加"
Command1.ForeColor=255,0,0
Command1.Name="Command1"
Command2.FontName="楷体"
Command2.FontSize=10
Command2.Caption="退出"
Command2.ForeColor=255,0,0
Command2.Name="Command2"
PROCEDURECommand1.Click
sELECT*FROMzy;
WHEREzyh=xjl
(1);
INTOCURSORss
if_tally=0&&判断查到记录的数量
INSERTINTOzyVALUES(xjl
(1),xjl
(2),xb.xh)
scattertoxjlblank
else
=messagebox("代号重复",0,"错误")&&对话框
xjl
(1)=""
thisform.text1.SetFocus&&设置焦点即光标位置
thisform.refresh&&重画表单或控件,并刷新所有值endif
thisform.refresh
ENDPROC
PROCEDURECommand2.Click
RELEASETHISFORM
ENDPROC
三、视图应用实例:
班级设置表单:
功能:
向基本表BJ中追加记录
界面设计:
数据环境:
XB,ZY,LB3个基本表和bj_zy视图,
重点:
通过视图向基本表中追加记录,另外是专业名称在组合框中所列内容要随系部而变,已有班级在表格中显示时也要随专业和学生类别而变,为此将以上组合框和表格的数据源都设置成SQL——SELECT语句
视图bj_zy定义的SELECT语句如下:
SELECTBj.*,Zy.zym,Lb.lbm;
FROMxjgl!
zyINNERJOINxjgl!
bj;
INNERJOINxjgl!
lb;
ONLb.lbh=Bj.lb;
ONZy.zyh=Bj.zy
更新字段和更新条件如下图所示:
主要控件的属性及事件过程如下:
PROCEDURELoad
PUBLICm_bm,m_nf
m_bm=""
m_nf=year(date())
ENDPROC
组合框(所属系部):
Combo1
主要属性:
BoundColumn=2
ColumnCount=2
RowSourceType=6
RowSource="xb.xm,xh"
ControlSource="xb.xh"
Name="Combo1"
事件过程“
PROCEDUREInteractiveChange
thisform.grdbj.refresh
ENDPROC
组合框(专业名称):
Combo2
主要属性:
BoundColumn=2
ColumnCount=2
RowSourceType=3&&SQL语句
RowSource="selectzym,zyhfromzywherexb=xb.xhintocursoraa"
ControlSource=""
Name="Combo2"
事件过程:
PROCEDUREInteractiveChange
thisform.grdbj.recordsource='selectbm,rxnf,zym,lbmfrombj_zyintocursorbb;
wherezy=aa.zyhandlb=lb.lbh'
thisform.grdbj.refresh
ENDPROC
组合框(学生类别):
Combo3
主要属性:
BoundColumn=2
ColumnCount=2
RowSourceType=6
RowSource="lb.lbm,lbh"
ControlSource=""
Name="Combo3"
事件过程:
PROCEDUREInteractiveChange
thisform.grdbj.recordsource='selectbm,rxnf,zym,lbmfrombj_zyintocursorbb;
wherezy=aa.zyhandlb=lb.lbh'
thisform.grdbj.refresh
ENDPROC
表格:
去GrdBJ
主要属性:
ColumnCount=4
RecordSource="selectbm,rxnf,zym,lbmfrombj_zyintocursorbbwherezy=aa.zyhandlb=lb.lbh"
RecordSourceType=4
Name="grdBj"
文本框:
Text1
InputMask="!
!
!
!
!
!
"
Name="Text1"
微调控件:
spinner1
KeyboardHighValue=2020
KeyboardLowValue=1990
ControlSource="m_nf"
Name="Spinner1"
命令按钮:
Commandgroup1
shu
yButtonCount=2
BackStyle=0
BorderStyle=0
Value=1
Name="Commandgroup1"
Command1.FontName="楷体"
Command1.FontSize=11
Command1.Caption="追加"
Command1.ForeColor=255,0,0
Command1.Name="Command1"
Command2.FontName="楷体"
Command2.FontSize=10
Command2.Caption="退出"
Command2.ForeColor=255,0,0
Command2.Name="Command2"
事件过程:
PROCEDURECommand1.Click
sELECT*FROMbj_zyWHEREbm=m_bmINTOCURSORss
if_tally=0
INSERTINTObj_zyvalues(m_bm,m_nf,aa.zyh,lb.lbh,aa.zym,lb.lbm)
thisform.grdbj.recordsource='selectbm,rxnf,zym,lbmfrombj_zyintocursorbbwherezy=aa.zyhandlb=lb.lbh'
thisform.grdbj.refresh
m_bm=''
m_nf=year(date())
else
=messagebox("班级名称重复",0,"错误")
m_bm=''
thisform.text1.SetFocus
thisform.refresh
endif
thisform.refreshendif
thisform.refresh
ENDPROC
PROCEDURECommand2.Click
RELEASETHISFORM
ENDPROC
四、类别设置表单
表单文件名:
lbsz.scx
功能:
为数据库存表lb.dbc追加数据
界面:
设计步骤:
1新建表单
2添加数据环境:
数据库表lb.dbc
3界面设计:
●3个标签:
字体、字号、背景色、对齐方式
●1个表格:
数据源数据库表lb.dbc
●3个文本框:
主要属性ControlSource:
分别为全局变量:
xjl
(1),xjl
(2)
●2个命令按钮command1(追加)、command2(结束)
4事件过程
PROCEDURELoad
selectlb
setordertolbh
publicxjl
(2)
xjl=""
Setdeleteon&&设置逻辑删除有效
ENDPROC
●Command1.click过程
xjl
(2)=allt(xjl
(2))
iflen(xjl
(2))=0
=messagebox("类别名不能空!
",0,"错误")
thisform.text2.setfocus
else
insertintolbfromarrayxjl
xjl=""
thisform.text1.setfocus
endif
thisform.refresh
●Command2.click过程
Thisform.release&&从内存中释放表单集或表单
五、课程设置表单
功能:
为基本表kc.DBF追加记录
数据环境:
XB.DBFkc.DBF
界面设计:
PROCEDURELoad
PUBLICXJL(3)
scattertoxjlblank
ENDPROC
主要控件
1、组合框:
Combo1
步骤:
新建组合框----右击鼠标----生成器----选定字段----选定值
主要属性
BoundColumn=2
RowSourceType=6
RowSource="xb.xm,xh"
ControlSource="xb.xh"
FirstElement=1
Name="Combo1"
2、表格:
grdkc
设计步骤:
从数据环境中将表kc拖入表单----生成器----选定字段----选定值
主要属性如下:
ColumnCount=3
ChildOrder="Xb"
LinkMaster="Xb"
RecordSource="kc"
RecordSourceType=1
RelationalExpr="Xh"
Name="grdkc"
Column1.ControlSource="kc.kh"
Column1.Name="Column1"
Column2.ControlSource="kc.km"
Column2.Name="Column2"
3、文本框:
Text1
ControlSource="xjl
(1)"
Name="kh"
4、文本框:
Text2
ControlSource="xjl
(2)"
Name="km"
5、命令按钮
Command1.FontName="楷体"
Command1.FontSize=10
Command1.Caption="追加"
Command1.ForeColor=255,0,0
Command1.Name="Command1"
Command2.FontName="楷体"
Command2.FontSize=10
Command2.Caption="结束"
Command2.ForeColor=255,0,0
Command2.Name="Command2"
PROCEDURECommand1.Click
sELECT*FROMkc;
WHEREkh=xjl
(1);
INTOCURSORss
if_tally=0&&判断查到记录的数量
INSERTINTOkcVALUES(xjl
(1),xjl
(2),xb.xh)
scattertoxjlblank
else
=messagebox("代号重复",0,"错误")&&对话框
xjl
(1)=""
thisform.kh.SetFocus&&设置焦点即光标位置
thisform.refresh&&重画表单或控件,并刷新所有值endif
endif
thisform.refresh
ENDPROC
PROCEDURECommand2.Click
THISFORM.RELEASE
ENDPROC
六、学生个人信息追加表单
一、功能:
向XS.DFB表中追加记录,界面如下:
二、数据环境
5个基本表:
XB.DBF、ZY.DBF、LB.DBF、BJ.DBF、XS.DBF
三、主要对象的属性及事件过程
1、表单的Init(创建表单时发生)事件过程:
PROCEDUREInit
selectxs
setordertoxh&&设置主索引
*建立临时表:
lsb
creatcursorlsb(xhc(7),xmc(8),xbc
(2),mzc
(2),rxcjn(5,2),zzmmc(4),hfl,csrqd,;
jgc(20),bjc(7),grjlm,jtcym,zpg)
appendblank
replacemzwith'汉',xbwith'男'&&为表中当前记录的字段赋值
ENDPROC
2、四个组合框Combo1、Combo2、Combo3、Combo4:
分别用来确定所录入的学生信息所在的系部、专业、类别和编辑
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 菲菲