简易计算器实验报告
更新时间:2023-10-20 07:04:01 阅读量: 综合文库 文档下载
简易计算器实验报告
实 验 题 目 简易计算器 学 生 姓 名 吴云 学 号 2013051205 所 在 学 院 计算机学院 年 级 班 级 计科5班
成都信息工程学院 计算机学院
一、 题目:简易计算器 题目概述:
? 学习MFC的应用,做出相对精美的界面;学习面向对象的思想,即用C++,考虑到
类。
? 模仿Windows的计算器,用图形界面实现加减乘除开根号求倒数等等基本操作。 ? 实现括号运算。
二、 开发环境
Win7操作系统的电脑一台 + VC6.0编程软件
三、 设计步骤
(一)界面设计:
首先打开VC++6.0 建立一个MFC的基本对话框,添加所需的按钮的编辑框如下图:
(二)添加变量:
点击菜单栏的:查看->建立类向导->添加成员变量: 给编辑框添加一个CString类型的变量m_result。
(三)为按钮添加事件:
为按钮和编辑框改了名字和ID后点击每一个按钮,为每一个按钮添加一个对应的事件,即:为每一个按钮添加算法代码。 (四)个性化程序:
即修改程序一些细节的地方,如程序的图标,程序的界面颜色、图案等等。。 (五)调试并运行程序:
将写好的程序调试好了后运行。
四、 程序的主要函数及其释义:
void CCalculatorDlg::OnButton1() //按下数字键1时出现的事件 { }
void CCalculatorDlg::OnButton2() //按下数字键2时出现的事件,同上 {
// TODO: Add your control notification handler code here if(fff == 1){ }
m_result = _T(\fff = 0;
// TODO: Add your control notification handler code here if(fff == 1){ }
m_result += _T(\
UpdateData(FALSE); //将数据送到编辑窗口
//当fff == 0时,此时刚算完上次的数据,再按数字键时自动清
空上次的数据
m_result = _T(\ //对字符串处理需要_T()函数实现 fff = 0;
}
m_result += _T(\UpdateData(FALSE);
void CCalculatorDlg::OnButton3() // 3 { }
void CCalculatorDlg::OnButton4() // 4 { }
void CCalculatorDlg::OnButton5() // 5 { }
// TODO: Add your control notification handler code here if(fff == 1){ }
m_result += _T(\UpdateData(FALSE);
m_result = _T(\fff = 0;
// TODO: Add your control notification handler code here if(fff == 1){ }
m_result += _T(\UpdateData(FALSE);
m_result = _T(\fff = 0;
// TODO: Add your control notification handler code here if(fff == 1){ }
m_result += _T(\UpdateData(FALSE);
m_result = _T(\fff = 0;
void CCalculatorDlg::OnButton6() // 6 { }
void CCalculatorDlg::OnButton7() // 7 { }
void CCalculatorDlg::OnButton8() // 8 { }
void CCalculatorDlg::OnButton9() // 9 {
// TODO: Add your control notification handler code here if(fff == 1){
// TODO: Add your control notification handler code here if(fff == 1){ }
m_result += _T(\UpdateData(FALSE);
m_result = _T(\fff = 0;
// TODO: Add your control notification handler code here if(fff == 1){ }
m_result += _T(\UpdateData(FALSE);
m_result = _T(\fff = 0;
// TODO: Add your control notification handler code here if(fff == 1){ }
m_result += _T(\UpdateData(FALSE);
m_result = _T(\fff = 0;
}
}
m_result = _T(\fff = 0;
m_result += _T(\UpdateData(FALSE);
void CCalculatorDlg::OnButton10() // 0 { }
void CCalculatorDlg::OnButton11() //按下‘.’后出现的事件 { }
void CCalculatorDlg::OnBUTTONpi() // 按下‘PI’后出现的事件 { }
// TODO: Add your control notification handler code here fff = 0;
m_result = _T(\UpdateData(FALSE);
// TODO: Add your control notification handler code here if(fff == 1){ }
m_result += _T(\UpdateData(FALSE);
m_result = _T(\fff = 0;
// TODO: Add your control notification handler code here if(fff == 1){ }
m_result += _T(\UpdateData(FALSE);
m_result = _T(\fff = 0;
void CCalculatorDlg::OnBUTTONjia() // 按下‘+’键,后发生的事件 { }
void CCalculatorDlg::OnBUTTONjian() // { }
void CCalculatorDlg::OnBUTTONchen() // 乘 { }
void CCalculatorDlg::OnBUTTONchu() // { }
void CCalculatorDlg::OnBUTTONcifang() // {
// TODO: Add your control notification handler code here n = 5;
data = strtod(m_result,NULL);
次方
// TODO: Add your control notification handler code here n = 4;
data = strtod(m_result,NULL); m_result = _T(\
除
// TODO: Add your control notification handler code here n = 3;
data = strtod(m_result,NULL); m_result = _T(\
// TODO: Add your control notification handler code here n = 2;
data = strtod(m_result,NULL); m_result = _T(\
‘减’,同理
// TODO: Add your control notification handler code here n = 1;
data = strtod(m_result,NULL); // 将之前输入的字符串转化为double型的数并保存起来 m_result = _T(\
//清空输入屏
}
m_result = _T(\
void CCalculatorDlg::OnBUTTONDel() // { }
void CCalculatorDlg::OnBUTTONdengyu() {
退格
// TODO: Add your control notification handler code here
m_result = m_result.Left(m_result.GetLength() - 1); UpdateData(FALSE);
// 等于,按下‘=’键后发生的事件
// TODO: Add your control notification handler code here if(n==1) //加 { }
if(n==2) //减 同上类似 { }
if(n==3) //乘 { }
if(n==4) //除 {
if(strtod(m_result,NULL) == 0){ }
// 如果判断出被除数为0,就在输出框中输出
data *= strtod(m_result,NULL); m_result.Format(_T(\UpdateData(FALSE); data -= strtod(m_result,NULL); m_result.Format(_T(\UpdateData(FALSE);
data += strtod(m_result,NULL); //将先前保存的数据与后输入的数据相加 m_result.Format(_T(\UpdateData(FALSE);
//将数据转化为CString型并显示在屏上
//刷新显示数据
以下文字。
GetDlgItem(IDC_EDIT1)->SetWindowText(\除数不能为0!\
}
}
else{ }
//当判断运算符为‘次方’时,根据幂底数的正负性有不同的情况 data /= strtod(m_result,NULL); m_result.Format(_T(\UpdateData(FALSE);
if(n==5) { } fff = 1;
if(data > 0){ }
else if(data == 0){ } else{ }
if((int)strtod(m_result,NULL) - strtod(m_result,NULL) != 0) //如计算(-2)^3.2 }
GetDlgItem(IDC_EDIT1)->SetWindowText(“该计算结果无意义!”);
// 如计算(-2)^3时,即指数没小数
double i = strtod(m_result,NULL), data1 = data; for(; i >1; i--) { }
m_result.Format(_T(\UpdateData(FALSE);
data *= data1;
data = 0;
m_result.Format(_T(\UpdateData(FALSE);
data = exp(strtod(m_result,NULL)*log(data)); m_result.Format(_T(\UpdateData(FALSE);
时,即指数有小数,输入以下文字。
else{
void CCalculatorDlg::OnButtonAc() //AC,即按清除键。 { }
void CCalculatorDlg::OnBUTTONsin() { }
void CCalculatorDlg::OnBUTTONcos() { }
void CCalculatorDlg::OnBUTTONtan() { }
// TODO: Add your control notification handler code here data = tan(strtod(m_result,NULL)); m_result.Format(_T(\UpdateData(FALSE); fff = 1;
//tan
// TODO: Add your control notification handler code here data = cos(strtod(m_result,NULL)); m_result.Format(_T(\UpdateData(FALSE); fff = 1;
//cos
// TODO: Add your control notification handler code here data = sin(strtod(m_result,NULL)); m_result.Format(_T(\UpdateData(FALSE); fff = 1;
//sin
// TODO: Add your control notification handler code here m_result = _T(\UpdateData(FALSE);
void CCalculatorDlg::OnBUTTONsqrt() //sqrt,即取平方根 { }
void CCalculatorDlg::OnBUTTONjiecheng() { }
void CCalculatorDlg::OnBUTTONlog() { }
// TODO: Add your control notification handler code here data = log10(strtod(m_result,NULL)); m_result.Format(_T(\UpdateData(FALSE); fff = 1;
//lg
// TODO: Add your control notification handler code here data = strtod(m_result,NULL); double i =data-1; for(;i > 0; i--) { }
m_result.Format(_T(\UpdateData(FALSE); fff = 1;
data *= i;
//阶乘
// TODO: Add your control notification handler code here if(strtod(m_result,NULL) < 0){ } else{ }
data = sqrt(strtod(m_result,NULL)); m_result.Format(_T(\UpdateData(FALSE);
GetDlgItem(IDC_EDIT1)->SetWindowText(\根号下不能负数哦~~\
fff = 1;
void CCalculatorDlg::OnBUTTONln() { }
void CCalculatorDlg::OnBUTTONzhengfu() { }
void CCalculatorDlg::OnBUTTONdaoshu() { }
void CCalculatorDlg::OnBUTTONguanyu() //关于本软件,即点击关于本软件按钮 { }
// TODO: Add your control notification handler code here
GetDlgItem(IDC_EDIT1)->SetWindowText(\本软件由吴云制作,新手一个,不足之处还请// TODO: Add your control notification handler code here data = 1/(strtod(m_result,NULL)); m_result.Format(_T(\UpdateData(FALSE); fff = 1;
//1/x
// TODO: Add your control notification handler code here data = -strtod(m_result,NULL); m_result.Format(_T(\UpdateData(FALSE);
//正负取反
// TODO: Add your control notification handler code here data = log(strtod(m_result,NULL)); m_result.Format(_T(\UpdateData(FALSE); fff = 1;
//ln
谅解...O(∩_∩)O\
五、 程序运行展示:
这是我自己画得程序图标,没有copy哦,虽然很丑。。。
这是我们程序打开的界面,是不是很简洁?很符合简易计算器这个称号吧。。。
这是当我们输入除数为零时显示的画面,既有英文又有中文,中西结合哦。。。
这是我们的程序当输入一个负数取根号时,就会出现这一句温馨的提醒。。。
这是点击程序的关于本软件时,出现响应事件,本来想加上作者电话和QQ的,当时,几番思量后,还是算了。。。。
六、 感悟和心得:
经过本次简易计算器的制作,巩固了C语言学到的知识,学到了MFC可视化界面基本的编程方法,对C++面向对象的编程思想有了更深刻的理解,增加了编写程序的能力。对类的类的封装和设计也有了一种新的认识,丰富了自己的知识,增添了自己对专业的兴趣和热爱之情。
正在阅读:
简易计算器实验报告10-20
货币银行学 练习题1-8章(更新)12-05
走近京剧10-14
2019武大中哲考研经验分享10-07
2022小学美术教学工作计划04-03
街道办事处年度工作总结及2022年推进党建建设工作部署05-09
攀枝花钒钛产业发展简介12-18
农村生活垃圾处理调查报告09-16
现代分子生物学 复习笔记05-28
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 计算器
- 简易
- 实验
- 报告
- 江西靖安旅游发展总体规划
- 初三物理专题:功和机械能知识精讲 doc
- 每日一题分工种题库
- 航空航天专业解读
- 计算机网络管理员考试题及答案1
- 暗黑2-Rune Words 神符之语图文整理版(总共71个)+1.11
- 民事法律制度
- 120个文言实词练习答案 doc2
- 2015年云南省监狱系统公务员拟录用人员公示
- 湖南科技学院二六年仪器分析期中试卷及答案
- 整体论、还原论、假说演绎、归纳推理、黑箱方法、观察渗透理论总结-研究生考试预测
- 各种霉运的先兆及化解法作者 - 图文
- 一年级下学期阅读训练
- 2017春季田径运动会秩序册
- GPS原理及应用 - 张勤 - 第六章GPS定位测量的数据处理
- 监控系统设计方案
- Test 17
- 2007年全国高考满分作文选登(50篇)
- 放线菌的形态观察
- 公司部门经理竞聘演讲稿范文