数据库原理及VFP课程设计报告-学籍管理系统.doc

上传人:哈尼dd 文档编号:5022980 上传时间:2020-01-29 格式:DOC 页数:48 大小:6.35MB
返回 下载 相关 举报
数据库原理及VFP课程设计报告-学籍管理系统.doc_第1页
第1页 / 共48页
数据库原理及VFP课程设计报告-学籍管理系统.doc_第2页
第2页 / 共48页
数据库原理及VFP课程设计报告-学籍管理系统.doc_第3页
第3页 / 共48页
数据库原理及VFP课程设计报告-学籍管理系统.doc_第4页
第4页 / 共48页
数据库原理及VFP课程设计报告-学籍管理系统.doc_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《数据库原理及VFP课程设计报告-学籍管理系统.doc》由会员分享,可在线阅读,更多相关《数据库原理及VFP课程设计报告-学籍管理系统.doc(48页珍藏版)》请在三一文库上搜索。

1、信 息 工 程 系课程设计报告课程名称: 数据库原理及VFP 设计课题: 学籍管理系统 班 级: 07计应大专 姓 名: 指导教师: 设计时间: 2009.6.17 课程设计任务书专业: 计算机应用 班级: 07计应大专 设 计 课 题学籍管理系统指 导 教 师设计起止时间2009.6.8-2009.6.19共 2 周课程设计的目的与任务一、 信息需求: 一个学校有多个系部,培养学生有大专、中专等不同的层次,各个层次由设多个专业,每个专业开多门课程,每个专业有多个班级,每个班有多名学生。二、 功能要求:1 系部、专业、学生层次、课程、班级、学生等信息的录入。2 每学期学生成绩录入并打印输出。3

2、 按学号和姓名查询学生的个人情况并打印输出。4 按学号和姓名查询学生的个人成绩,并打印输出。5 按班级查询各门课程全班同学的成绩,并打印输出。6 登录界面、菜单。课程设计报告内容要求内容:1. 需求分析。2. 数据库设计1) 概念模型2) 数据库模型(基本表、视图表)3) 程序设计4) 包括过程、表单、菜单、报表等要求:主要叙述各功能模块的设计思路 用A4纸张,小四号宋体排版指导教师评语课程设计成绩指导教师签字 年 月 日目 录需求分析及数据库设计1系部设置3专业设置7班级设置10类别设置14课程设置16学生个人信息19学生成绩表单24成绩录入表单26按班级查询成绩33学生个人信息查询36登录

3、界面44主菜单46信息工程系计算机应用技术20721班数据库课程设计报告题目:学籍管理系统要求:A. 需求分析 一个学校有多个系部,培养学生有打专、中专等不同的层次,各个层次由设多个专业,每个专业开多门课程,每个专业有多个班级,每个班有多名学生。 数据库设计器图如下:项目管理器如图所示:B. 数据库设计 概念模型a) 对象系部(系号,系名,主任)专业(专业号,专业名)类别(类别号,类别名)课程(课程号,课程名)班级(班级名,入学年份)学生(学号,姓名,性别,年龄,出生日期,入学成绩,籍贯,家庭成员,民族,政治面貌,个人简历,婚否,照片)(2)ER图含有类别课程学生1n1nnn1nn设有设有成绩

4、绩绩 选修专业班级 设有包含系部b) 关系模型系部(系号,系名,主任)专业(专业号,专业名,系部)类别(类加号,类别名,专业)课程(课程号,课程名,专业)班级(班名,专业,入学年份)学生(学号,姓名,年龄,民族,性别,出生日期,入学成绩,籍贯,家庭成员,政治面貌,个人简历,婚否,照片,班级)选修(课程,学号,成绩)C、程序设计一、应用实例:“系部设置”表单设计表单文件名: xbsz.scx功能:为数据库表xb.dbc 追加数据界面:设计步骤:1、 新建表单2、 添加数据环境:数据库表xb.dbc3、 界面设计:l 4个标签:字体、字号、背景色、对齐方式l 1个表格:数据源数据库表xb.dbcl

