软件工程——结对编程第二次作业

本次作业所开发的程序已上传至Coding.net

结对伙伴——王宗波

我在本次的作业中担任“驾驶员”的角色,王宗波同学担任“领航员”的角色

1. 题目及要求

在这里我们选择了“小学四则运算”自动生成的题目,其具体要求如下:

  • 能够自动生成四则运算练习题
  • 可以定制题目数量
  • 用户可以选择运算符
  • 用户设置最大数(如十以内、百以内等)
  • 用户选择是否有括号、是否有小数
  • 用户选择输出方式(如输出到文件、打印机等)
  • 最好能提供图形用户界面(根据自己能力选做,以完成上述功能为主)

2. 功能的设计

考虑到题目要求、开发难度和实际中的需求,我们决定开发的程序应具有如下功能:

  • 自动生成四则(混合)运算题目
  • 可以定制题目数量
  • 可以定制最大值
  • 可以定制四则运算符
  • 可以切换小数/整数运算
  • 可以添加括号改变运算顺序
  • 可以输出到文件,并能让用户方便的直接打开生成的文件
  • 可以调用系统接口进行打印的设置、页面的设置,进行打印预览和打印
  • 提供简单的图形化界面
  • 能对用户的非法操作进行容错处理

3. GUI(图形用户界面)的设计

我们选用了C#语言,开发Windows窗体应用程序来提供图形用户界面。
所设计的GUI如图所示
avator

其中左侧的Rich Text Box(富文本文本框)用来显示自动生成的题目。

上面的三个按钮分别实现自动生成题目、(若有则)打开文件和清空富文本框的功能。

左上角的通过Menu Strip控件实现的菜单栏提供了将当前生成的题目进行打印,和进行打印前的设置及打印预览功能,如下图所示。
avator

右侧的Check Box则提供了选择运算符、括号和小数,以及是否输出到文件的选项。

用户还可通过右侧的两个Text Box(文本框)输入题目的最大值和题目数。

GUI的设计代码由Visual Studio 2017完成。

4. 容错机制的设计

为了提高程序的Robustness,我们对用户的非法操作进行了容错处理。

4.1 选择运算符的容错处理

用户在点击“出题”按钮前,必须至少从“加”、“减”、“乘”、“除”四个运算符中选择一个,才能开始。

当用户没有选择运算符,直接进行出题操作是,进行如下的容错处理

if (Symbols.Count == 0)
{
    MessageBox.Show("加、减、乘、除运算符至少需要选择一个!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Error);
    return;
}

其效果如图所示
avator

4.2 最大值和题目数输入的容错处理

用户在开始出题前,必须首先输入最大值和题目数。

当用户没有输入而直接点击“出题”按钮时,进行如下的容错处理

string max = tbxMax.Text;
string num = tbxNum.Text;
if (tbxMax.Text == String.Empty)  
{
     MessageBox.Show("最大值不能为空!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Error);
    return;
}
if (tbxNum.Text == String.Empty) 
{
    MessageBox.Show("题目数不能为空!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Error);
    return;
}

其效果如图所示
avator avator

4.3 打开文件容错处理

用户在点击“打开文件”按钮前,必须已经有生成的文件

当用户未选择生成文件,又直接点击了“打开文件”按钮时,进行如下的容错处理

if(cbxFile.Checked==false)
{
    MessageBox.Show("未生成文件,无法打开!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Error);
    return;
}

其效果如图所示
avator

4.4 打印的容错处理

在尝试打印自动生成的题目时若出错,则进行如下的容错处理

try
{
    printPreviewDialog.ShowDialog();
}
catch(Exception excep)
{
    MessageBox.Show(excep.Message, "打印出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

5. 程序的运行效果

为了全面的演示程序的运行效果,我们选择所有的运算符,带有小数和括号,并且输出到文件来进行演示。

点击“出题”按钮,成功生成题目,并且导出到文件
avator
avator

点击“打开生成的文件”按钮,打开文件
avator

打开“打印”菜单,点击“打印设置”选项,进行打印前的设置
avator

点击“页面设置”选项,进行页面格式的设置
avator

点击“打印预览”选项,进行打印预览
avator

点击“打印”选项,进行打印
这里我们采用了Adobe公司提供的PDF虚拟打印机,可以看到如下的效果
avator

猜你喜欢

转载自www.cnblogs.com/martinzhang98/p/10795247.html