实验09《训练功能的流程控制编程》实验指导书V07-2初稿

实验09《训练功能的流程控制编程》实验指导书

 文/尚小卫

 

【工作目标】

1 完成期限4小时。

2 工作成果:实现业务流程的管理和控制

完善业务功能

       根据原始版完成全部界面功能。

本次实验成果是使用训练控制类Practice编辑和操作训练流程控制数据。包括:

       实现训练流程类的数据编辑界面。

       实现训练流程类的数据显示界面。

       使用训练控制类用来控制业务流程。

掌握标准组件训练控制类Practice

       -标准BT组件 btSHFUnitPractice btSHFUnitPractices

 

3 验收要求:接口规范,程序运行稳定,信息入库。

验收功能:根据原始版验收更新版的业务流程:

       验收内容:全部业务流程。

       验收要求:实现到业务功能。

              1 UI组装到应用程序中。

              2 将未实现的部分使用土黄色显示,已实现的功能用新颜色标识出来。

              3 对照原始版可以逐项运行对应的功能和功能点。

 

编程实现:完成训练控制类的编辑和显示界面模块。

       验收内容:

              实现一个训练控制类Practice的编辑窗口--编辑自己小组

              实现一个训练控制类Practice的显示窗口--显示自己小组

              使用训练控制类用来控制业务流程。

              在实验窗体中添加训练控制类编辑和显示的实验业务流程。

       验收要求:

              1 使用训练控制类Practice的编辑窗口向数据库添加自己业务流程控制数据(时间、分值、次数)。

              2 显示和选择流程控制项目。

              3 演示选定的流程控制数据运行和控制自己项目的运行流程。

                     编辑--选择--训练--结束数据

              4 会引用--普通;会自编--技术骨干。

 

程序列表:V07-2.09版,添加业务流程编辑、显示界面和业务流程控制实验功能。

工作日志:与模板一致,Word文档实现。

       1 日志内容:工作项目名称、开始时间、结束时间。完成那些具体工作。

       2 验收要求:Word 文档,格式与模板相同。

实验报告:

       1 报告内容:图示纪录实际操作步骤,重点是编程实验部分的各个步骤。

       2 验收要求:其他同学可以按照提交的实验报告重复实现相同的实验。

项目验收:开始结题验收--自报(申请结题和作业指导)、顺序验收。

       1 已经完成全部原始版和升级版业务流程。

       2 已经完成8的个实验全部通过审核。

       3 顺序验收:L100初级任务。

       4 作业指导:申请作业指导的同学请到小谢安排时间,针对技术主管解决不了的问题。

 

【实验目的】

本实验为处理流程实践:

首先,学生需要掌握如何管理一个局部处理流程边界条件;

其次,学生需要掌握如何使用这些边界条件控制处理流程的运行。

【实验环境与工具】

Microsoft Visual Studio .NET 2008

C#编程语言

《尚府教学》实验工具

       -标准BT组件 btSHFUnitPractice btSHFUnitPractices

训练类btSHFUnitPractice说明

public btSHFUnitPractice();

public btSHFUnitPractice(int id);

public btSHFUnitPractice(int id, string unm, string ucd, int lnm);

public btSHFUnitPractice(string unm, string ucd, int lnm, int lTm, int lSc, int lv, string evl);

public btSHFUnitPractice(int pid, int uid, int id, string nm, string unm, string ucd, string uct, int lnm, int lTm, int lSc, int lv, string evl);

 

public int DifLevel { get; set; }

public string Evaluation { get; set; }

public int LimitNumber { get; set; }

public int LimitScore { get; set; }

public int LimitTime { get; set; }

public int ProgramID { get; set; }

public int UnitID { get; set; }

public string UnitPracticeCode { get; set; }

public string UnitPracticeContent { get; set; }

public int UnitPracticeID { get; set; }

public string UnitPracticeName { get; set; }

public string UnitPracticeNumber { get; set; }

 

public void CopyToMe(btSHFUnitPractice up);

public override string ToString();

 

训练管理类btSHFUnitPractices说明

public btSHFUnitPractices();

public btSHFUnitPractices(string callStr);

 

public int AddOne(btSHFUnitPractice myItem);

public int DeleteOne(int itemId);

