实验04:《界面编程--添加业务流程》
文/尚小卫
【工作目标】
1 完成期限:180分钟。
2 工作成果:2个实验程序窗体,添加业务流程。
掌握标准模块:
uiSHF_TestBase编程
教学实验项目中实现:
在教学实验项目中用继承方式创建实验主窗体;
在实验主窗体上根据作业程序创建业务流程;
在每个业务流程中创建每个业务环节调试入口。
标注涉及的业务逻辑:在实验窗体的业务环节入口标注入口设置。
验收重点是每个实验模块的入口设置和返回值,实验人需要清楚的知道每个程序模块的输入、输出和模块内部功能。
作业程序完善:
教学实验:实现实验窗体功能。
3 验收标准:程序运行稳定,基础版功能到位。
名称标识符正确:
源程序文件夹
源程序文件夹 日期姓名《软件名称 软件标识》源程序V07-2.04
实验程序项目:
1 试验程序窗体:SHFXXX_TestV071。
开发版实验程序界面:SHFXXX_TestVnnn。
2 试验程序窗体:SHFXXX_Tester。
注:
1“SHFXXX”因具体项目而定。
2 Vnnn为开发版版本号。
3实验程序中的实验窗体是通过继承UI项目中uiSHF_TestBase窗体实现的。
程序运行正确:
编程任务--按照原始版添加业务流程
1 从作业程序中启动和运行实验窗体。
2 在实验窗体中可以选择和显示业务流程分组,与原始版一致。
3 在业务流程分组中可以点击业务环节入口,与原始版对应。
软件文档:
需求列表:V07-2.04版,核心业务完善到功能部分。
程序列表:V07-2.04版,内容与1.04版源程序一致。
工作日志:
1 实际工作日日期:
工作项目名称、开始时间、结束时间。
完成那些具体工作。
实验报告:
1 实验步骤:纪录实际操作步骤。
2 实验结果:纪录出现的问题,说明问题的原因和处理方法。
【实验目的】
本实验是一个初级的编程实践:
1 通过业务流程实验--了解业务流程及其业务环节之间的逻辑关系和业务处理规则。
通过将业务流程分解为独立业务环节,熟悉业务流程概念及其具体实现形式。
2 通过三层架构实验--了解实现业务环节的程序模块以及物理关系。
通过具体业务环节的实现方式,熟悉系统的分层结构以及各个层次之间的关系。
3 通过添加程序模块--了解编程的基本概念-输入-处理-输出,以及模块间的通信接口。
学生还需要从各个模块间相互的关系角度来考虑问题,掌握各模块间相互通讯的简单方法,完成业务流程实验。
4 通过使用组件技术--了解通过对象和继承技术实现代码复用。
通过本实验学生要掌握程序功能模块的概念,编程方法和具体操作步骤。
本实验从技术角度重点在了解和掌握标准组件中主要功能模块,这些模块包括:
1 架构实验窗体(uiSHF_TestBase)
2 标准UI组件 uiSHF_Login
3 标准BT组件 btSHFUser、 btSHFUserLogin
通过实验要求掌握上面这些重点功能模块的编程方法和具体操作步骤。
本实验通过业务流程实验的编程进一步掌握用户需求的概念。
【实验环境与工具】
Microsoft Visual Studio .NET 2008
C#编程语言
《尚府教学》实验工具
-标准课程模块(uiSHF_TestBase)
-主窗体模块(btSHFUser、 btSHFUserLogin)
【实验过程与步骤】
准备工作
创建第4版源程序文件夹
存档:选定《软件名称 软件标识》源程序V07-2.03文件夹-右键-压缩-生成V07-2.03版压缩包。
升级:打开作业文件夹-选择第3版源程序文件夹-修改日期-修改版本号为V07-2.04
注:存档V07-2.03压缩包中包含源程序、需求列表、程序列表。
教学实验项目编程 添加标准实验窗体
添加引用:
引用标准组件(SHF_DA,SHF_BT,SHF_UI,)。
引用本项目组件(SHFXXX_BT,SHFXXX_UI,_软件名称_软件标识_。
修改方式添加实验窗体:
模块中添加使用的组件--
选定 SHFXXX_Tester.cs -- 点右键 -- 查看代码 --
添加 using SHF_BT; using SHF_UI; using SHF_DA; 语句--
添加 using SHFXXX_BT; using SHFXXX_UI; using _软件名称_软件标识
_; 语句。
修改已有窗体实现实验窗体--
将类继承 Form 修改为uiSHF_TestBase--点右键 查看设计器。
添加可返回的构造函数继承--
复制 SHFXXX_Tester构造函数 -- 添加参数“Form callForm” -- 添加“:base(callForm) ”;
添加可返回和可变更数据库的构造函数继承 -- 复制 SHFXX_Tester构造函数 -- 添加参数“Form callForm, string callConnect” -- 添加“:base(callForm,callConnect) ”;
修改窗体大小:选定 SHFXXX_Tester.cs --右键--查看设计器--size --修改为900,600
继承方式添加实验窗体:(新版)
继承方式添加实验窗体--
选定 SHFXXX_Test项目 -- 点右键 -- 添加 -- 新建项或Windows窗体 -- 选 继承的窗体 -- 名称栏目填 SHFXXX_TestVnnn.cs -- 浏览 -- 打开标准组件文件夹 -- 选 SHF_UI -- 打开 -- 选 uiSHF_TestBase -- 确定
注意:
1 选择的标准组件 SHF_UI 要和引用时添加的标准组件 SHF_UI 是同一个物理文件,否则有可能出错。
2 标准组件 SHF_UI 中有许多不同的界面类,其他的界面类会在以后的程序中用到,添加方法与本次实验相同。
模块中添加使用的组件--
选定 SHFXXX_TestVnnn.cs --右键-查看代码-添加using SHFXXX_BT,using SHFXXX_UI,using 《任务名称 任务标识符》;
添加可返回的构造函数继承--
复制 SHFXXX_Tester构造函数 -- 添加参数“Form callForm” -- 添加“:base(callForm) ”;
添加可返回和可变更数据库的构造函数继承 -- 复制 SHFXX_Tester构造函数 -- 添加参数“Form callForm, string callConnect” -- 添加“:base(callForm,callConnect) ”;
修改窗体大小:选定 SHFXXX_TestVnnn.cs --右键--查看设计器--size --修改为900,600
试验窗体编程 添加业务流程
试验窗体编程时根据原始版软件的用户需求进行的,首先根据业务分类添加选项卡,然后在选项卡中添加业务流程。原始版软件中有几个业务分类和业务流程,在窗体中就应当显示出几个业务选项卡和相应的业务流程,一一对应。
添加业务分类选项卡:
打开 SHFXXX_Test项目 -- 双击 SHFXXX_TestVnnn.cs -- 打开设计器 -- 选定 第一行的 选项卡控件(tabPage)-- 属性 -- 点 TabPages 属性的 (Collection)-- (根据自己项目核心业务添加相应个数的业务选项卡)-- (修改各个选项卡名称与业务分类一致)--(修改各个选项卡Text属性信息与业务分类一致)
添加业务流程:
根据业务分类中核心业务的数目,依次在业务选项卡中添加不同的业务流程标签,每行为一个业务流程,修改标签Lable控件的Text属性和Name属性信息与业务流程一致。
业务流程编程 添加业务环节
添加业务环节按钮:
选择选项控件(tabControlUI)-- 选定业务选项卡 -- 指向工具箱 -- 双击添加按钮 -- (根据每个核心业务流程的业务环节数目添加启动按钮,公用的业务环节共用一个,如:注册、登录等)
添加业务模块启动入口
在实验窗体的用户界面标签中添加各个业务模块的启动按钮,以《键盘训练》为例:
编写 “button主界面”的提示信息为“《键盘训练》主界面”--双击 “button主界面” --添加事件过程:
// 键盘训练为例
private void button主界面_Click(object sender, EventArgs e)
{
INFIKBP071 f = new INFIKBP071( this);
f.Show();
}
标注程序代码。
调试通过,然后将“button主界面”的 BackColor属性值修改为 Aqua,标识该业务环节已经调试通过。
逐个添加各个业务环节:
从实验窗体依次运行各个业务环节,包括用户界面和业务逻辑的各个环节,业务逻辑环节用一个调试窗口代替。
private void button登录_Click(object sender, EventArgs e)
{
}
private void button目录_Click(object sender, EventArgs e)
{
}
private void button业务处理01_Click(object sender, EventArgs e)
{
}
标注各个业务环节入口。
完成后在试验窗体上修改按钮颜色,将“button主界面”的 BackColor属性值修改为 Orange,标识该业务环节入口已经完成设置。
依此类推逐项添加各个业务环节,有交互的用户窗体、没有交互的用业务模块+测试窗体。
业务环节编程实验
添加用户登录、内容选择模块及运行入口
在实验窗体的用户界面标签中添加各个业务模块的启动按钮,以《键盘训练》为例:
添加主界面:1)“button主界面”编程。
编写 “button主界面”的提示信息为“《键盘训练》主界面”--双击 “button主界面” --添加事件过程。
private void button主界面_Click(object sender, EventArgs e)
{
INFIKBP071 f = new INFIKBP071( this);
f.Show();
}
调试通过,然后将“button主界面”的 BackColor属性值修改为 Aqua。
添加用户登录:1)“button登录”编程;2)变化身份登录实验。
编写 “button登录”的提示信息为“登录”--双击 “button登录” --添加事件过程。
private void button主界面_Click(object sender, EventArgs e)
{
// 说明:
// this -- 升级版实验窗体对象
// this myUser -- 用户对象,保存登录对象信息,默认为来宾。
// this.myUserLogin --用户登录状态对象,保存登录用户的状态信息,包括时间等。
// userType -- 用户类型,设定默认的用户列表。
int userType = 0; // 0 =来宾,1 = 学生, 2 = 教师。
SHF_UI.uiSHF_Login f = new uiSHF_Login(this, this.myUser, this.myUserLogin, userType );
f.Show();
}
实验:用不同身份构造登录窗体。
调试通过,然后将“button登录”的 BackColor属性值修改为 Aqua。
添加内容选择:1)在SHFXXX_UI项目中添加内容选择类;2)“button目录”编程。
1)SHFXXX_UI项目中添加内容选择类:用继承标准模块的方式添加窗体。
(1)添加窗体
选定SHFXXX_UI项目--右键--添加--新建项--选择继承的窗体--名称“uiTyping01_Option.cs”--添加--打开“继承选择器”--浏览--选择标准组件文件夹--选择SHF_UI.dll--确定--回到“继承选择器”--选择要继承的组件--uiSHF_CourseBase--确定
(2)修改内容选择窗体的界面信息:以键盘训练为例。
标题栏:内容选择
labelPageTitle:修改为业务环节名称--选择键组
label课程信息:修改为完整的课程信息--“学科名称|课程名称|业务环节名称
label程序信息:修改为完整的程序信息--“任务全称|组件名称|模块名称
(3)SHFXXX_UI组件的内容选择窗体编程:以键盘训练为例。
添加使用:选定 uiTyping01_Option --右键-查看代码-添加using SHF_BT,using SHF_UI,using SHF_DA;
说明必要的常数
说明必要的字段
继承的内容选择窗体中需要用到的构造函数。
2)“button目录”编程
private void button目录_Click(object sender, EventArgs e)
{
// 训练对象:设置训练内容和训练要求。
// 选择对象:修改训练对象内容。
this.myUnitPrac = myUnitPracs.GetOne(6); // 按键练习的训练ID是 6;
uiTyping01_Option f = new uiTyping01_Option(this, myUserLogin, myUnitPrac);
f.Show();
}
作业窗体编程
添加标准组件引用和使用声明,修改作业界面信息,实验窗体启动入口。
添加引用:
选定《软件名称 软件标识 作业》项目 -- 点引用 -- 点右键 -- 点添加引用 -- 点浏览 -- (找到标准组件文件夹)-- 选择(SHF_UI, SHF_BT, SHF_DA)-- 确定
添加使用:(标准组件说明)
选定《软件名称 软件标识 作业》项目 -- 选定 SHFXXXX_Work 作业文件 -- 点右键 -- 查看代码 -- 在文件组件使用部分,添加“ using SHF_BT; using SHF_UI; using SHF_DA;” 三个语句。
修改界面信息:《任务名称》架构实验按钮的提示信息修改为自己作业名称。
修改启动入口:
双击 《任务名称》架构实验按钮 -- 修改程序
// 《键盘训练》程序为例
private void button实验程序_Click(object sender, EventArgs e)
{
INFIKBP_Test071 f = new INFIKBP_Test071(this, shfConnect);
f.Show();
}
注:
1 INFIKBP_Test071(this, shfConnect)中的 this 是指本窗体对象用以返回作业主窗体。
2 shfConnect是数据库连接字,可以在UI的作业模块中修改,以变更数据库。
修改程序常数
在主程序设置自己的教学信息
右键点击“uiSHFXXX_AppMain.cs”--查看代码--展开“#region 程序常数说明”
根据具体程序可修改数据库连接字 shfConnect,本作业中此项不动。
程序ID myProgramID --修改为应用程序ID=1+任务编号
任务编号=分类号+小组序号+任务序号,在任务分配表中查询或向教学助理索取。
程序ID--有3个
1 应用程序 + 使用手册;程序ID=1+任务编号,如:1010103 键盘训练。
2 作业程序 + 课程教学:程序ID=2+任务编号,如:2010103 键盘训练作业。
3 教学实验 + 实验指导;程序ID=3+任务编号,如:3010103 键盘训练实验。
程序名称 myProgramName -- 软件名称
1 应用程序
2 作业程序
根据具体作业可以修改不同任务模块的单元编号和单元名称。
修改后折叠“#region 程序常数说明”代码
冒烟实验
从作业项目运行程序,打开实验窗体。
运行注册、登录、修改功能
编写技术文档
添加、编写需求列表
修改日期和版本编号;V07.04
根据原始版应用程序,完善需求列表:
应用程序部分--核心业务部分完善一个业务流程到产品功能部分。
添加、编写程序列表
修改日期和版本编号;V07.04
根据添加实验窗体后实现的04版程序完善程序列表:
教学实验项目--SHFKP_TestV071完善到新增的功能点。(继承的功能省略)
应用程序项目--SHFXXX071 完善新增的功能和功能点。
作业程序项目--SHFXXX_Work 完善新增的功能和功能点。
界面项目--uiSHFXXX_AppMain和uiSHFXXX_WorkMain完善到功能部分。
需要填写各个项目的名称、标识符和类型。
完成工作文件
工作日志:
实验报告:
准备提交作业
程序代码1项:选定解决方案-右键-清理解决方案-关闭VS2008
技术文档2项:将项目需求列表、程序列表到源程序文件夹。
工作文档2项:将工作日志、实验报告添加到源程序文件夹。
文件打包1项:选定源程序文件夹-右键-压缩打包-完成V07-2.04版源程序-准备提交。
提交作业:发送到作业邮箱
邮件1:需求列表、程序列表
2个文档作为一个邮件同时发送。
邮件主题格式:学号姓名《名称 标识符》技术文档V07-2.04
附件名称格式:日期姓名《名称 标识符》需求列表V07-2.04
附件名称格式:日期姓名《名称 标识符》程序列表V07-2.04
邮件2:工作日志、实验报告
2个文档作为一个邮件同时发送。
邮件主题格式:学号姓名《名称 标识符》工作文档V07-2.04
附件名称格式:日期姓名《名称 标识符》工作日志V07-2.04
附件名称格式:日期姓名《名称 标识符》实验报告V07-2.04
注意:源程序只提交给组长备查,不用邮件发送。