其实这样的一个系统可以通过你自己的想象力放各种各样的内容,类似单词,百科知识等这些。
准备工作已经安装好PowerBuilder。掌握数据库语言,创建表格用到create table语句和插入数据insert into...values语句。进入步骤1.先创建好表,把所需要的题目和选项及答案插入,一题一行,每列的字符长度要注意设置大一些,避免过长的选项无法完全表示出来。
2.建立工作空间Workspace,直接点ok。

3.建立目标Target,选application,然后点ok.
4.建立窗口PB Object,选Window。
5.插入按钮(最重要的一步)
在主栏中insert——>control,出来的就是我们考试系统的按钮。
在每一个按钮双击以下,是输入代码页面。
定义变量
datastore dsint idstring ianswer[1 to 100]
窗口的open事件代码
点击窗口有小黑点的任意区域
ds=create datastoreds.dataobject="d_ks"//数字窗口的名字,数据窗口下一步会讲ds.settransobject(SQLCA)ds.retrieve()id=1st_1.text="本次考试共"+string(ds.rowcount())+&"题,当前考题为第"+string(id)+"题"mle_1.text=string(id)+"、"+ds.getitemstring(id,2)+char(13)+char(10)+char(13)+&char(10)+char(13)+char(10)+" "+ds.getitemstring(id,3)+char(13)+char(10)+&char(13)+char(10)+" "+ds.getitemstring(id,4)+char(13)+char(10)+char(13)+&char(10)+" "+ds.getitemstring(id,5)+char(13)+char(10)+char(13)+char(10)+&" "+ds.getitemstring(id,6)if rb_1.checked=true thenianswer[id]='A'elseif rb_2.checked=true thenianswer[id]='B'elseif rb_3.checked=true thenianswer[id]='C'elseif rb_4.checked=true thenianswer[id]='D'end if
‘A,B,C,D’按钮选项代码块
if rb_1.checked=true thenianswer[id]='A'elseif rb_2.checked=true thenianswer[id]='B'elseif rb_3.checked=true thenianswer[id]='C'elseif rb_4.checked=true thenianswer[id]='D'end if
‘上一题’按钮代码块
if id=1 thenid=ds.rowcount()else id=id - 1end ifst_1.text="本次考试共"+string(ds.rowcount())+&"题,当前考题为第"+string(id)+"题"mle_1.text=string(id)+"、"+ds.getitemstring(id,2)+char(13)+char(10)+char(13)+&char(10)+char(13)+char(10)+" "+ds.getitemstring(id,3)+char(13)+char(10)+&char(13)+char(10)+" "+ds.getitemstring(id,4)+char(13)+char(10)+char(13)+&char(10)+" "+ds.getitemstring(id,5)+char(13)+char(10)+char(13)+char(10)+&" "+ds.getitemstring(id,6)rb_1.checked=falserb_2.checked=falserb_3.checked=falserb_4.checked=falseif rb_1.checked=true thenianswer[id]='A'elseif rb_2.checked=true thenianswer[id]='B'elseif rb_3.checked=true thenianswer[id]='C'elseif rb_4.checked=true thenianswer[id]='D'end if
‘下一题’按钮代码块
if id = ds.rowcount() thenid=1else id=id + 1end ifst_1.text="本次考试共"+string(ds.rowcount())+&"题,当前考题为第"+string(id)+"题"mle_1.text=string(id)+"、"+ds.getitemstring(id,2)+char(13)+char(10)+char(13)+&char(10)+char(13)+char(10)+" "+ds.getitemstring(id,3)+char(13)+char(10)+&char(13)+char(10)+" "+ds.getitemstring(id,4)+char(13)+char(10)+char(13)+&char(10)+" "+ds.getitemstring(id,5)+char(13)+char(10)+char(13)+char(10)+&" "+ds.getitemstring(id,6)rb_1.checked=falserb_2.checked=falserb_3.checked=falserb_4.checked=falseif rb_1.checked=true thenianswer[id]='A'elseif rb_2.checked=true thenianswer[id]='B'elseif rb_3.checked=true thenianswer[id]='C'elseif rb_4.checked=true thenianswer[id]='D'end if
交卷按钮代码快
int n,right = 0if messagebox("提示","你确定要交卷吗?",Question!,YesNo!)=1 thenfor n=1 to ds.rowcount() step 1if trim(ianswer[n])=trim(ds.getitemstring(n,7)) thenright = right + 1end ifnextmessagebox("成绩","你共答对了"+string(right)+ "题,得分:"+string(right)+ "分")//可将成绩加入cjb表中,zh在登录表中定义为全局变量并将zh=sle_1.text//update cjb set grade =:right where cjb.sno=:zh; //close(w_ks)end if
最后记得保存save。
建立数字窗口选datawindowd的grid。
点ok之后
选择已经建好的表,列表全选,点ok,最后保存。
细节问题
在建好的数据库点击右键,选择properties,再点窗口里的preview.复制方框里的内容。
然后点击如下图我画黄色笔的地方,将内容复制进去,注意,后面要加两句代码,然后保存。
connect;
open(w_ks)//w_ks是窗口名字
最后点击如下的图标(类似一个跑步的形状)
最后做好了
能把文章看到这的读者幸苦了,欢迎提出问题。