PB课程设计Word格式.doc

上传人:wj 文档编号:1452819 上传时间:2023-04-30 格式:DOC 页数:24 大小:365KB
下载 相关 举报
PB课程设计Word格式.doc_第1页
第1页 / 共24页
PB课程设计Word格式.doc_第2页
第2页 / 共24页
PB课程设计Word格式.doc_第3页
第3页 / 共24页
PB课程设计Word格式.doc_第4页
第4页 / 共24页
PB课程设计Word格式.doc_第5页
第5页 / 共24页
PB课程设计Word格式.doc_第6页
第6页 / 共24页
PB课程设计Word格式.doc_第7页
第7页 / 共24页
PB课程设计Word格式.doc_第8页
第8页 / 共24页
PB课程设计Word格式.doc_第9页
第9页 / 共24页
PB课程设计Word格式.doc_第10页
第10页 / 共24页
PB课程设计Word格式.doc_第11页
第11页 / 共24页
PB课程设计Word格式.doc_第12页
第12页 / 共24页
PB课程设计Word格式.doc_第13页
第13页 / 共24页
PB课程设计Word格式.doc_第14页
第14页 / 共24页
PB课程设计Word格式.doc_第15页
第15页 / 共24页
PB课程设计Word格式.doc_第16页
第16页 / 共24页
PB课程设计Word格式.doc_第17页
第17页 / 共24页
PB课程设计Word格式.doc_第18页
第18页 / 共24页
PB课程设计Word格式.doc_第19页
第19页 / 共24页
PB课程设计Word格式.doc_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

PB课程设计Word格式.doc

《PB课程设计Word格式.doc》由会员分享,可在线阅读,更多相关《PB课程设计Word格式.doc(24页珍藏版)》请在冰点文库上搜索。

PB课程设计Word格式.doc

任务书…………………………………………

教师评语………………………………………1

前言……………………………………………2

目录……………………………………………3

正文……………………………………………

1.1数据库的设计与实现………………………………………4

1.2创建应用对象………………………………………………6

1.3设计系统管理模块…………………………………………7

1.4设计主窗口和菜单…………………………………………11

1.5设计班级管理模块…………………………………………14

1.6设计学生基本信息管理模块………………………………16

1.7设计课程管理模块…………………………………………18

1.8设计成绩管理系统…………………………………………20

1.9系统的编译和发布…………………………………………21

小结……………………………………………22

参考文献………………………………………23

正文

1.1数据库设计与实现

1.1.1数据库设计

根据学生成绩管理系统的功能要求,通过分析系统要涉及的相关实体以及要收集,存储和操纵的数据信息,得到如图1.1所示的系统E-R图。

根据系统E-R图得到以下关系模式:

班级(班级编号,班级名称,所属专业,学制,入学时间,人数).

学生基本信息(学号,姓名,性别,出生日期,家庭住址,班级编号).

课程(班级编号,学期,课程名称,学时,教师).

成绩(学号,学期,课程名称,成绩).

为了系统的使用安全,要建立用户管理,而用户使用权限分为管理员和一般用户两类,因此需要建立一个存储用户信息的关系.

用户(姓名,密码,权限).

性别

姓名

学号

出生日期

家庭住址

班级编号

学生

所属

班级

开设

课程

修课

班级名称

专业

学制

入学时间

人数

学期

教师

课程名称

学时

成绩

图1.1系统E-R图

1.1.2创建数据库

先要在D盘根目录下建立一个工作夹命名为“xscj”,然后在“D:

\xscj”文件夹下建立“data”,来存储数据库文件。

在PowerBuilder开发环境中打开数据库画板,使用[ODBODBC]接口建立AdaptiveserverAnywhere8.0(ASA8.0)的数据库D:

\xscj\data\xscj.db,然后建立以下5个表和1个视图。

1.“班级”表

表名:

banji

主键:

bjbh

各个键的属性见表1-1。

表1-1“班级”表的列属性

列名

数据类型

宽度

小数位

空值

标题

(Heading)

标签

(Label)

Bjbh

Char

6

NO

班级编号:

Bjmc

varchar

20

班级名称:

Zymc

