数据库程序题代码.docx
《数据库程序题代码.docx》由会员分享,可在线阅读,更多相关《数据库程序题代码.docx(13页珍藏版)》请在冰豆网上搜索。
数据库程序题代码
实验一计算器设计
一、实验目的
1、熟悉PowerBuilder运行环境;
2、掌握PowerBuilder数据窗口的创建及使用。
二、实验内容
1、用PowerBuilder实现如下计算器(图1):
(CTRL+C:
复制按钮及按钮中的代码;CTRL+T:
复制按钮但不复制按钮中相应的代码)
(1)声明变量
decimaldata//保存中间结果
charstr//保存按下的运算符
intflag//flag=1表示按下的数字是前面数字的一部分,flag=0表示按下的数字是一个新的数字的开始
(2)十个数字按钮和小数点按钮代码
ifflag=0then
sle_1.text=""
flag=1
endif
sle_1.text=sle_1.text+this.text
(3)+、-、*、/运算按钮代码
choosecasestr
case'*'
sle_1.text=string(dec(sle_1.text)*data)
case'/'
sle_1.text=string(data/dec(sle_1.text))
case'+'
sle_1.text=string(dec(sle_1.text)+data)
case'-'
sle_1.text=string(data-dec(sle_1.text))
endchoose
data=dec(sle_1.text)
str=this.text
flag=0
(4)“清除”按钮代码
sle_1.text=""
data=0
str=''
flag=0
(5)“=”按钮代码
choosecasestr
case'*'
sle_1.text=string(dec(sle_1.text)*data)
case'/'
sle_1.text=string(data/dec(sle_1.text))
case'+'
sle_1.text=string(dec(sle_1.text)+data)
case'-'
sle_1.text=string(data-dec(sle_1.text))
endchoose
flag=0
str=''
(6)“应用程序”open事件代码
open(w_calculator)
实验二计算器设计
求一元二次方程的实根:
ax2+bx+c=0(如图2)
建六个静态文本框(st_1、st_2、st_3、st_4、st_5、st_6),五个单行编辑框(sle_1、sle_2、sle_3、sle_4、sle_5),三个命令按钮(cb_1、cb_2、cb_3)
(图2)
(1)“求解”按钮代码
deca,b,c,d,x1,x2
a=dec(sle_1.text)
b=dec(sle_2.text)
c=dec(sle_3.text)
d=b*b-4*a*c
ifd>=0then
x1=(-b+sqrt(d))/(2*a)
x2=(-b-sqrt(d))/(2*a)
sle_4.text=string(round(x1,6))
sle_5.text=string(round(x2,6))
else
messagebox("提示","方程无实根")
endif
(2)“清除”按钮代码
sle_1.text=""
sle_2.text=""
sle_3.text=""
sle_4.text=""
sle_5.text=""
(3)“退出”按钮代码
close(w_aa)
(4)应用程序open事件代码
open(w_aa)
实验三数据库的设计
一、实验目的
1、熟悉PowerBuilder运行环境;
2、掌握PowerBuilder数据窗口的创建及使用。
二、实验内容
1、建立数据库(有三个数据表)
(1)建立学生信息表s:
表1
sno
sname
sex
age
sedept
9801
李铭
男
19
计算机软件
9802
刘晓鸣
男
20
计算机应用
9806
刘成刚
男
21
计算机软件
9807
王铭
男
22
计算机应用
9808
宣明尼
女
18
计算机应用
9809
柳红利
女
19
计算机软件
9803
李明
男
22
计算机应用
9804
张鹰
女
21
计算机软件
9805
刘竟静
女
22
计算机软件
创建S表的SQL命令如下:
createtableS(snochar(4),snamechar(8),sexchar
(2),agechar
(2),sdeptchar(10));
insertintoSvalues('9801','李铭','男','19','计算机软件');
insertintoSvalues('9802','刘晓鸣','男','20','计算机应用');
insertintoSvalues('9806','刘成刚','男','21','计算机软件');
insertintoSvalues('9807','王铭','男','22','计算机应用');
insertintoSvalues('9808','宣明尼','女','18','计算机应用');
insertintoSvalues('9809','柳红利','女','19','计算机软件');
insertintoSvalues('9803','李明','男','22','计算机应用');
insertintoSvalues('9804','张鹰','女','21','计算机软件');
insertintoSvalues('9805','刘竟静','女','22','计算机软件');
select*fromS;
(2)建立学生课程信息表c:
表2
cno
cname
cdept
tname
C1
PASCAL
计算机应用
王晓名
C2
数据结构
计算机应用
刘红
C6
WINDOW技术
计算机软件
吴志刚
C3
离散数学
计算机应用
李严劲
C4
计算机原理
计算机软件
王晓名
C5
数据库原理
计算机应用
吴志刚
C9
系统结构
计算机软件
刘红
C8
编译原理
计算机应用
蒋莹岳
创建C表的SQL命令如下:
createtablec(cnochar(4),cnamechar(10),cdeptchar(10),tnamechar(8));
insertintocvalues('c1','PASCAL','计算机应用','王晓名');
insertintocvalues('c2','数据结构','计算机应用','刘红');
insertintocvalues('c6','WINDOW技术','计算机软件','吴志刚');
insertintocvalues('c3','离散数学','计算机应用','李严劲');
insertintocvalues('c4','计算机原理','计算机软件','王晓名');
insertintocvalues('c5','数据库原理','计算机应用','吴志刚');
insertintocvalues('c9','系统结构','计算机软件','刘红');
insertintocvalues('c8','编译原理','计算机应用','蒋莹岳');
select*fromc;
(3)建立学生选课信息表sc:
表3
sno
cno
grade
9801
C2
56
9801
C6
66
9801
C4
78
9803
C1
88
9803
C2
76
9804
C1
67
9804
C2
76
9804
C3
67
9805
C1
67
9805
C3
91
9805
C2
78
9806
C1
78
创建SC表的SQL命令如下:
createtablesc(snochar(4),cnochar(4),gradeinteger);
insertintoscvalues('9801','c2',56);
insertintoscvalues('9801','c6',66);
insertintoscvalues('9801','c4',78);
insertintoscvalues('9803','c1',88);
insertintoscvalues('9803','c2',76);
insertintoscvalues('9804','c1',67);
insertintoscvalues('9804','c2',76);
insertintoscvalues('9804','c3',67);
insertintoscvalues('9805','c1',67);
insertintoscvalues('9805','c3',91);
insertintoscvalues('9805','c2',78);
insertintoscvalues('9806','c1',78);
select*fromsc;
2、将学生信息表s生成如下信息窗口(如图3)
(图3)
(1)窗口的open事件代码
dw_1.settransobject(sqlca)
dw_1.retrieve()
(2)“上一个”控制按钮cb_1的clicked事件代码
dw_1.scrollpriorrow()
(3)“下一个”控制按钮cb_2的clicked事件代码
dw_1.scrollnextrow()
(4)“第一个”控制按钮cb_3的clicked事件代码
dw_1.scrolltorow
(1)
(5)“最后一个”控制按钮cb_4的clicked事件代码
Intn
n=dw_1.rowcount()
dw_1.scrolltorow(n)
(6)应用程序open事件代码
(复制+粘贴数据库连接信息)
Connect;
open(窗口名)
3、将学生信息表s生成如下信息窗口(如图4)
(图4)
(注意:
生成的数据窗口文要设置tab顺序和更新属性)
(1)窗口的open事件代码
dw_1.settransobject(sqlca)
dw_1.retrieve()
(2)“增加”控制按钮cb_1的clicked事件代码
Intn
n=dw_1.rowcount()
dw_1.insertrow(n+1)
dw_1.scrolltorow(n+1)
dw_1.setfocus()
(3)“删除”控制按钮cb_2的clicked事件代码
intn
n=dw_1.getrow()
dw_1.DeleteRow(n)
dw_1.Update()
(4)“保存”控制按钮cb_3的clicked事件代码
dw_1.Update()
(5)“退出”控制按钮cb_4的clicked事件代码
Close(w_s)
(6)应用程序open事件代码
(复制+粘贴数据库连接信息)
Connect;
open(窗口名)
实验四不可见数据窗口控件DataStore的应用
一、实验目的
1、熟悉PowerBuilder运行环境;
2、掌握PowerBuilder不可见控件的使用。
二、实验内容
DataStore对象是一个不可视的datawindow控件,除不可视外,它与数据窗口对象有相同的功能和使用方法。
在窗口中建四个静态文本框,三个单行编辑框、三个命令按钮。
(图5)
1、定义实例变量(dedareinstancevariables)
intn
datastoreds
2、窗口的open事件代码
stringxh,kch
intcj
ds=createdatastore
ds.dataobject="d_sc"
ds.settransobject(sqlca)
ds.retrieve()
n=1
xh=ds.getitemstring(n,"sno")
kch=ds.getitemstring(n,"cno")
cj=ds.getitemnumber(n,"grade")
sle_1.text=xh
sle_2.text=kch
sle_3.text=string(cj)
3、命令按钮的clicked事件代码
(1)上一个:
stringxh,kch
intcj
ifn=1then
n=ds.rowcount()
else
n=n-1
endif
xh=ds.getitemstring(n,"sno")
kch=ds.getitemstring(n,"cno")
cj=ds.getitemnumber(n,"grade")
sle_1.text=xh
sle_2.text=kch
sle_3.text=string(cj)
(2)下一个
stringxh,kch
intcj
ifn=ds.rowcount()then
n=1
else
n=n+1
endif
xh=ds.getitemstring(n,"sno")
kch=ds.getitemstring(n,"cno")
cj=ds.getitemnumber(n,"grade")
sle_1.text=xh
sle_2.text=kch
sle_3.text=string(cj)
4、应用程序open事件代码
(复制+粘贴数据库连接信息)
connect;
open(窗口名)