zoukankan      html  css  js  c++  java
  • 结对项目进度2

    小组成员:

    王森   13070018

    李经纬 13070019

    完成内容:

    我们在这个阶段主要完成了UI界面的学习开发以及与原来的核心模块的组合。

    我们学习了MFC,并使用它作为我们项目的UI。它的好处是与我们之前开发的vc++程序都属于微软的软件系列,移植性好。缺点是MFC的结构复杂,不好学习。

    我们将核心计算模块加入到了MFC中的控件处理函数中,使用上没有问题,因为只需要传入算式字符串及参数即可,但这里我们遇到了字符集的问题,MFC使用的是CString类型的字符,而我们之前使用的是string的标准c++类型。所以这里需要进行转换。

    我们还将之前获得的异常码翻译成错误类型,并以弹出对话框的方式提醒用户。

    主要控件处理代码:

     1 void CMy21ArithmeticOperationDlg::OnBnClickedButton1()
     2 {
     3     UpdateData(true);
     4 
     5     Calc c;            // 核心计算模块
     6     stringstream ss;
     7     Fraction r;
     8     int e;
     9     string s;            // 临时变量
    10 
    11     // 将 CString 转换为 string
    12     ss << exp;
    13     ss >> s;
    14     s.append("=");
    15 
    16     // 给核心模块赋值和参数
    17     c.setExp(s);
    18     c.Setting(max_op, min_val, max_val);
    19 
    20     // 获得结果和异常码
    21     e = c.getResult(r);
    22     if (e == 0)
    23     {
    24         result = r.toString();
    25     }
    26     else
    27     {
    28         switch (e)
    29         {
    30         case -1:
    31             MessageBox("异常:\n除数为0");
    32             break;
    33         case -2:
    34             MessageBox("异常:\n算式格式错误");
    35             break;
    36         case -3:
    37             MessageBox("异常:\n运算符数量超限");
    38             break;
    39         case -4:
    40             MessageBox("异常:\n数值范围超限");
    41             break;
    42         case -5:
    43             MessageBox("异常:\n未知字符");
    44             break;
    45         default:
    46             break;
    47         }
    48     }
    49 
    50     UpdateData(false);
    51 }

    正确算式:

    错误算式:

  • 相关阅读:
    【HDOJ】1224 Free DIY Tour
    【HDOJ】1494 跑跑卡丁车
    【HDOJ】1495 非常可乐
    ACMer
    find the nth digit
    A C
    已知六条边的边长,求四面体体积
    快速排序
    {A} + {B}
    素数回文
  • 原文地址:https://www.cnblogs.com/bjut13070019/p/5378520.html
Copyright © 2011-2022 走看看