专业名称

专业名称:

Xz

Numeric

1

学制:

Rxsj

Data

入学时间:

Rs

YES

人数:

根据如上图所示的关系模式确定需建立的数据库和表,除了建“Banji”之外还有“jiben”主键是“xh”;

“bjkc”主键是“bjbh,xq,kcmc”;

“xscj”主键是“xh,xq,kcmc”;

“users”主键是“xm”。

各表之间通过外键形成如下图所示的关联关系。

图1.2表的关联关系

2.视图

为了访问数据库方便,还建立了一个视图“xsbj”,该视图由学生基本信息表和班级表连接而成,对应的SQL语句如下:

CREATEVIEWxsbj(xh,xm,xb,csrq,bjbh,bjmc,zymc)AS

SELECT

JIBEN.xh,jiben.xm,jiben.xb,jiben.csrq,jiben.bjbh,banji.bjmc,banji.zymc

FROMDBA.banji,DBA.jiben

WHERE(jiben.bjbh=banji.bjbh)

完成数据库和表的创建后,可以在数据库画板中向数据库输入部分数据。

其中,“用户”表中必须输入一条记录(“admin”,“12345”,“y”),作为进入系统默认的管理员,即姓名为“admin”,密码为:

“12345”。

1.2创建应用对象

完成数据库的设计和系统功能设计之后,开始各种功能模块的实现,在PB中开发应用程序时,就是创建各种对象,为对象设置属性及编写事件脚本的过程

(1)创建新的工作空间,工作空间设为:

“d:

\xscj\xscj.pbw”。

(2)创建应用对象设为“app_xscj”,应用库文件的路径:

“d:

\xscj\xscj.pbl”,目标文件:

\xscj\xscj.pbt”.

(3)打开应用对象画板应用对象的icon属性设置为“d:

\xscj\BOOKS.ICO”.(预先准备的图标文件)。

(4)为应用对象的open事件编写代码如下

SQLCA.DBMS="

ODBC"

SQLCA.AutoCommit=False

SQLCA.DBPARM="

Connectstring='

DSN=aa;

UID=dba;

PWD=sql'

"

Connect;

ifSQLCA.sqlcode<

>

0Then

