欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    学生成绩管理系统PB课程设计(20页).doc

    • 资源ID:36138106       资源大小:176.50KB        全文页数:19页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    学生成绩管理系统PB课程设计(20页).doc

    -学生成绩管理系统PB课程设计-第 19 页学生成绩管理系统程序分析一 系统分析与设计1)系统功能分析系统功能分析阶段的任务就是确定该系统所要解决的问题及其具体要求。学生成绩管理系统需要完成的主要功能如下:(1) 班级信息的输入和存储,包括班级编号、班级名称、所属专业、入学时间和学制等。(2) 对已经输入的班级信息的修改、查询。(3) 学生基本信息的输入和存储、包括学号、姓名、性别、出生日期、班级等。(4) 学生基本信息的修改和查询。(5) 每学期初各班所开设课程的输入,包括课程名、学期、学时等。(6) 各班所开设课程信息的修改和查询。(7) 学期末输入每个学生的考试成绩。(8) 学生成绩的修改。(9) 查询某个学生。(10) 查询并打印某班某学期所有学生的各科成绩。(11) 查询并打印某班某学期某课成绩。(12) 系统具有用户和密码的管理。2)系统功能模块分析通过上面各项功能的分析、分类、综合,按照模块化程序设计的要求,得到它的模块结构:(1)系统管理 它包括密码修改,用户管理,登录控制。(2)班级信息管理 它包括班级信息修改,班级信息查询,班级信息输入。(2)学生基本信息管理 包括学生基本信息查询,学生基本信息修改,学生基本信息输入。(3)课程信息管理 包括课程信息查询修改,课程信息输入。(4)成绩信息管理 包括成绩查询,成绩修改,成绩输入。二、数据库设计和实现1)创建数据库在PowerBuilder开发环境中打开数据库画板,使用ODB ODBC接口建立Adaptive Server Anywhere 8.0(ASA 8.0)的数据库,然后建立5个表和1个视图。分别为“班级”表、“学生基本信息”表、“课程”表、“成绩”表、“用户”表。各表之间的关系如下图1所示:图1 各表的关联关系2) 创建应用对象(1) 创建新的工作空间。(2) 创建应用对象,应用对象名设为“app_xscj”。(3) 打开新的对象画板.为应用对象app_xscj的Open事件编写代码如下:/ Profile liudiSQLCA.DBMS = "ODBC"SQLCA.AutoCommit = FalseSQLCA.DBParm = "ConnectString='DSN=liudi;UID=;PWD='"CONNECT;if SQLCA.sqlcode<>0 thenmessagebox("提示","数据库连接失败!")elseopen(w_login)end if执行此应用时,首先链接数据库“xscj”,成功后打开登录窗口。三、设计系统管理模块1) 设计登录窗口登录窗口如图2所示:图2 登录窗口为登录窗口编写脚本。(1)定义全局变量string gs_username,gs_password,gs_admin 分别存储登录用户的姓名、密码和权限。(2)定义实例变量 int li_n 存储登录时用户输入密码错误的尝试次数,控制在最多3次机会。(3)登录窗口w_login的open事件脚本如下 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="" thenmessagebox("提示","用户名和密码不能为空")elseSELECT "users"."name","users"."password","users"."admin"INTO :gs_username,:gs_password,:gs_adminFROM "users"WHERE ("users"."name" = :ls_username ) AND ("users"."password" = :ls_password ); if sqlca.sqlcode=0 then open(w_main) close(w_login) else li_n=li_n - 1 if li_n<>0 then messagebox("提示","用户名或密码错误") else messagebox("提示","错误超过3次,自动退出") halt end if end ifend if(5)放弃按钮cb_2的Clicked事件脚本如下.halt 2) 设计密码修改窗口创建窗口并设置属性创建密码修改窗口w_mmxg,调整其大小,在窗口上放置3个静态文本控件(st_1,st_2,st_3)、2个命令按钮控件(cb_1,cb_2),设计完后如图3所示:图3 密码修改窗口为密码窗口编写脚本(1)确定按钮cb_1的Clicked事件脚本如下。 string ls_passwordif trim(sle_1.text)<>gs_password thenmessagebox("提示","旧密码错误")elseif trim(sle_2.text)=(sle_3.text) thenls_password=trim(sle_2.text)UPDATE "users" SET "password" = :ls_password WHERE ("users"."name" = :gs_username ) AND ("users"."password" = :ls_password); if sqlca.sqlcode<>0 then messagebox("提示","密码修改不成功")elseclose(parent)messagebox("提示","密码修改完成")end ifelsemessagebox("提示","两次密码不相同")end if end if(2)取消按钮cb_2的Clicked事件脚本如下。 Close(parent)2) 设计用户管理的数据窗口和窗口设计数据窗口创建数据窗口“d_yhgl”,显示风格为“Grid”,数据源类型为“Quick Select”,布局如图4所示。图4 数据窗口d_yhgl数据窗口d_yhgl生成的SQL Select语句为:SELECT"users". "name", "users". "password", "users". "admin" FROM "users" 创建窗口并设置属性创建用户管理窗口w_yhgl,调整其大小,在窗口上放置1个数据窗口控件(dw_1)、4个命令按钮控件( cb_1、cb_2、cb_3、cb_4),设计完后的窗口如图5所示:图5 用户管理窗口为窗口编写脚本(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("提示","添加修改内容未保存,确实退出吗?",Question!,YesNo!)if rt=1 then return 0end ifend ifreturn 1(3)数据窗口控件dw_1的Itemechanged事件脚本如下。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,false)=1 thendw_1.resetupdate()commit;cb_3.enabled=falseelserollback;messagebox("提示","保存数据失败!")end if(7)退出按钮控件cb_4的Clicked事件脚本如下。close(parent)四、设计主窗口和菜单1)创建菜单对象菜单结构如图6所示。菜单对象名为“m_main”,菜单栏中的菜单项设置了访问键(AccessKey),常用的菜单项设置了快捷键(如退出系统的快捷键为Alt+F4,最常用的菜单项在工具条上建立了按钮。)下面编写各个菜单项的脚本。对于这些代码,在对应的窗口没有建立之前先注释掉,在建立之后再去掉注释。(1)系统菜单下密码修改菜单的Clicked事件脚本如下。Open(w_mmxg)(2)系统菜单下用户管理菜单的Clicked事件脚本如下。Open(w_yhgl)(3)系统菜单下退出系统菜单的Clicked事件脚本如下。Close(parentwidow)(4)班级管理菜单下录入班级信息 菜单的Clicked事件脚本如下。opensheet(w_banji_shuru,w_main,6,Original!)5)班级管理菜单下修改班级信息菜单的Clicked事件脚本如下。opensheet(w_banji_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!)(9)学生管理菜单下查询学生信息菜单的Clicked事件脚本如下。opensheet(w_jiben_chaxun,w_main,6,Original!)(10)课程管理菜单下录入修改开设课程菜单的Clicked事件脚本如下。opensheet(w_bjkc_shurnxiugai,w_main,6,Original!)(11)课程管理菜单下查询开设课程菜单的Clicked事件脚本如下。opensheet(w_bjkc_chaxun,w_main,6,Original!)(12)成绩管理菜单下录入修改成绩菜单的Clicked事件脚本如下。opensheet(w_xscj_shuru,w_main,6,Original!) (13)成绩管理菜单下查询个人成绩菜单的Clicked事件脚本如下。opensheet(w_xscj_chaxun,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)窗口菜单下层叠窗口菜单的Clicked事件脚本如下。w_main.arrangesheets (cascade!)(17)帮助菜单下关于菜单的Clicked事件脚本如下。 open(w_about) 图6 菜单结构(18)帮助菜单下联机帮助菜单的Clicked事件脚本如下。ShowHelp("d:xscjhelpxscjhelp.chm",index!)2) 设计窗口本次学生成绩管理系统的主窗口界面如图7所示:图7 主窗口界面创建窗口对象w_main,其Open事件脚本如下。if gs_admin='n' thenm_main.m_系统.m_用户管理.enabled=falseend if其功能是非管理员用户进入系统时关闭【用户管理】菜单项。五、设计班级管理模块1) 设计访问班级信息的数据窗口设计输入班级信息的数据窗口创建数据窗口d_banji_shuru,显示风格为“Freeform”,数据源类型为“Quick Select”,其布局如图8所示。图8 数据窗口d_banji_shuru数据窗口d_banji_shuru生成的SQL Select语句为:SELECT "banji"."bjbh", "banji"."bjmc", "banji"."zymc", "banji"."xz", "banji"."rxsj", "banji"."rs" FROM "banji" 设计修改班级信息的数据信息创建数据窗口d_banji_xiugai,显示风格为“Grid”,数据源类型为“Quick Select”,其布局如图9所示图9 数据窗口d_banji_xiugai数据窗口d_banji_xiugai生成的SQL Select语句为:SELECT "banji"."bjbh", "banji"."bjmc", "banji"."zymc", "banji"."xz", "banji"."rxsj", "banji"."rs" FROM "banji" ORDER BY "banji"."bjbh" ASC 2)设计访问班级信息的窗口设计输入窗口创建窗口对象w_shuru,调整其大小,放置1个数据窗口控件(dw_1)、8个命令按钮控件(cb_1cb_8),窗口布局如图10所示。图10 输入窗口设置完属性后开始编写脚本代码,其中窗口w_shuru的Open事件、命令按钮(添加、删除、保存、退出)的Clicked事件同窗口w_yhgl的相应事件脚本。其他命令按钮的事件脚本如下:(1)|<<按钮的Clicked事件脚本如下。dw_1.scrolltorow(1)(2)<按钮的Clicked事件脚本如下。dw_1.scrollpriorrow()(3)>按钮的Clicked事件脚本如下。extrow()(4)>>|按钮的Clicked事件脚本如下。设计修改窗口创建窗口对象w_xiugai,调整其大小,放置1个数据窗口控件(dw_1)、4个命令按钮控件(cb_1cb_4),窗口布局如图11所示:图11 修改窗口窗口和控件的事件脚本与以上输入窗口的对应部分相同。设计输入班级信息窗口通过继承输入窗口w_shuru生成输入班级信息窗口w_banji_shuru,将数据控件dw_1的DataObject属性设置为d_banji_shuru,将窗口的Tile属性改为“录入班级信息”,此窗口设计便完成了。如图12所示:图12 录入班信息级窗口设计修改班级信息窗口通过继承输入窗口w_xiugai生成输入班级信息窗口w_banji_xiugai,将数据控件dw_1的DataObject属性设置为d_banji_xiugai,将窗口的Tile属性改为“修改班级信息”,此窗口设计便完成了。如图13所示:图13 修改班级信息窗口设计浏览班级信息窗口创建窗口对象w_banji_liulan,调整其大小,放置一个数据窗口控件dw_1,调整窗口布局如图14所示。图14 浏览班级信息窗口窗口的Open事件脚本如为:dw_1.settransobject(sqlca)dw_1.retrieve()六、设计学生基本信息管理模块1)设计访问学生基本信息的数据窗口设计输入学生基本信息的数据窗口创建数据窗口d_jiben_shuru,显示风格为“Freeform”,数据源类型为“Quick Select”,其布局如图15所示:图15 数据窗口d_jiben_shuru数据窗口的d_jiben_shuru生成的SQL Select语句为: SELECT "jiben"."xh", "jiben"."xm", "jiben"."xb", "jiben"."csrq", "jiben"."jtzz", "jiben"."bjbh" FROM "jiben" 设计修改学生基本信息的数据窗口创建数据窗口d_jiben_xiugai,显示风格为“Grid”,数据源类型为“Quick Select”,其布局如图16所示:图16 数据窗口d_jiben_xiugai数据窗口d_jiben_xiugai生成的SQL Seleect语句为: SELECT "jiben"."xh", "jiben"."xm", "jiben"."xb", "jiben"."csrq", "jiben"."jtzz", "jiben"."bjbh" FROM "jiben" ORDER BY "jiben"."xh" ASC 设计查询学生基本信息的数据窗口 创建数据窗口d_jiben_chaxun,显示风格为“Grid”,数据源类型为“SQL Select”,其布局如图17所示:图17 数据窗口d_jiben_chaxun其中,定义3个String型的检索参数变量mxh、mxm、mbj,分别表示学号、姓名、班级,形成带检索参数的数据窗口。2)设计访问学生基本信息的窗口设计输入学生基本信息的窗口 通过继承窗口输入窗口w_shuru生成输入学生基本信息窗口w_jiben_shuru,将数据控件dw_1的DataObject属性设置为 d_jiben_shuru,将窗口的Title属性改为“录入学生基本信息”,如图18。图18 录入学生基本信息窗口2设计输入学生基本信息的窗口通过继承窗口输入窗口w_xiugai生成修改学生基本信息窗口w_jiben_xiugai, 将数据控件dw_1的DataObject属性设置为 d_jiben_xiugai,将窗口的Title属性改为“修改学生基本信息”,如图19: 3设计查询学生基本信息的窗口 要求此窗口中能够根据学生的姓名或学号查询出学生的基本信息,能够根据班级名称查询出该班所有学生的基本信息。窗口如图20所示:图19 修改学生基本信息窗口图20 查询学生基本信息窗口查询按钮的Open事件脚本如下。ettransobject(sqlca)if ddplb_1.text="" or sle_1.text="" thenmessagebox("提示","查询列和查询内容不能为空!")returnend if string strstr=trim(sle_1.text)case "学号"dw_1.retrieve(str,"%","%")case "姓名"dw_1.retrieve("%",str,"%")case "班级名称"dw_1.retrieve("%","%",str)end choose代码中根据查询依据的不同,以不同参数方式检索。七、设计课程管理模块1)设计访问课程信息的数据窗口设计输入班级课程信息的数据窗口创建数据窗口d_bjkc_shuru,显示风格为“Grid”,数据源类型为“Quick Select”,其布局如图21所示:图20 数据窗口d_bjkc_shuru数据窗口d_bjkc_shuru生成的SQL Seleect语句为: SELECT "bjkc"."bjbh", "bjkc"."xq", "bjkc"."kcmc", "bjkc"."xs", "bjkc"."jsxm" FROM "bjkc" .设计查询班级课程信息的数据窗口创建数据窗口d_bjkc_chaxun,显示风格为“Grid”,数据源类型为“Quick Select”,其布局如图21所示。图21 数据窗口d_bjkc_chaxunn其中,定义2个 String型检索参数变量mxq、mbjmc,分别表示学期、班级,形成带检索参数的数据窗口。 该数据窗口的修改属性为默认值即“不允许修改”。数据窗口d_bjkc_chaxun生成的SQL Select语句为:SELECT "bjkc"."kcmc", "bjkc"."xs", "bjkc"."jsxm", FROM "bjkc" , "banji""WHERE ("banji". "bjbh"= "bjkc". "bjbh") AND ("bjkc". "xq"=:mxq) AND("banji "." bjmc"=:mbjmc)2)设计访问课程信息的窗口设计输入修改班级课程信息的窗口班级课程的输入和修改都通过此窗口完成,输入修改班级课程信息的窗口布局如图22所示。图22 输入修改班级课程信息的窗口首先,从祖先窗口w_xiugai继承生成窗口对象w_bjkc_shuruxiugai,调整其大小。然后将数据窗口控件dw_1的DataObject属性设置为d_bjkc_shuru,此窗口设计即完成。设计查询班级开设课程的窗口 首先创建一个窗口对象w_bjkc_chaxun,调整大小,在窗口中放置2个静态文本控件(st_1,st_2)、2个下拉列表框控件(ddlb_1,ddlb_2)、1个命令按钮(cb_1)、1个数据窗口控件(dw_1),调整各个控件的位置和大小。如图23所示:(1)窗口w_bjkc_chaxun的open事件脚本如下dw_1.settransobject(sqlca) int li_xq,li_bjmc,nstring ls_xq,ls_bjmcselect count(distinct xq)into :li_xq图23 查询班级开设课程的窗口from 课程;declare xqcursor cursor forselect xq from 课程 group by xq;open xqcursor;for n=1 to li_xqfetch next xqcursor into :ls_xq;ddplb_1.additem(ls_xq)nextclose xqcursor;select count(distinct bjmc) into :li_bjmcfrom 班级;declare bjmccursor cursor forfrom 课程, 班级where 课程.bjbh=班级.bjbh group by 班级.bjmc;open bjmccursor;for n=1 to li_bjmcfetch next bjmccursor into :ls_bjmc;ddplb_2.additem(ls_bjmc)nextclose bjmccursor; (2)查询按钮的Clicked事件脚本如下。dw_1.retrieve(ddplb_1.text,ddplb_2.text) 八、设计成绩管理模块1)设计访问成绩信息的数据窗口设计输入成绩信息的数据窗口创建数据窗口d_xscj_shuru,显示风格为“Grid”,数据源类型为“SQL Select”,其布局如图19所示。数据来源与成绩表xscj和视图xsjb,其中,学号、学期、课程名称和成绩为成绩表xscj的列,姓名是视图xscj的列。选则Roes|Updata Properties命令,打开数据窗口的修改属性对话框,如图24所示:图24 数据窗口d_xscj_shuru选择Rows|Update Properties命令,打开数据窗口的修改属性对话框,设置数据窗口的修改属性,即只有成绩表xscj的成绩列可以在数据窗口中修改,关键字为成绩表xscj的主关键字(xh,xq,kcmc)。然后,单击工具条上的Tab Order图标,将列控件sxcj_cj的Tab Order值设为10,在单击Tab Order图标回到原设计状态。如图25:图25 数据窗口d_xscj_shuru的修改属性设计查询某班级某学期全体学生各科成绩的数据窗口创建数据窗口d_xscj_bjcx,显示风格为 “Cross Tab”,数据源类型为 “SQL Select”,数据来源于成绩表xscj和视图xsbj。如图26:图26 数据窗口d_xscj_grcx设计查询某班级某学期全体学生各科成绩的数据窗口创建数据窗口d_xscj_bjcx,显示风格为 “Cross Tab”,数据源类型为 “SQL Select”,数据来源于成绩表xscj和视图xsbj。如图27:图27 数据窗口d_xscj_bjxc在Headeer1条中添加2个计算域控件,对应的表达式分别为mbjmc和mxq,3个文本控件,其文本分别为 “成绩单”、 “班级” 、和 “学期”.数据窗口的检索参数为mxq和mbjmc,分别对应于学期和班级名称,修改属性取默认值(不允许修改)。设计查询某班级某学期全体学生各科成绩的数据窗口创建数据窗口d_xscj_kccx,显示风格为 “N_Up”,拦数为2,数据源类型为 “SQL Select”,数据来源于成绩表xscj和视图xsbj.如图28:图28 数据窗口d_xsch_kccx在Header条中添加2个计算域控件对应的表达式分别为mbcme,3个文本控件,其文本分别为 “成绩单”、 “班级” 、和 “课程”.数据窗口的检索参数为mxq、mbjmc、mkcme,分别对应于学期、班级名称和课程名称,修改属性取默认值(不允许修改)。2)设计访问成绩信息的窗口设计输入成绩的窗口首先创建窗口对象w_xscj_shuru,在窗口上放置1个分组框控件、3个静态文本控件、3个下拉列表框控件、3个命令按钮控件和1个数据窗口控件。如图29:图29 输入成绩的窗口各个窗口和控件的事件脚本如下。(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;declare xqcursor cursor forselect xq from bjkc group by xq;open xqcursor;for n=1 to li_xq fetch next xqcursor into :ls_xq; ddlb_1.additem(ls_xq)nextclose xqcursor;/生成班级下拉列表框的列表项select count(distinct bjbh) into :li_bjmcfrom bjkc;declare bjmccursor cursor forfrom bjkc, banjiwhere bjkc.bjbh=banji.bjbh group by banji.bjmc;open bjmccursor;for n=1 to li_bjmc fetch next bjmccursor into :ls_bjmc; ddlb_2.additem(ls_bjmc)nextclose bjmccursor;(2)窗口的closequery事件脚本如下。 integer rt dw_1.accepttext()if dw_1.modifiedcount()=0 then return 0else rt=messagebox("提示","添加修改内容未保存,确实退出吗?",question!,yesno!)if rt=1 thenreturn 0 end if end ifreturn 1(3)课程的下拉列表框的getfocus事件脚本如下。int li_kcmc,nstring ls_kcmc,ls_xq,ls_bjmcif not(ls_xq=""or ls_bjmc="") thenselect count(distinct bjkc.kcmc)into :li_kcmcfrom bjkc,banjiwhere(bjkc.bjbh=banji.bjbh)and (banji.bjmc=:ls_bjmc)and(bjkc.xq=:ls_xq);declare kcmccursor cursor forfrom banji,bjkcwhere(bjkc.bjbh=banji.bjbh)and (banji.bjmc=:ls_bjmc)and(bjkc.xq=:ls_xq)group by bjkc.kcmc;ddlb_3.reset()open kcmccursor;for n=1 to li_kcmcfetch next kcmccursor into :ls_kcmc;ddlb_3.additem(ls_kcmc)nextclose kcmccursor;end if (4)确定按钮的clicked事件脚本如下。 int li_xh,nstring ls_kcmc,ls_xq,ls_bjmc,ls_xhif ls_xq="" or ls_bjmc="" or ls_kcmc="" thenmessagebox("提示","选择项不能空!")elseselect count(distinct xh)into :li_xhfrom xsbjwhere xsbj.bjmc=:ls_bjmc;declare xhcursor cursor forselect xhfrom xsbjwhere xsbj.bjmc=:ls_bjmc;open xhcursor;for n=1 to li_xhfetch next xhcursor into:ls_xh;insert into"xscj"("xh","xq","kcmc","cj")values(:ls_xh,:ls_xq,ls_kcmc,null);nextclose xhcursor;dw_1.retrieve(ls_xq,ls_bjmc,ls_kcmc)end if设计查询学生个人成绩窗口 查询学生个人成绩的窗口如图30所示。数据窗口控件连接的数据窗口对象为d_xscj_grcx.(1)查询按钮的clicked事件脚本如下dw_1.settransobject(sqlca)if sle_1.text=""or sle_2.text="" then messagebox("提示","班级学期和课程不能为空")else dw_1.retrieve(sle_1.text,sle_2.text) cb_2.enabled=trueend if(2)打印按钮的clicked事件脚本如下dw_1.print(true)(3)退出按钮的clicked事件脚本如下close(parent)图30 查询学生个人成绩的窗口设计查询班级成绩的窗口查询班级成绩的窗口如图31所示。数据窗口控件的dataobject属性为d_xscj_bjcx。此窗口的open 事件脚本与输入成绩窗口的open事件脚本相同。打印按钮和退出按钮的clicked事件脚本与d_xscj_grcx中的一样。(1)查询按钮的clicked事件脚本如下dw_1.settransobject(sqlca)if ddplb_1.text=""or ddplb_2.text="" then messagebox("提示","班级学期和课程不能为空")else dw_1.retrieve(ddplb_1.text,ddplb_2.text) cb_2.enabled=trueend if图31 查询班级成绩的窗口设计查询课程成绩的窗口查询课程成绩的窗口如图32所示。数据窗口控件的dataobject属性为d_xscj_kccx。此窗口的open事件脚本、“课程”的下拉列框的getfocus事件脚本与输入成绩窗口的对应事件脚本相同,打印按钮和退出按钮的clicked 事件脚本与查询学生个人成绩窗口中的一样。(1)查询按钮的clicked事件脚本如下dw_1.settransobject(sqlca)if ddplb_1.text=""or ddplb_2.text=""or ddplb_3.text="" then messagebox("提示","班级学期和课程不能为空")else

    注意事项

    本文(学生成绩管理系统PB课程设计(20页).doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开