public ArrayList GetAll();

public btSHFUnitPractice GetOne(int upId);

public void ReadOne(int itemId);

public string ToSqlSelectString();

public int UpdateOne(btSHFUnitPractice myItem);

【实验过程与步骤】

准备工作:存档、升级、创建第8版作业文件夹。
编程实验
完善全部业务流程到业务环节:

       UI项目

补齐功能:按照原始版或用户需求列表检查各个窗体上的各个功能是否具备,补齐所有不足的功能(本节课要求实现补齐的功能)。

调整形式:调整界面功能的表现形式与原始版一致。

演示功能:完善演示程序,演示原始版业务流程和业务功能。

组装应用:按照原始版业务功能,组装应用程序的V07-2.09版应用程序。

注:

       1 如果业务功能已经实现,可以跳过演示部分直接运行已经完成的业务功能。

       2 未实现的功能背景设置为土黄色,实现演示功能的功能背景设置为橙色,已经完成的业务功能背景设置为蓝色,通过审核的业务功能背景设置为绿色。

       实验程序项目

              在实验窗体上完善各个业务流程,用规定色彩标识各个业务环节的启动按钮。

UI项目添加业务模块

实现训练流程类的数据编辑窗体:显示标准训练流程类(btSHFUnitPractice)各项说明信息,实现编辑功能。

实现训练流程类的数据显示窗体:显示标准训练流程类(btSHFUnitPractice)各项说明信息和数据内容。

BT/UI项目完善处理流程控制

初始化功能

       初始化功能是在创建对象时候需要完成的处理工作,一般用来设置工作环境。键盘训练例:

       /// <summary>初始化单元训练

       ///

       /// </summary>

       private void InitializePractice()

       {

              // 单元成绩对象方法:用单元练习要求初始化单元成绩对象。

              //myUnitScore = InitialByPractice(appleUnitPract);

              this.myUnitScore.ProgramID = callMeLog.LoginProgramID;

              this.myUnitScore.StudentID = callMeLog.UserID;

              this.myUnitScore.UnitPracticeID = callMeLog.LoginUnitID;

              this.myUnitScore.ClearCouts();

             

              // 用初始化的单元成绩初始化窗体。

              //UnitScoreToWindow(appleUnitScore);

             

              // 单项成绩对象方法:用单元练习要求初始化测验题目对象。

              //appleQuestion.QuestionDiff = callMePractice.DifLevel;

              //appleQuestion.QuestionNumber = callMePractice.UnitPracticeNumber;

              //appleQuestion.QuestionCode = callMePractice.UnitPracticeCode;

              //appleQuestion.QuestionScore = 100 / callMePractice.LimitNumber;

             

              // 用空问题初始化窗体问题区。

              //labelNumber01.Text = "0";

              //labelNumber02.Text = "0";

              //labelOperator.Text = "+";

              //textBoxAnswer.Text = "";

             

              // 初始化单元成绩,设置训练进入时刻(不是练习开始时刻)。

              this.myUnitScore.StartDateTime = DateTime.Now;

              this.myUnitScore.PracticeTime = 0;

             

              boolStartFlag = false;

              /// 设置单元练习要求

                     /// 设置出题要求(难度、类型等)

                     /// 单元成绩清空

                     /// 单项成绩清空

                     /// 窗体清空

                     /// 等待开始命令 空格键或点击开始

       }//Initialize

      

启动功能

       启动功能一般是用来设置每个业务循环的工作边界,在本例中完成设置控制次数,启动计时,清理计数器等工作。键盘训练例:

       /// <summary>启动新单元练习

       ///

       /// </summary>

       private void StartUnitPractice()

       {

              ///单元成绩清零

              this.myUnitScore.ProgramID = callMeLog.LoginProgramID;

              this.myUnitScore.StudentID = callMeLog.UserID;

              this.myUnitScore.UnitPracticeID = callMeLog.LoginUnitID;

              this.myUnitScore.ConfigID = callMeLog.UserLoginID;

             

              //this.myUnitScore.TotalNumber = callMePractice.LimitNumber;

              this.myUnitScore.ClearCouts();

             

              ///登记单元开始时间

              this.myUnitScore.StartDateTime = DateTime.Now;

              this.myUnitScore.PracticeTime = 0;

             

              ///启动单元计时

              this.boolStartFlag = true;

              this.timer计时.Enabled = true;

             

              ///启动新题流程

              //this.StartNewQuestion();

       }//StartUnitPractice

      

