6 用户接口设计
6.1用户控件设计
根据2.2中的需求定义,需要在.Net环境下对使用的控件进行重新设计。
6.1.1按键设计
图6-1 开门|关门键
图6-2 开始|继续键
图6-3 停止|暂停键
图6-4 时间设定旋钮
6.1.2显示屏设计
图6-5 微波炉控制面板显示屏
6.2微波炉界面设计
对微波炉模型的状态机图进行分析研究,可以最终确定微波炉的3个状态:微波炉门关闭且微波炉灯管没有打开的状态,微波炉门关闭且微波炉灯管打开的状态,微波炉门关闭且微波炉灯管打开的状态。而功率管的运行则通过控制面板显示器展现给用户。
6.2.1微波炉门关闭且微波炉灯管没有打开状态下的视图
图6-6 微波炉门关闭且微波炉灯管没有打开状态下的视图
6.2.2微波炉门关闭且微波炉灯管打开状态下的视图
图6-7 微波炉门关闭且微波炉灯管打开状态下的视图
6.2.3微波炉门打开且微波炉灯管打开状态下的视图
图6-8 微波炉门打开且微波炉灯管打开状态下的视图
6.3用户接口(UI)层与应用逻辑层的连接
在UI层中,通过状态监听函数,定时监听领域层发生的变化,以表现给用户。
private void CheckingStatus()
{
while (true)
{
//检查领域层中灯的状态,并反映在显示器上
if (myOven.MyLight.GetIsOn())
{
this.monitor.IsLightOn = true;
}
else
{
this.monitor.IsLightOn = false;
}
//检查领域层中功率管的状态,并反映在显示器上
if (myOven.MyPowerTube.GetIsOn())
{
this.monitor.IsPowerTubeOn = true;
}
else
{
this.monitor.IsPowerTubeOn = false;
}
//获取领域层中的计时,并反映在显示器上
_reading.minute = myOven.MyDisplay.GetReading().minute;
_reading.second = myOven.MyDisplay.GetReading().second;
this.monitor.Time = _reading;
//检查领域层中炉门的状态
if (myOven.MyDoor.GetIsOpen())
{
this.picBox_state.Image = global::MicrowaveOven.Properties.Resources.Oven1_state_doorOpen;
}
else if (myOven.MyLight.GetIsOn())
{
this.picBox_state.Image = global::MicrowaveOven.Properties.Resources.Oven1_state_doorClose_on;
}
else
{
this.picBox_state.Image = global::MicrowaveOven.Properties.Resources.Oven1_state_doorClose_off;
}
//每隔100毫秒检查一次状态
try
{
Thread.Sleep(100);
}
catch (ThreadInterruptedException e)
7 微波炉模型软件测试
7.1基本流程测试
用户将微波炉门打开:
图7-1 微波炉门未运行且炉门打开的状态视图
用户将微波炉门关闭:
图7-2 微波炉门未运行且炉门关闭的状态视图
用户通过时间设定旋钮设定烹饪时间:
图7-3 微波炉门未运行但设置了烹饪时间的状态视图
用户按下开始按钮,微波炉开始烹饪:
<< 上一页 [11] [12] [13] [14] [15] 下一页