PowerBuilder实训报告书.docx

上传人:b****5 文档编号:6067277 上传时间:2023-01-03 格式:DOCX 页数:21 大小:427.53KB
下载 相关 举报
PowerBuilder实训报告书.docx_第1页
第1页 / 共21页
PowerBuilder实训报告书.docx_第2页
第2页 / 共21页
PowerBuilder实训报告书.docx_第3页
第3页 / 共21页
PowerBuilder实训报告书.docx_第4页
第4页 / 共21页
PowerBuilder实训报告书.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

PowerBuilder实训报告书.docx

《PowerBuilder实训报告书.docx》由会员分享,可在线阅读,更多相关《PowerBuilder实训报告书.docx(21页珍藏版)》请在冰豆网上搜索。

PowerBuilder实训报告书.docx

PowerBuilder实训报告书

PowerBuilder实训报告书

重庆航天职业技术学院

重庆航天职业技术学院

继续教育学院

 

《PowerBuilder实用教程与实训》

课程设计任务报告书

 

班级:

10计算机网络

学号:

*******

姓名:

**

指导老师:

***

完成日期:

2011/12/23

 

数据库技术课程设计任务书

班级:

10计算机网络

一、课程设计名称:

`

学生成绩管理系统设计与实现

二、课程设计的目的:

通过本次课程设计,学会PB的使用方法。

三、任务要求:

1.画出系统设计图。

2.给出主要模块的设计和实现步骤。

3.给出实现代码。

四、课程设计报告书要求:

1.要求有课程设计报告书封面,封面上写清楚标题、班级、姓名、指导老师、完成日期,格式自己设计。

2.将本任务书装订在报告书的第二页。

3.第三页为教师评语。

4.第四页为目录。

5.报告书的具体内容如下:

1)系统结构图。

2)数据库建立步骤及截图。

3)系统模块实现步骤及截图。

4)具体代码。

6.报告书的最后是本次课程设计的小节和参考文献。

五、作业周期:

2011.11.15——2012.1.5

 

计算机工程系

***

重庆航天职业技术学院

教师评语

重庆航天职业技术学院

1课程设计目的……………………………5

2数据库设计………………………………5

2.1需求分析……………………….........5

2.2数据库设计内容…………………….6

2.3概念设计……………………….........6

2.4创建数据库…………………….........7

3模块及窗口设计……………………......11

3.1设计系统管理模块…………….......11

3.2设计主窗口和菜单………………...13

3.3设计输入班级信息的数据窗口…...17

3.4设计访问学生基本信息数据窗口...19

3.5设计查询班级开设课程的窗口…...20

3.6设计访问成绩信息的窗口………...23

3实训心得…………………………………27

4参考文献………………………………..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="ODBC"

SQLCA.AutoCommit=False

SQLCA.DBParm="Connectstring='DSN=xscj;UID=dba;PWD=sql'"

CONNECT;

ifSQLCA.sqlcode<>0then

messagebox("提示","数据库连接失败!

")

else

open(w_login)//打开登录窗口

endif

在工具栏上点击Database的图标

(或者Tools-Databasepainter{快捷键Shift+F7}),弹出数据库创建的对话框。

打开ODBC下拉菜单,单击[Utilities],然后双击[CreateASADatabase]。

Databasename键入xscj,保存在在D盘下的xscj文件夹的data文件夹下,如图.

 

重庆航天职业技术学院

图2-1新建xscj数据库图2-2数据库树状图

在数据库中创建表banji、jiben、bjkc、xscj、user同时为表创建主键,外键。

在数据库xscj中选中Tables,右键选择NewTable,

弹出表的创建窗口,输入表名,类型,宽度,以及是否为空。

完成后点击图标

或使用快捷键[Ctrl+S]保存。

图2-3在数据库中创建表banji

创建完成后,打开xscj的Tables下拉菜单,选中刚

刚创建的表。

右键New—primaryKey为表设置主键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],选择PBObject中的Windows。

使用CommondButton,创建一个用户登陆窗口。

在属性页面的Title框内输入登陆,使用两个Createstatictextcontrol,在其一加入图片,另一text属性文本框内输入学生成绩管理系统。

在窗口中添加GroupBox,text属性中输入请输入。

在其内添加两个statictextcontrol,text。

在statictextcontrol的text属性

输入用户名,密码。

本窗口实现用户登录控制

重庆航天职业技术学院

图3-1登陆窗口

在确定按钮下添加代码,如下:

stringls_username,ls_password

ls_username=trim(sle_1.text)//输入的用户名和密码

ls_password=trim(sle_2.text)

ifls_username=""orls_password=""then

messagebox("提示","用户名和密码不能为空")

else

SELECT"users"."name","users"."password","users"."admin"

INTO:

gs_username,:

gs_password,:

gs_admin

FROM"users"

WHERE("users"."name"=:

ls_username)AND

("users"."password"=:

ls_password);

ifsqlca.sqlcode=0then

open(w_main)//密码正确,打开主窗口

close(w_login)

else

li_n=li_n-1

ifli_n<>0then

重庆航天职业技术学院

messagebox("提示","用户名或密码错误")

else

messagebox("提示","错误超过3次,自动退出")

halt//错误超过3次,退出程序

endif

endif

endif

放弃按钮下输入代码:

halt//退出程序

3.2设计主窗口和菜单

主窗口和菜单是系统工作的主界面,本例的窗口为带帮助的多文档框架窗口。

[File|New]在PBObject下选定Menu单击OK,或者使用new小图标

弹出new的选择窗口对话框。

打开Menu窗口。

选定Untitled0右键InsertSubmenuItem,输入-系统(&S)回车,选定系统(&S)右键InsertSubmenuItem,输入-密码修改,再选定系统(&S)右键选择InsertSubmenuItem输入用户管理….使用同样的方法创建

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:

\xscj\help\xscjhelp.chm”,index!

3.3设计输入班级信息的数据窗口

菜单栏中选择【File】-【new】或点击new小图标

选择Datawindows窗口,选中Freedom单击ok。

选择【QuickSelect】类型的数据库,选中预览时检索数据的复选框,单击【Next】命令按钮,弹出【QuickSelct】数据窗口对话框。

在途中左边的【Tables】列表框中列出当前数据库中所有的表名,单击某一个表名,会在【Columns】列表框中列出该表的全部字段。

单击某个

字段名,单击右边的【AddAll】命令按钮。

完成字段选

重庆航天职业技术学院

择后单击【ok】按钮,接着弹出【SelcetColorandBorderSeting】严责和边框设置对话框。

图3-3表的选择图3-4颜色边框对话框

点击【Next】-【Finish】完成选择弹出以下对话框

 

图3-5数据窗口

单击【Save】图标

,或【File】-【Save】弹出保存对

重庆航天职业技术学院

话框,输入创建

图3-5保存对话框

数据窗口d_banjishuru生成的SQLSelct语句为:

SELCET

“banji”.”bjbh”.”banji”.”bjmc”“banji”.”zymc”.”banji”.”xz”.”banji”.”rxsj”.”banji”.”rs”

FROM”banji”

3.4设计访问学生基本信息的数据窗口

创建数据窗口d_jiben_shuru,显示风格为“Freefrom”,数据源类型为“QuickSelcet”。

数据窗口d_jiben_shuru生成的SQLselcet语句为:

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_chaxun

Title

查询班级开设课程

WindowType

Main!

Resizable

False

Center

False

Maxbox

False

Minbox

False

Dw_1

VScrolloBar

Ture

DataObject

D_bjkc_chaxun

St_1

Text

选择学期:

St_2

Text

选择班级

Cb_1

text

查询

窗口w_bjkc_chaxun的open事件脚本如下。

重庆航天职业技术学院

dw_1.settransobject(sqlca)

intli_xq,li_bjmc,n

stringls_xq,ls_bjmc

SELECTcount(distinctxq)INTO:

li_xq

FROMbjkc;

DECLARExqcursorCURSORFOR

SELECTxqFROMbjkcGROUPBYxq;

OPENxqcursor;

FORn=1TOli_xq

FETCHNEXTxqcursorINTO:

ls_xq;

ddlb_1.additem(ls_xq)

NEXT

CLOSExqcursor;

SELECTcount(distinctbjmc)INTO:

li_bjmc

FROMbanji;

DECLAREbjmccursorCURSORFOR

SELECTbanji.bjmc

FROMbjkc,banji

WHEREbjkc.bjbh=banji.bjbhGROUPBYbanji.bjmc;

OPENbjmccursor;

FORn=1TOli_bjmc

FETCHNEXTbjmccursorINTO:

ls_bjmc;

ddlb_2.additem(ls_bjmc)

NEXT

CLOSEbjmccursor;

【查询】按钮的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班级学生成绩查询

【确定】按钮的代码如下。

intli_xh,n

stringls_kcmc,ls_xq,ls_bjmc,ls_xh

ls_xq=ddlb_1.text

重庆航天职业技术学院

ls_bjmc=ddlb_2.text

ls_kcmc=ddlb_3.text

ifls_xq=""orls_bjmc=""orls_kcmc=""then

messagebox("提示","选择项不能空!

")

else

SELECTcount(distinctxh)INTO:

li_xh

FROMxsbj

WHERExsbj.bjmc=:

ls_bjmc;

DECLARExhcursorCURSORFOR

SELECTxh

FROMxsbj

WHERExsbj.bjmc=:

ls_bjmc;

OPENxhcursor;

FORn=1TOli_xh

FETCHNEXTxhcursorINTO:

ls_xh;

INSERTINTO"xscj"("xh","xq","kcmc","cj")

VALUES(:

ls_xh,:

ls_xq,:

ls_kcmc,null);

NEXT

CLOSExhcursor;

dw_1.retrieve(ls_xq,ls_kcmc)

endif

【保存】按钮的代码如下。

ifdw_1.update(true,false)=1then

dw_1.resetupdate()

commit;

cb_2.enabled=false

重庆航天职业技术学院

else

rollback;

messagebox("错误","保存数据失败!

")

endif

【退出】按钮代码如下。

close(parent)

课程的下拉列表框的Getfocus事件脚本如下。

intli_kcmc,n

stringls_kcmc,ls_xq,ls_bjmc

ls_xq=ddlb_1.text

ls_bjmc=ddlb_2.text

ifnot(ls_xq=""orls_bjmc="")then

SELECTcount(distinctbjkc.kcmc)INTO:

li_kcmc

FROMbjkc,banji

WHERE(bjkc.bjbh=banji.bjbh)and(banji.bjmc=:

ls_bjmc)and(bjkc.xq=:

ls_xq);

DECLAREkcmccursorCURSORFOR

SELECTbjkc.kcmc

FROMbjkc,banji

WHERE(bjkc.bjbh=banji.bjbh)and(banji.bjmc=:

ls_bjmc)and(bjkc.xq=:

ls_xq)

GROUPBYbjkc.kcmc;

ddlb_3.reset()

重庆航天职业技术学院

OPENkcmccursor;

FORn=1TOli_kcmc

FETCHNEXTkcmccursorINTO:

ls_kcmc;

ddlb_3.additem(ls_kcmc)

NEXT

CLOSEkcmccursor;

endif

窗口的Closequery事件脚本如下。

integerrt

dw_1.accepttext()

ifdw_1.modifiedcount()=0then

return0

else

rt=messagebox(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1