5、 3个文本框:主要属性name分别 : txtxh, txtxm, txtzrControlSource:分别为全局变量:xjl(1),xjl(2),xjl(3)l 5个命令按钮 command1( 追加)、command2(结束)、command3(删除)、command4(修改)、command5(修改确认)4、 事件过程l form1.load 过程Select xb &选择当前工作区Set order to xh &设置主索引Public xjl(3),m_xg &定义全局变量,默认值为逻辑假Xjl= & 为数组元素赋初值,字符型Set delete on &设置逻辑删除有效l Txt

6、xm.GotFocus过程if m_xg=.f. &判断是否修改操作xjl(1)=allt(xjl(1) &去掉字符数据的左右空格seek xjl(1) &索引查询IF !EOF()=messagebox(代号重复,0,错误) &对话框 xjl(1)=thisform.txtxh.SetFocus &设置焦点即光标位置thisform.refresh &重画表单或控件,并刷新所有值endifendifl Command1.click 过程xjl(2)=allt(xjl(2)IF LEN(xjl(2)=0 =messagebox(系部名不能空!,0,错误) thisform.txtXM.SetF

7、ocuselse insert into xb from array xjl &向表中追加插入数据 xjl= thisform.txtXH.SetFocusendif thisform.refreshl Command2.click 过程Thisform.release &从内存中释放表单集或表单l Command3.click 过程 m_xh=xh &记录当前记录的主码值delete from xb where xh=m_xh &删除记录thisform.refreshl Command4.click 过程m_xg=.t. &修改标志THISFORM.grdXB.Enabled=.f. &表

8、格不可操作,为不让用户改变当前记录scatter to xjl &将当前记录值赋给数组thisform.txtxh.Enabled=.f. thisform.txtxm.SetFmand1.visible=mand3.visible=mand4.visible=mand5.visible=.t.thisform.refreshl Command5.click 过程m_xg=.f. &取消修改标志m_xh=xhupdate xb set xm=xjl(2),zr=xjl(3) where xh=m_xh &修改当前记录THISFORM.grdXB.Enabled=.t.THISFORM.txtX

9、H.Enabled=.t.scatter to xjl blankthisform.txtxh.SetFmand1.visible=mand1.visible=mand3.visible=mand4.visible=mand5.visible=.f.thisform.refresh二、专业设置表单功能:为基本表 ZY.DBF 追加记录设计思路:该表单的重点是如何保证两表的参照完整性。”ZY”表中的外码“XB”让用户在已有的(“XB”表)值中进行选择,不要从键盘输入。为此采用一个组合框来实现。另外用组合框和表格实现1:n联系的两表中数据的关联,来显示各系部已有的专业。数据环境:XB.DBF ZY

10、.DBF界面设计:PROCEDURE LoadPUBLIC XJL(3)scatter to xjl blankENDPROC主要控件1、组合框:Combo1步骤:新建组合框-右击鼠标-生成器-选定字段-选定值主要属性BoundColumn = 2ColumnCount = 2RowSourceType = 6RowSource = xb.xm,xhControlSource = xb.xhFirstElement = 1Name = Combo12、表格:grdZy设计步骤:从数据环境中将表zy拖入表单-生成器-选定字段-选定值主要属性如下:BolumnCount = 3ChildOrder

11、 = XbLinkMaster = XbRecordSource = zyRecordSourceType = 1RelationalExpr = XhName = grdZyColumn1.ControlSource = zy.zyhColumn1.Name = Column1Column2.ControlSource = zy.zymColumn2.Name = Column2Column3.ControlSource = zy.xbColumn3.Name = Column33、文本框:Text1ControlSource = xjl(1)Name = Text14、文本框:Text2C

12、ontrolSource = xjl(2)Name = Text25、命令按钮组:Commandgroup1ButtonCount = 2Name = Commandgroup1Command1.FontName = 楷体_GB2312Command1.FontSize = 10Command1.Caption = 追加Command1.ForeColor = 255,0,0Command1.Name = Command1Command2.FontName = 楷体_GB2312Command2.FontSize = 10Command2.Caption = 退出Command2.ForeCo

13、lor = 255,0,0Command2.Name = Command2PROCEDURE Command1.ClicksELECT * FROM zy; WHERE zyh =xjl(1); INTO CURSOR ssif _tally=0 &判断查到记录的数量INSERT INTO zy VALUES(xjl(1),xjl(2),xb.xh)scatter to xjl blankelse =messagebox(代号重复,0,错误) &对话框 xjl(1)= thisform.text1.SetFocus &设置焦点即光标位置 thisform.refresh &重画表单或控件,并刷

14、新所有值endifthisform.refreshENDPROCPROCEDURE Command2.ClickRELEASE THISFORMENDPROC三、视图应用实例:班级设置表单:功能:向基本表BJ中追加记录界面设计:数据环境:XB,ZY,LB3个基本表和 bj_zy 视图,重点:通过视图向基本表中追加记录,另外是专业名称在组合框中所列内容要随系部而变,已有班级在表格中显示时也要随专业和学生类别而变,为此将以上组合框和表格的数据源都设置成SQLSELECT语句视图bj_zy定义的SELECT语句如下:SELECT Bj.*, Zy.zym, Lb.lbm; FROM xjgl!zy

15、INNER JOIN xjgl!bj; INNER JOIN xjgl!lb ; ON Lb.lbh = Bj.lb ; ON Zy.zyh = Bj.zy更新字段和更新条件如下图所示:主要控件的属性及事件过程如下:PROCEDURE LoadPUBLIC m_bm,m_nfm_bm=m_nf=year(date()ENDPROC组合框(所属系部):Combo1主要属性:BoundColumn = 2ColumnCount = 2RowSourceType = 6RowSource = xb.xm,xhControlSource = xb.xhName = Combo1事件过程“PROCEDU

16、RE InteractiveChangethisform.grdbj.refreshENDPROC组合框(专业名称):Combo2主要属性:BoundColumn = 2ColumnCount = 2RowSourceType = 3 & SQL语句RowSource = select zym,zyh from zy where xb=xb.xh into cursor aaControlSource = Name = Combo2事件过程:PROCEDURE InteractiveChangethisform.grdbj.recordsource=select bm,rxnf,zym,lbm

17、 from bj_zy into cursor bb ;where zy=aa.zyh and lb=lb.lbhthisform.grdbj.refreshENDPROC组合框(学生类别):Combo3主要属性:BoundColumn = 2ColumnCount = 2RowSourceType = 6RowSource = lb.lbm,lbhControlSource = Name = Combo3事件过程:PROCEDURE InteractiveChangethisform.grdbj.recordsource=select bm,rxnf,zym,lbm from bj_zy i

18、nto cursor bb ;where zy=aa.zyh and lb=lb.lbh thisform.grdbj.refreshENDPROC表格:去GrdBJ主要属性:ColumnCount = 4RecordSource = select bm,rxnf,zym,lbm from bj_zy into cursor bb where zy=aa.zyh and lb=lb.lbhRecordSourceType = 4Name = grdBj文本框:Text1InputMask = !Name = Text1微调控件:spinner1KeyboardHighValue = 2020K

19、eyboardLowValue = 1990ControlSource = m_nfName = Spinner1命令按钮:Commandgroup1shuyButtonCount = 2BackStyle = 0BorderStyle = 0Value = 1Name = Commandgroup1Command1.FontName = 楷体_GB2312Command1.FontSize = 11Command1.Caption = 追加Command1.ForeColor = 255,0,0Command1.Name = Command1Command2.FontName = 楷体_GB

20、2312Command2.FontSize = 10Command2.Caption = 退出Command2.ForeColor = 255,0,0Command2.Name = Command2事件过程:PROCEDURE Command1.ClicksELECT * FROM bj_zy WHERE bm =m_bm INTO CURSOR ssif _tally=0 INSERT INTO bj_zy values(m_bm,m_nf,aa.zyh,lb.lbh,aa.zym,lb.lbm) thisform.grdbj.recordsource=select bm,rxnf,zym,

21、lbm from bj_zy into cursor bb where zy=aa.zyh and lb=lb.lbh thisform.grdbj.refreshm_bm=m_nf=year(date()else=messagebox(班级名称重复,0,错误) m_bm= thisform.text1.SetFocus thisform.refresh endifthisform.refreshendifthisform.refreshENDPROCPROCEDURE Command2.ClickRELEASE THISFORMENDPROC四、类别设置表单表单文件名:lbsz.scx功能:

22、为数据库存表lb.dbc追加数据界面: 设计步骤:1新建表单2添加数据环境:数据库表lb.dbc3界面设计:l 3个标签:字体、字号、背景色、对齐方式l 1个表格:数据源数据库表lb.dbcl 3个文本框:主要属性 ControlSource:分别为全局变量:xjl(1),xjl(2)l 2个命令按钮 command1( 追加)、command2(结束) 4事件过程PROCEDURE Loadselect lbset order to lbhpublic xjl(2)xjl=Set delete on &设置逻辑删除有效ENDPROCl Command1.click 过程xjl(2)=allt

23、(xjl(2)if len(xjl(2)=0 =messagebox(类别名不能空!,0,错误) thisform.text2.setfocus else insert into lb from array xjl xjl= thisform.text1.setfocus endif thisform.refreshl Command2.click 过程Thisform.release &从内存中释放表单集或表单五、课程设置表单功能:为基本表 kc.DBF 追加记录数据环境:XB.DBF kc.DBF界面设计:PROCEDURE LoadPUBLIC XJL(3)scatter to xjl

24、blankENDPROC主要控件1、组合框:Combo1步骤:新建组合框-右击鼠标-生成器-选定字段-选定值主要属性BoundColumn = 2RowSourceType = 6RowSource = xb.xm,xhControlSource = xb.xhFirstElement = 1Name = Combo12、表格:grdkc设计步骤:从数据环境中将表kc拖入表单-生成器-选定字段-选定值主要属性如下:ColumnCount = 3ChildOrder = XbLinkMaster = XbRecordSource = kcRecordSourceType = 1Relationa

25、lExpr = XhName = grdkcColumn1.ControlSource = kc.khColumn1.Name = Column1Column2.ControlSource = kc.kmColumn2.Name = Column23、文本框:Text1ControlSource = xjl(1)Name = kh4、文本框:Text2ControlSource = xjl(2)Name = km5、 命令按钮Command1.FontName = 楷体_GB2312Command1.FontSize = 10Command1.Caption = 追加Command1.Fore

26、Color = 255,0,0Command1.Name = Command1Command2.FontName = 楷体_GB2312Command2.FontSize = 10Command2.Caption = 结束Command2.ForeColor = 255,0,0Command2.Name = Command2PROCEDURE Command1.ClicksELECT * FROM kc; WHERE kh =xjl(1); INTO CURSOR ssif _tally=0 &判断查到记录的数量INSERT INTO kc VALUES(xjl(1),xjl(2),xb.xh

27、)scatter to xjl blankelse =messagebox(代号重复,0,错误) &对话框 xjl(1)= thisform.kh.SetFocus &设置焦点即光标位置 thisform.refresh &重画表单或控件,并刷新所有值endif endifthisform.refreshENDPROCPROCEDURE Command2.ClickTHISFORM.RELEASEENDPROC六、学生个人信息追加表单一、功能:向 XS.DFB 表中追加记录,界面如下:二、数据环境5个基本表:XB.DBF、ZY.DBF、LB.DBF、BJ.DBF、XS.DBF三、主要对象的属性

28、及事件过程1、表单的Init(创建表单时发生)事件过程:PROCEDURE Initselect xsset order to xh &设置主索引*建立临时表:lsbcreat cursor lsb(xh c(7),xm c(8),xb c(2),mz c(2),rxcj n(5,2),zzmm c(4),hf l,csrq d,; jg c(20),bj c(7),grjl m,jtcy m,zp g)append blankreplace mz with 汉,xb with 男 &为表中当前记录的字段赋值ENDPROC2、四个组合框Combo1、Combo2、Combo3、Combo4:分

29、别用来确定所录入的学生信息所在的系部、专业、类别和编辑。主要属性:l 系部:Combo1属性:ColumnCount = 0ColumnWidths = RowSourceType = 6RowSource = xb.xmFirstElement = 1Height = 25Left = 73NumberOfElements = 0TabIndex = 1Top = 25Width = 85Name = Combo1l 专业:Combo2属性:CoundColumn = 2ColumnCount = 2RowSourceType = 3RowSource = select zym,zyh fr

30、om zy into cursor aa where xb=xb.xhHeight = 25Left = 222TabIndex = 2Top = 25Width = 85Name = Combo2l 类别:Combo3属性:RowSourceType = 6RowSource = lb.lbmHeight = 24Left = 371TabIndex = 3Top = 25Width = 96Name = Combo3l 班级:Combo4属性:SourceType = 3RowSource = select bm from bj into cursor b where lb=lb.lbh

31、and zy=aa.zyhControlSource = lsb.bjHeight = 25Left = 540TabIndex = 4Top = 25Width = 72Name = Combo4事件过程:PROCEDURE InteractiveChange thisform.pageframe1.page1.txtXH.SetFocusENDPROC3、页表:Pageframe1页表为容器类对象,一个页表可以包含多页,由属性PageCount设置页表中的页数,每一页中又可放置各种对象。该表单中的页表Pageframe1中有3页,第一页中主要是学生的基本信息,第二页中为学生的个人简历,第三

32、页中为学生的具体情况,其中控件分别与临时表 lsb中的字段(处 性别字段:XB)绑定。主要属性:PageCount = 3Name = Pageframe1Page1.FontBold = .T.Page1.FontName = 新宋体Page1.FontSize = 12Page1.Caption = 基本信息Page1.ForeColor = 255,0,0Page1.Name = Page1Page2.FontBold = .T.Page2.FontName = 新宋体Page2.FontSize = 12Page2.Caption = 个人简历Page2.ForeColor = 255

33、,0,0Page2.Name = Page2Page3.FontBold = .T.Page3.FontName = 新宋体Page3.FontSize = 12Page3.Caption = 家庭成员Page3.ForeColor = 255,0,0Page3.Name = Page3事件过程:ROCEDURE Page1.Click thisform.pageframe1.page1.txtXH.SetFocusENDPROCPROCEDURE Page2.Clickthisform.pageframe1.page2.edtjl.SetFocus ENDPROCPROCEDURE Page

34、3.Clickthisform.pageframe1.page3.edtjtcy.SetFocus ENDPROC页框中的控件:1) 文本框:Txtxh的事件过程:PROCEDURE LostFocusZPWJM=zp+ALLT(lsb.XH)+.JPG IF FILE(ZPWJM) APPEND GENER ZP FROM &ZPWJM ELSE ZPWJM=zp+ALLT(lsb.XH)+.BMP IF FILE(ZPWJM) APPEND GENER ZP FROM &ZPWJM ELSE ZPWJM=zp+ALLT(lsb.XH)+.GIF IF FILE(ZPWJM) APPEND

35、GENER ZP FROM &ZPWJM ENDIF ENDIF ENDIFENDPROC2) 单选按钮组:Option1属性:ButtonCount = 2Value = 1Name = OptxbOption1.FontBold = .T.Option1.Caption = 男Option1.Value = 1Option1.Name = Option1Option2.FontBold = .T.Option2.Caption = 女Option2.Name = Option2事件过程:PROCEDURE Clickif thisform.pageframe1.page1.optxb.va

36、lue=2 replace xb with 女endif ENDPROC3) 组合框政治面貌:Combo2其数据源为:“值”RowSourceType = 1RowSource = 党员,团员,群众ControlSource = lsb.zzmmName = Combo24、两个命令按钮COMMAND1:属性:Caption = 追 加TabIndex = 10ForeColor = 255,0,0Name = Command1事件过程:PROCEDURE Clickif !empty(lsb.xh)select xsseek lsb.xhif eof() m_bj=lsb.bj insert

37、 into xs values(lsb.xh ,lsb.xm ,lsb.xb,lsb.mz,lsb.rxcj,lsb.zzmm ,lsb.hf ,lsb.csrq,lsb.jg ,lsb.bj,lsb.grjl,lsb.jtcy,lsb.zp) creat cursor lsb(xh c(7),xm c(8),xb c(2),mz c(2),rxcj n(5,2),zzmm c(4),hf l,csrq d,jg c(20),bj c(7),grjl m,jtcy m,zp g) append blank replace mz with 汉,xb with 男,bj with m_bjelse

38、 =messagebox(学号重复!,0,错误)endif thisform.pageframe1.page1.txtXH.SetFocus thisform.refresh endif thisform.pageframe1.page1.txtXH.SetFocus ENDPROCCOMMAND2属性:Caption = 结 束ForeColor = 255,0,0Name = Command2事件过程:PROCEDURE Clickthisform.release ENDPROC七、应用实例:学生成绩表单设计表单文件名: cjsz.scx功能:为数据库表cj.dbc 追加数据界面:设计步骤

39、:1新建表单2添加数据环境:数据库表cj.dbc3界面设计:l 4个标签:字体、字号、背景色、对齐方式l 1个表格:数据源数据库表cj.dbcl 3个文本框:主要属性name分别 : txtxh, txtkh, txtcjControlSource:分别为全局变量:xjl(1),xjl(2),xjl(3)l 2个命令按钮 command1( 追加)、command2(结束)4事件过程l form1.load 过程Select cj &选择当前工作区Set order to xh &设置主索引Public xjl(3),m_xg &定义全局变量,默认值为逻辑假Xjl= & 为数组元素赋初值,字符

40、型Set delete on &设置逻辑删除有效l Command1.click 过程xjl(2)=allt(xjl(2)IF LEN(xjl(2)=0 =messagebox(系部名不能空!,0,错误) thisform.txtkh.SetFocuselse insert into cj from array xjl &向表中追加插入数据 xjl= thisform.txtXH.SetFocusendif thisform.refreshl Command2.click 过程Thisform.release &从内存中释放表单集或表单八、成绩录入表单功能:向基本表CJ.DBF中追加记录,界面

41、如下:要求:按班级录入单科成绩,选择班级和课程后,由程序向成绩表(CJ.DBF)中插入所选班级所有学生的学号与所选课程课号两个字段,成绩字段由键盘输入,界面要显示学号和姓名,并且可以打印成绩报表。设计思路:1、 建立一个视图,包括班级、学号、姓名、课号、课名、成绩,通过视图向成绩表(CJ.DBF)中追加数据。2、 当用户选定“班级”和“课程”后,即可获得“BJ”和“KH”两个字段的值,通过“BJ”字段的值即可到“XS”表中查得该班级的所有学生的学号(XH),再通过SELECTSQL语句得到所有的所有该班级每个学生的学号(XH)分别与所选课号(KH)的组合,而后通过视图插入成绩(CJ)表中。3、 由于视图打开时通过查询将物理表中的数据放在内存中了,在视图打开期间对物理表进行的更新的结果是不会

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 商业贸易


经营许可证编号:宁ICP备18001539号-1