查验功能

       查验是处理流程内部的监测点,检查处理流程是否到达控制边界,以确定是继续处理流程还是终止处理流程。

       键盘训练为例:

       // 按键控制的按键监测

              switch (e.KeyValue)

              {

                     case 20: strC = " "; break;

                     case 27: intIndex--; EndPractice(); this.Hide(); break;

                     case 13: intIndex--; EndPractice(); this.Hide(); break;

                     ... ...

                     default: strC = "Null"; boolSkip = true; break;

              }//Switch

       // 计时器中的时间监测

              if (myUnitScore.PracticeTime >= callMePractice.LimitTime)

              {

                     this.timer计时.Enabled = false;

                     this.EndPractice();

                     //this.PracticeControl();

              }

       // 计数器中的次数监测

              if (intIndex > intKeysTotall)

              {

                     intIndex--;

                     EndPractice();

                     this.Close();

              }

结束功能

       结束处理功能是处理流程到达控制边界后需要完成的业务处理。

       /// <summary>结束单元练习

       ///

       /// </summary>

       private void EndPractice()

       {

              //停止计时

              timer计时.Enabled = false;

             

              //计算时间

              TimeSpan ts = DateTime.Now.Subtract(myUnitScore.StartDateTime);

              myUnitScore.PracticeTime = (int)ts.TotalMilliseconds;

             

              // 登记成绩

              myUnitScore.TotalNumber = this.intKeysTotall;

              myUnitScore.CompleteNumber = this.intIndex;

              myUnitScore.RightNumber = this.intRightNumber; ;

              myUnitScore.ErrorNumber = intKeysTotall - intRightNumber;

              myUnitScore.CorrectRate = (int)(Convert.ToDouble(intRightNumber) / intKeysTotall * 100);

              //myUnitScore.Speed = (int)(allch / (Convert.ToInt32(usedtime.Substring(0, 2)) + Convert.ToInt32(usedtime.Substring(3, 2)) / 60.0));

             

              // 评价成绩

              myUnitScore.DoEvaluation();

             

              // 保存成绩

              btSHFUnitScores us = new btSHFUnitScores();

              us.AddOne(myUnitScore);

             

              // 停止处理流程;

              boolStartFlag = false;

             

              // 启动下一业务环节--进入成绩窗口

              uiTyping02_Score fr = new uiTyping02_Score(callMeForm, callMeLog, callMeKeyString, myUnitScore, intKeysTotall, intRightNumber, this.label计时.Text);

              fr.Show();

              this.Hide();

             

       }//EndPractice

      

实验项目编程

       添加训练流程类的实验流程:编辑-显示-选择-训练-进度显示。

冒烟试验

启动应用程序--对照原始版和用户需求,检查到业务功能实现程度,在需求列表中用色彩标识出来。

启动作业程序--选择实验程序,检查训练流程数据编辑、显示窗体,检查训练流程类的实验流程。

编写技术文档

程序列表

修改日期和版本编号;V07-2.09

根据升级版实验窗体新增核心业务流程及实验功能后实现的V07-2.09版程序完善程序列表:

       UIBT项目--训练流程类的数据编辑窗体和显示窗体。

       教学实验项目--SHFXXX_TestV062新增的训练流程类的实验流程。

完成工作文件

工作日志1 实际工作日日期:开始时间、结束时间、工作项目名称和内容。

实验报告1 报告内容:图示纪录实际操作步骤,重点是编程实验部分的各个步骤。

 

准备提交作业

程序代码1:选定解决方案-右键-清理解决方案-关闭VS2008

技术文档3:将项目需求列表、程序列表、数据字典添加到源程序文件夹。

工作文档2:将工作日志、实验报告添加到源程序文件夹。

 

小组提交1:选定源程序文件夹-右键-压缩打包-完成V07-2.08版源程序-保存-提交组长审核。

邮件提交2技术文档、工作文档发送到作业邮箱,分别独立发送,要求作业发送格式正确。

 

截至时间:20100602 23:50

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值