




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
重庆航天职业技术学院 重庆航天职业技术学院继续教育学院PowerBuilder实用教程与实训课程设计任务报告书班级:10计算机网络学号:*姓名:*指导老师:*完成日期:2011/12/23数据库技术课程设计任务书班级:10计算机网络一、 课程设计名称:学生成绩管理系统设计与实现二、 课程设计的目的:通过本次课程设计,学会PB的使用方法。三、 任务要求:1 画出系统设计图。2 给出主要模块的设计和实现步骤。3 给出实现代码。四、 课程设计报告书要求:1 要求有课程设计报告书封面,封面上写清楚标题、班级、姓名、指导老师、完成日期,格式自己设计。2 将本任务书装订在报告书的第二页。3 第三页为教师评语。4 第四页为目录。5 报告书的具体内容如下:1) 系统结构图。2) 数据库建立步骤及截图。3) 系统模块实现步骤及截图。4) 具体代码。6 报告书的最后是本次课程设计的小节和参考文献。五、 作业周期:2011.11.152012.1.5计算机工程系 *重庆航天职业技术学院 教师评语重庆航天职业技术学院 目录1 课程设计目的52 数据库设计52.1 需求分析.52.2 数据库设计内容.62.3 概念设计.62.4 创建数据库.73 模块及窗口设计.113.1 设计系统管理模块.113.2 设计主窗口和菜单.133.3 设计输入班级信息的数据窗口.173.4 设计访问学生基本信息数据窗口.193.5 设计查询班级开设课程的窗口.203.6 设计访问成绩信息的窗口.233实训心得274 参考文献.27重庆航天职业技术学院 引言数据库技术,已经成为先进信息技术的重要组成部分,是现代计算机信息系统和计算机应用系统的基础和核心。数据库从诞生到现在,在不到半个世纪的时间里,形成了坚实的理论基础、成熟的商业产品和广泛的应用领域,吸引越来越多的研究者加入。计算机技术不断地应用到各行各业,大量的企业把数据存放在数据库中,并且通过T相关的代码语句来进行快速查询,获取比传统方式更高的效率。为了进一步加深和巩固我们所学的PowerBuilder实用教程和实训的基础理论知识,使我们所学的理论能够更好的和实际的专业连接起来。是学生得到收集、处理、应用资料信息的实践训练,同时全面的考核学生所掌握的基础理论知识及其实际的专业能力,从而达到提高学生素质的最终目的。学校安排了实训课程,在这段时间里,希望阩能够利用所学到的只是穿件一个图书管理的数据系统,来达到图书管理的需要。 2011.12.20重庆航天职业技术学院 1 课程设计目的通过本次课程设计,学会PB的使用方法。2 数据库设计熟悉PowerBuilder实用教程和实训实训环境,熟练掌握数据库、表、窗口界面的设计、图形按钮的添加、数据库的链接及函数的创建与应用,确立数据库创建的方向,对图书管理系统进行分析并设计系统实现需要哪几张表以及各表结构,确立数据库创建要求,优化数据库界面的设计。2.1 需求分析书籍是人类进步的阶梯,人类进步的精神粮食。因此,读书显得格外重要。所以学生成绩系统应该是能够为阅读者提供充足的信息和快捷的查询手段的一种方式。学生成绩管理工作繁琐,查阅繁琐,包含大量的信息数据,因此就需要一个完善的学生成绩管理系统来实现对这些数据的有效管理。从而达到领导、老师对查询学生成绩信息进行统一管理,满足用户的需要。重庆航天职业技术学院 随着计算机信息技术的发展,数据库作为信息技术的一部分也在飞速的发展着。使用数据库对图书资源尽心管理工具有着手工管理无法比拟的有点,它检索迅速、查找方便、可靠性高、存储量大、成本低,所以数据库成为了图书管理最主要的选择。2.2数据库设计内容利用PowerBuilder开发一个小型图书管理系统改图书管理系统主要有一下几个功能:图书类型信息查询和编辑,图书信息的查询和编辑,用户的查询和编辑,借阅还书记录的生成和查询。2.3 概念设计概念设计是在需求分析基础上的,用概念数据模型来表述数据以及数据之间的相互联系,从上述的分析中得到图书管理系统的E-R图。重庆航天职业技术学院 性别姓名修课班级编号班级教师学期家庭住址开设系统E-R图出生日期学号班级班号学生学期所属成绩班级名称学时专业课程学制人数课程名称入学时间2.4 创建数据库数据库是一个数据库系统的核心,一切数据都存储在数据库中,我们所进行的数据的查找,删除,更改等行为都是要进入数据库中的。要创建数据库管理系统,那么我们首先要创建一个数据库。重庆航天职业技术学院 在D盘的新建xscj文件夹,再新建data文件夹。打开powerBuilder,新建一个工作空间和应用。在应用open中输入代码:/连接数据库SQLCA.DBMS = ODBCSQLCA.AutoCommit = FalseSQLCA.DBParm = Connectstring=DSN=xscj;UID=dba;PWD=sqlCONNECT;if SQLCA.sqlcode0 thenmessagebox(提示,数据库连接失败!)else open(w_login) /打开登录窗口end if在工具栏上点击Database的图标(或者Tools-Database painter快捷键Shift+F7),弹出数据库创建的对话框。打开ODBC下拉菜单,单击Utilities,然后双击Create ASA Database。Database name键入xscj,保存在在D盘下的xscj文件夹的data文件夹下,如图.重庆航天职业技术学院 图2-1 新建xscj数据库 图 2-2 数据库树状图在数据库中创建表banji、jiben、bjkc、xscj、 user同时为表创建主键,外键。在数据库xscj中选中Tables,右键选择NewTable,弹出表的创建窗口,输入表名,类型,宽度,以及是否为空。完成后点击图标或使用快捷键Ctrl+S 保存。图 2-3 在数据库中创建表banji创建完成后,打开xscj的Tables下拉菜单,选中刚刚创建的表。右键NewprimaryKey为表设置主键bjbh。使用同样的方法建立表jiben,bjkc,xscj,user如图所示:重庆航天职业技术学院 图 2-4 在数据库中创建表jiben图2-5 在数据库中创建表 xscj 图 2-6 在数据库中创建表users分别为其设置主键xh,xm表的关联关系:bjkc-foreignkey关联banji-primarykey Jiben-primarykey关联jiben-foreignkey Jinben-primarykey关联xscj-foreignkey 重庆航天职业技术学院 图 2-7 表的关联关系3.1系统模块设计点击工具栏的新建图标,或者File-new,选择PB Object中的Windows。使用CommondButton,创建一个用户登陆窗口。在属性页面的Title框内输入登陆,使用两个Create static text control,在其一加入图片,另一text属性文本框内输入学生成绩管理系统。在窗口中添加GroupBox,text属性中输入请输入。在其内添加两个static text control,text。在static text control的text属性输入用户名,密码。本窗口实现用户登录控制重庆航天职业技术学院 图 3-1 登陆窗口在确定按钮下添加代码,如下: string ls_username, ls_password ls_username=trim(sle_1.text) /输入的用户名和密码 ls_password=trim(sle_2.text) if ls_username= or ls_password= then messagebox(提示,用户名和密码不能为空) else SELECT , users.password, users.admin INTO :gs_username, :gs_password, :gs_admin FROM users WHERE ( = :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_n0 then重庆航天职业技术学院 messagebox(提示,用户名或密码错误) elsemessagebox(提示,错误超过3次,自动退出)halt /错误超过3次,退出程序 end if end if end if放弃按钮下输入代码:halt /退出程序3.2 设计主窗口和菜单主窗口和菜单是系统工作的主界面,本例的窗口为带帮助的多文档框架窗口。File|New 在PB Object下选定Menu单击OK,或者使用new小图标弹出new的选择窗口对话框。打开Menu窗口。选定Untitled0右键Insert Submenu Item,输入-系统(&S)回车,选定系统(&S)右键Insert Submenu Item,输入-密码修改,再选定系统(&S)右键选择Insert Submenu Item输入用户管理.使用同样的方法创建Menu的菜单结构。如图所示:重庆航天职业技术学院 图3-2 系统树形菜单结构窗口【系统】菜单下【密码修改】菜单项的Clicked事件脚本如下。Open(w_mmxg)【系统】菜单下【用户管理】菜单项的Clicked事件脚本如下。Open(w_yhgl)【系统】菜单下【退出系统】菜单项的Clicked事件脚本如下。Close(parentwindow)【班级管理】菜单下【录入班级信息】菜单项的Clicked重庆航天职业技术学院 事件脚本如下。Open(w_banji_shuru,w_main,6,Original!)【班级管理】菜单下【修改班级信息】菜单项的Clicked事件脚本如下。Open(w_banji_xiugai,w_main,6,original)【班级管理】菜单下【浏览班级信息】菜单项的Clicked事件脚本如下。Opensheet(w_banji_xiugai,w_main,6,original!)【学生管理】菜单下【录入学生信息】菜单项的Clicked事件脚本如下。Opensheet(w_jiben_shuru,w_main,6,original!)【学生管理】菜单下【修改学生信息】菜单项的Clicked事件脚本如下。Opensheet(w_jiben_xiugai,w_main,6,original!)【学生管理】菜单下【查询学生信息】菜单项的Clicked事件脚本如下。Opensheet(w_jiben_chaxun,w_main,6,original!)【课程管理】菜单下【录入/修改开设课程】菜单项重庆航天职业技术学院 的Clicked事件脚本如下。Opensheet(w_bjkc_shuruxiugai,w_main,6,original!)【课程管理】菜单下【查询开设课程信息】菜单项的Clicked事件脚本如下。Opensheet(w_bjkc_chaxun,w_main,6,original!)【成绩管理】菜单下【录入修改成绩】菜单项的Clicked事件脚本如下。Opensheet(w_xscj_shuru,w_main,6,original!)【成绩管理】菜单下【查询个人成绩】菜单项的Clicked事件脚本如下。Opensheet(w_xscj_grcx,w_main,6,original!)【成绩管理】菜单下【查询班级成绩】菜单项的Clicked事件脚本如下。Opensheet(w_xscj_bjkc,w_main,6,original!)【成绩管理】菜单下【查询课程成绩】菜单项的Clicked事件脚本如下。Opensheet(w_xscj_kccx,w_main,6,original!)【窗口】菜单下【层叠窗口】菜单项的Clicked事件重庆航天职业技术学院 脚本如下。W_main.arrangesheets(cascade!)功能是将主窗口打开的子窗口以层叠方式排列。【帮助】菜单下【关于】菜单项的Clicked事件脚本如下。Open(w_about)【帮助】菜单下【关于】菜单项的Clicked事件脚本如下。ShowHelp(“d:xscjhelpxscjhelp.chm”,index!)3.3 设计输入班级信息的数据窗口菜单栏中选择【File】-【new】或点击new小图标选择Datawindows窗口,选中Freedom单击ok。选择【Quick Select】类型的数据库,选中预览时检索数据的复选框,单击【Next】命令按钮,弹出【Quick Selct】数据窗口对话框。在途中左边的【Tables】列表框中列出当前数据库中所有的表名,单击某一个表名,会在【Columns】列表框中列出该表的全部字段。单击某个字段名,单击右边的【Add All】命令按钮。完成字段选重庆航天职业技术学院 择后单击【ok】按钮,接着弹出【Selcet Color and Border Seting】严责和边框设置对话框。图 3-3 表的选择 图 3-4 颜色边框对话框点击【Next】-【Finish】完成选择弹出以下对话框 图 3-5 数据窗口 单击【Save】图标,或【File】-【Save】弹出保存对重庆航天职业技术学院 话框,输入创建 图 3-5 保存对话框数据窗口d_banjishuru生成的SQL Selct语句为:SELCET “banji”.”bjbh”.”banji”.”bjmc” “banji”.”zymc”.”banji”.”xz”.”banji”.”rxsj”.”banji”.”rs”FROM”banji”3.4 设计访问学生基本信息的数据窗口创建数据窗口d_jiben_shuru,显示风格为“Freefrom”,数据源类型为“Quick Selcet”。数据窗口d_jiben_shuru生成的SQL selcet语句为:SELCET重庆航天职业技术学院 “jiben”.”xh”、”jiben”.”xm”.”jiben”.”xb”.”jiben”.”csrq”、”jiben”.”jtzz”、”jiben”.”bjbh.FROM ”jiben”图 3-4 学生基本信息窗口3.5 设计查询班级开设课程的窗口首先创建一个窗口对象w_bjkc_chaxun,调整期大小,在窗口中放置2个静态文本控件(st_1,st_2)、2个下拉列表框控件(ddlb_1,ddlb_2)、1个命令按钮(cb_1)1个数据窗口控件(dw_1),调整各个控件的位置和大小。位置窗口及其控件的属性见一下表。图 3-5 查询班级开设的课程的窗口重庆航天职业技术学院 对象属性取值W_bjkc_chaxunTitle查询班级开设课程Window TypeMain!ResizableFalseCenterFalseMaxboxFalseMinboxFalseDw_1VScrolloBarTureDataObjectD_bjkc_chaxunSt_1Text选择学期:St_2Text选择班级Cb_1text查询窗口w_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 FOR SELECT 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 bjmc) INTO :li_bjmcFROM banji;DECLARE bjmccursor CURSOR FOR SELECT banji.bjmc FROM bjkc, banji WHERE bjkc.bjbh = banji.bjbh GROUP BY banji.bjmc;OPEN bjmccursor ;FOR n=1 TO li_bjmcFETCH NEXT bjmccursor INTO :ls_bjmc;ddlb_2.additem( ls_bjmc)NEXTCLOSE bjmccursor ;【查询】按钮的clicked事件脚本如下Dw_1.retrieve(ddlb_1.text、ddlb_2.text)重庆航天职业技术学院 3.6 设计访问成绩信息的窗口首先新建窗口对象w_xscj_shuru,在窗口上放置1个分组框控件、3个静态文本控件、3个下拉列表框控件、3个命令窗口按钮控件和1个数据窗口控件其中,【保存】按钮的enabled属性设成False;数据窗口控件调整到只显示学号、姓名和成绩3列,VScrollBar属性设置为Ture,数据窗口对象为d_xscj_shuru;3个下拉菜单列表框控件的列表项为空,由代码动态生成。图 3-6 班级学生成绩查询 【确定】按钮的代码如下。int li_xh, nstring ls_kcmc, ls_xq, ls_bjmc, ls_xhls_xq=ddlb_1.text重庆航天职业技术学院 ls_bjmc=ddlb_2.textls_kcmc=ddlb_3.textif ls_xq= or ls_bjmc= or ls_kcmc= thenmessagebox(提示, 选择项不能空!)else SELECT count(distinct xh) INTO :li_xh FROM xsbj WHERE xsbj.bjmc=:ls_bjmc; DECLARE xhcursor CURSOR FOR SELECT xh FROM xsbj WHERE 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 ); NEXT CLOSE xhcursor ; dw_1.retrieve(ls_xq,ls_kcmc )end if【保存】按钮的代码如下。if dw_1.update(true,false )=1 thendw_1.resetupdate( )commit; cb_2.enabled=false重庆航天职业技术学院 elserollback;messagebox(错误,保存数据失败!)end if【退出】按钮代码如下。close(parent)课程的下拉列表框的Getfocus事件脚本如下。int li_kcmc,nstring ls_kcmc, ls_xq, ls_bjmcls_xq=ddlb_1.textls_bjmc=ddlb_2.textif not(ls_xq= or ls_bjmc=) then SELECT count(distinct bjkc.kcmc) INTO :li_kcmc FROM bjkc,banji WHERE (bjkc.bjbh = banji.bjbh) and(banji.bjmc=:ls_bjmc) and
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全生产例会报道
- 招投标从业证考试题型及答案解析
- 儿童自我安全测试题及答案解析
- 河北腾辉安全培训考试题及答案解析
- 香港证监从业考试及答案解析
- 加油站安全员换证题库及答案解析
- 基金从业资格证认证考试及答案解析
- 中石油岗前考试内容及答案解析
- 保险从业考试保险经纪人及答案解析
- 银行从业确认参加考试及答案解析
- 学堂在线 英文科技论文写作与学术报告 期末考试答案
- 护理安全警示教育案例
- 车辆损坏和解协议书
- 《围城》介绍课件
- 品控管理制度大全
- 洗衣房院感知识培训课件
- XX附属学校职称评聘及岗位聘任实施办法(完整版)
- DBJ51-T 040-2021 四川省工程建设项目招标代理操作规程
- 创新方法大赛理论知识考核试题题库及答案
- 电机车点检表及点检标准
- 高一英语必修一单词表默写版
评论
0/150
提交评论