messagebox("

提示"

"

数据库连接失败!

else

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

endif

1.3设计系统管理模块

本模块实现用户登陆控制,用户自己的密码修改和用户管理,其中包括修改用户信息,添加新用户,删除用户,只有管理员有此权限。

1.3.1设计登陆窗口

登陆窗口如图1.3所示。

图1.3登陆窗口

1.创建窗口并设置属性

创建登录窗口W_login,在窗口上放置1个图片控件(p_1)。

3个静太文本(st_1,st_2,st_3),1个成组框控件(g_1),2个单行编辑起控件(sle_1,sle_2),2个命令按钮(cb_1,cb_2)

2.编写脚本

(1)定义全局变量。

Stringgs_username,gs_password,gs_admin

(2)定义实例变量。

Intli_n

(3)登陆窗口w_login的open事件脚本

li_n=3

注:

初始化变量li_n,限制出错次数为3次。

(4)

【确定】按钮cb_1的clicked事件脚本如下:

stringls_username,ls_password

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

ls_password=trim(sle_2.text)

ifls_username="

orls_password="

then

messagebox("

用户名和密码不能为空"

SELECT"

users"

."

name"

password"

admin"

INTO:

gs_username,:

gs_password,:

gs_admin

FROM"

WHERE("

=:

ls_username)AND

("

ls_password);

ifsqlca.sqlcode<

0then

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

close(w_login)

li_n=li_n-1

ifli_n<

用户名或密码错误"

错误超过3次,自动退出"

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

endIf

(5)

【放弃】按钮cb_2的clicked事件脚本如下:

halt//退出程序

1.3.2设计密码修改窗口

密码修改窗口如图1.4所示。

图1.4密码修改窗口

1.创建窗口并设置属性

2.编写脚本

(1)[确定]按钮cb_1的Clicked事件脚本如下.

stringls_password

iftrim(sle_1.text)<

gs_passwordthen

旧密码错误"

iftrim(sle_2.text)=trim(sle_3.text)then

ls_password=trim(sle_2.text)

update"

set"

where("

gs_username)and

("

gs_password);

ifsqlca.sqlcode<

0then

messagebox("

密码修改不成功!

else

close(parent)

密码修改完成"

endif

两次新密码不相同"

(2)[取消]按钮cb_2的Clicked事件脚本如下

close(parent)

1.3.3设计用户管理的数据窗口

用户管理窗口如图1.5所示。

图1.5用户管理窗口

1.设计数据窗口

创建数据窗口”d_yhgl”,显示风格为”Grid”,数据源类型为”QuickSelect”,布局如图1.6所示。

其控件”admin”的编辑风格改为”DropDownListBox”,码表(CodeTable)如图1.6所示。

数据窗口d_yhgl生成的SQL.select语句为:

SELECT“users”.”name”,”users”.”password”,”users”.”admin”FROM”users”

图1.6数据窗口d_yhgl

2.创建窗口并设置属性

3.编写脚本

写脚本

(1)用户管理窗口的open事件如下:

dw_1.settransobject(sqlca)

dw_1.retrieve()

(2)用户管理窗口的closequery事件脚本如下|:

integerrt

dw_1.accepttext()

ifdw_1.modifiedcount()=0anddw_1.deletedcount()=0then

return

return1

(3)数据窗口控件的Itemchanged事件脚本如下:

cd_3.enabled=true//激活保存按钮

(4)添加】按钮的clicked事件家如下

integerrow

row=dw_1.insertrow(0)

dw_1.scrolltorow(row)

【删除】按钮的clicked事件脚本如下:

dw_1.deleterow(0)

cb_3.enabled=true

(6)

【保存】按钮的clicked事件如下:

(7)

【退出】按钮的clicked的事件脚本如下:

1.4设计主窗口和菜单

1.4.1创建菜单对象

1设计登录窗口

菜单结构如图1.7所示,菜单名为“m_main”,菜单栏中的菜单项设置了访问键(Accesskey),常用的菜单项设置了快捷键(如|:

【退出系】的快捷键为【ALT+F4】,【录入班级信息】的快捷键为【CTRL+A】),最常用的菜单项在工具条上建立了按钮。

2编写脚本

(1)

【系统】菜单下的【密码修改】的clicked事件脚本如下:

open(w_mmxg)

(2)

【系统】菜单下的【用户管理】的clicked事件脚本如下:

open(w_yhgl)

(3)

【系统】菜单下的【退出系统】的click事件脚本如下:

close(parentwindow)

【班级管理】菜单下的【录入班级信息】的clicked事件脚本如下:

opensheet(w_banji_shuru,w_main,6,original!

【班级管理】菜单下的【修改班级信息】的clicked事件如下:

opensheet(w_banji_xiugai,w_main,6,original!

【班级管理】菜单下的【浏览班级信息】的clicked事件:

opensheet(w_banji_liulan,w_main,6,ooriginal!

【学生管理】菜单的【录入学生信息】的clickeds事件:

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_mian,6,original!

(10)

【课程管理】菜单下的【录入/修改开设课程】的ckicked事件如下:

opensheet(w_bjkc_shuruxiugai,w_main,6,original!

(11)

【课程管理】菜单下的【查询开设课程】的clicked事件:

opensheet(w_bjkc_chaxun,w_mnain,6,original!

(12)

【成绩管理】菜单下的【录入修改成绩】的clicked事件:

opensheet(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)

opensheet(w_xscj_kccj,w_main,6,original!

(16)

【窗口】菜单下的【层叠窗口】的clicked事件如下:

w_main.arrangesheets(cascade!

(17)

【帮助】菜单下的【关于】的clicked事件如下:

open(w_about)

(18)

【帮助】菜单下的【联机帮助】的clicked事件如下:

showHelp(“d:

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

图1.7菜单结构

其功能是打开创建好的帮助文件”d:

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

参数表示打开帮助的索引页。

PowerBulider本身没有提供制作帮助文件的工具,可以借助专门的制作工具实现,在PowerBulider中可以使用ShowHelp()函数打开

1.4.2设计主窗口

本例的主窗口界面如图1.8所示。

图1.8主窗口界面

创建窗口对象w_main,

表1-2主窗口的属性

对象

属性

取值

W_main

Title

学生成绩管理系统

Windowtype

Mdihelp

MenuName

M_main

windowstste

maximized

创建窗口对象w_main的Open事件脚本如下。

ifgs_admin=’n’then

m_main.m_系统.m_用户管理.enabled=false

其功能是非管理员用户进入系统时关闭[用户管理]菜单项。

1.5设计班级管理模块

1.5.1设计访问班级信息的数据窗口

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

创建数据窗口d_banji_shuru,显示风格为”Freeform”,数据源类型为“Quickselect”,布局图略:

数据窗口生成的SQLselect语句为:

SELECT“banji”.“bjbh”,“banji”.“bjmc”“Banji”.zymc”,“banji”.“xz”,“banji”.“rsxj”,“banji”.“rs”

FROM“banji”

2.设计修改班级信息的数据窗口

创建数据窗口d_banji_xiugai,显示风格为“Grid”,数据源类型为“QuickSelect”,布局图略:

数据窗口生成的SQLSelect语句为:

SELECT“banji”.”bjbh”,”banji”.”bjmc”,”banji”.

“zymc”,”banji”.”xz”,”banji”.”rxsj”,”banji”.”rs”

ORDERBY“banji”.”bjbh”ASC

1.5.2设计访问学生信息窗口

1.设计输入窗口

创建窗口对象w_shuru,放置一个数据窗口控件,八个命令按钮,如下图1.9所示。

图1.9输入窗口

(1)

【〈〈〉按钮的clicked事件脚本:

dw_1.scrolltorow

(1)

(2)

【<

】按钮的clicked事件脚本:

dw_1.scrollnextrow()

【>

dw_1.scrolltotrow(dw_1.rowcount())

2.设计修改窗口

创建窗口对象w_xiugai,放置一个数据窗口控件,四个命令按钮:

窗口布局如下图1.10所示。

图1.10修改窗口

窗口和控件的事件脚本与以上输入窗口的对应相同

3.设计输入班级信息窗口

通过继承输入窗口w_shuru生成输入班级信息窗口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.11所示。

图1.11班级信息浏览窗口

窗口的open事件脚本如下:

dw_1.settransobject(sqlca)

1.6设计学生基本信息

本模块实现学生基本信息的输入、修改和查询。

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

1.设计输入学生基本信息的数据窗口

创建数据窗口d_jiben_shuru,显示风格为“”,数据源类型为“”其布局如图略

其中,列控件“xb”的编辑风格改为“RadloButtons”,列控件“bjbh”的编辑风格为“DropDownw”,其(DataWindow)属性设置为“d_banji_xiugai”,(DispiayColumn)和(DataColumn)属性都设置为“300”,(LiesinDropDown)属性设置为“6”。

(VScrollbar)属性设置为“True”.

数据窗口生成的SQLselect语句为

SELECT”jiben”.”xh”,”jiben”.”xm”,”jiben”.”xb”,”jiben”.”csrq”,”jiben”.”jizz”,”jiben”.”bjbh”

FROM“jiben”

2.设计修改学生基本信息的数据窗口

创建数据窗口d_jiben_xiugai,显示风格为“”,数据源类型为“”,数据窗口生成的SQLselect语句为:

SELECT“jiben”.”xh”,”jiben”.”xm”,”jiben”.”xb”,

“jiben”.”csrq”,”jiben”.”jizz”,”jiben”.”bjbh”

FROM“jiben”

ORDERBY|“jiben”.”xh”ASC

3.设计查询学生基本信息窗口

创建数据窗口为d_jiben_chaxun,显示风格为“Grid”,数据源类型为“SQLselect”,

其中定义3个string型检索参数变量mxh、mxm、mbj,

数据窗口生成的SQLelect语句为:

SELECT“banji”.”bjmc”,”jiben”.”xh”,”jiben”.

“xm”,”jiben”.”xb”,”jiben”.”csrq”,”jiben”.”jtzz”,”banji”

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

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2