基于vcmfc的科学计算器程序实验报告.docx
- 文档编号:310112
- 上传时间:2022-10-08
- 格式:DOCX
- 页数:20
- 大小:23.36KB
基于vcmfc的科学计算器程序实验报告.docx
《基于vcmfc的科学计算器程序实验报告.docx》由会员分享,可在线阅读,更多相关《基于vcmfc的科学计算器程序实验报告.docx(20页珍藏版)》请在冰豆网上搜索。
基于vcmfc的科学计算器程序实验报告
实验报告
课程名称:
windows软件开发实习
实验项目:
科学计算器
沈阳工业大学实验报告
(适用计算机程序设计类)
专业班级:
软件1006学号:
101201622姓名:
张鑫可
实验名称:
1.实验目的:
本程序设计实践是采用C++语言,在VC平台下设计。
本课程设
计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。
提高学生适应实际,实践编程的能力。
程序设计实践主要是培养学生利用系统综合C++语言进行程序设计的能力。
1.进一步巩固和复习C++程序设计的基础知识。
2.培养学生结构化程序、模块化程序设计的方法和能力。
3.了解软件的编制过程及各环节的具体内容。
4.提高学生程序调试技巧、软件设计能力和代码规范化等素质。
5.提高学生分析问题、解决问题以及实际运用能力。
2.实验内容:
设计一个简单的计算器。
要求能实现整数、小数算数运算。
程序带
清零按钮。
3.实验方案(程序设计说明)
见附件
4.实验步骤或程序(经调试后正确的源程序)
(填写主要步骤与程序代码等。
见附件A)
5.出现的问题及解决方法
附件A沈阳工业大学实验报告
(适用计算机程序设计类)
专业班级:
软件1006学号:
101201622姓名:
张鑫可
实验步骤或程序:
一、关于VisualC++:
VisualC++6.0由Microsoft开发,它不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrateddevelopmentenvironment,IDE)。
VisualC++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导ClassWizard等开发工具。
这些组件通过过一个名为DeveloperStudio的组件集成为和谐的开发环境。
Microsoft的主力软件产品。
VisualC++是一个功能强大的可视化软件开发工具。
自1993年Microsoft公司推出VisualC++1.0后,随着其新版本的不断问世,VisualC++已成为专业程序员进行软件开发的
首选工具。
虽然微软公司推出了VisualC++.NET(VisualC++7.0),但它的应用的很大的局限性,只适用于Windows2000,WindowsXP和WindowsNT4.0。
所以实际中,更多的是以VisualC++6.0为6平台。
VisualC++6.0以拥有“语法高亮”,自动编译功能以及高级除错功能而著称。
比如,它允许用户进行远程调试,单步执行等。
还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。
其编译及创建预编译头文件(stdafx.h)、最小重建功能及累加连结(link)著称。
这些特征明显缩短程序编辑、编译及连结的时间花费,在大型软件计划上尤其显著。
二、设计要点
1、基本要求:
设计的系统界面要美观大方,操作合理,有必要的
提示。
2、创新要求:
在基本要求达到后,进行创新设计。
3、对系统进行功能模块分析、控制流程分析正确。
4、系统设计要实用,编程简练,可用,功能全面,并有一定的容错
能力。
5、说明书、流程图要清楚
6、要求程序设计合理,用户界面良好,如采用菜单工作方式。
三、实验步骤:
1、首先利用MFCAppWinzard生成计算器应用程序框架具体步骤如下:
执行VC程序,选择File|New命令,弹出New对话框.单击Projects标签,转到Projects选项卡,选择MFCAppWizard(exe)选项,然后在Projectname文本框中输入cyyJSQ。
Lacation文本框是指项目的本地路径。
2、界面设计
在界面中添加按钮,编辑框等相应控件,并合理摆放,使用户能更加方便的使用。
具体设计如下图所示:
3、绑定控件
通过如下方式绑定控件。
具体绑定如下表所示:
按钮控件资源清单
按钮名称
按钮ID
用途
0
IDC_ZERO
按键0
1
IDC_1
按键1
2
IDC_2
按键2
3
IDC_3
按键3
4
IDC_4
按键4
5
IDC_5
按键5
6
IDC_6
按键6
7
IDC_7
按键7
8
IDC_8
按键8
9
IDC_9
按键9
.
IDC_DOT
小数点
=
IDC_Equal
等于
+
IDC_ADD
加号
-
IDC_SUB
减号
*
IDC_MUL
乘号
/
IDC_DIV
除号
CE
IDC_CE
清屏
Sqrt
IDC_Sqrt
开方
1/x
IDC_Daoshu
倒数
-/+
IDC_ZHengfu
正负
MC
IDC_Mc
清除内存记录数据
MR
IDC_Mr
内存中保存的数据
MS
IDC_Ms
数据存入存储器中,将原有的数据冲走
M+
IDC_Madd
当前记录数据与内存数据相加
%
IDC_Per
百分号
C
IDC_C
清零(清除全部)
CE
IDC_CE
清除上一步数据
Backspace
IDC_Backspace
从后向前删除
4、逐步实现代码
①按钮1-9的实现
文本编辑框的类型为string型,所以若按下数字1按钮时只需在数组尾部添加“1”即可
其他代码如此类推,具体代码如下:
voidCMyDlg:
:
OnButton0()
{
//数字0
this->check();
CStringtmp=num_buffer;
//当为小数点后或其前面有不为零的数时允许输入零
if(tmp.ReverseFind('.')!
=-1||tmp.FindOneOf("123456789")!
=-1)
{
num_buffer+="0";
}
else
{
num_buffer="0";
}
GetDlgItem(IDC_EDIT_SHOW)->SetWindowText(num_buffer);
}
voidCMyDlg:
:
OnButton1()
{
//数字1
this->check();
num_buffer+="1";
GetDlgItem(IDC_EDIT_SHOW)->SetWindowText(num_buffer);
}
voidCMyDlg:
:
OnButton2()
{
//数字2
this->check();
num_buffer+="2";
GetDlgItem(IDC_EDIT_SHOW)->SetWindowText(num_buffer);
}
voidCMyDlg:
:
OnButton3()
{
//数字3
this->check();
num_buffer+="3";
GetDlgItem(IDC_EDIT_SHOW)->SetWindowText(num_buffer);
}
voidCMyDlg:
:
OnButton4()
{
//数字4
this->check();
num_buffer+="4";
GetDlgItem(IDC_EDIT_SHOW)->SetWindowText(num_buffer);
}
voidCMyDlg:
:
OnButton5()
{
//数字5
this->check();
num_buffer+="5";
GetDlgItem(IDC_EDIT_SHOW)->SetWindowText(num_buffer);
}
voidCMyDlg:
:
OnButton6()
{
//数字6
this->check();
num_buffer+="6";
GetDlgItem(IDC_EDIT_SHOW)->SetWindowText(num_buffer);
}
voidCMyDlg:
:
OnButton7()
{
//数字7
this->check();
num_buffer+="7";
GetDlgItem(IDC_EDIT_SHOW)->SetWindowText(num_buffer);
}
voidCMyDlg:
:
OnButton8()
{
//数字8
this->check();
num_buffer+="8";
GetDlgItem(IDC_EDIT_SHOW)->SetWindowText(num_buffer);
}
voidCMyDlg:
:
OnButton9()
{
//数字9
this->check();
num_buffer+="9";
GetDlgItem(IDC_EDIT_SHOW)->SetWindowText(num_buffer);
}
voidCMyDlg:
:
OnButtonDot()
{
//小数点
if(num_buffer.IsEmpty())
{
num_buffer="0.";
}
elseif(num_buffer.ReverseFind('.')==-1)
{
num_buffer+=".";
}
GetDlgItem(IDC_EDIT_SHOW)->SetWindowText(num_buffer);
}
//求相反数
voidCMyDlg:
:
OnButtonNI()
{
//正负处理
m_num=-atof(num_buffer);
//转化为字符串
num_buffer.Format(_T("%lf"),m_num);
GetDlgItem(IDC_EDIT_SHOW)->SetWindowText(num_buffer);
}
运行结果如下:
②加减乘除代码的实现:
通过控件的绑定以及传值函数,以指针调用的方式进行赋值,并将结果保存在num_buffer中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 vcmfc 科学 计算器 程序 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)