《PB9.0课程设计学生成绩管理系统.doc》由会员分享,可在线阅读,更多相关《PB9.0课程设计学生成绩管理系统.doc(40页珍藏版)》请在三一办公上搜索。
1、学生成绩管理系统1.1系统分析与设计在任何高等学校,学生的成绩管理都是学校教务管理的重要环节之一。随着学校学生人数的增加,学生成绩管理的任务更加繁重,必须借助现代化的管理工具和手段提高学生成绩管理效率。学生成绩管理系统广泛适用于高校教务管理部门的学生成绩管理,其作用和功能也是学生比较熟悉和容易理解的。一个应用系统的开发过程包括分析、设计、实现、调试和发布等阶段。以下是分析说明。1.2系统功能分析系统功能分析阶段的任务就是确定该系统要解决的问题及其具体要求。需要通过与用户的交流和沟通明确对系统的功能要求,最终列出系统可以实现的功能由用户确认。(1)班级信息的输入和储存,包括班级编号、班级名称、所
2、属专业、入校时间和学制等。(2)对已经输入的班级信息和修改、查询。(3)学生基本信息的输入和储存,包括学号、姓名、性别、出生日期、班级等。(4)学生基本信息的修改和查询。(5)每学期初各班所开设课程的输入,包括课程名、学期、学时等。(6)各班所开设课程信息的修改和查询。(7)学期末输入每个学生的考试成绩。(8)学生成绩的修改。(9)查询每个学生某学期的各科成绩。(10)查询并打印某班某学期所有学生的各科成绩。(11)查询并打印某班某学期所有学生的各科成绩。(12)系统具有用户和密码的管理。1.3系统功能模块设计通过通过对上述各项功能的分析、分类、综合,按照模块化程序设计的要求,得到如图1所示的
3、功能模块图。学生成绩管理系统系统管理班级信息管理学生基本信息管理课程信息管理成绩信息管理登陆控制用户管理密码修改班级信息输入班级信息查询班级信息修改学生基本信息输入学生基本信息修改学生基本信息查询课程信息输入课程信息查询修改成绩输入成绩修改成绩查询图12数据库设计与实现数据库在一个管理信息系统中占有非常重要的地位,数据库结构的好坏将直接影响到应用系统操作效率已经能否保证数据的一致性、完成性和安全性。2.1 数据库设计根据学生成绩管理系统的功能要求,通过分析系统要设计的相关实体一集要收集、存储和操纵数据信息,得到如图2所示的系统E-R图。根据系统E-R图得到以下关系模式。班级(班级编号,班级名称
4、,所属专业,学制,入学时间,人数)学生基本信息(学号,姓名,性别,出生日期,家庭住址,班级编号)课程(班级编号,学期,课程名称,学时,教师)成绩(学号,课程名称,成绩)为了系统的使用安全,要建立用户管理,而使用权限分为管理员和一般用户两类,因此需要建立一个存储用户信息的关系。用户(姓名,密码,权限)2.2 创建数据库根据关系模式,确定要建立的数据库和表。首先,在D盘根目录下建立本实例的工作文件夹“xscj”再在”d:xscj”文件夹下建立文件夹”data”,用于存储数据文件。在PowerBuilder开发环境中打开数据库面板,实用ODB ODBC接口建立Adaptive Server Anyw
5、here 8.0(ASA 8.0)的数据库D:xscjdataxscj.db,然后依次建立以下5个表和1个视图。CTRL+N 新建SHIFT+F7打开数据面板 选择ODB ODBC-Utilities-Create ASA Database选择table-new table设置参数如图 其他表设置如图1.“班级”表表名:banji主键:bjbh2.“学生基本信息”表表名:jiben主键:xh3.“课程”表表名:bjkc主键:(bjbh,xq,kcmc)4.“成绩”表表名:xscj主键:(xh,xqkcmc)5.“用户”表表名:users主键:xm依次建立好主键和外键如图所示6.视图为了访问数据
6、库方便,还建立一个视图“XSBJ”,该视图由学生基本信息表和班级表连接而成,对应的SQL语句如下:CREATE VIEW xsbj (xh,xm,xb,csrq,bjbh,bjmc,zymc) AS select jiben.xh,jiben.xm,jiben.xb,jiben.csrq,banji.bjbh,banji.bjmc,banji.zymc from DBA.banji,DBA.jiben where(jiben.bjbh = banji.bjbh)然后保存就可以了。3创建应用对象完成数据库的设计和系统功能设计之后,可以开始各个功能模块的实现。在PowerBuilder中开发应用程
7、序是时,就是创建各种对象、为对象设置属性以及编写事件脚本的过程。但不是简单的顺序过程,有时需要返回为前面创建的对象补充脚本。(1)创建新的工作空间,工作空间文件路径及名称设为“d:xscjxscj.pbw”(2)创建应用对象,应用对象名设置为“app_xscj”,应用库文件路径及名称设为“d:xscjpbl”,目标文件路径及名称设为“d:xscjxscj.pbt”(3)打开应用对象面板,应用对象app_xscj的Icon属性设置为“d:xscjBOOK.ISO”。BOOKS.ICO是预先准备的图标文件。(4)为应用对象app_xscj的open事件编写代码如下。/ Profile XscjSQ
8、LCA.DBMS = ODBCSQLCA.AutoCommit = FalseSQLCA.DBParm = Connectstring=DSN=xscjCONNECT;if SQLCA.sqlcode0 thenmessagebox(提示,数据库连接失败!)elseopen(w_logion)end if执行此应用时,首先链接数据库“xscj”,成功后打开登陆窗口。4创建应用对象本模块实现用户登陆控制、用户自己的密码修改和用户管理,其中用户管理包括修改用户信息,添加新用户,删除用户,只有管理员级用户有此权限。4.1 设计管理登陆窗口登陆窗口如图所示1.创建窗口并设置属性创建登陆窗口w_logi
9、n,调整其大小,在窗口上放置1个图片控件,3个静态文本控件,1个成组框控件,2个单行编辑器控件,2个命令控制按钮控件,各个控件的位置和大小如图所示。对象属性取值W_loginTitle登陆Window typeResponse!Sle_2Passwordtrue2.编写脚本(1)定义全局变量string gs_username , gs_password , gs_admin (2) 定义实例变量int li_n存储登录时用户输入密码错误的尝试次数,控制在最多3次机会。必须围实例变量,不能是局部变量。(3)登陆窗口w_logind 的OPEN 事件脚本如下:int li_n=3初始化变量li_
10、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= thenmessagebox(提示,用户名和密码不能为空)else SELECT users.name, users.password, users.admin INTO :gs_username, :gs_password, :gs_admin FROM users WHERE
11、( users.name = :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(提示,用户名密码错误)elsemessagebox(提示,错误超过3次,自动退出)haltend ifend ifend if(5)【放弃】按钮cb_2的clicked事件脚本如下:Halt4.2 设计密码修改窗口密码修改窗口如图所示:1.创建窗口并设置属性创建密码修改窗口w_m
12、mxg,调整其大小,在窗口上放置3个静态文本控件(st_1,st_2,st_2)3个单行编辑器控件(sle_1,sle_2,sle_3)2个命令按钮控件(cb_1,cb_2)各个控件的位置和大小参照图调整。W_mmxgTitle修改密码Windows typeResponse!Sle_2PasswordTrueSle_3PasswordTrue2.【确定】按钮cb_1的Clicked事件脚本如下:string ls_passwordif trim(sle_1.text)=trim(sle_3.text) thenmessagebox(提示,旧密码错误)elseif trim(sle_2.tex
13、t)=trim(sle_3.text) thenls_password=trim(sle_2.text)UPDATE usersSET password = :ls_passwordWHERE ( users.name = :gs_username) AND( users.password = :gs_password ) ;if sqlca.sqlcode0 thenmessagebox(提示,密码修改不成功)elseclose(parent)messagebox(提示,密码修改成功)end ifelsemessagebox(提示,两次新密码不相同)end ifend if(2)【取消】按钮
14、cb_2的Clicked事件脚本如下Close(parent)4.3设计用户管理的数据窗口和窗口用户管理窗口如图所示:1.设计数据窗口创建数据窗口“d_yhgl”,显示风格围“grid”,数据源类型围”Quick Select”,发布如图所示。其中控件“admin”的编辑风格改为“DropDOWNListBox”,码表(Code Table)如图。数据窗口d_yhgl生成的SQL Select语句为: SELECT users.name, users.password, users.admin FROM users 2.创建窗口并设置属性创建用户管理窗口w_yhgl,调整其大小,在窗口上位置1
15、个数据窗口控件(dw_1)、4个命令按钮控件(cb_1,cb_2,cb_3,cb_4)各个控件的位置和大小参照如图调整。Cb_3Text保存Enabledtrue3.编写脚本(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=messagebo
16、x(提示,添加修改内容未保存,确定要退出吗?,Question!,YesNo!)if rt=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事件
17、脚本如下:if dw_1.update(true,false )=1 thendw_1.resetupdate()commit;cb_3.enabled=falseelserollback;messagebox(错误,保存数据失败!)end if(7)【退出】按钮控件cb_4的ClickedClose(patent)5设计主窗口和菜单主窗口和菜单是系统工具的主界面。5.1菜单结构如图所示。菜单对象名为“m_main”,菜单栏中的菜单项设置了访问键,常用的菜单项设置了快捷键,最常用的菜单项在工具条上建立了按钮。(1)【系统】菜单下【密码修改】菜单项的Clicked事件脚本如下Open(w_mmx
18、g)(2)【系统】菜单下【用户管理】菜单项的Clicked事件脚本如下:Open(w_yhgl)(3)【系统】菜单下【退出系统】菜单项的Clicked事件脚本如下:Close(parentwindow)(4)【班级管理】菜单【录入班级信息】菜单项Clicked事件脚本如下:Opensheet(w_banji_shuru,w_main,6,Original!)其功能是在主窗口(w_main)中,以输入班级信息窗口w_banji_shuru的原来大小(Original!参数指定)打开,并在第6个菜单(即【窗口】菜单)下列出该窗口的名称。(5)【班级管理】菜单需爱修改【修改班级信息】菜单项的Clic
19、ked事件脚本如下:opensheet(w_xiugai,w_main,6,Original! )(6)【班级管理】菜单下【修改班级信息】菜单项的菜单项的Clicked事件脚本如下:opensheet(w_banji_liulan,w_main,6,Original!) (7)【学生管理】菜单下【录入学生信息】菜单项的Clicked事件脚本如下:opensheet(w_jiben_shuru,w_main,6,Original!) (8)【学生管理】菜单下【修改学生信息】菜单项的Clicked事件脚本如下:opensheet(w_jiben_xiugai,w_main,6,Original!)
20、 (9)【学生管理】菜单下【查询学生信息】菜单项的Clicked事件脚本如下:opensheet(w_jiben_chaxun,w_main,6,Original! )(10)【课程管理】菜单下【录入/修改开设课程】菜单项的Clicked事件脚本如下:opensheet(w_bjkc_shuruxiugai,w_main,6,Original! )(11)【课程管理】菜单下【查询开设课程信息】菜单项的Clicked事件脚本如下:opensheet(w_bjkc_chaxun,w_main,6,Original! )(12)【成绩管理】菜单下【录入修改成绩】菜单项的Clicked事件脚本如下:o
21、pensheet(w_xscj_shuru,w_main,6,Original! )(13)【成绩管理】菜单下【查询个人成绩】菜单项的Clicked事件脚本如下:opensheet(w_xscj_grcx,w_main,6,Original! )(14)【成绩管理】菜单下【查询班级成绩】菜单项的Clicked事件脚本如下:opensheet(w_xscj_bjcx,w_main,6,Original! )(15)【成绩管理】菜单下【查询课程成绩】菜单项的Clicked事件脚本如下:opensheet(w_xscj_kccx,w_main,6,Original! )(16)【窗口】菜单下【层叠窗
22、口】菜单项的Clicked事件脚本如下:w_main.arrangesheets (cascade!)(17)【帮助】菜单下【关于】菜单项的Clicked事件脚本如下:open(w_about)(18)【帮助】菜单下【联机帮助】菜单项的Clicked事件脚本如下:showhelp(xscjhelp.chm,index!)5.2设计主窗口设计窗口如图所示创建窗口对象W_main,W_mainTitle学生成绩管理系统Window typeMdihelp!MenunameM_mainWindowstatemaximized窗口对象w_main的Open事件脚本如下if gs_admin=n the
23、nm_main.m_系统s.m_用户管理.enabled=falseend if其功能是非管理员用户计入系统时关闭【用户管理】菜单项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.rs FROM
24、banji 2.设计修改班级信息的数据窗口创建数据窗口d_banji_xiugai,显示风格为“Grid”数据源类型为“quick select”数据窗口d_banjid_banji_xiugai生成的SQL Select 语句为: SELECT banji.bjbh, banji.bjmc, banji.zymc, banji.xz, banji.rxsj, banji.rs FROM banji ORDER BY banji.bjbh ASC 6.2设计访问班级信息的窗口首先设计两个通用的输入窗口和修改窗口作为父对象,实现一般输入和修改的功能,窗口中的数据窗口控件不设定具体的数据窗口对象,
25、在继承的窗口对象中再设定。通过继承可以简化程序设计,实现代码重用。1.设计输入窗口创建窗口对象w_shuru,调整其大小,放置1个数据窗口控件(dw_1)、8个命令按钮控件(cb_1cb_8)窗口布局如图所示。W_shuruTitle录入Window typeMain!ResizableFalseCenterFalseMaxboxFalseMinboxFalse设置完属性后开始编写脚本代码,其中窗口w_shuru的open事件Closequery事件、命令按钮(【添加】、【删除】、【保存】和【退出】)的Clicked事同前面的窗口W_yhgl的相应事件脚本。(1)【|】按钮的clicked事件
26、脚本如下:dw_1.scrolltorow(1)(2)【】按钮的clicked事件脚本如下:dw_1.scrollnextrow()(4)【|】按钮的clicked事件脚本如下:dw_1.scrolltorow( dw_1.rowcount()2.设计修改窗口创建窗口对象w_xiugai,调整大小,放置1个数据窗口控件(dw_1),4个命令控件(cb_1cb_4),窗口布局如图所示。W_xiugaiTitle修改Window typeMain!ResizableFalseCenterFalseMaxboxFalseMinboxFalse3设计输入班级信息窗口通过继承输入窗口w_shuru生成输
27、入班级信息窗口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个数据窗口控件dw_1,调整窗口布局如图所示。W_banji_liulanTitle
28、浏览班级信息Window typeMain!ReizableFalseCenterFalseMaxboxFalseMinboxFalseDw_1VscrollbarTureDataobjectD_banji_xiugaiEnabledFalse窗口的open事件脚本如下:dw_1.settransobject( sqlca)dw_1.retrieve()7设计学生基本信息管理模块本模块实现学生基本信息的输入,修改和查询。7.1设计访问学生基本信息的数据窗口1.设计输入学生基本信息的数据窗口创建数据窗口d_jiben_shuru,显示风格为“freeform”,数据源类型为“Quick Sele
29、ct”,布局如图所示其中,列控件“xb”的编辑风格为“radiobuttons”,列表控件“bjbh”的编辑风格改为“dropdowndw”,其datawindow属性设置为“d_banji_xiugai”,display column属性和Data colum属性都设置为“bjbh”,width of dropdown(%)属性设置为“300”,lines in dropdown的属性设置为“6”vscrollbar属性设置为“true”。数据窗口d_jiben_shuru生成的sql select 语句为: SELECT jiben.xh, jiben.xm, jiben.xb, jibe
30、n.csrq, jiben.jtzz, jiben.bjbh FROM jiben 2.设计修改学生基本信息的数据窗口创建数据窗口d_jiben_xiugai,显示风格为“grid”,数据源类型为“quick select”,布局如图所示:其中,列控件“xb”的编辑风格改为“dropdownlistbox”,列表项为“男”,“女”;列表控件“bjbh”的编辑风格改为“dropdowndw”,其datawindow属性设置为“d_jiebn_xiugai”,display columm属性和Data colum属性都设置为“bjbh”,width of dropdown(%)属性设置为“300”
31、,lines in dropdown属性设置为“6”,vscrollbar属性设置为“true”数据窗口d_jiben_xiugai生成的sql select语句为: SELECT jiben.xh, jiben.xm, jiben.xb, jiben.csrq, jiben.jtzz, jiben.bjbh FROM jiben 3.设计查询学生基本信息的数据窗口创建数据窗口d_jiebn_chaxun,显示风格为“grid”,数据源类型为“sql select”其中布局如图所示其中,定义3个string型检索参数变量mxh,mxm,mbj,分别表示学号、姓名班级,形成带检索参数的数据窗口。
32、该数据窗口的修改属性默认值即“不允许修改”数据窗口d_jiben_chaxun生成的sql select语句为: SELECT banji.bjmc, jiben.xh, jiben.xm, jiben.xb, jiben.csrq, jiben.jtzz, jiben.bjbh FROM banji, jiben WHERE ( jiben.bjbh = banji.bjbh ) and ( ( jiben.xh like :mxh ) AND ( jiben.xm like :mxm ) AND ( banji.bjmc like :mbj ) ) ORDER BY jiben.xh AS
33、C 7.2设计访问学生基本信息的窗口1.设计输入学生基本信息的窗口通过继承输入窗口w_shuru生成输入学生基本信息窗口w_jiben_shru,将数据控件dw_1的dataobject属性设置为d_jiben_shuru,将窗口的title属性改为“录入学生基本信息”,此窗口就完成了。2.设计修改学生基本信息的窗口通过继承输入窗口w_xiugai生成输入学生基本信息窗口w_jiben_xiugai,将数据控件dw_1的dataobject属性设置为d_jiben_xiugai,将窗口的title属性改为“修改学生基本信息”,此窗口就完成了。3.设计查询学生基本信息的窗口要求此窗口中能够根据学
34、生的姓名或学号查询出学生的基本信息,能够根据班级名称查询出该班所有学生的基本信息。查询学生基本信息窗口如图所示:首先创建一个窗口对象w_jiben_chaxun,调整大小,在窗口中放置2个静态文本控件(st_1,st_2)、1个下拉表框控件(ddlb_1)、1个单行编辑器控件(sle_1)1个命令按钮(cb_1)、1个数据窗口控件(dw_1)和一个线形控件(ln_1),调整各个控件的位置和大小。【查询】按钮的clicked事件脚本如下:dw_1.settransobject( sqlca)if ddlb_1.text= or sle_1.text= thenmessagebox(提示,查询列和
35、查询内容不能空!)returnend ifstring strstr=trim(sle_1.text)choose case ddlb_1.textcase 学号dw_1.retrieve(str,%,%)case 姓名dw_1.retrieve(%,str,%)case 班级名称dw_1.retrieve(%,%,str)end choose代码中根据查询依据的不同,以不同参数方式检索数据。8设计课程管理模块本模块实现各班开设课程的输入、修改和查询。8.1设计访问课程信息的数据窗口1设计输入班级课程信息的数据窗口创建数据窗口d_bjkc_shuru,显示风格为“grid”,数据源类型为“qu
36、ick select”,如图:其中,列控件“bjbh”的编辑风格改为“dropdowndw”,其datawindow属性设置为“d_banji_xiugai”,display columm属性和Data colum属性都设置为“bjbh”,width of dropdown(%)属性设置为“300”,lines in dropdown属性设置为“6”,vscrollbar属性设置为“true”数据窗口d_bjkc_shuru生成的sql select语句为: SELECT bjkc.bjbh, bjkc.xq, bjkc.kcmc, bjkc.xs, bjkc.jsxm FROM bjkc 2
37、.设计查询班级课程信息的数据窗口创建数据窗口d_bjkc_chaxun,显示风格为“grid”数据源类型为“sql select”,如图所示:其中,定义2个String型检索参数变量mxq,mbjmc,分别表示学期、班级,形成带检索参数的数据窗口。该数据窗口的修改属性为默认值即“不允许修改”。数据窗口d_bjkc_chaxun生成的sql select语句为: SELECT bjkc.kcmc, bjkc.xs, bjkc.jsxm, banji.bjmc FROM bjkc, banji WHERE ( banji.bjbh = bjkc.bjbh ) and ( ( bjkc.xq = :
38、mxq ) AND ( banji.bjmc = :mbjmc ) ) 8.2设计访问课程信息的窗口1.设计输入修改班级课程信息的窗口班级课程的输入和修改都通过此窗口完成,输入修改禅机课程信息的窗口的布局如图:首先,从祖先窗口w_iugai继承生成窗口对象w_bjkc_shuruxiugai,调整其大小。然后将数据窗口控件dw_1的dataobject属性设置为d_bjkc_shru,此窗口设计完成。2.设计查询班级开设课程的窗口要求此窗口能够根据输入的学期和班级查询出该班此学期开设的课程。查询班级开设课程的窗口如图:首先创建一个窗口对象w_bjkc_chaxun,在窗口中放置2个静态文本控件
39、(st_1,st_2)2个下拉列表框控件(ddlb_1,ddlb_2)、1个命令按钮(cb_1)、1个数据库窗口控件(dw_1),调整各个控件的位置和大小。(1)窗口w_bjkc_chaxun的open事件脚本如下:dw_1.settransobject( sqlca)int li_xq, li_bjmc, nstringls_xq, ls_bjmcSELECT count (distinct xq) INTO :li_xqFROM bjkc;DECLARE xqcursor CURSOR FORSELECT xq FROM bjkc GROUP BY xq;OPEN xqcursor ;FO
40、R n=1 TO li_xqFETCH NEXT xqcursor INTO :ls_xq;ddlb_1.additem( ls_xq)NEXTCLOSE xqcursor;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 bjmcc
41、ursor INTO :ls_bjmc;ddlb_2.additem( ls_bjmc)NEXTCLOSE bjmccursor ;(2)【查询】按钮的clicked事件脚本如下:dw_1.retrieve( ddlb_1.text , ddlb_2.text)9设计成绩管理模块本模块实现成绩的输入、修改和多种方式的查询与打印。9.1设计访问成绩信息的数据窗口1.设计输入成绩的数据窗口创建数据窗口d_xscj_shuru,显示风格为“grid”,数据源类型为“sql select”,布局如图所示。数据来源于成绩表xscj和视图xsbj,其中,学号、学期、课程名称和成绩为成绩表xscj的列,姓名是视图xsbj的列。选择【ROWS】|【update properties】命令,打开数据窗口的修改属性对话框,如图所示,设置数据窗口的修改属性,即只有成绩表(xscj_cj)可以在数据窗口中修改,关键字为成绩表xscj的主关键字(xh,xq,kcmc)。然后,单机工具条上的【tab order 】图标,将列控件xscj_cj的tab order值设为10,再单击【tab order】图标回到原设计状态。数据窗口的检索参数为mxq,mbjmc,mkmc,分别对应于学期、班级名称和课程名称。数据窗口d_bjkc_shuru生成的SQL select 语句为: