![](img/1.png)
四则运算计算器
本案例知识要点
● Visual C++ 6.0下创建MFC AppWizard (exe )并运行的方法
● 利用常用控件来设计程序界面
● 为控件添加事件处理程序
一、案例需求
1.案例描述
设计一个四则运算器,要求能够进行加、减、乘、除运算。
2.案例效果图
四则运算计算器运行效果如图3-1所示。从前两个文本框中分别输入参加运算的两个操作数,鼠标点击下边的运算方式按钮时,在第三个文本框中显示运算结果。
3.功能说明
(1)通过操作界面输入参加运算的操作数并选择运算符,将运算结果显示出来。
(2)能够进行整数运算和小数运算。
二、案例分析
本案例通过简单的MFC 来实现四则运算,由于系统界面相对较为简单,所以通过建立简单的单文档类型的应用程序来实现系统操作界面。通过文本框控件来获得用户输入和显示计算结果,通过按钮控件来实现运算方式选择以及相应的事件处理程序代码来实现具体运算过程。
三、案例设计
基于上述分析,定义一个calculators 类来实现两个数据的四则运算,calculators 类结构如图3-2所示。
● 数据成员
double Number1
用来表示参加运算的第一个操作数。
double Number2
用来表示参加运算的第二个操作数。
本例可执行文件下载: 下载
函数成员
void calculators(double dNumber1,double dNumber2)
构造函数,用来初始化参加运算的两个操作数。
double Add()
实现两个操作数的加法运算并返回运算结果。
double Sub()
实现两个操作数的减法运算并返回运算结果。
double Mul()
实现两个操作数的乘法运算并返回运算结果。
double Div()
实现两个操作数的除法运算并返回运算结果。
四、上机过程
利用MFC在Visual C++ 6.0环境下创建应用程序,是Visual C++强大功能最有力的体现。利用MFC,可以创建“多文档类型”、“单文档类型”、“基于对话框类型”等不同类型和规模的应用程序。简单的MFC应用程序的实现过程大致可以分为创建工程、设计界面、添加并编辑相应的事件处理程序、工程编译、连接、执行等几个步骤。
1.创建MFC应用程序
如图3-3所示,启动并运行Visual C++ 6.0后,通过菜单【文件】——【新建】打开如图3-4所示“新建”对话框。
在新建对话框中通过【工程】标签选择【MFC AppWizard(exe)】选项来创建一个MFC应用程序。在“工程”下方的文本框中输入希望创建的工程名称,同时选择文件希望保存的路径,接下来点击【确定】按钮,弹出如图3-5所示对话框。选择“S单个文档”选项后点击【完成】按钮即弹出如图3-6所示新建工程信息对话框,单击【确定】按钮后即创建完成一个基本的单文档MFC应用程序框架如图3-7所示。
2.类的实现
在Visual C++6.0集成环境中选择工作区窗口(Workspace)的类视图【Class View】上选中“Calculator classes”,单击鼠标右键,在弹出如图3-8所示的快捷菜单中选中【New Class…】,在弹出的“New Class”对话框中,“Class type”选择“Generic Class”,在“Class Information”的“Name”单选框中输入类名“calculators”,如图3-9所示,点击【OK】按钮创建calculators类。
创建完成后在类视图“Class View”中出现类calculators,双击该类名,可以看到在calculators.h文件中已经出现该类的声明,如图3-10所示。可以看到该类中只有构造函数calculators ()和析构函数~calculators ()。
在已打开的头文件“calculators.h”中添加calculators类的函数成员和数据成员的声明,如图3-11所示。
在类视图中鼠标双击“calculators()”函数打开“calculators.cpp”文件,在文件中已经可以看到构造函数calculators ()和析构函数~calculators ()的实现代码。在其下添加函数成员的实现,如图3-12所示。
3.设计系统界面
创建系统框架成功后,接下来就是根据需要设计系统操作界面。
(1)计算器对话框设计
在Visual C++6.0集成环境中选择工作区窗口(Workspace)的资源视图【Resource View】上选择“Dialog”项,如图3-13所示,单击鼠标右键选择“Insert Dialog”,插入新的对话框。
图3-13 对话框设计步骤1
选中对话框窗体中的“确认”、“取消”按钮控件,然后按Delete键将这些控件删除,在“Calculator”窗体上点击鼠标右键,选择“属性”弹出如图3-14所示属性设置对话框,将其“标题”属性改为“计算器”。接下来分别在工具箱中(如图3-15所示)分别选择【Static Text】、【Edit Box】和【Button】控件拖入Calculator窗体,按图3-1“计算器”对话框所示进
行窗体设计,并且按照表3-1所示设置各个控件属性。最终得到如图3-1“计算器”对话框所示操作界面。
(1)菜单的设计
工作区窗口的【ResourceView】选项卡中鼠标双击【Menu】文件夹下的【IDR_MAINFRAME】弹出菜单项,如图3-16所示。
双击“编辑”菜单项下的“撤销”子菜单项,弹出属性对话框,如图3-17所示,将菜单项标题改为“计算器(&C)”,将菜单项ID改为“ID_Menu_Calculator”。
将不必要的菜单项删除,然后将“编辑”菜单的“标题”属性设为“案例(&E)”。完成后生成如图3-18所示菜单项。
(2)工具栏设计
将“draw.ico”、“exit.ico”和“Help.ico”三个光标文件拷贝到工程的“res”文件夹下,鼠标右键单击工作区窗口的【ResourceView】选项卡中的【Icon】,在弹出的快捷菜单中选择【Import】,如图3-19所示。在弹出的如图3-20所示“导入资源”对话框中选择刚才拷贝的光标文件,单击【Import】按钮,将光标文件导入工程中。
鼠标双击资源视图【ResouceView】中的“IDI_ICON3”,弹出如图3-21所示光标文件图
形,按“Ctrl+C”键将图形内容拷贝至剪贴板。然后鼠标双击【Toolbar】下的“IDR_MAINFRAME”,在弹出的工具栏中选择第一个按钮,按“Ctrl+V”键将刚才拷贝的光标图形粘贴到工具栏按钮上(如图3-22所示)。用同样的方法,将其它两个光标文件依次粘贴到紧接的两个工具栏按钮上,接下来鼠标选中剩余的工具栏按钮,通过拖拽鼠标将它们一个个从工具栏中删掉,最后形成如图3-23所示工具栏。
鼠标单击最左端第一个工具栏按钮,弹出如图3-24所示工具栏按钮属性对话框,将其ID值设为菜单“文件”的子菜单“退出”项ID,即“ID_APP_EXIT”。按照同样的方法,将其余两个工具栏按钮的ID分别设为菜单“案例”的子菜单项“计算器”的ID值“ID_Menu_Calculator”和“帮助”的子菜单项“关于 Calculator”的ID值“ID_APP_ABOUT”。
4.添加相关事件处理程序及其实现代码
界面设计完成后,接下来就是要为相关控件添加相应的事件处理程序及其实现代码。
(1)为创建的对话框资源创建新类
要对创建的对话框资源进行引用,必须先为创建的对话框资源创建新类。在资
源视图【Class View】中双击【Dialog】下的“IDD_CALCULATOR_DIALOG”打开
刚才创建的计算器对话框,在对话框上单击鼠标右键,在弹出的快捷菜单中选
择【建立类向导…】,如图3-25所示。在弹出如图3-26所示的对话框中单击【OK】,
接下来在图3-27所示对话框中输入类的名称“calculatorDlg”后单击“OK”
为对话框资源创建一个新类。
(2)为相关控件连接变量,
在建立类向导对话框【MFC ClassWizard】中选择【Member Variables】选项卡,如图3-28所示,在“Control IDs”列表中,选中“Number1_Edit”,单击【Add Variable】按钮,在弹出的对话框(如图3-29所示)中“Member variable name”对应文本框中输入“m_Number1”,在“Category”对应选项中选择“Value”,来为编辑框Number1_Edit连
接变量m_Number1。按照上面的操作过程给另外两个编辑框加入变量(如表3-2所示)。
(3)为相关控件添加事件处理程序
在“加”按钮ADD_Button上单击鼠标右键,选择【Class Wizard】项,在弹出的对话框中选择【Message Map】选项卡,在Object IDs列表中选择“ADD_Button”,在“Messages”列表框中选择“BN_CLICKED”项,如图3-30所示。
单击右边的【Add Function】按钮,在弹出的对话框中输入“OnAddButton”为按钮添
加单击事件。单击图3-30中的【Edit Code】按钮打开“CalculatorDlg.cpp”源程序文件,显示“加”按钮的鼠标单击事件处理程序OnAddButton函数。按照同样的方法为“减法”、“乘法”、“除法”按钮添加事件处理程序。将对calculators类的引用#include "calculators.h"加入到,calculatorDlg.cpp文件中。
接下来为窗口菜单连接计算器对话框。打开建立类向导对话框【MFC ClassWizard】,如图3-31所示,在【MessageMaps】选项卡中“Class name”项中选择“CCalculatorView”,在“ObjectIDs”中选择“ID_Menu_Calculator”,在“Message”项中选择“COMMAND”,单击【Add Function】按钮。在弹出的添加成员函数对话框中按照默认的菜单成员函数名称不变直接单击【OK】为菜单添加成员函数“OnMenuCalculator”。如图3-32所示,单击MFC ClassWizard中的“Edit Code”按钮,为成员函数添加代码。将对calculatorDlg 类的引用#include "calculatorDlg.h"加入到CalculatorView.cpp文件中。
5.编译程序源文件
按照案例1所述方法或者在工具栏上点击按钮对工程进行编译。
6.连接生成可执行文件
按照案例1所述方法或者在工具栏上点击按钮对正确编译后的工程进行连接生成可执行文件Calculator.exe。
7.运行程序
按照案例1所述方法或者在工具栏上点击按钮运行程序,运行结果如图3-1所示。
五、案例实现
程序相关源程序如下(加阴影部分为添加部分):
// *****************************************************************
// * calculators.h calculators类声明头文件
// *****************************************************************
#1. // calculators.h: interface for the calculators class.
#2. //
// *****************************************************************
#3.#if !defined(AFX_CALCULATORS_H__82009C49_398B_4AF4_9BC8_6983F0CAE7D2__INCL UDED_)
#4. #define AFX_CALCULATORS_H__82009C49_398B_4AF4_9BC8_6983F0CAE7D2__INCLUDED_
#5. #if _MSC_VER > 1000
#6. #pragma once
#7. #endif // _MSC_VER > 1000
#8. class calculators
#9. {
#10. public:
#11. calculators();
#12. virtual ~calculators();
#13. calculators(double dNumber1,double dNumber2);
#14. double Add();
#15. double Sub();
#16. double Mul();
#17. double Div();
#18. private:
#19. double Number1,Number2;
#20. };
#21. #endif // !defined(AFX_CALCULATORS_H__82009C49_398B_4AF4_9BC8_ 6983F0CAE7D2__INCLUDED_)
// *****************************************************************
// * calculators. cpp calculators类实现文件
// *****************************************************************
#1. // calculators.cpp: implementation of the calculators class.
#2. //
// *****************************************************************
#3. #include "stdafx.h"
#4. #include "Calculator.h"
#5. #include "calculators.h"
#6. #ifdef _DEBUG
#7. #undef THIS_FILE
#8. static char THIS_FILE[]=__FILE__;
#9. #define new DEBUG_NEW
#10. #endif
// ***************************************************************** #11. // * Construction/Destruction
// ***************************************************************** #12. calculators::calculators()
#13. {
#14. }
#15. calculators::~calculators()
#16. {
#17. }
#18. calculators::calculators(double dNumber1,double dNumber2)
#19. {
#20. Number1=dNumber1;
#21. Number2=dNumber2;
#22. }
#23. double calculators::Add()
#24. {
#25. return Number1+Number2;
#26. }
#27. double calculators::Sub()
#28. {
#29. return Number1-Number2;
#30. }
#31. double calculators::Mul()
#32. {
#33. return Number1*Number2;
#34. }
#35. double calculators::Div()
#36. {
#37. return Number1/Number2;
#38. }
// ***************************************************************** // * calculatorDlg. cpp 对话框类实现文件
// *****************************************************************
#1. // calculatorDlg.cpp : implementation file
#2. //
#3. #include "stdafx.h"
#4. #include "Calculator.h"
#5. #include "calculatorDlg.h"
#6. #include "calculators.h"
#7. #ifdef _DEBUG
#8. #define new DEBUG_NEW
#9. #undef THIS_FILE
#10. static char THIS_FILE[] = __FILE__;
#11. #endif
// ***************************************************************** #12. // calculatorDlg dialog
#13. calculatorDlg::calculatorDlg(CWnd* pParent /*=NULL*/)
#14. : CDialog(calculatorDlg::IDD, pParent)
#15. {
#16. //{{AFX_DATA_INIT(calculatorDlg)
#17. m_Result_Edit = _T("");
#18. //}}AFX_DATA_INIT
#19. }
#20. void calculatorDlg::DoDataExchange(CDataExchange* pDX)
#21. {
#22. CDialog::DoDataExchange(pDX);
#23. //{{AFX_DATA_MAP(calculatorDlg)
#24. DDX_Control(pDX, Number2_Edit, m_Number2_Edit);
#25. DDX_Control(pDX, Number1_Edit, m_Number1_Edit);
#26. DDX_Text(pDX, Result_Edit, m_Result_Edit);
#27. //}}AFX_DATA_MAP
#28. }
#29. BEGIN_MESSAGE_MAP(calculatorDlg, CDialog)
#30. //{{AFX_MSG_MAP(calculatorDlg)
#31. ON_BN_CLICKED(ADD_Button, OnAddButton)
#32. ON_BN_CLICKED(SUB_Button, OnSubButton)
#33. ON_BN_CLICKED(MUL_Button, OnMulButton)
#34. ON_BN_CLICKED(DIV_Button, OnDivButton)
#35. ON_BN_CLICKED(EXIT_Button, OnExitButton)
#36. //}}AFX_MSG_MAP
#37. END_MESSAGE_MAP()
// *****************************************************************
#38. // calculatorDlg message handlers
#39. void calculatorDlg::OnAddButton()
#40. {
#41. // TODO: Add your control notification handler code here
#42. UpdateData(TRUE);
#43. calculators mycalculators(m_Number1,m_Number2); //实例化calculators类,并对参加运算的两个操作数初始化 m_Result=mycalculators.Add(); //实现加法运算
#44. m_Result=mycalculators.Add(); //实现加法运算
#45. UpdateData(FALSE);
#46. }
#47. void calculatorDlg::OnSubButton()
#48. {
#49. // TODO: Add your control notification handler code here
#50. UpdateData(TRUE);
#51. calculators mycalculators(m_Number1,m_Number2);
#52. m_Result=mycalculators.Sub();
#53. UpdateData(FALSE);
#54. }
#55. void calculatorDlg::OnMulButton()
#56. {
#57. // TODO: Add your control notification handler code here
#58. UpdateData(TRUE);
#59. calculators mycalculators(m_Number1,m_Number2);
#60. m_Result=mycalculators.Mul();
#61. UpdateData(FALSE);
#62. }
#63. void calculatorDlg::OnDivButton()
#64. {
#65. // TODO: Add your control notification handler code here
#66. UpdateData(TRUE);
#67. if(m_Number2==0)
#68. {
#69. MessageBox("除数不能为零!","除法运算");
#70. return;
#71. }
#72. calculators mycalculators(m_Number1,m_Number2);
#73. m_Result=mycalculators.Div();
#74. UpdateData(FALSE);
#75. }
#76. void calculatorDlg::OnExitButton()
#77. {
#78. // TODO: Add your control notification handler code here
#79. OnOK();
#80. }
// *****************************************************************
// * CalculatorView. cpp 类实现文件
// *****************************************************************
#1. // CalculatorView.cpp : implementation of the CCalculatorView class
#2. //
#3. #include "stdafx.h"
#4. #include "Calculator.h"
#5. #include "CalculatorDoc.h"
#6. #include "CalculatorView.h"
#7. #include "calculatorDlg.h"
#8. #ifdef _DEBUG
#9. #define new DEBUG_NEW
#10. #undef THIS_FILE
#11. static char THIS_FILE[] = __FILE__;
#12. #endif
// *****************************************************************
#13. // CCalculatorView
#14. IMPLEMENT_DYNCREATE(CCalculatorView, CView)
#15. BEGIN_MESSAGE_MAP(CCalculatorView, CView)
#16. //{{AFX_MSG_MAP(CCalculatorView)
#17. ON_COMMAND(ID_Menu_Calculator, OnMenuCalculator)
#18. //}}AFX_MSG_MAP
#19. // Standard printing commands
#20. ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
#21. ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
#22. ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
#23. END_MESSAGE_MAP()
// *****************************************************************
#24. // CCalculatorView construction/destruction
#25. CCalculatorView::CCalculatorView()
#26. {
#27. // TODO: add construction code here
#28. }
#29. CCalculatorView::~CCalculatorView()
#30. {
#31. }
#32. BOOL CCalculatorView::PreCreateWindow(CREATESTRUCT& cs)
#33. {
#34. // TODO: Modify the Window class or styles here by modifying
#35. // the CREATESTRUCT cs
#36. return CView::PreCreateWindow(cs);
#37. }
// *****************************************************************
#38. // CCalculatorView drawing
#39. void CCalculatorView::OnDraw(CDC* pDC)
#40. {
#41. CCalculatorDoc* pDoc = GetDocument();
#42. ASSERT_VALID(pDoc);
#43. // TODO: add draw code for native data here
#44. }
// *****************************************************************
#45. // CCalculatorView printing
#46. BOOL CCalculatorView::OnPreparePrinting(CPrintInfo* pInfo)
#47. {
#48. // default preparation
#49. return DoPreparePrinting(pInfo);
#50. }
#51. void CCalculatorView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
#52. {
#53. // TODO: add extra initialization before printing
#54. }
#55. void CCalculatorView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) #56. {
#57. // TODO: add cleanup after printing
#58. }
// *****************************************************************
#59. // CCalculatorView diagnostics
#60. #ifdef _DEBUG
#61. void CCalculatorView::AssertValid() const
#62. {
#63. CView::AssertValid();
#64. }
#65. void CCalculatorView::Dump(CDumpContext& dc) const
#66. {
#67. CView::Dump(dc);
#68. }
#69. CCalculatorDoc* CCalculatorView::GetDocument() // non-debug version is inline
#70. {
#71. ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CCalculatorDoc)));
#72. return (CCalculatorDoc*)m_pDocument;
#73. }
#74. #endif //_DEBUG
// *****************************************************************
#75. // CCalculatorView message handlers
#76. void CCalculatorView::OnMenuCalculator()
#77. {
#78. // TODO: Add your command handler code here
#79. calculatorDlg mydlg; //实例化计算器对话框类
#80. mydlg.DoModal(); //显示计算器对话框
#81. }
六、案例总结与提高
1.案例总结
系统通过建立MFC单文档应用程序来实现,对两个操作数的四则运算过程以calculators类的形式来实现。在程序实现过程中,要注意以下几点:
(1)在Visual C++6.0环境下创建并运行MFC单文档应用程序的基本过程。
(2)添加用户自定义类的方法、添加类的数据成员和函数成员的方法。
(3)常用控件的使用,为控件连接变量以及创建事件处理程序的方法。
2.案例提高
本案例只是完成了十进制加、减、乘、除四则运算,在此基础上进行修改完成除十进制以外的像二、八、十六进制的四则运算。
注意事项:
1.新建计算类类名:calculators
2.计算器对话框名IDD_Calculator
对应类名:calculatorDlg
对话框控件ID及成员变量名:
Number1_Edit m_Number1
Number2_Edit
Result_Edit
3.运算按钮添加代码前:添加对计算类calculators的引用
#include "calculators.h"
4.菜单项的ID:ID_Menu_Calculator
添加其代码时,选view类
且在View类中添加对计算器对话框类calculatorDlg的引用#include "calculatorDlg.h"
简单的四则运算计算器程序
注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。 2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。
附件:程序源代码 // sizheyunsuan.cpp : Defines the entry point for the console application. #include
吉首大学课程设计 课程设计名称:简单的计算器 专业班级: 10 网络工程 学生姓名:胡申城唐茂林赖佳 学号:20104045049 20104045006 201040450 指导教师:鲁荣波老师 课程序设计时间:2011.12.18-2011.12.25
目录 一内容 (1) 二.设计要求 (2) 三.计算器的算法 (2) 四..流程图 (5) 五.源程序 (7) 六.执行结果 (8) 七.课程设计总结 (3) 八.参考书目 (3)
一、内容 编写一个功能基本完善的计算器程序,支持四则运算、乘方开方、指数对数等运算,支持带括号的表达式。 二、设计要求 1) 程序采用字符界面 2) 显示功能菜单,用户指定键即可进入相应功能 3) 每次计算完成后输出一个提示符,要计算的数字或表达式由用户在提示后面输入 4) 用户输入完按回车立即显示计算结果 三、计算器的算法 我们现在用的计算器多是一个数一个运算符的输入输出的。一个比较具有现实意义的计算器,应该具有如下功能: 1.能够实现整数的四则运算:如:1+6-9*4+4/3 2.能够实现小数的四则运算:如:0.2+7-4 这样的计算器基本可以使用在我们生活中。如果我们按照栈的使用来描述一下表达式的进栈出栈问题: 表达式例如:1+9*4/4-5。 假设有栈D和数组S;S中放运算数,D栈放入运算符,优先级高的现运算,四则运算中,*和/优先级最高。 第一步:扫描到‘1’,是运算数,放入S; 第二步:扫描到‘+‘进入D
第三步:扫描到9;进S 第四步:扫描‘*’,因为乘比加优先级高,所以9出栈实现:9*4,把结果入S, 第五步:扫描到/,同样计算S的栈顶元素出栈,实现36/4,把结果如S 第六步:扫描到—,进入D栈; 第七步:扫描到‘5’,进S 第八步:扫描到‘\0’,为结束符;把S栈顶元素栈S1,D顶元素出栈,然后S栈顶元素在出栈,实现减操作,接着S栈顶元素出栈,实现加操作。 具体进出栈如图: Next 为下一个字符或数字,run表示运行,空为不操作S[] D S[] D S[] D S[] D S[] D S[] top t top 9 top 36 top 4 - -1 top base 1 + 1 + 1 + 1 + 1 + 0 top top next + 9 * 4 / 4 - 5 = run 9*4 36/4 4-5 -1+1 表1-1 运算数运算符进栈、出栈
第二章有理数及其运算 12.用计算器进行运算 一、学生知识状况分析 在上节课的基础上,学生能够非常有兴趣来学习计算器的使用方法。关键要照顾好不能准确记忆每个键功能的学生,教师及时帮扶,通过动手能力强的学生带动弱势群体来学习本节课知识。 二、教学任务分析 计算器和计算机的逐步普及,对数学教育产生了深刻的影响。因此《标准》强调,“把现代信息技术作为学生学习数学和解决问题的强有力工具,致力于改变学生的学习方式,使学生乐意并有更多的精力投入到现实的、探索性的数学活动中去”。一方面计算器可以使学生从繁琐的纸笔计算中解放出来,也为解决实际问题提供了有力的工具;另一方面,计算器和计算机对学生的数学学习方式也有很大的影响.计算器可以帮助学生探索数学规律,理解数学概念和法则。学生刚学了有理数的运算法则,可以将纸笔计算与计算器计算的结果相对照,因此学好本节内容对于学生的发展起着举足轻重的作用,在探索现实问题和需要进行复杂的运算时,应当鼓励学生使用计算器,慢慢养成像使用纸笔那样使用计算器的习惯。根据本节课的内容及学生的特点,设置教学目标及重难点如下:1经历探索计算器使用方法的过程,了解计算器按键功能,会使用计算进行有理数的加、减、乘、除、乘方运算.掌握按键顺序, 2经历运用计算器探索数学规律的活动,培养合情推理能力,能运用计算器进行实际问题的复杂运算. 3在合作交流的学习过程中,培养合作能力和动手操作的实践能力。 本节课的重点是计算器的使用及技巧。. 本节课难点是难点是运用计算器进行较为繁琐的运算和探索规律,关键是熟练准确的运用计算器进行计算。 三、教学过程分析 本节课设计了五个环节:动手操作掌握运用;例题讲解熟能生巧;尝试练
用计算器计算 用计算器计算教学内容:用计算器计算教材第113 页例4 ,练习二十六8 - 12 题与13*。 教学目的:使学生掌握用计算器计算小数加、减的计算方法,能正确地用计算器进行小数加、减法的计算。教学重、难点:用计算器计算小数加、减法的计算方法。熟悉键盘和数据的录入的方法。教学过程 一、复习准备1.用计算器计算。 1234 + 3649 = 7208 - 376 = 1845 + 365 = 1452 - 786 = 649 + 9818 = 7000 - 2047 = 2.提问:用计算器计算整数加、减法时,你是怎么操作的?说说你的计算方法。 二、揭示课题以前,我们学习了用计算器计算整数加、减法,掌握了它们的计算方法,那么用计算器计算小数加、减又是怎样计算的呢?这节课我们就来学习这个内容。 板书课题:用计算器计算小数加、减法 三、教学新课 1 .让学生看例4 上面的图和一段话,在计算器上找到小数点键,了解用计算器计算小数加、减法的方法。 2.教学例4 用计算器计算18.7 + 3.96 。 (1)清屏,键入“ 18.7 ”。(注意:有没有显示小数点)(2)对照表中的按键过程录入。(注意显示器的显示内容)(3)核对计
算结果。 (4)说明:以后遇到比较复杂的计算可以使用计算器。 3.补充例题:用珠算计算25.4 +13.58 +43.12 (1)让学生试着用计算器计算。 (2)说一说用计算器计算的操作过程和方法。 四、尝试练习练习二十六的第8 题。 五、巩固练习 1.练习二十六的第9 题。 (1)让学生说说表的意思? (2)用什么方法可计算出9月2日的结存金额?为什么? (3)以下各栏的结存金额该怎样计算?为什么? (4)本月合计栏该怎样填?让学生完成本题。2.练习二十六的第12 题。 (1)地球表面除了陆地就是什么? (2)怎样求海洋的面积? (3)怎样求海洋面积比陆地面积多多少亿平方千米? 5.1 - 1.49 - 1.49 =3.61 - 1.49 =2.12 (亿平方千米) 3.练习二十六的第13* 题。 (1)“a - 34.6 + 7.2 ”与“ a - 34.6 + 72 ”中的a 是否相同?
基于单片机实现的四则运算计算器 姓名 学号: 班级: 专业名称:测控技术与仪器 指导教师: 东北大学 2016年1月
课程设计(论文)任务书课程设计(论文)题目:基于单片机实现的四则运算计算器 基本内容和设计要求: 1、主机的矩阵键盘输入数和运算符号,从机显示运算结果。 2、主从单片机串行通信系统,并在LCD上显示运算内容及结果。 3、计算结果超过十位数字则显示错误。 4、运算除法时,结果只取整数,不是四舍五入。 5、有清零功能。
目录 课程设计(论文)任务书................................................................................................ i i 摘要 (1) 第1章绪论 (2) 1.1计算器简介 (2) 1.2设计主要内容 (2) 第2章系统硬件设计 (4) 2.1硬件组成 (4) 2.2输入模块 (4) 2.3输出模块 (5) 2.4运算模块 (5) 第3章系统软件设计 (7) 3.1 主程序 (7) 3.1.1主程序框图及初始化 (7) 3.1.2LCD程序框图及初始化 (8) 3.1.3键盘程序框图及初始化 (9) 3.1.4运算程序框图 (10) 第4章调试测试与实验分析 (11) 4.1 计算器调试 (11) 参考文献 (12) 心得体会 (13) 附录硬件原理图及PCB图 (14) 附录程序清单 (15) 附录实物照片 (28)
摘要 单片机的出现是计算机制造技术高速发展的产物,它是嵌入式控制系统的核心,如今,它已广泛的应用到我们生活的各个领域,电子、科技、通信、汽车、工业等。本设计是基于89C52RC单片机来进行的四则运算计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除的基本四则运算,并在LCD1602液晶显示屏上显示相应的结果。本电路采用89C52RC单片机为主要控制电路,利用4*4矩阵键盘作为计算器以及运算符的输入。显示采用字符LCD静态显示。软件用C语言编程,并用开发板进行演示。 关键词:计算器,89C52RC单片机,LCD,矩阵键盘
HTML5+JavaScript: