《信息系统开发》实验报告.docx
《《信息系统开发》实验报告.docx》由会员分享,可在线阅读,更多相关《《信息系统开发》实验报告.docx(16页珍藏版)》请在冰豆网上搜索。
![《信息系统开发》实验报告.docx](https://file1.bdocx.com/fileroot1/2023-1/28/af3e8d34-4c2f-4cdd-9669-bea8d3a2b235/af3e8d34-4c2f-4cdd-9669-bea8d3a2b2351.gif)
《信息系统开发》实验报告
河北省自考“计算机信息管理(独立本科段)”专业
实验报告
姓名:
******准考证号:
************实验地点:
**********
实验课程:
信息系统开发
实验名称:
信息系统的开发(设备管理系统)
实验目的:
通过实际建立一个完整的信息系统来加深对信息系统开发理论知识的理解与认识,掌握和解决信息系统规划、分析、设计、实施、运行与测试等实际问题的能力。
实验设备:
一、软件环境:
中文WindowsXP,PowerBuilder9.0,SQLAnywhere
二、硬件环境:
586以上的PC系列机,内存512M,硬盘空闲空间大于1G
实验内容、步骤、图形与结论(答题不要超过装订线,可另附白纸书写):
实验内容
——为某企业设计一个设备管理系统
问题描述:
请为某企业设计一个设备管理系统。
手式管理用的记录表有:
1设备信息表,内容包括:
设备编号、设备名称、设备类型、规格型号、数量、总价值、产地。
2设备类型表,内容包括:
设备类型编号、设备类型。
功能需求:
①设备信息的浏览、添加、删除、保存操作。
②设备类型的浏览、添加、删除、保存操作。
③按设备编号进行查询。
④按设备类型进行设备数量统计。
⑤对于各种数据进行升序和降序的排序操作。
⑥折旧率计算。
上机考试要求:
1.根据问题描述,设计出设备信息表SBXX和设备类型表SBLX的表结构,并定义它们的主键和外键。
解:
根据设备管理系统问题分析描述,并结合系统所要满足的功能需求,借助E-R图等工具设计出设备管理系统的数据库表结构。
<1>根据设备信息表所给出的信息,设计出设备信息表SBXX,表结构如下所示:
表1设备信息表SBXX
列标题
列名
数据类型
宽度
小数位数
是否空值
缺省值
主/外键
设备编辑
Sbbh
Char
4
No
P
设备名称
Sbmc
Char
20
No
类型编号
Lxbh
Char
4
No
F
规格型号
Ggxh
Char
20
Yes
数量
Sl
Integer
Yes
总价值
Zjz
Number
10
2
Yes
产地
Cd
Char
10
Yes
<2>根据设备类型表所给出的信息,设计出设备类型表SBLX,表结构如下所示:
表2设备类型表SBLX
列标题
列名
数据类型
宽度
小数位数
是否空
缺省值
主/外键
类型编号
Lxbh
Char
4
No
P
类型名称
Lxmc
Char
20
No
2.在D盘的考核目录下创建名为Sbgl的数据库。
在库中创建设备信息表sbxx和设备类型sblx,并设置其主键和外键。
解:
⏹创建名为Sbgl的数据库:
(1)开始→程序→Sybase→PowerBuilder9.0→PowerBuilder9.0打开主窗口。
(2)单击工具栏的Database按钮(打开数据库画板)→打开ODBODBC→再打开Utilities→双击CreateASADatabase,在打开的对话框中的“DatabaseName”编辑框中输入数据库名,并通过“…”按钮输入数据的全路径(D:
\考核\Sbgl.db),其他可保持默认;最后,单击“OK”按钮,系统将成功创建数据库Sbgl。
运行结果如下图
(1)所示:
图
(1)
⏹在库中创建设备信息表sbxx和设备类型sblx,并设置其主键和外键
(1)在Sbgl数据库中建立设备信息表Sbxx:
右击数据库画板的table文件夹→NewTable→出现创建表结构的界面→根据表1添加并定义字段→Exit→(Savechangeto?
)→是(Y)→输入表名Sbxx→OK。
(2)用同样的方法,在Sbgl数据库中建立设备类型表Sblx
(3)为数据表指定主键:
<1>在表Sbxx中设置主键Sbbh:
选中数据表Sbxx,右击鼠标并在弹出的快捷菜单中左击Addtolayout;在打开的画板中,右击表结构Sbxx的标题栏并在弹出的快捷菜单中左击New→PrimaryKey,在弹出的列表框中选择字段Sbbh作为主键。
<2>用同样的方法,为表Sblx指定主键lxbh
(4)为数据表Sbxx指定外键:
在表Sbxx的结构中,右击标题栏并在弹出的快捷菜单中左击New→ForeignKey,在弹出的对话框的General选项卡中,在ForeignKey右侧输入外键名Lxbh,并在下方的列表框中选择字段Lxbh作为外键字段。
在PrimaryKey选项卡中,在Table右侧指定参照的表名为Sblx,保存所做设置。
得到的表结构如图
(2)所示:
图
(2)
3.创建一个名为exam的应用程序对象,其应用程序文件名为exam.pbl。
解:
(1)先建一个工作空间Sbgl.pbw:
在工具栏中单击New按钮→Workspace选项卡→Workspace→OK→选择路径D:
/考核,并在“文件名”右侧输入文件名Sbgl,然后保存。
(2)再建应用程序对象exam.pbl:
在工具栏中单击New按钮→Target选项卡→Application图标→OK→在“ApplicationName”中输入“exam”;在“Library:
”中选择路径为:
D:
/考核,得到图(3)的形式,再单击Finish按钮。
图(3)
4.在该应用中创建一个菜单m_main,其结构如下:
设备管理系统
系统
编辑
操作
设备管理
设备浏览
设备类型
退出
添加
删除
保存
设备编辑查询
设备类型统计
排序
折旧计算
并为“添加”、“删除”、“保存”、“设备编号查询”、“设备类型统计”、“退出”分配图标,形成如下所示的工具栏。
解:
⏹在工具栏中单击New按钮→PBObject选项卡→Menu图标→OK→在弹出的菜单设计区域设置菜单项:
(1)设置主菜单项“系统”“编辑”“操作”:
<1>在左窗格中右击“Untitled0”→在弹出的快捷菜单中选择“InsertSubmenuItem”→在编辑框中输入一级菜单项“系统”
<2>用同样的方法,设置其他主菜单项“编辑”、“操作”。
(2)设置下拉菜单:
A.设置主菜单项“系统”下的下拉菜单:
<1>右击菜单项“系统”→在弹出的快捷菜单中选择“InsertSubmenuItem”→在编辑框中输入“设备管理”
<2>用同样的方法,设置其他子菜单项“设备浏览”、“设备类型”、“-”“退出”。
[“-”为分隔线的设置方法]
B.用同样的方法,设置主菜单项“编辑”、“操作”下的下拉菜单。
(3)设置主菜单“操作”的下拉菜单中的菜单项“排序”的子菜单:
<1>右击“排序”→在弹出的快捷菜单中选择“InsertSubmenuItem”→在编辑框中输入子菜单项“升序”
<2>用同样的方法,设置子菜单项“降序”。
⏹为“添加”、“删除”、“保存”、“设备编号查询”、“设备类型统计”、“退出”分配图标,形成相应的工具栏。
<1>单击选中“添加”→在右侧的菜单描绘器中选择TooBar选项卡→设置ToolbaritemName属性的属性值,在右侧的下拉列表框中找到相应的图标,即可生成工具栏中一个图标。
<2>用同样的方法分别设置工具栏的其他项。
⏹在右侧的菜单描绘器中选择TooBar选项卡设置其ToolBarItemSpace和ToolBarItemOrder项来分组,并确定在工具栏中的先后顺序。
(3)单击菜单File→选择“Save”→在弹出的对话框中为所建菜单取名为“m_main”→OK。
生成的菜单结构如图(4)所示:
图(4)
5.在该应用中创建一个MDI主窗口w_main,标题为“设备管理系统”。
解:
(1)在工具栏中单击New按钮→PBObject选项卡→Window图标→OK→在弹出的窗口设计区域右侧的属性栏中设置以下几项属性(在General选项卡中):
(1)Title:
设备管理系统
(2)Windowtype:
mdi!
(3)单击File菜单→Save→在弹出的对话框中为所建MDI主窗口取名为“w_main”→OK。
6.建立MDI主窗口w_main与菜单m_main的关联。
解:
在窗口设计区域右侧的属性栏中,在General选项卡中,设置Menuname属性→单击右侧的“…”按钮→在弹出的对话框中选择上题中所建菜单“m_main”。
7.请创建一个新窗体w_sb,设置窗口标题为“设备信息”。
解:
在工具栏中单击New按钮→PBObject选项卡→Window图标→OK→在弹出的窗口设计区域右侧的属性栏中设置新窗体的Title属性(在General选项卡中)为:
设备信息。
单击File菜单→Save→在弹出的对话框中为所建MDI主窗口取名为“w_sb”→OK。
8.向窗口w_sb内添加一个数据窗口控件dw_1。
解:
单击工具栏中的StaticText图标右侧向下的黑色三角按钮→在弹出的面板中选择“CreateDataWindowControl”→在窗体中单击,可看到添加数据窗口控件成功,并且默认名字为dw_1→拖动鼠标,将数据窗口控件调整为合适大小,保存并退出。
9.创建一个数据窗口对象d_sbxx,其显示风格是Grid,数据源选取数据表sbxx的全部列。
解:
(1)在工具栏中单击New按钮→DataWindow选项卡→Grid图标→OK
(2)在选择数据源对话框中选择QuickSelect类型的数据源,再按Next按钮,选择表sbxx中的所有字段,按AddAll→OK→Next→Finish。
即可看到数据窗口的模样。
(3)退出时,为数据窗口对象命名为d_sbxx。
10.将窗口w_sb的数据窗口控件dw_1与数据窗口对象d_sbxx相关联。
解:
打开窗口w_sb→单击选中窗口中的数据窗口控件dw_1→在右侧的属性栏中选择General选项卡→设置其DataObject属性:
单击右侧的“…”按钮→在弹出的对话框中选择数据窗口对象d_sbxx→OK。
至此,已将窗口w_sb的数据窗口控件dw_1与数据窗口对象d_sbxx相关联。
11.编写代码,使得单击菜单“设备管理”时,以工作表方式(MDI子窗口)打开w_sb。
解:
(1)打开应用程序对象exam.pbl,在应用程序对象exam.pbl的Open事件中加入如下代码:
SQLCA.DBMS="ODBC"//设置事务对象SQLCA属性
SQLCA.AutoCommit=False//定义程序是手工提交事务
SQLCA.DBParm="Connectstring='DSN=sbgl'"//DBMS所需的额外信息
CONNECTUSINGSQLCA;//连接数据库
IfSQLCA.SQLCode<0Then//判断是否连接成功
MessageBox("数据库连接失败!
",SQLCA.SQLErrText,StopSign!
OK!
)
ELSE
OPEN(w_main)
ENDIF
所加代码窗口如图(5)所示:
图(5)
(2)在应用程序对象exam.pbl的Close事件中加入如下代码:
DISCONNECTUSINGSQLCA;//断开与数据库的连接
IFSQLCA.SQLCode<0Then//判断断开是否成功
MessageBox("数据库断开失败!
",SQLCA.SQLErrText,StopSign!
OK!
)
EndIf
所加代码窗口如图(6)所示:
图(6)
(3)打开菜单对象m_main,在“设备管理”菜单项上单击画板工具栏上的Script图标,打开代码编辑器,为其Clicked事件加入如下代码:
OpenSheet(w_sb,w_main,2,cascaded!
)//以工作表的方式打开窗口w_sb
所加代码如图(7)所示:
图(7)
(4)打开窗口w_sb,在窗口w_sb的Open事件中写脚本:
dw_1.settransobject(sqlca)//给数据窗口控件DW_1设置通讯区域sqlca
dw_1.retrieve()//从数据库的SBXX表中检索全部数据
单击工具栏上的Run图标运行程序→在弹出的“设备管理系统”窗口中单击“系统”菜单→单击菜单项“设备管理”,则以工作表方式打开窗口w_sb。
运行情况如下图(8)所示:
图(8)
12.编写代码,使得在打开“设备管理”窗口后,单击菜单项“添加”、“删除”和“保存”,在当前活动窗体(w_sb)内的数据窗口dw_1实现数据的“添加”、“删除”和“保存”功能。
解:
(1)打开菜单对象m_main,在“编辑”主菜单下单击选中“添加”菜单项,单击画板工具栏上的Script图标,打开代码编辑器,为其Clicked事件加入如下代码:
windowactsheet
actsheet=w_main.GetActiveSheet()//取得当前活动窗口
ifisvalid(actsheet)then
actsheet.triggerevent("ue_add")//存在活动窗口时,触发活动窗口的ue_add事件
else//不存在活动窗口时
messagebox("警告","请先打开一个管理窗口!
")
endif
所加代码窗口如图(9)所示:
图(9)
(2)打开菜单对象m_main,在“编辑”主菜单下单击选中“删除”菜单项,单击画板工具栏上的Script图标,打开代码编辑器,为其Clicked事件加入如下代码:
windowactsheet
actsheet=w_main.getactivesheet()//取得当前活动窗口
ifisvalid(actsheet)then
actsheet.triggerevent("ue_del")//存在活动窗口时,触发活动窗口的ue_del事件
else//不存在活动窗口时
messagebox("警告","请先打开一个活动窗口!
")
endif
所加代码窗口如图(10)所示:
图(10)
(3)打开菜单对象m_main,在“编辑”主菜单下单击选中“保存”菜单项,单击画板工具栏上的Script图标,打开代码编辑器,为其Clicked事件加入如下代码:
windowactsheet
actsheet=w_main.Getactivesheet()//取得当前活动窗口
ifisvalid(actsheet)then
actsheet.triggerevent("ue_save")//触发活动窗口的ue_save事件
else//不存在活动窗口时
messagebox("警告","请先打开一个管理窗口!
")
endif
所加代码窗口如图(11)所示:
图(11)
(4)打开设备信息窗口w_sb,自定义一个用户事件ue_add,设置EventName为“ue_add”,设置EventID为空。
打开设备信息窗口w_sb的代码编辑器,选择用户事件ue_add,加入如下代码:
dw_1.retrieve()//从数据库的SBXX表中检索全部数据
longtherow
therow=dw_1.insertrow(0)//在SBXX表的尾部插入一行
dw_1.scrolltorow(dw_1.rowcount())//在指定行设置为当前行
dw_1.setfocus()//将焦点设置到控件DW_1
所加代码窗口如图(12)所示:
图(12)
(5)打开设备信息窗口w_sb,自定义一个用户事件ue_del,设置EventName为“ue_del”,设置EventID为空。
打开设备信息窗口w_sb的代码编辑器,选择用户事件ue_del,加入如下代码:
integeri
i=messagebox("提示信息","确认要删除行?
",exclamation!
yesnocancel!
)
ifi=1then
dw_1.deleterow(0)//删除当前行
endif
ifdw_1.update()=1then
commit;
else
rollback;
messagebox("错误","数据库内容删除失败")
endif
dw_1.retrieve()//刷新显示
所加代码窗口如图(13)所示:
图(13)
(6)打开设备信息窗口w_sb,自定义一个用户事件ue_save,设置EventName为“ue_save”,设置EventID为空。
打开设备信息窗口w_sb的代码编辑器,选择用户事件ue_save,加入如下代码:
ifdw_1.update()=1then//实现保存功能
commit;
else
rollback;
messagebox("错误","数据库内容更新失败")
endif
dw_1.retrieve()//刷新显示
所加代码窗口如图(14)所示:
图(14)
(7)单击工具栏上的Run图标运行程序→在弹出的“设备管理系统”窗口中单击“系统”菜单→单击菜单项“设备管理”→单击“编辑”菜单中的“添加”→添加一条记录→单击“编辑”菜单中的“保存”保存新加记录。
系统运行情况如下图(15)所示:
图(15)添加一条记录
(8)删除新加记录:
单击“编辑”菜单中的“删除”
系统运行情况如下图(16)所示:
图(16)