结对项目进度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 }

正确算式:

错误算式:

原文地址:https://www.cnblogs.com/bjut13070019/p/5378520.html