sql数据库课程设计-学生选课管理系统_第1页
sql数据库课程设计-学生选课管理系统_第2页
sql数据库课程设计-学生选课管理系统_第3页
sql数据库课程设计-学生选课管理系统_第4页
sql数据库课程设计-学生选课管理系统_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库开发课程设计报告学生选课管理系统系别:计算机工程系班级:软件1408班姓名:金科目的:掌握PowerBuilder与SQLServer的连接方法掌握设计窗口的方法掌握设计菜单的方法掌握PowerScript语言的程序设计方法掌握控件的使用方法掌握建立数据窗口对象的方法掌握数据窗口控件的使用方法掌握数据窗口控件函数的使用方法掌握数据窗口控件事件掌握数据报表的设计方法掌握统计图表的设计方法了解输出打印的设计方法掌握用户权限的设置方法工具:PowerBuilderSQLServer目录: 数据库系统设计工具——PowerBuilder 3一、 使用PowerBuilder 3二、 创建应用程序 5三、 连接数据库 6 界面设计 8一、 窗口设计 8二、 菜单设计 10三、菜单捆绑 12 程序设计 13一PowerScript语言 13二、 控件 18二、 控件脚本实例 20 数据浏览 23一数据窗口简介 23二数据窗口对象 23三数据窗口控件 25四数据窗口实例 26 数据编辑 29一数据窗口控件函数 29二数据窗口控件函数实例 30三、数据窗口控件事件 35四、 数据窗口控件事件实例 35五、 数据窗口控件事件实例 43一、 数据窗口控件事件实例 51一、 数据报表设计基础 55二、 数据报表实例 56三、 统计图表设计基础 57四、 统计图表实例 58五、 输出打印设计 60一:使用数据库:创建用户表“<班级>_<学号>_u”,。创建数据库用户“<班级>_<学号>”,并设置相应权限,即对表“<班级>_<学号>_s”、“<班级>_<学号>_c”、“<班级>_<学号>_sc”、“<班级>_<学号>_u”和“<班级>_<学号>_tj”select、insert、delete和update权限。二.使用PowerBuilder1.组件:开始→程序→Sybase2.应用程序开发步骤:启动PB→创建工作区→创建目标、应用库及应用对象:对象、脚本。3.创建应用程序(1)启动PB开始→程序→Sybase→→(2)创建工作区File→New→Workspace:工作区名。(3)创建目标及应用对象工作区→右键→New→Target→Application:应用对象名、目标名、应用库名。ProfileName→右键→Connect:测试连接。ProfileName→右键→Properties→Preview:copy应用对象名→右键→Edit→open事件:Ctrl+V然后使用嵌入式SQL语句CONNECT建立连接三.窗口设计(1)创建窗口(File→)New→PBObject→Window→保存:通常窗口命名为“w_login”。(2)界面设计(3)设计程序,运行显示“欢迎使用”窗口四.菜单设计(1)创建菜单(File→)New→PBObject→Menu:右击Untitled,InsertSubmenuItem建菜单项,右击菜单,InsertSubmenuItem建命令项,菜单命名为“m_main(2)设计菜单用户管理、学生管理、课程管理、选课管理、数据分析、系统维护在学生管理、课程管理中分别加入子菜单增加、删除、修改、查询;在选课管理中加入子菜单按学生、安课程;在数据分析中加入子菜单学生统计、课程统计、成绩统计、输出打印;在系统维护了中加入子菜单修改密码、帮助、退出。(3)菜单的捆绑a)新建一个捆绑菜单的窗口b)打开窗口,在“MenuName”框中指定需要捆绑的菜单名”m_main”,在“WindowType”框中指定所需要的并可以带菜单的窗口类型,如“mdihelp!”。五.系统维护中的子窗口设计(1)新建窗口,命名为w_help。(2)制作“帮助”文件的word文档,并截图。(3)单击工具栏上的ole控件,打开”InsertObject”对话框。(4)单击窗口的任意位置,放置OLE控件,并将控件大小调节。(5)打开“m_main”,双击“系统维护”菜单标题下的“帮助”菜单项,写脚码。修改密码窗口创建窗口,命名为“w_password”Cb_1的脚码(确定)Cb_2的脚码(关闭)(2)(5)打开“m_main”,双击“系统维护”菜单标题下的“修改密码”菜单项,写脚码。六.学生管理系统中的课程管理中的所有子窗口创建数据对象查询表“s”选择“file”->”new”命令,选择“grid”风格,单击“ok”按钮查询表“c”创建查询窗口Open的脚码Cb_1的脚码(检索)Cb_2的脚码(关闭)绑定在菜单中执行结果创建删除窗口(1)新建窗口,命名为w_s_delete.Closequery的脚码Cb_1的脚码(检索)Cb_2的脚码(删除)Cb_3的脚码(确定)Cb_4的脚码(关闭)(2)绑在菜单中执行结果创建插入窗口新建窗口,命名为“w_s_insert”Open的脚码Cb_1的脚码(增加)Cb_2的脚码(确定)Cb_3的脚码(关闭)绑定菜单执行结果创建修改窗口新建窗口,命名为“w_s_edit”Closequery的脚码Cb_1的脚码(检索)Cb_2的脚码(确定)Cb_3的脚码(取消)Cb_4的脚码(关闭)捆绑菜单执行结果七.创建课程管理中所有的子窗口1创建数据对象,命名为“d_c_insert”数据对象“d_c_edit”2.创建修改窗口Closequery的脚码Cb_1的脚码Cb_2的脚码Cb_3的脚码Cb_4的脚码捆绑菜单执行结果创建增加窗口Closequery的脚码Cb_1的脚码Cb_2的脚码Cb_3的脚码Cb_4的脚码捆绑菜单执行结果创建删除窗口Closequery的脚码Cb_1的脚码Cb_2的脚码Cb_3的脚码Cb_4的脚码捆绑菜单执行结果八.创建选课管理中的所有子窗口1.创建两个数据对象,分别命名为“d_sc_s”,“d_sc_1”2.创建窗口,命名为“w_sc_1”Dw_2(itemchanged)的脚码Dw_1(rowfocuschanged)的脚码Cb_1的脚码Cb_2的脚码Cb_3的脚码Cb_4的脚码捆绑菜单执行结果九.创建数据分析中的所有子窗口学生统计(1)选择”file””new”命令,打开”new”对话框中的”datawindow”选项卡(2)选择”grid”,单击”ok”按钮,打开对话框(3)选择表“rj1408_30_s”Open的脚码Cb_1的脚码捆绑菜单执行结果2.设计“课程统计”窗口。·设计数据窗口对象:d_kctj风格:Tabular计算列Compute:max(score)as最高分,min(score)as最低分,sum(score)as总分,avg(score)as平均分标题:课程分数统计分类汇总:Row→CreateGroup:c_cname计算域ModifyExpression:max(最高分forgroup1),min(最低分forgroup1),sum(总分forgroup1),avg(平均分forgroup1)·open事件脚本dw_1.SetTransObject(SQLCA)dw_1.Retrieve()·cb_1脚本Close(PARENT)运行结果:图表组成标题(Title):用于显示图表的作用。分类轴(CategoryAxis):分类轴上每个节点对应于分类轴的一个正文。值轴(ValueAxis):显示数据的分类。图例说明(Legend):对当前图表中的信息进行说明。系列(Series):一组相关数据点的集合,通常会并列显示。图表分类二维图表:8种。三维图表:9种。设置图表的常用属性General选项卡中的GraphType属性:用于设置图表的显示风格(见教材中的表8-1)。General选项卡中的Legend属性:设置图例说明出现的位置(见教材中的表8-2)。Data属性选项卡:设置分类轴、值轴和系列的数据源。Axis属性选项卡:设置轴属性,如分类轴、值轴和系列的名称。结果:输出打印设计“学生选课系统”的“打印输出”窗口。·instancevariables脚本datawindowi_dwtoactonstringszdescribe,szreturn,sz1,sz2,sz3,sz4·w_print_preview脚本sz2=i_dwtoacton.describe("datawindow.print.preview")sz3=i_dwtoacton.describe("datawindow.print.preview.rulers")sz1=i_dwtoacton.describe(string("datawindow.print.preview.zoom"))sz4=i_dwtoacton.describe("datawindow.print.size")cb_2.enabled=truecbx_1.enabled=truerb_6.checked=truerb_2.checked=trueCHOOSECASEsz1CASE"200"rb_1.checked=trueCASE"100"rb_2.checked=trueCASE"50"rb_3.checked=trueCASE"30"rb_4.checked=trueCASEelserb_5.checked=trueem_1.text=sz1ENDCHOOSEem_1.setfocus()·cb_1脚本;ifrb_1.Checkedthenem_1.text=“200elseifrb_2.Checkedthenem_1.text=“100elseifrb_3.Checkedthenem_1.text=“50elseifrb_4.Checkedthenem_1.text=“30endififrb_6.Checkedthensz4=”datawindow.print.paper.size=0elseifrb_2.Checkedthensz4=”datawindow.print.paper.size=39elseifrb_3.Checkedthensz4=”datawindow.print.paper.size=9endifsz1=”datawindow.print.preview.zoom=”sz2=”datawindow.print.preview=yes”sz3=”datawindow.print.preview.rulers=”ifcbx_1.checkedthensz3=sz3+”yes”elsesz3=sz3+”no”endifszreturn=i_dwtoacton.modify(sz1)szreturn=i_dwtoacton.modify(sz2)szreturn=i_dwtoacton.modify(sz3)szreturn=i_dwtoacton.modify(sz4)close(parent)·cb2脚本i_dwtoacton.modify(“datawindow.print.preview=no”)close(parent)·instancevariables脚本Datawindowi_dwtoactonStringi_szfilename·w_print_a4脚本stringszcopiesst_c_p.text="当前打印机:"+&string(i_dwtoacton.object.datawindow.printer)szcopies=string(i_dwtoacton.object.datawindow.print.copies)ifszcopies<>""andszcopies<>"0"thenem_1.text=szcopieselseem_1.text="1"endifcbx_c.checked=(UPPER(STRING(i_dwtoacton.object.datawindow.print.collate))="YES")I_SZFILENAME=trim(STRING(i_dwtoacton.object.datawindow.print.filename))cbx_file.checked=(I_SZFILENAME<>"")i_dwtoacton.modify("datawindow.print.paper.size="9")·cb_ok脚本integernindexstringszmodify,szpage,szreturn,RN,sz1RN=STRING(i_dwtoacton.getrow())ifcbx_c.checkedthenszmodify=szmodify+"datawindow.print.collate=yes"elseszmodify=szmodify+"datawindow.print.collate=no"endififcbx_file.checkedthenszmodify=szmodify+"datawindow.print.filename="+i_szfilenameelseszmodify=szmodify+"datawindow.print.filename="endifIFrb_1.checkedthensz1="datawindow.print.page.rang="elseifrb_2.checkedthenszpage=i_dwtoacton.describe("evaluate('page()',"+RN+")")sz1="datawindow.print.page.range='"+szpange+"'"elsesz1="datawindow.print.page.range='"+sle_1.text+"'"endifnindex=ddlb_1.finditem(ddlb.text,0)szmodify+"datawindow.print.page.rangeinclude="+string(nindex-1)szreturn=i_dwtoacton.modify(szmodify)i_dwtoacton.modify(sz1)i_dwtoacton.print(true)parent.visible=flsethis.setfocus()close(parent)打印输出;·w_dysc脚本dw_2.settransobject(sqlca)dw_2.retrieve()·dw_2RowFocusChanged事件脚本Stringclass//取消加亮行dw_2.SelectRow(0,FALSE)//加亮当前行dw_2.SelectRow(dw_2.GetRow(),TRUE)class=dw_2.object.class[dw_2.GetRow()]dw_1.settransobject(SQLCA)dw_1.retrieve(class)·cb_1clickedPrintSetup()·cb_2clickedDatawindowdw_dyDw_dy=dw_1Openwithparm(w_print_preview,dw_dy)·cb_3clickedDatawindowdw_dyDw_dy=dw_1Openwithparm(w_print_a4,dw_dy)·cb_4clickedClose(aprent)十,用户权限管理1.表u结构表u包括列:uno、char(4),uname、char(8),password、char(6),u、tinyint,s、tinyint,c、tinyint,sc、tinyint。其中,uno为主键。2权限分配利用表u中的u、s、c、sc字段值为1、2、3分别表示无、查询、编辑三种权限。·修改菜单m_main:用户管理学生管理课程管理选课管理系统维护增加增加增加按学生帮助删除删除删除按课程修改密码修改修改修改退出查询查询查询·w_main窗口open事件脚本intu,s,c,scselectu,s,c,scinto:u,:s,:c,:scfromuwhereuno=:g_uno;ifsqlca.sqlcode=0thenifu=1thenm_main.m_用户管理.enabled=falseelseifu=2thenm_main.m_用户管理.m_增加1.e

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论