




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学生成绩管理系统1.1 系统分析与设计在任何高等学校,学生的成绩管理都是学校教务管理的重要环节之一。随着 学校学生人数的增加,学生成绩管理的任务更加繁重,必须借助现代化的管理工 具和手段提高学生成绩管理效率。学生成绩管理系统广泛适用于高校教务管理部 门的学生成绩管理,其作用和功能也是学生比较熟悉和容易理解的。一个应用系统的开发过程包括分析、设计、实现、调试和发布等阶段。以下 是分析说明。1.2 系统功能分析系统功能分析阶段的任务就是确定该系统要解决的问题及其具体要求。需要 通过与用户的交流和沟通明确对系统的功能要求,最终列出系统可以实现的功能 由用户确认。(1) 班级信息的输入和储存,包括班级
2、编号、班级名称、所属专业、入校时间 和学制等。(2) 对已经输入的班级信息和修改、查询。(3) 学生基本信息的输入和储存,包括学号、姓名、性别、出生日期、班级等。 (4)学生基本信息的修改和查询。(5) 每学期初各班所开设课程的输入,包括课程名、学期、学时等。(6) 各班所开设课程信息的修改和查询。(7) 学期末输入每个学生的考试成绩。(8) 学生成绩的修改。(9) 查询每个学生某学期的各科成绩。(10) 查询并打印某班某学期所有学生的各科成绩。(11) 查询并打印某班某学期所有学生的各科成绩。(12) 系统具有用户和密码的管理。第 1 页 共 35 页入入1.3 系统功能模块设计通过通过对上
3、述各项功能的分析、分类、综合,按照模块化程序设计的要求,得 到如下图所示的功能模块图。学生成绩管理系统系统管理班级信息管理学生基本信息课程信息管理成绩信息管理管理登陆控制用户管理密码修改班级信息输入班级信息查询班级信息修改学生基本信息学生基本信息学生基本信息入 课程信息入 输课程信息查询成绩输入成绩修改成绩查询输入修改查询修改2 数据库设计与实现第 2 页 共 35 页数据库在一个管理信息系统中占有非常重要的地位,数据库结构的好坏将直 接影响到应用系统操作效率已经能否保证数据的一致性、完成性和安全性。2.1 数据库设计根据学生成绩管理系统的功能要求,通过分析系统要设计的相关实体一集要 收集、存
4、储和操纵数据信息,得到如图 2 所示的系统 e-r 图。根据系统 e-r 图得到以下关系模式。班级(班级编号,班级名称,所属专业,学制,入学时间,人数)学生基本信息(学号,姓名,性别,出生日期,家庭住址,班级编号) 课程(班级编号,学期,课程名称,学时,教师)成绩(学号,课程名称,成绩)为了系统的使用安全,要建立用户管理,而使用权限分为管理员和一般用户 两类,因此需要建立一个存储用户信息的关系。用户(姓名,密码,权限)2.2 创建数据库根据关系模式,确定要建立的数据库和表。首先,在桌面建立本实例的工作文件夹“ xscj ”,再在该文件夹下建立文件 夹”data”,用于存储数据文件。在 powe
5、rbuilder 开发环境中打开数据库面板,实用 odb odbc 接口建立第 3 页 共 35 页adaptive server anywhere 8.0(asa 8.0) 的数据库 xscj.db ,然后依次建立以下 5 个 表和 1 个视图。“bjkc”表:“jiben”表:“banji”表“xscj”表:“users”表:第 4 页 共 35 页给表中添加说明,并建立主键和外键如下图所示:第 5 页 共 35 页1.“班级”表表名:banji主键:bjbh2.“基本信息”表表名:jiben主键:xh3.“班级课程”表表名:bjkc主键:(bjbh,xq,kcmc) 4.“学生成绩”表表
6、名:xscj主键:(xh,xq,kcmc) 5.“用户”表表名:users主键:name然后给表中添加数据。第 6 页 共 35 页6.视图为了访问数据库方便,还建立一个视图“ v_xscj”,该视图由学生基本信息表和 班级表连接而成,对应的 sql 语句如下:create viewv_xscj (xh,xm,xb,csrq,bjbh,bjmc,zymc) as select jiben.xh,jiben.xm,jiben.xb,jiben.csrq,banji.bjbh,banji.bjmc,banji.zymc fromdba.banji,dba.jiben where(jiben.bjb
7、h = banji.bjbh)然后保存即可。3 创建应用对象完成数据库的设计和系统功能设计之后,可以开始各个功能模块的实现。在 powerbuilder 中开发应用程序是时,就是创建各种对象、为对象设置属性以及编写事 件脚本的过程。但不是简单的顺序过程,有时需要返回为前面创建的对象补充脚本。(1)创建新的工作空间,工作空间文件路径及名称设为“桌面 xscjxscj.pbw” (2 )创建应用对象,应用对象名设置为“ app_xscj”,应用库文件路径及名称设为“桌面xscjpbl”,目标文件路径及名称设为“桌面 xscjxscj.pbt”第 7 页 共 35 页(3)为应用对象 app_xsc
8、j 的 open 事件编写代码如下。/ profile xscjsqlca.dbms = odbcsqlca.autocommit = falsesqlca.dbparm = connectstring=dsn=xscjconnect using sqlca;/connect;if sqlca.sqlcode0 thenmessagebox(提示,数据库连接失败!)elseopen(w_tupian)returnend if执行此应用时,首先链接数据库“xscj”,成功后打开登陆窗口。4 创建应用对象本模块实现用户登陆控制、用户自己的密码修改和用户管理,其中用户管理包括 修改用户信息,添加新用
9、户,删除用户,只有管理员级用户有此权限。4.1 设计管理登陆窗口登陆窗口如图所示1.创建窗口并设置属性创建登陆窗口 w_login,调整其大小,在窗口上放置 1 个图片控件,3 个静态文本 控件,1 个成组框控件,2 个单行编辑器控件,2 个命令控制按钮控件,各个控件的 位置和大小如图所示。对象 属性 取值w_login title登陆window type response!sle_2 password true第 8 页 共 35 页2.编写脚本(1)在 declare 的 global variables 下定义全局变量string gs_username , gs_password ,
10、 gs_admin(2) 定义实例变量int li_n存储登录时用户输入密码错误的尝试次数,控制在最多 3 次机会。必须围实例变 量,不能是局部变量。(3)declare 的 instance variables 事件脚本如下:int li_n=3初始化变量 li_n,限制出错次数为 3 次。(4)【确定】按钮 cb_1 的 clicked 事件脚本如下。string ls_username, ls_passwordls_username=trim(sle_1.text)ls_password=trim(sle_2.text)if ls_username= or ls_password= th
11、enmessagebox(提示,用户名和密码不能为空)elseselect ,users.password,users.admininto :gs_username,:gs_password,:gs_adminfrom userswhere ( = :ls_username ) and( users.password = :ls_password );if sqlca.sqlcode=0 thenopen(w_main)close(w_logion)elseli_n=li_n - 1if li_n0 thenmessagebox(提示,用户名密码错误)
12、elsemessagebox(提示,错误超过 3 次,自动退出)haltend ifend ifend if(5)【放弃】按钮 cb_2 的 clicked 事件脚本如下:halt4.2 设计密码修改窗口第 9 页 共 35 页密码修改窗口如图所示:1.创建窗口并设置属性创建密码修改窗口 w_mmxg ,调整其大小,在窗口上放置 3 个静态文本控件 (st_1,st_2,st_2)3 个单行编辑器控件(sle_1,sle_2,sle_3)2 个命令按钮控件(cb_1,cb_2) 各个控件的位置和大小参照图调整。w_mmxg title修改密码windows type response!sle_
13、2 password truesle_3 password true2.【确定】按钮 cb_1 的 clicked 事件脚本如下: string ls_passwordif trim(sle_1.text)=trim(sle_3.text) thenmessagebox(提示,旧密码错误)elseif trim(sle_2.text)=trim(sle_3.text) thenls_password=trim(sle_2.text)update usersset password = :ls_passwordwhere ( = :gs_username) and ( us
14、ers.password = :gs_password ) ;if sqlca.sqlcode0 thenmessagebox(提示,密码修改不成功) elseclose(parent)messagebox(提示,密码修改成功) end ifelsemessagebox(提示,两次新密码不相同) end if第 10 页 共 35 页end if(2)【取消】按钮 cb_2 的 clicked 事件脚本如下 close(parent)4.3 设计用户管理的数据窗口和窗口1.设计数据窗口创建数据窗口“ d_yhgl”,显示风格围“ grid”,数据源类型围 ”quick select”,发 布如
15、图所示。其中控件“admin”的编辑风格改为“dropdownlistbox”,码表(code table)如图。第 11 页 共 35 页数据窗口 d_yhgl 生成的 sql select 语句为:select ,users.password,users.adminfrom users2.创建窗口并设置属性创建用户管理窗口 w_yhgl,调整其大小,在窗口上位置 1 个数据窗口控件 (dw_1)、4 个命令按钮控件(cb_1,cb_2,cb_3,cb_4)各个控件的位置和大小 参照如图调整。cb_3 text保存enabled false用户管理窗口如图所示:3.编写脚
16、本(1)用户管理窗口 w_yhgl 的 open 事件脚本如下。dw_1.settransobject( sqlca )dw_1.retrieve()(2)用户管理窗口 w_yhgl 的 closequery 事件脚本如下:integer rtdw_1.accepttext()if dw_1.modifiedcount( ) =0 and dw_1.deletedcount( )=0 thenreturn 0elsert=messagebox( 提 示 , 添 加 修 改 内 容 未 保 存 , 确 定 要 退 出 吗 ?第 12 页 共 35 页,question!,yesno!)if rt
17、=1 thenreturn 0end ifend ifreturn 1(3)数据窗口控件 dw_1 的 itemchanged 事件脚本如下cb_3.enabled=true(4)【添加】按钮控制 cb_1 的 clicked 事件脚本如下:integer rowrow=dw_1.insertrow(0)dw_1.scrolltorow(row)(5)【删除】按钮控件 cb_2 的 clicked 事件脚本如下:dw_1.deleterow(0)cb_3.enabled=true(6)【保存】按钮控件 cb_3 的 clicked 事件脚本如下:if dw_1.update(true,fals
18、e )=1 thendw_1.resetupdate()commit;cb_3.enabled=falseelserollback;messagebox(错误,保存数据失败!)end if(7)【退出】按钮控件 cb_4 的 clickedclose(parent)5 设计主窗口和菜单主窗口和菜单是系统工具的主界面。5.1 菜单结构菜单结构如图所示。菜单对象名为“m_main”,菜单栏中的菜单项设置了访问键, 最常用的菜单项在工具条上建立了按钮。第 13 页 共 35 页(1) 【系统】菜单下【密码修改】菜单项的 clicked 事件脚本如下 open(w_mmxg)(2) 【系统】菜单下【用
19、户管理】菜单项的 clicked 事件脚本如下: open(w_yhgl)(3) 【系统】菜单下【退出系统】菜单项的 clicked 事件脚本如下: close(parentwindow)(4) 【班级管理】菜单下【录入班级信息】菜单项 clicked 事件脚本如下: open(w_banji_shuru)(5) 【班级管理】菜单下【修改班级信息】菜单项的 clicked 事件脚本如下: open(w_xiugai )第 14 页 共 35 页(6)【班级管理】菜单下【浏览班级信息】菜单项的菜单项的 clicked 事件脚本 如下:open(w_banji_liulan)(7) 【学生管理】菜
20、单下【录入学生信息】菜单项的 clicked 事件脚本如下: open(w_jiben_shuru)(8) 【学生管理】菜单下【修改学生信息】菜单项的 clicked 事件脚本如下: opensheet(w_jiben_xiugai,w_main,6,original!)(9) 【学生管理】菜单下【查询学生信息】菜单项的 clicked 事件脚本如下: open(w_jiben_chaxun)(10) 【课程管理】菜单下【录入/修改开设课程】菜单项的 clicked 事件脚本如 下:open(w_bjkc_shuruxiugai )(11) 【课程管理】菜单下【查询开设课程信息】菜单项的 cl
21、icked 事件脚本如下: open(w_bjkc_chaxun )(12) 【成绩管理】菜单下【录入修改成绩】菜单项的 clicked 事件脚本如下: open(w_xscj_shuru )(13) 【成绩管理】菜单下【查询个人成绩】菜单项的 clicked 事件脚本如下: open(w_xscj_grcx )(14) 【成绩管理】菜单下【查询班级成绩】菜单项的 clicked 事件脚本如下: open(w_xscj_bjcx )(15) 【成绩管理】菜单下【查询课程成绩】菜单项的 clicked 事件脚本如下: open(w_xscj_kccx )(16) 【帮助】菜单下【关于】菜单项的
22、clicked 事件脚本如下: open(w_about)(17) 【帮助】菜单下【联机帮助】菜单项的 clicked 事件脚本如下: showhelp(xscjhelp.chm,index!)5.2 设计主窗口设计窗口如图所示第 15 页 共 35 页创建窗口对象 w_main, w_main title学生成绩管理系统window type mdihelp!menuname m_mainwindowstate maximized窗口对象 w_main 的 open 事件脚本如下if gs_admin=n thenm_main.m_系统.m_用户管理.enabled=falseend if其
23、功能是非管理员用户计入系统时关闭【用户管理】菜单项。6 设计班级管理模块本模块实现班级信息的输入、修改和查询。6.1 设计访问班级信息的数据窗口1.设计输入班级信息的数据窗口创建数据窗口 d_banji_shuru ,显示风格为“ freeform ”,数据源类型为“ quick select”如图所示。数据窗口 d_banji_shuru 生成的 sql select 语句为:select banji.bjbh,banji.bjmc,banji.zymc,banji.xz,banji.rxsj,banji.rsfrom banji2.设计修改班级信息的数据窗口创建数据窗口 d_banji_x
24、iugai,显示风格为“grid”数据源类型为“quick select”第 16 页 共 35 页数据窗口 d_banji_xiugai 生成的 sql select 语句为: select banji.bjbh,banji.bjmc,banji.zymc,banji.xz,banji.rxsj,banji.rsfrom banji6.2 设计访问班级信息的窗口首先设计两个通用的输入窗口和修改窗口作为父对象,实现一般输入和修改的功 能,窗口中的数据窗口控件不设定具体的数据窗口对象,在继承的窗口对象中再设定。 通过继承可以简化程序设计,实现代码重用。1.设计输入窗口创建窗口对象 w_shuru
25、,调整其大小,放置 1 个数据窗口控件(dw_1)、8 个命令 按钮控件(cb_1cb_8)窗口布局如图所示。w_shuru titlewindow type录入main!第 17 页 共 35 页resizablecentermaxboxminboxfalsefalsefalsefalse设置完属性后开始编写脚本代码,其中窗口 w_shuru 的 open 事件 closequery 事 件、命令按钮(【添加】、【删除】、【保存】和【退出】)的 clicked 事同前面的窗口 w_yhgl 的相应事件脚本。(1)【|】按钮的 clicked 事件脚本如下:dw_1.scrolltorow(1
26、)(2)【】按钮的 clicked 事件脚本如下:dw_1.scrollnextrow()(4)【|】按钮的 clicked 事件脚本如下:dw_1.scrolltorow( dw_1.rowcount()2.设计修改窗口创建窗口对象 w_xiugai,调整大小,放置 1 个数据窗口控件(dw_1),4 个命令控 件(cb_1cb_4),窗口布局如图所示。窗口属性设置如下:w_xiugai titlewindow typeresizable修改main!false第 18 页 共 35 页center falsemaxbox falseminbox false3设计输入班级信息窗口通过继承输入
27、窗口 w_shuru 生成输入班级信息窗口 w_banji_shuru,将数据控件 dw_1 的 dataobject 属性设置为 d_banji_shuru,将窗口的 title 属性改为“录入班级信 息”,此窗口设计便完成了。4.设计修改班级信息窗口通过继承修改窗口 w_xiugai 生成修改班级信息窗口 w_banji_xiugai,将数据控件 dw_1 的 dataobject 属性设置为 d_banji_xiugai,将窗口的 title 属性改为“修改班级 信息”,此窗口设计便完成了。5.设计浏览班级信息窗口创建窗口对象 w_banji_liulan,调整大小,放置 1 个数据窗口
28、控件 dw_1,调整窗 口布局如图所示。窗口属性设置如下: w_banji_liulan titlewindow typereizablecentermaxboxminboxdw_1 vscrollbard ataobjecte nabled窗口的 open 事件脚本如下:浏览班级信息 main!falsefalsefalsefalsetured_banji_xiugaifalse第 19 页 共 35 页dw_1.settransobject( sqlca)dw_1.retrieve()7 设计学生基本信息管理模块本模块实现学生基本信息的输入,修改和查询。7.1 设计访问学生基本信息的数据窗
29、口1.设计输入学生基本信息的数据窗口创建数据窗口 d_jiben_shuru ,显示风格为“ freeform ”,数据源类型为“ quick select”,布局如图所示其中,列控件“xb ”的编辑风格为“radiobuttons”,列表控件“bjbh ”的编辑风 格改为“dropdowndw ”,其 datawindow 属性设置为“d_banji_xiugai”,display column 属性和 data colum 属性都设置为“bjbh”,width of dropdown(%)属性设置为“300”, lines in dropdown 的属性设置为“6”vscrollbar 属
30、性设置为“true”。数据窗口 d_jiben_shuru 生成的 sql select 语句为:select jiben.xh,jiben.xm,jiben.xb,jiben.csrp,jiben.jtzz,jiben.bjbhfrom jiben2.设计修改学生基本信息的数据窗口创建数据窗口 d_jiben_xiugai,显示风格为“grid”,数据源类型为“quick select”, 布局如图所示:第 20 页 共 35 页其中,列控件“xb”的编辑风格改为“dropdownlistbox ”,列表项为“男”,“女”; 列表控件“ bjbh ”的编辑风格改为“ dropdowndw ”
31、,其 datawindow 属性设置为 “d_banji_xiugai”,display columm 属性和 data colum 属性都设置为“bjbh”,width of dropdown(%)属性设置为“300”,lines in dropdown 属性设置为“6”,vscrollbar 属性 设置为“true”数据窗口 d_jiben_xiugai 生成的 sql select 语句为:select jiben.xh,jiben.xm,jiben.xb,jiben.csrp,jiben.jtzz,jiben.bjbhfrom jiben3.设计查询学生基本信息的数据窗口创建数据窗口
32、d_jiben _chaxun,显示风格为“grid”,数据源类型为“sql select” 其中布局如图所示:其中,定义 3 个 string 型检索参数变量 mxh ,mxm,mbj,分别表示学号、姓名 班级,形成带检索参数的数据窗口。该数据窗口的修改属性默认值即“不允许修改”数据窗口 d_jiben_chaxun 生成的 sql select 语句为:select banji.bjmc,jiben.xh,jiben.xm,jiben.xb,jiben.csrp,jiben.jtzz,第 21 页 共 35 页jiben.bjbhfrom banji,jibenwhere ( jiben.
33、bjbh = banji.bjbh ) and( ( jiben.xh like :mxh ) and( jiben.xm like :mxm ) and( banji.bjmc like :mbj ) )7.2 设计访问学生基本信息的窗口1.设计输入学生基本信息的窗口通过继承输入窗口 w_shuru 生成输入学生基本信息窗口 w_jiben_shru,将数据控 件 dw_1 的 dataobject 属性设置为 d_jiben_shuru,将窗口的 title 属性改为“录入学生 基本信息”,此窗口就完成了。2.设计修改学生基本信息的窗口通过继承输入窗口 w_xiugai 生成修改学生基本信
34、息窗口 w_jiben_xiugai,将数据 控件 dw_1 的 dataobject 属性设置为 d_jiben_xiugai,将窗口的 title 属性改为“修改学 生基本信息”,此窗口就完成了。3.设计查询学生基本信息的窗口要求此窗口中能够根据学生的姓名或学号查询出学生的基本信息,能够根据班级 名称查询出该班所有学生的基本信息。查询学生基本信息窗口如图所示:首先创建一个窗口对象 w_jiben_chaxun,调整大小,在窗口中放置 2 个静态文本 控件(st_1,st_2)、1 个下拉表框控件(ddlb_1)、1 个单行编辑器控件(sle_1)1 个命令第 22 页 共 35 页按钮(c
35、b_1)、1 个数据窗口控件(dw_1)和一个线形控件(ln_1),调整各个控件的位置 和大小。【查询】按钮的 clicked 事件脚本如下:dw_1.settransobject( sqlca)if ddlb_1.text= or sle_1.text= thenmessagebox(提示,查询列和查询内容不能空!)returnend ifstring strstr=trim(sle_1.text)choose case ddlb_1.textcase 学号dw_1.retrieve(str,%,%)case 姓名dw_1.retrieve(%,str,%)case 班级名称dw_1.ret
36、rieve(%,%,str)end choose代码中根据查询依据的不同,以不同参数方式检索数据。8 设计课程管理模块本模块实现各班开设课程的输入、修改和查询。8.1 设计访问课程信息的数据窗口1设计输入班级课程信息的数据窗口创建数据窗口 d_bjkc_shuru,显示风格为“grid”,数据源类型为“quick select”, 如图:其中,列控件“bjbh”的编辑风格改为“dropdowndw”,其 datawindow 属性设置 为“d_banji_xiugai”,display columm 属性和 data colum 属性都设置为“bjbh”,width of dropdown(%
37、) 属性设置为“300”,lines in dropdown 属性设置为“6”,vscrollbar 属 性设置为“true”数据窗口 d_bjkc_shuru 生成的 sql select 语句为:select bjkc.bjbh,bjkc.xq,bjkc.kcmc,bjkc.xs,bjkc.jsxm第 23 页 共 35 页from bjkc2.设计查询班级课程信息的数据窗口创建数据窗口 d_bjkc_chaxun,显示风格为“grid ”数据源类型为“sql select”,如 图所示:其中,定义 2 个 string 型检索参数变量 mxq,mbjmc,分别表示学期、班级,形成带 检索
38、参数的数据窗口。该数据窗口的修改属性为默认值即“不允许修改”。数据窗口 d_bjkc_chaxun 生成的 sql select 语句为:select banji.bjmc,bjkc.kcmc,bjkc.xs,bjkc.jsxmfrom banji,bjkcwhere ( bjkc.bjbh = banji.bjbh ) and( ( bjkc.xq = :mxq ) and( banji.bjmc = :mbjmc ) )8.2 设计访问课程信息的窗口1.设计输入修改班级课程信息的窗口首先,从祖先窗口 w_xiugai 继承生成窗口对象 w_bjkc_shuruxiugai,调整其大 小。然
39、后将数据窗口控件 dw_1 的 dataobject 属性设置为 d_bjkc_shru,此窗口设计 完成。 班级课程的输入和修改都通过此窗口完成,输入修改班级课程 信息的窗口的布局如图:第 24 页 共 35 页2.设计查询班级开设课程的窗口要求此窗口能够根据输入的学期和班级查询出该班此学期开设的课程。 首先创建一个窗口对象 w_bjkc_chaxun, 在窗口中放置 2 个静态文本控件(st_1,st_2)2 个下拉列表框控件(ddlb_1,ddlb_2)、1 个命令按钮(cb_1)、1 个数据 库窗口控件(dw_1),调整各个控件的位置和大小。查询班级开设课程的窗口如图:(1)窗口 w_
40、bjkc_chaxun 的 open 事件脚本如下: dw_1.settransobject(sqlca)int li_xq, li_bjmc, nstring ls_xq, ls_bjmcselect count (distinct xq) into :li_xqfrom bjkc;declare xqcursor cursor forselect xq from bjkc group by xq;open xqcursor ;for n=1 to li_xqfetch next xqcursor into :ls_xq;ddlb_1.additem( ls_xq)nextclose xqc
41、ursor;select count (distinct bjmc) into :li_bjmcfrom banji;declare bjmccursor cursor forselect banji.bjmcfrom bjkc,banjiwhere bjkc.bjbh = banji.bjbh group by banji.bjmc; open bjmccursor;for n=1 to li_bjmcfetch next bjmccursor into :ls_bjmc;第 25 页 共 35 页ddlb_2.additem( ls_bjmc)nextclose bjmccursor ;d
42、dlb_2.reset()ddlb_2.additem(软件技术)ddlb_2.additem(网络技术)ddlb_2.additem(电子商务)ddlb_1.reset()ddlb_1.additem(1)ddlb_1.additem(2)(2)【查询】按钮的 clicked 事件脚本如下:dw_1.retrieve( ddlb_1.text , ddlb_2.text)9 设计成绩管理模块本模块实现成绩的输入、修改和多种方式的查询与打印。9.1 设计访问成绩信息的数据窗口1.设计输入成绩的数据窗口创建数据窗口 d_xscj_shuru,显示风格为“grid”,数据源类型为“sql sele
43、ct”,布 局如图所示。数据来源于成绩表 xscj 和视图 v_xscj,其中,学号、学期、课程名称和 成绩为成绩表 xscj 的列,姓名是视图 v_xscj 的列。选择【rows 】|【update properties】命令,打开数据窗口的修改属性对话框,如 图所示,设置数据窗口的修改属性,即只有成绩表 (xscj_cj)可以在数据窗口中修改, 关键字为成绩表 xscj 的主关键字(xh,xq,kcmc)。然后,单机工具条上的【tab order 】图标 ,将列控件 xscj_cj 的 tab order 值设为 10 ,再单击【tab order 】图标回到原 设计状态。第 26 页 共
44、 35 页数据窗口 d_bjkc_shuru 生成的 sql select 语句为:select v_xscj.xm,xscj.xh,xscj.xq,xscj.kcmc,xscj.cjfrom v_xscj,xscjwhere ( v_xscj.xh = xscj.xh )2.设计查询学生个人某学期各科成绩的数据窗口创建数据窗口 d_xscj_grcx,显示风格为“grid”,数据源类型为“sql select”,其 布局如图所示。在【summary】条中添加一个计算机域控件,计算机数据窗口中成绩 总和。数据窗口的检索参数为 mxh、mxq,分别对应于学号和学期。数据窗口 d_bjkc_shu
45、ru,生成的 ssql select 语句为: select xscj.kcmc,xscj.cjfrom xscjwhere ( xscj.xh = :mxh ) and( xscj.xq = :mxq )第 27 页 共 35 页3.设计查询某班级某学期全体学生各科成绩的数据窗口创建数据窗口 d_xscj_bjcx,显示风格为“cross tab”,数据源类型为“sql select”, 布局如图所示。数据来源于成绩表 xscj 和视图 xsbj ,其中,学号、课程名称和成绩为 成绩表 xscj 的列,姓名是视图 xsbj 的列。在【header1】条中添加 2 个计算域控件,对应的表达式分
46、别为 mbjmc 和 mxq, 3 个文本控件,其文本分别为“成绩单”、“班级:”和“学期:”。数据窗口的检索参数为 mxq 和 mbjmc,分别对应于学期和班级名称。修改属性取 默认值(不允许修改)。数据窗口 d_bjkc_shuru 生成的 sql select 语句为:select v_xscj.xm,xscj.kcmc,xscj.xh,xscj.cjfrom v_xscj,xscjwhere ( v_xscj.xh = xscj.xh ) and( ( xscj.xq = :mxq ) and( v_xscj.bjmc = :mbjmc ) )4.设计查询班级某学期全体学生某科成绩的数
47、据窗口创建数据窗口 d_xscj_kccx,显示风格为“n-up”,栏数为 2,数据源类型为“sql select”,其布局如图所示。数据来源域成绩表 xscj 和视图 xsbj。其中,学号和成绩为 成绩表 xscj 的列,姓名是视图 xsbj 的列。在【header】条中添加 2 个计算机域控件对应的表达式分别为 mbjmc 和 mkcmc, 3 个文本控件,其文本分别为“成绩单”“班级:”和“课程”数据库窗口的检索参数为 mxq、mbjmc、和 mkcmc,分别对应于学期、班级名称 和课程名称。修改属性取默认值。第 28 页 共 35 页数据窗口 d_bjkc_shuru 生成的 sql
48、select 语句为:select v_xscj.xm,xscj.xh,xscj.cjfrom v_xscj,xscjwhere ( v_xscj.xh = xscj.xh ) and( ( v_xscj.bjmc = :mbjmc ) and( xscj.kcmc = :mkcmc ) )9.2 设计输入成绩信息的窗口1.设计输入成绩的窗口输入成绩的窗口如图。首先创建窗口对象 w_xscj_shuru,在窗口上放置 1 个分组 框控件,3 个静态文本控件,3 个下拉列表框控件,3 个命令按钮控件和 1 个数据窗 口控件。根据图所示的布局调整数据窗口和控件大小、位置及有关属性。其中,【保存】
49、按钮的 enabled 属性设置为 false;数据窗口控件调整到只显示学号、姓名和成绩 3 列, vscrollbar 属性设为 ture,数据窗口对象为 d_xscj_shru,3 个下拉列表框控件的列表项 为空,由代码动态生成。第 29 页 共 35 页各个窗口和控件的事件脚本如下:(1)窗口的 open 事件脚本如下dw_1.settransobject( sqlca)int li_xq, li_bjmc, li_kcmc,nstring ls_xq, ls_bjmc, ls_kcmcselect count(distinct xq) into :li_xqfrom bjkc;decl
50、are xqcursor cursor forselect xq from bjkc group by xq;open xqcursor ;for n=1 to li_xqfetch next xqcursor into :ls_xq;ddlb_1.additem( ls_xq)nextclose xqcursor ;select count(distinct bjbh) into :li_bjmcfrom bjkc;declare bjmccursor cursor forselect banji.bjmcfrom bjkc, banjiwhere bjkc.bjbh = banji.bjb
51、h group by banji.bjmc;open bjmccursor ;for n=1 to li_bjmcfetch next bjmccursor into :ls_bjmc;ddlb_2.additem( ls_bjmc)nextclose bjmccursor;ddlb_2.reset()ddlb_2.additem(软件技术)ddlb_2.additem(网络技术)ddlb_2.additem(电子商务)ddlb_1.reset()ddlb_1.additem(1)ddlb_1.additem(2)(2)窗口的 closequery 事件脚本如下。integer rtdw_1.accepttext()if dw_1.modifiedcount() =0 thenreturn 0elsert=messagebox( 提 示 , 添 加 修 改 内 容 未 保 存 , 确 实 要 退 出 吗 ?第 30 页 共 35 页,question
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 板框式膜分离器主讲缪金伟22课件
- 安全生产台州69课件
- 考研复习-风景园林基础考研试题带答案详解(基础题)
- 风景园林基础考研资料试题及答案详解【网校专用】
- 《风景园林招投标与概预算》试题A附答案详解(巩固)
- 2025年江西省高速公路投资集团有限责任公司招聘笔试备考题库附答案详解(达标题)
- 2024年滨州新能源集团有限责任公司及权属公司公开招聘工作人员递补笔试备考题库附答案详解(b卷)
- 2024年浙江金华科贸职业技术学院单招职业技能测试题库汇编
- 2024年演出经纪人之演出经纪实务真题(黄金题型)
- 2025年K2教育中人工智能个性化学习系统对学生个性化学习资源的整合效果
- 部编版小学道德与法治四年级下册期末复习简答及分析题专练(含答案)
- 合肥轨道3号线8标创建标准化工地实施方案
- 【5A】Word2016全套高级培训教程
- 物业组织机构设置及人员配置方案
- 机械设计课程设计铸造车间碾砂机的传动装置-一级圆柱圆锥齿轮减速器设计
- 通报批评红头文件模板word模板
- 2023广东省高考物理试卷(纯word详解版)
- A0409涉密人员变更审批表
- 五防系统调试报告
- 南京理工大学2004硕士研究生入学考试
- GB/T 3098.8-2010紧固件机械性能-200 ℃~+700 ℃使用的螺栓连接零件
评论
0/150
提交评论