MFC实现可视化计算器

软工第一次作业

【课程】福州大学2021级软件工程A班级链接
这个作业要求在哪里作业要求地址
这个作业的目标完成一个具有可视化界面的计算器,实现加减乘除、归零、次方、开根号、三角函数的功能


0.界面展示

计算器

1.Gitcode项目地址

gitcode

2.PSP表格

PSPPersonal Software Process Stages预估耗时(分钟)实际耗时(分钟)
Planning计划6040
• Estimate• 估计这个任务需要多少时间3020
Development开发240300
• Analysis• 需求分析 (包括学习新技术)180300
• Design Spec• 生成设计文档6060
• Design Review• 设计复审6090
• Coding Standard• 代码规范 (为目前的开发制定合适的规范)6090
• Design• 具体设计120110
• Coding• 具体编码120180
• Code Review• 代码复审6040
• Test• 测试(自我测试,修改代码,提交修改)60180
Reporting报告90100
• Test Repor• 测试报告60100
• Size Measurement• 计算工作量6060
• Postmortem & Process Improvement Plan• 事后总结, 并提出过程改进计划3030
合计12901600

3.解题思路描述

1.上网查询实现可视化计算器的方法,因为已经下载有VS2022,所以选择MFC来实现可视化计算器。
2.设计界面,MFC有控件,添加即可。
3.点击控件,编写控件功能代码,使用的是c++语言。
4.先编写简单四则运算,然后逐步加入其他科学计算。
5.测试代码,改进性能。
6.上传Gitcode。
6.进行单元测试。
7.撰写博客。

4.接口设计和实现过程

使用VS2022的MFC,自带button控件和static text控件。点击button按键形成输入,输出显示在text上。

void CCalculatorDlg::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码
	result += L"1";   //字符前加L是把字符转换成Unicode型,将案件内容显示在编辑框
	SetDlgItemText(IDC_EXP, result);
}

在这里插入图片描述

5.关键代码展示

void CCalculatorDlg::OnBnClickedEqual()//等于
{
	// TODO: 在此添加控件通知处理程序代码
	num = _wtof(result);

	switch (symbol)
	{
	case'+':
		result0 = result0 + num;
		break;
	case'-':
		result0 = result0 - num;
		break;
	case'*':
		result0 = result0 * num;
		break;
	case'^':
		result0= num * num;
		break;
	case'!':
		result0 = sqrt(num);
		break;
	case's':
		result0 = sin(num * PI / 180.0);
		break;
	case'c':
		result0 = cos(num * PI / 180.0);
		break;
	case't':
	{
		if (num == 90)
		{
			SetDlgItemText(IDC_RESULT, L"无穷大");
			result.Empty();
			show.Empty();
			temp.Empty();
			num = 0;
			result0 = 0;
			symbol = 0;
			return;
		}
		result0 = tan(num * PI / 180.0);
		break;
	}
	case'/':
	{
		if (num == 0)
		{
			//设置文本提示除数不能为零
			SetDlgItemText(IDC_RESULT, L"除数不能为0");
			result.Empty();
			show.Empty();
			temp.Empty();
			num = 0;
			result0 = 0;
			symbol = 0;
			return;
		}
		result0 = result0 / num;
		break;
	}
	case 0:
		SetDlgItemText(IDC_RESULT, result);
		break;
	}
	//下面的文本框RESULT显示结果,把计算结果转换成文本
	CString str;
	str.Format(L"%f", result0);
	SetDlgItemText(IDC_EXP, show+result);
	SetDlgItemText(IDC_RESULT,str);
	temp = result = str;//中间变量 备份 及时更新结果
	result.Empty();//清空原有内容
	symbol = 0;//清空符号
}

6.性能改进

改进1

对于只有单个操作数的运算,实现点击运算符后同时显示操作数和运算符,运算符在前操作数在后。
例如:
在这里插入图片描述

改进2

实现点击等于按键时将等号左边的表达式输出在上面的文本框。
在这里插入图片描述

7.单元测试

使用VS2022自带的Google test。
例:

TEST(TestCaseName, TestName) {
	CCalculatorDlg x;
	double exp = 6.0;
	x.OnBnClickedButton4();
	x.OnBnClickedAdd();
	x.OnBnClickedButton2();
	x.Calculator()ASSERT_EQ(exp, x.result0);
}

在这里插入图片描述

8.异常处理

异常1

除数为0时显示“除数不能为0”。
在这里插入图片描述

异常2

tan 90度时输出无穷大。
在这里插入图片描述

9.心得体会

通过本次作业的完成,感受到了实现一个软件的不易。拿到作业要求后,我通过上网查询各种资料,发现有许多种实现可视化计算器的方法,最后我选择使用VS2022里的MFC程序来实现可视化计算器,比较方便。我在设计界面和实现代码的时候没有遇到太大的困难,但是因为是第一次使用Gitcode、实现单元测试、撰写博客,所以在这些方面花的时间比较长。做到后面发现MFC较少用,相关资料比较少,以后作业得换个法子。这次作业学习到了很多没接触过的知识,下次继续努力。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
C++可视化计算器是一种使用C++编程语言开发的计算器软件,可以通过图形界面来实现计算功能。这种计算器软件通常具有美观、易用、可扩展性强等优点,并且可以广泛应用于科学、工程、经济等领域。 实现一个C++可视化计算器需要具备一定的编程能力和计算机科学知识。首先,需要掌握C++基础语法知识及其面向对象的编程思想,如类、成员函数、继承等。其次,需要掌握相关图形界面开发框架的使用,如Qt、MFC、WXWidgets等,以便轻松地完成用户界面的设计和实现。另外,还需要掌握算法和数学知识,以实现计算器所需要的各种功能,如加减乘除、开方、三角函数、指数函数等。 C++可视化计算器实现可以分为两部分,一部分是用户界面的设计和实现,另一部分是计算功能的实现。对于用户界面的设计和实现,开发者可以借助各种图形界面开发框架进行快速开发,通过设计按钮、文本框、菜单等控件,实现计算器的各个功能界面。计算器的另一部分功能实现则需要通过C++语言的算法和数学库,来设计并实现各种数学计算式和运算符的计算过程。 总之,C++可视化计算器是一种非常实用的软件开发工具,可以为人们提供一个快速、精准的数学计算平台。通过了解C++编程语言及其相关知识,我们可以实现高效的计算器应用程序,提升人们的生产、学习和研究效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值