当前位置:文档之家› 使用VC6编写一个计算器MFC

使用VC6编写一个计算器MFC

使用VC6编写一个计算器MFC
使用VC6编写一个计算器MFC

使用VC6.0编写一个简易的计算器

效果图

第一步:启动Visual C++6.0

第二步:新建一个工程

第三步:选择MFC AppWizard[exe],给工程命名,点击确定。

第四步:点选“基本对话框”,然后点击“完成”。切记:不要点“下一步”

第五步:点击“确定”,就完成工程建立了!

第六步:看到这个页面后,就进入了面板的设计。通过旁边的“控件”在面板中放置相应的按钮,编辑框,文本框等内容。(这里讲的简易计算器需要按钮,编辑框这两个控件。一般如果有需要的话还可以加入文本框用于说明。)

第七步:对每个对象建立类向导,但编写计算器只限于编辑框。

点击进入类向导后,点击横向按钮中的第二个按钮,在“Control IDs”中找到编辑框对应的名字,没有前期改动过的,一般都是IDC_EDIT1,点击“IDC_EDIT1”出现的对话框中,Variable type中选择CString,命名。点击“OK”。

最后编写代码了:

将面板上面的所有按钮和编辑框全部双击一遍,就会在“计算器Dlg.CPP”文件中生成控制其功能的空函数。你需要在这些空函数中写入相应的代码以实现按钮的功能。(请着重看红色加粗部分的代码,那才是真正的精髓)

以下是“计算器Dlg.CPP”文件全部程序代码

// 计算器Dlg.cpp : implementation file

//

#include "stdafx.h"

#include "计算器.h"

#include "计算器Dlg.h"

#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_FILE

static char THIS_FILE[] = __FILE__;

#endif

classCAboutDlg : public CDialog

{

public:

CAboutDlg();

// Dialog Data

//{{AFX_DATA(CAboutDlg)

enum { IDD = IDD_ABOUTBOX };

//}}AFX_DATA

//{{AFX_VIRTUAL(CAboutDlg)

protected:

virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL

protected:DECLARE_MESSAGE_MAP()};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD){}

voidCAboutDlg::DoDataExchange(CDataExchange* pDX)

{CDialog::DoDataExchange(pDX);}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)

END_MESSAGE_MAP()

CMyDlg::CMyDlg(CWnd* pParent)

: CDialog(CMyDlg::IDD, pParent)

{

//{{AFX_DATA_INIT(CMyDlg)

num = _T("");

//}}AFX_DATA_INIT

// Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

}

voidCMyDlg::DoDataExchange(CDataExchange* pDX)

{

CDialog::DoDataExchange(pDX);

//{{AFX_DATA_MAP(CMyDlg)

DDX_Text(pDX, IDC_EDIT1, num);

//}}AFX_DATA_MAP

}

BEGIN_MESSAGE_MAP(CMyDlg, CDialog)

//{{AFX_MSG_MAP(CMyDlg)

ON_WM_SYSCOMMAND()

ON_WM_PAINT()

ON_WM_QUERYDRAGICON()

ON_BN_CLICKED(IDC_BUTTON1, OnButton1)

ON_BN_CLICKED(IDC_BUTTON2, OnButton2)

ON_BN_CLICKED(IDC_BUTTON3, OnButton3)

ON_BN_CLICKED(IDC_BUTTON4, OnButton4)

ON_BN_CLICKED(IDC_BUTTON5, OnButton5)

ON_BN_CLICKED(IDC_BUTTON6, OnButton6)

ON_BN_CLICKED(IDC_BUTTON7, OnButton7)

ON_BN_CLICKED(IDC_BUTTON8, OnButton8)

ON_BN_CLICKED(IDC_BUTTON9, OnButton9)

ON_BN_CLICKED(IDC_BUTTON10, OnButton10)

ON_BN_CLICKED(IDC_BUTTON11, OnButton11)

ON_BN_CLICKED(IDC_BUTTON12, OnButton12)

ON_BN_CLICKED(IDC_BUTTON13, OnButton13)

ON_BN_CLICKED(IDC_BUTTON14, OnButton14)

ON_BN_CLICKED(IDC_BUTTON15, OnButton15)

ON_BN_CLICKED(IDC_BUTTON16, OnButton16)

ON_BN_CLICKED(IDC_BUTTON17, OnButton17)

ON_BN_CLICKED(IDC_BUTTON18, OnButton18)

ON_BN_CLICKED(IDC_BUTTON20, OnButton20)

ON_BN_CLICKED(IDC_BUTTON19, OnButton19)

ON_EN_CHANGE(IDC_EDIT1, OnChangeEdit1)

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

BOOL CMyDlg::OnInitDialog()

{

CDialog::OnInitDialog();

ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);

ASSERT(IDM_ABOUTBOX < 0xF000);

CMenu* pSysMenu = GetSystemMenu(FALSE);

if (pSysMenu != NULL)

{

CStringstrAboutMenu;

strAboutMenu.LoadString(IDS_ABOUTBOX);

if (!strAboutMenu.IsEmpty())

{

pSysMenu->AppendMenu(MF_SEPARATOR);

pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);

}

}

SetIcon(m_hIcon, TRUE);

SetIcon(m_hIcon, FALSE);

return TRUE;

}

voidCMyDlg::OnSysCommand(UINT nID, LPARAM lParam)

{

if ((nID& 0xFFF0) == IDM_ABOUTBOX)

{

CAboutDlgdlgAbout;

dlgAbout.DoModal();

}

else

{

CDialog::OnSysCommand(nID, lParam);

}

}

voidCMyDlg::OnPaint()

{

if (IsIconic())

{

CPaintDCdc(this);

SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

intcxIcon = GetSystemMetrics(SM_CXICON);

intcyIcon = GetSystemMetrics(SM_CYICON);

CRectrect;

GetClientRect(&rect);

int x = (rect.Width() - cxIcon + 1) / 2;

int y = (rect.Height() - cyIcon + 1) / 2;

dc.DrawIcon(x, y, m_hIcon);}

else{CDialog::OnPaint();}}

HCURSOR CMyDlg::OnQueryDragIcon(){return (HCURSOR) m_hIcon;}

voidCMyDlg::OnChangeEdit1() {}

double num1,num2;char sys;

voidCMyDlg::OnButton1() {UpdateData(true);num+='1';UpdateData(false);}

voidCMyDlg::OnButton2() {UpdateData(true);num+='2';UpdateData(false);}

voidCMyDlg::OnButton3() {UpdateData(true);num+='3';UpdateData(false);}

voidCMyDlg::OnButton4() {UpdateData(true);num+='4';UpdateData(false);}

voidCMyDlg::OnButton5() {UpdateData(true);num+='5';UpdateData(false);}

voidCMyDlg::OnButton6() {UpdateData(true);num+='6';UpdateData(false);}

voidCMyDlg::OnButton7() {UpdateData(true);num+='7';UpdateData(false);}

voidCMyDlg::OnButton8() {UpdateData(true);num+='8';UpdateData(false);}

voidCMyDlg::OnButton9() {UpdateData(true);num+='9';UpdateData(false);}

voidCMyDlg::OnButton10() {UpdateData(true);num+='0';UpdateData(false);}

voidCMyDlg::OnButton11() {if(-1==num.Find('.')){UpdateData(true);num+='.';}UpdateData(false);}

void CMyDlg::OnButton12() {UpdateData(true);num2=-num2;char rs[20];sprintf(rs,"%g",num2);num=rs;UpdateData(false);}

void CMyDlg::OnButton13() {UpdateData(true);num1=atof(num);num='\0';sys='+';UpdateData(false);}

void CMyDlg::OnButton14() {UpdateData(true);num1=atof(num);num='\0';sys='-';UpdateData(false);}

void CMyDlg::OnButton15() {UpdateData(true);num1=atof(num);num='\0';sys='*';UpdateData(false);}

void CMyDlg::OnButton16() {UpdateData(true);num1=atof(num);num='\0';sys='/';UpdateData(false);}

void CMyDlg::OnButton17() {if(!num.IsEmpty()){UpdateData(true);num=num.Left(num.GetLength()-1);}UpdateData(false);}

voidCMyDlg::OnButton18() {UpdateData(true);num='\0';UpdateData(false);}

void CMyDlg::OnButton20() {UpdateData(true);num1=atof(num);num='\0';sys='^';UpdateData(false);}

voidCMyDlg::OnButton19()

{UpdateData(true);

charrs[50];

memset(rs,0,50);

switch(sys)

{case'+':num2=num1+atof(num);sprintf(rs,"%g",num2);num=rs;break;

case'-':num2=num1-atof(num);sprintf(rs,"%g",num2);num=rs;break;

case'*':num2=num1*atof(num);sprintf(rs,"%g",num2);num=rs;break;

case'/':num2=num1/atof(num);sprintf(rs,"%g",num2);num=rs;break;

case'^':num2=1;for(int

i=0;i

编写一个计算器程序课程设计报告-范例

学号 《金融IT入门-程序设计》 课程设计报告 中国地质大学长城学院XX 系 2017年月 3 日 目录 一.总体概述: 二.设计目标: 三.程序流程图: 四.程序代码: 评分细则 评分项优秀良好中等差 上课出勤 上课表现 上机情况 平时作业完成情况 期末大作业: (1)书写认真程度 题目:用Python编写简易计算器程序 学号: 专业: 班级: 姓名: 指导教师: 2016-2017学年第二学期

(2)内容详实程度(3)文字表达能力(4)是否体现观点 简短教师签名: 年月日 评 分 等 级 备 注 评分等级有五种:优秀、良好、中等、及格、不及格

一、设计内容 ------------------------------------------------------------------------------------------------- - 1 - 1. 课程设计目的:-------------------------------------------------------------------------------------- - 1 - 2.课程设计任务: --------------------------------------------------------------------------------- - 1 - 3.创新要求:---------------------------------------------------------------------------------------------- - 2 - 4.设计要求: ------------------------------------------------------------------------------------------------ - 2 - 二、原理和分析 ---------------------------------------------------------------------------------------------- - 2 - 1.开发的技术及功能 ----------------------------------------------------------------------------------- - 2 - 2.设计思路------------------------------------------------------------------------------------------------ - 2 - 3.设计效果图--------------------------------------------------------------------------------------------- - 2 - 三、设计过程 ------------------------------------------------------------------------------------------------- - 3 - 1. 程序思路: -------------------------------------------------------------------------------------------- - 3 - 2.功能实现:---------------------------------------------------------------------------------------------- - 4 - 1)加减乘除求余以及指数运算----------------------------------------------------------------- - 4 - 2)其他运算 ------------------------------------------------------------------------------------------ - 4 - 3)主要方法说明------------------------------------------------------------------------------------ - 5 - 4)程序流程图 --------------------------------------------------------------------------------------- - 5 - 3.算法思路:---------------------------------------------------------------------------------------------- - 6 - 4.数据分析:---------------------------------------------------------------------------------------------- - 7 - 四、设计结果和分析------------------------------------------------------------------------------------------ - 7 - ⒈运行调试------------------------------------------------------------------------------------------------ - 7 - 1)进行加减乘除求余以及指数运算----------------------------------------------------------- - 7 - 2)求倒 ------------------------------------------------------------------------------------------------ - 9 - 3)退格 ------------------------------------------------------------------------------------------------ - 9 - 4)清零 ---------------------------------------------------------------------------------------------- - 10 - 5)求余弦、求正切、对e求幂、求平方根、求自然对数、求倒运算 ------------- - 11 - 6)连续运算(例:2*3*4=24.0)------------------------------------------------------------- - 11 - 7)异常处理(例:求倒时输入数为0) --------------------------------------------------- - 11 - 五、设计体会和小结 -------------------------------------------------------------------------------------- - 12 - 六、参考文献 ----------------------------------------------------------------------------------------------- - 13 - 七、源程序--------------------------------------------------------------------------------------------------- - 13 - 一、设计内容 1.课程设计目的: 1)掌握Java语言的程序设计方法; 2)理论联系实际,进一步提高学生的软件开发技术; 3)培养学生分析、解决问题的能力; 4)提高学生实践论文撰写能力。 2.课程设计任务:

VCmfc编计算器源代码

用C++编写计算器程序 搞要本课程设计是在基于对话框的应用程序中模拟一个计算器,本计算器可以进行十进制下的四则运算(加、减、乘、除)和四则混合运算,可以把十进制转化为二进制或十六进制,可以进行一些常用的函数运算(比如sin、cos、tan、cot、sqrt、ln等),还可以支持带“(”,“)”符号的表达式的计算。系统开发平台为Windows XP,程序设计设计语言采用Visual C++6.0,程序运行平台为Windows 98/2000/XP。程序通过调试运行,初步实现了设计目标。 关键词程序设计;计算器;C++; 1 引言 在现代社会中,计算器已经进入了每一个家庭,人们在生活和学习中经常需要使用到计算器,它的出现大大减少了人们在计算方面的工作量,可以说它在人们生活和学习中是不可缺少的。 1.1C++介绍 C++语言的主要特点表现在两个方面,一是全面兼容C语言,二是支持面向对象的程序设计方法[1]。 (1) C++是一个更好的C,它保持了C语言的优点,大多数的C程序代码略作修改或不作修改就可在C++的集成环境下调试和运行。这对于继承和开发当前已在广泛的软件是非常重要的,可以节省大量的人力和物力。 (2) C++是一种面向对象的程序设计语言它使得程序的各个模块的独立性更强,程序的可读性和可移植性更强,程序代码的结构更加合理,程序的扩充性更强。这对于设计、编制和调试一些大型的软件尤为重要。 (3) C++集成环境不仅支持C++程序的编译和调试,而且也支持C程序的编译和调试。

通常,C++程序环境约定:当源程序文件的扩展名为c.时,则为C程序;而当源程序文件的扩展名为cpp.时,则为C++程序。 (4) C++语句非常简练,对语法限制比较宽松,因此C++语法非常灵活。其优点是给用户编程带来书写上的方便。其缺点是由于编译时对语法限制比较宽松,许多逻辑上的错误不容易发现,给用户编程增加了难度。 1.2计算器的介绍 (1)在运行程序后,系统会弹出一个基于对话框的计算器界面,如下图所示: 图1.1 计算器界面 (2)在计算器程序中,主要通过一个编辑框来获取表达式和显示计算结果,表达式可以通过键盘和单击按钮2种方式输入,输入后的结果如下图所示:

java编写的简单的计算器程序

计算器 项目内容:编写一个Applet,模仿windows附件所带计算器的功能,可以帮助用户完成计算功能,具体如下图所示。 项目要求:使用图形的方式借助窗口、菜单、按钮等标准界面元素和鼠标操作,来帮助用户方便地向计算机系统发出命令,启动操作,并将系统运行的结果同样以图形的方式显示给用户,这样更加直观和生动; 1.Applet容器中组件的添加与设置,包括面板以及菜单的使用; 2.容器中组件的布局管理; 3.Java核心包中数组、数学计算类的使用; 4.异常的处理; 5.事件处理模型中的三类对象的使用: 1.Event-事件,用户对界面操作在java语言上的描述,以类的形式出现,例如键盘操作对应的事件类是KeyEvent。 2.Event Source-事件源,事件发生的场所,通常就是各个组件,例如按钮Button。 3.Event handler-事件处理者,接收事件对象并对其进行处理的对象。 6.程序中事件处理的流程:

1.计算流程的细化 参考代码: import .*;

import .*; import .*; import import import public class Calculator implements ActionListener { #############"); dd(panel); panel1 = new JPanel(); panel2 = new JPanel(); (new BorderLayout()); 键入计算的第一个数字。\n"); ("2. 单击“+”执行加、“-”执行减、“*”执行乘或“/”执行除。\n"); ("3. 键入计算的下一个数字。\n"); ("4. 输入所有剩余的运算符和数字。\n"); ("5. 单击“=”。\n"); aboutCal = new JMenuItem(" 关于计算器(A)"); (this);

c面向对象程序设计MFC简单计算器实验报告

计算机与信息工程学院 《程序设计基础》课程设计报告 题目名称:60.编写一个能实现简单功能的计算器学生姓名:刘沛东 学生学号:2011508154 专业班级:电子信息工程(1)班 指导教师:高攀

1 课程设计的题目 编写一个能实现简单功能的计算器 2 题目要求 1. 有一个计算器图形。 2. 能实现加、减、乘、除及乘方的运算。 3. 当输入题目时,屏幕上要在指定位置上显示出相应的题目内容,且相应的数字键要改变颜色 例如:输入数字1 时,在计算器图形上的1键变为红色。 4. 屏幕、图形颜色、形状自定 3 总体设计 3.1 总体框架 图1 系统框架

3.2 系统功能说明 在VC++6.0中绘制计算器界面,各控件的设置 对0~9控件设定相应的ID和其他属性: 图2 “1”控件设置 对“+、-、*、\”控件设定相应的ID和其他属性: 图2 “+”控件设置 对其它控件设定相应的ID和其他属性: 图3 其它控件设置

主要使用到Layout菜单中的Align功能对各个按钮进行对其,使界面更加整洁。拖出的控件有上面的一个Edit控件用于显示数字,Button控件用于处理鼠标的消息。 4 程序详细设计 4.1系统主调模块 图5 程序流程图

4.2各模块详细设计 4.2.1 建立的变量,控件的命名,对应的消息处理函数对应表 double poz; //保存小数点的位置,初始化为1,表示poz-1个小数点。 double m_Dis; //Edit控件上需要显示的数字 BOOL point_flag; //小数点表示位,判定是否是小数,是小数为1,不是小数为0。 double numfirst; //保存计算过程中的前一个数字, double numsecond;//保存计算过程中的第二个数字 char op;//记录当前的计算符号,可以为’+’,’-’,’*’,’/’,’=’,’c’,’n’ 变量初始化: poz=1; m_Dis = 0.0; numfirst=0; numsecond=0; op=0;

用C++编写计算器程序

1.2计算器的介绍 (1)在运行程序后,系统会弹出一个基于对话框的计算器界面,如下图所示: 图1.1 计算器界面 (2)在计算器程序中,主要通过一个编辑框来获取表达式和显示计算结果,表达式可以通过键盘和单击按钮2种方式输入,输入后的结果如下图所示:

图1.2 输入表达式后的界面 (3)在输入完表达式后,单击“=”后,开始对表达式进行计算,计算完成后,在编辑框中显示计算的结果。 图1.3 计算后的结果

(4)计算器可以实现十进制转化为十六进制或二进制,其实现的操作为先输入一个十进制整数,再单击按钮“转化为二进制”或“转化为十六进制。 图1.4 输入一个十进制数100 图1.5 100转化为二进制后的结果

图1.6 100转化为十六进制后的结果 (4)另外,计算器还可以实现一些简单的函数运算,实现的操作和十六进制/二进制转化类似,是先输入一个数字,在单击想要进行的函数的按钮,单击后就会在编辑框中显示运算的结果。 1算法的实现 2.1把字符串转化为数字和运算符的算法 (1)如果字符串中只有数字。这个情况用来实现一些简单函数的运算。在进行简单函数的运算时,都是先输入一个数字,再单击要进行运算的按钮,然后编辑框显示运算的结果。程序用了一个函数double GetaStr(CString str)来实现这个功能,该函数以编辑框变量m_strResult为实参,再得到m_strResult的值后,调用GetAt函数,一个字符一个字符的读取,如果碰到整数,执行“itemp=itemp*rate+(str.GetAt(i)-'0');”,其中变量itemp初始值为0,

计算器程序

制作简单计算器 要求和目的 ●要求: 设计一个的计算器,具有简单的运算功能,能进行两个操作数的“+”、“-”、“*”、“/” 运算。计算器的运行效果如图 ●目的: 掌握Label控件的使用方法; 掌握ComboBox控件的使用方法; 掌握Button控件的使用方法; 掌握TextBox控件的使用方法。 ●设计步骤 新建一个Visual C# Windows应用程序,依次在界面上拖入五个“Label控件”,分别用于“计算器”、“操作数1”、“操作数2”、“运算符”和“结果”,并设置合适的字体及位置。 拖入三个“TextBox控件”,分别用于“接收操作数”和“显示结果”,其中,显示结果的“TextBox控件”的“ReadOnly属性”设置为“True”,即该文本框为只读。最后拖入一个“Button控件”,用于“计算”功能。计算器界面设计好之后,如图所示。

相关背景知识: ComboBox 控件 ComboBox 控件又称组合框,在工具箱中的图标为。默认情况下,组合框分两个部分显示:顶部是一个允许输入文本的文本框,下面的列表框则显示列表项。可以认为ComboBox就是文本框与列表框的组合,与文本框和列表框的功能基本一致。dropdownstyle属性 ●Simple 始终显示列表 ●Dropdown 文本部分可编辑 ●Dropdownlist 文本部分不可编辑 Items 属性 若要在combobox控件中添加或删除项,可以在设计器中使用Items属性向列表添加项。 SelectedIndex 属性 编辑框所选列表条目的索引号,列表条目索引号从0开始,如果编辑框未从列表中选择条目,该值为-1 SelectedItem 属性 所选择条目的内容,即下拉列表中选中的字符串,如一个也没选,该值为空。获取或设置选定项。它返回项本身,通常是一个字符串值。 编写代码 1.要求和目的 要求: 编写一段代码,用于实现计算器的功能。在“操作数”填写上两个数字,并选择“运算符”,单击“计算”按钮之后,可以在“结果文本框”中显示计算结果。 目的: 掌握数据类型转换的方法; 掌握条件判断语句的编写方法; 掌握文本框控件属性的设置方法。 ●2.设计步骤 (1)双击“计算(Button)”按钮,进入该按钮的单击事件,编写代码。

用MFC编写的计算器程序源代码

// JiSuanQiDlg.cpp : 实害?现?文?件t // #include"stdafx.h" #include"JiSuanQi.h" #include"JiSuanQiDlg.h" #include"afxdialogex.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // 用?于 ?应畖用?程ì序?“°关?于 ?”±菜?单蹋?项?的? CAboutDlg 对?话°框? class CAboutDlg : public CDialogEx { public: CAboutDlg(); // 对?话°框?数簓据Y enum { IDD = IDD_ABOUTBOX }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支§持? // 实害?现? protected: DECLARE_MESSAGE_MAP() }; CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD) { } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx) END_MESSAGE_MAP()

// CJiSuanQiDlg 对?话°框? CJiSuanQiDlg::CJiSuanQiDlg(CWnd* pParent /*=NULL*/) : CDialogEx(CJiSuanQiDlg::IDD, pParent) , m_num(0) , m_1(0) , m_2(_T("")) , m_two(0) { m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); } void CJiSuanQiDlg::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); DDX_Text(pDX, IDC_EDIT1, m_num); DDX_Text(pDX, IDC_EDIT2, m_1); DDX_Text(pDX, IDC_EDIT3, m_2); DDX_Text(pDX, IDC_EDIT4, m_two); } BEGIN_MESSAGE_MAP(CJiSuanQiDlg, CDialogEx) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_BUTTON2, &CJiSuanQiDlg::OnBnClickedButton2) ON_BN_CLICKED(IDC_BUTTON1, &CJiSuanQiDlg::OnBnClickedButton1) ON_BN_CLICKED(IDC_BUTTON3, &CJiSuanQiDlg::OnBnClickedButton3) ON_BN_CLICKED(IDC_BUTTON4, &CJiSuanQiDlg::OnBnClickedButton4) ON_BN_CLICKED(IDC_BUTTON5, &CJiSuanQiDlg::OnBnClickedButton5) ON_BN_CLICKED(IDC_BUTTON6, &CJiSuanQiDlg::OnBnClickedButton6) ON_BN_CLICKED(IDC_BUTTON7, &CJiSuanQiDlg::OnBnClickedButton7) ON_BN_CLICKED(IDC_BUTTON8, &CJiSuanQiDlg::OnBnClickedButton8) ON_BN_CLICKED(IDC_BUTTON9, &CJiSuanQiDlg::OnBnClickedButton9) ON_BN_CLICKED(IDC_BUTTON10, &CJiSuanQiDlg::OnBnClickedButton10) ON_BN_CLICKED(IDC_BUTTON11, &CJiSuanQiDlg::OnBnClickedButton11) ON_BN_CLICKED(IDC_BUTTON13, &CJiSuanQiDlg::OnBnClickedButton13) ON_BN_CLICKED(IDC_BUTTON14, &CJiSuanQiDlg::OnBnClickedButton14) ON_BN_CLICKED(IDC_BUTTON15, &CJiSuanQiDlg::OnBnClickedButton15) ON_BN_CLICKED(IDC_BUTTON16, &CJiSuanQiDlg::OnBnClickedButton16) ON_BN_CLICKED(IDC_BUTTON12, &CJiSuanQiDlg::OnBnClickedButton12)

java编写的简单的计算器程序

j a v a编写的简单的计 算器程序 -CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN

计算器 项目内容:编写一个Applet,模仿windows附件所带计算器的功能,可以帮助用户完成计算功能,具体如下图所示。 项目要求:使用图形的方式借助窗口、菜单、按钮等标准界面元素和鼠标操作,来帮助用户方便地向计算机系统发出命令,启动操作,并将系统运行的结果同样以图形的方式显示给用户,这样更加直观和生动; 1.Applet容器中组件的添加与设置,包括面板以及菜单的使用; 2.容器中组件的布局管理; 3.Java核心包中数组、数学计算类的使用; 4.异常的处理; 5.事件处理模型中的三类对象的使用: 1.Event-事件,用户对界面操作在java语言上的描述,以类的形式出现,例如键盘操作对应的事件类是KeyEvent。 2.Event Source-事件源,事件发生的场所,通常就是各个组件,例如按钮Button。 3.Event handler-事件处理者,接收事件对象并对其进行处理的对象。 6.程序中事件处理的流程:

1.计算流程的细化

参考代码: import .*; import .*; import .*; import import import public class Calculator implements ActionListener { #############"); dd(panel); panel1 = new JPanel(); panel2 = new JPanel(); (new BorderLayout()); 键入计算的第一个数字。\n"); ("2. 单击“+”执行加、“-”执行减、“*”执行乘或“/”执行除。\n"); ("3. 键入计算的下一个数字。\n"); ("4. 输入所有剩余的运算符和数字。\n"); ("5. 单击“=”。\n"); aboutCal = new JMenuItem(" 关于计算器(A)"); (this);

MFC简单计算器设计正文

实用计算器程序1.基本功能描述 计算器是人们日常生活中非常实用的计算工具。预期设计目标与实际计算器为标准,Windows10系统提供的计算器为范例进行设计。 实用计算器要实现单目运算和双目运算。单目运算主要包括阶乘、正弦、余弦; 双目运算主要包括加、减、乘、除、乘幂等。计算器要能够对输入的各种数据进行处理,包括小数、整数、负数等数据进行操作。实际过程中要能够对不同的数据灵活判 断执行。同时要能够对不满足运算符的操作数,提示出错信息以方便用户进行处理。 用户的修改包括清屏和退格。程序设计的重点和难点在于:第一,能够对于不同的操 作数和操作符进行连续运算,运算过程中要有优先级的判断,根据优先级执行不同的 运算顺序;第二,能够用一个编辑框实现运算表达式的显示和结果的输出。 编程环境采用VisualStudio2017提供的MFC建立对话框应用程序,设计界面要简 单大方,并提供程序所有功能的接口。 2.设计思路 表1操作符优先级设计 优先级操作符 1 阶乘、正弦、余弦 2 乘幂 3 乘、除 4 加、减 对对话框编辑框关联一个变量从中读取数据,按下数字键时对数据数组num[]进行更新,其中num[0]表示的是当前已经存储变量的个数。由于算法设计为四层优先级, 且单目运算的优先级最高。当按下相应单目运算符,首先将当前数据数组的最后一个 存储(防止按下Backspace退格发生错误),并将此位数据执行运算后重新赋值。但按下双目运算符相应按键后,将计数num[0]++,同时将运算符的类型和位置记录。当按下等于之前,这样就将一个单目双目混合的运算表达式转化为双目运算。如果没有按 下等号键,则继续执行循环。在按下等号按钮之后,按照先乘幂、再乘除、后加减的 运算顺序执行运算,将最后结果保存并显示。(在实际的计算器中,执行完运算之后,按下运算符的操作键,最终结果将按照左操作数的形式出现,故需要保存变量。)如果用户没有结束程序,在运行初始化程序,进行下一次运算,否则直接退出。 图1程序流程图 3.软件设计 设计步骤 1)创建基于对话框的程序 利用AppWizard建立应用程序框架,创建一个基于对话框的MFC工程,命名为“fengwanjincalculator”,如图2所示。在图3显示的应用程序类型中选择基于对话框。创建成功后,系统自动生成相应程序文件。 图2创建MFC工程图 图3应用程序类型选择图

编写一个计算器程序课程设计报告 范例

《金融IT 入门-程序设计》 课程设计报告 中国地质大学长城学院 XX 系 2017年 月 3 日 目录 一.总体概述: 二.设计目标: 三.程序流程图: 四.程序代码: 五.设计 体会: 题目: 用Python 编写简易计算器程序 学 号: 专业: 班级: 姓名: 指导教师: 2016-2017学年 第二学期

一、设计内容 1.课程设计目的: 1)掌握Java语言的程序设计方法; 2)理论联系实际,进一步提高学生的软件开发技术; 3)培养学生分析、解决问题的能力; 4)提高学生实践论文撰写能力。 2.课程设计任务: 1)设计的计算器应用程序可以完成加法、减法、乘法、除法以及取余运算(可以进行浮点数和负数的运算); 2)有求倒数、退格和清零功能。 3.创新要求: 能进行正切、余弦,以及求平方根、指数(包括对e)、自然对数运算。图形界面采用继承windowadapter类,采取调用类方法来注册监听! 4.设计要求: 1)设计的计算器应用程序可以完成加法、减法、乘法、除法和取余运算。且有小数点、正负号、求倒数、退格和清零功能。

2)课程设计可选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。 3)认真按时完成课程设计报告,课程设计报告内容包括:设计任务与要求、需求分析、设计思路、详细设计、运行调试与分析讨论和设计体会与小结六个部分。 二、原理与分析 1.开发的技术及功能 本课程设计是要做一个图形界面的计算器,其界面主要是由swing组件中的控件构成。程序实现了计算器的基本功能有:加、减、乘、除基本算术运算(可以进行浮点和负数运算)和sin、cos、tan等三角函数求值运算,同时能进行指数运算和自然对数运算,还有求倒数、退格和清零功能。 2.设计思路 设计这个计算器主要是参考Windows操作系统中自带的计算器,由于编者水平和时间的限制,不能将计算器设计到科学型及其他更复杂的类型,在设计过程中还参考了一些其他的优秀设计。但本计算器除了常用的加减乘除(可以进行浮点和负数运算)这些基本运算外,还有求余、求倒、退格、清零,甚至还能进行一些复杂科学的运算,比如余弦(cos)、正切(tan)、指数运算(pow)、自然对数运算(log)、求平方根(sqrt)以及对e的指数运算(exp),并且还能进行连续运算。总体上说来,本计算器设计简单,代码很少,程序很小,但功能却很强大,这是同类计算器所不具备的。 3.设计效果图 设计时先在设计界面中添加按钮等控件,后在按钮的actionPerformed事件中添加代码完成其功能其中调用了Java类中的Math函数库以及各种字符串操作。设计的界面如下: 图一计算器运行界面 三、设计过程 1.程序思路: 1)本应用程序继承自框架类(JFrame),容器Container c采用BorderLayout 边缘布局,将单行文本框加入到“North”区域,包含各种按钮的面板JPanel p 加入到”Center”区域。包含各种按钮的面板JPanel p 采用3行6列的网格布局,然后将数字按钮和运算符按钮以及控制按钮用一个for循环添加到面板中同时注册按钮事件监听器。如: Button b=new Button(); (事件监听器); 2)事件监听器中的事件处理方法void actionPerformed(ActionEvent evt)完

MFC简单计算器

信息科学与技术学院 《程序设计基础》课程设计报告 题目名称:60.编写一个能实现简单功能的计算器学生姓名:李海东 学生学号:2011508154 专业班级:电子信息工程(1)班 指导教师:高攀

1

1 课程设计的题目 编写一个能实现简单功能的计算器 2 题目要求 1. 有一个计算器图形。 2. 能实现加、减、乘、除及乘方的运算。 3. 当输入题目时,屏幕上要在指定位置上显示出相应的题目内容,且相应的数字键要改变颜色 例如:输入数字1 时,在计算器图形上的1键变为红色。 4. 屏幕、图形颜色、形状自定 3 总体设计 3.1 总体框架 图1 系统框架 开始 结束 键入第一个按钮 键入第二个按钮 显 示 结 果 加 法 减 法 乘 法 除 法 乘 方 清 零

3.2 系统功能说明 在VC++6.0中绘制计算器界面,各控件的设置 对0~9控件设定相应的ID和其他属性: 图2 “1”控件设置 对“+、-、*、\”控件设定相应的ID和其他属性: 图2 “+”控件设置 对其它控件设定相应的ID和其他属性: 图3 其它控件设置 1

2 主要使用到Layout 菜单中的Align 功能对各个按钮进行对其,使界面更加整洁。拖出的控件有上面的一个Edit 控件用于显示数字,Button 控件用于处理鼠标的消息。 4 程序详细设计 4.1系统主调模块 图5 程序流程图 实现文件.cpp 显示计算器界面 开始执行 工程全局对象 资源文件.rc 模块定义文件.def 头文件.h 执行_twinmain() Afxmain() 创建窗口 实现窗口类注册 Set window V oid clc::onpaint() V oid cal::onCE() 点击鼠标发出消息 V oid clce::onmouse() 等待消息处理 V oid clc::onMum0() V oid clc::onAdd() 文本框中显示结果 程序运行结

编写计算器程序

计算器的介绍 (1)在运行程序后,系统会弹出一个基于对话框的计算器界面,如下图所示: 图1.1 计算器界面 (2)在计算器程序中,主要通过一个编辑框来获取表达式和显示计算结果,表达式可以通过键盘和单击按钮2种方式输入,输入后的结果如下图所示:

图1.2 输入表达式后的界面 (3)在输入完表达式后,单击“=”后,开始对表达式进行计算,计算完成后,在编辑框中显示计算的结果。 图1.3 计算后的结果

(4)计算器可以实现十进制转化为十六进制或二进制,其实现的操作为先输入一个十进制整数,再单击按钮“转化为二进制”或“转化为十六进制。 图1.4 输入一个十进制数100 图1.5 100转化为二进制后的结果

图1.6 100转化为十六进制后的结果 (4)另外,计算器还可以实现一些简单的函数运算,实现的操作和十六进制/二进制转化类似,是先输入一个数字,在单击想要进行的函数的按钮,单击后就会在编辑框中显示运算的结果。 1算法的实现 2.1把字符串转化为数字和运算符的算法 (1)如果字符串中只有数字。这个情况用来实现一些简单函数的运算。在进行简单函数的运算时,都是先输入一个数字,再单击要进行运算的按钮,然后编辑框显示运算的结果。程序用了一个函数double GetaStr(CString str)来实现这个功能,该函数以编辑框变量m_strResult为实参,再得到m_strResult的值后,调用GetAt函数,一个字符一个字符的读取,如果碰到整数,执行“itemp=itemp*rate+(str.GetAt(i)-'0');”,其中变量itemp初始值为0,变量rate初始值为10,如果碰到了小数点,改变rate的值,使其等于0.1,再向后继续读取,再碰到整数时执行“itemp=itemp+rate*(str.GetAt(i)-'0');rate=rate/10;”,函数的最后确定返回值为itemp。以下是这个函数的代码[2]: double CMyDlg::GetaStr(CString str) { int i=0; double rate=10.0,itemp=0.0; for(;i

编写一个计算器程序课程设计报告范例

编写一个计算器程序课程设计报告范例 公司内部编号:(GOOD-TMMT-MMUT-UUPTY-UUYY-DTTI-

《金融IT 入门-程序设计》 课程设计报告 中国地质大学长城学 院XX 系 2017年 月 3 日 目录 一.总体概述: 二.设计目标: 三.程序流程图: 四.程序代码: 五.设计 体会: 题目: 用Python 编写简易计算器程序 学号: 专业: 班级: 姓 名 : 指导教师: 2016-2017学年 第二学期

一、设计内容 1.课程设计目的: 1)掌握Java语言的程序设计方法; 2)理论联系实际,进一步提高学生的软件开发技术; 3)培养学生分析、解决问题的能力; 4)提高学生实践论文撰写能力。 2.课程设计任务:??

1)设计的计算器应用程序可以完成加法、减法、乘法、除法以及取余运算(可以进行浮点数和负数的运算); 2)有求倒数、退格和清零功能。 3.创新要求: 能进行正切、余弦,以及求平方根、指数(包括对e)、自然对数运算。图形界面采用继承windowadapter类,采取调用类方法来注册监听! 4.设计要求: 1)设计的计算器应用程序可以完成加法、减法、乘法、除法和取余运算。且有小数点、正负号、求倒数、退格和清零功能。 2)课程设计可选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。 3)认真按时完成课程设计报告,课程设计报告内容包括:设计任务与要求、需求分析、设计思路、详细设计、运行调试与分析讨论和设计体会与小结六个部分。 二、原理与分析 1.开发的技术及功能 本课程设计是要做一个图形界面的计算器,其界面主要是由swing组件中的控件构成。程序实现了计算器的基本功能有:加、减、乘、除基本算术运算(可以进行浮点和负数运算)和sin、cos、tan等三角函数

VB编写简单计算器程序

Option Explicit Dim LastInput As String * 3 '记录上次按下的按键 Dim Num1 As Double '第一个操作数 Dim Num2 As Double '第二个操作数 Dim OptType As Integer '按下哪一个操作符 Dim Result As Double '表示运算结果 Dim shuzhi As Integer '表示当前采用的shuzhi Dim FirstNum As Boolean '是否是第一个操作数 Sub keyp(keynum As Integer) Dim CHAR As String * 1 CHAR = Chr(keynum) If CHAR = "+" Or keynum = 43 Then Command5(0).Value = True If CHAR = "-" Or keynum = 45 Then Command5(1).Value = True If CHAR = "*" Or keynum = 42 Then Command5(2).Value = True If CHAR = "/" Or keynum = 47 Then Command5(3).Value = True If shuzhi = 2 And CHAR >= "2" And CHAR <= "9" Then keynum = 0 Exit Sub End If If keynum >= 48 And keynum <= 57 Then Command1(keynum - 48).Value = True If keynum = 46 Then Command2.Value = True If UCase(CHAR) = "C" Then Command3.Value = True If keynum = 27 Then Command4.Value = True If keynum = 61 Then Command6.Value = True keynum = 0 End Sub Function angle(ByVal j1 As Integer) As Single angle = j1 If Option1.Value Then angle = j1 * 3.14 / 180 End Function Function ArcSin(ByVal Num As Single) As Single If Num = 1 Then ArcSin = 3.1415926 / 2 ElseIf Num = -1 Then ArcSin = 3.1415926 * 3 / 2 Else ArcSin = Atn(Num / Sqr(-Num * Num + 1)) End If If Option1.Value Then ArcSin = ArcSin * 180 / 3.1415926 End Function Function ArcCos(ByVal Num As Single) As Single If Num = 1 Then ArcCos = 0 ElseIf Num = -1 Then ArcCos = 3.1415926 Else ArcCos = Atn(-Num / Sqr(-Num * Num + 1)) + 2 * Atn(1)

我的MFC计算器程序

江苏师范大学城环学院 《面向对象的程序设计》课程设计 设计题目:简易计算器设计 姓名:朱立珍 学号:12253013 院系:城市与环境学院 年级: 12城31 指导教师:李保杰 江苏师范大学城环学院

《面向对象的程序设计》课程设计任务书 课程名称c++面向对象课程设计 设计题目计算器设计 指导教师李保杰时间2014.12.24-2015.1.5 一、教学要求 1. 巩固和加深学生对c++面向对象课程的基本知识的理解和掌握 2. 掌握c++面向对象编程和程序调试的基本技能 3. 利用c++面向对象进行基本的软件设计 4. 掌握书写程序设计说明文档的能力 5. 提高运用c++面向对象解决实际问题的能力 二、设计资料及参数 每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。 计算器系统设计 对计算器系统进行如下设计使之能提供下列服务: 加法运算 减法运算 乘法运算 除法运算 立即显示运算结果 三、设计要求及成果 1. 分析课程设计题目的功能需求(可选用数组或链表实现) 2. 写出详细设计说明(至少包括功能实现分析和模块流程图) 3. 编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释至少200行代码,不包括注释和花括号) 4. 设计完成的软件要便于操作和使用 5. 设计完成后提交课程设计报告(请严格按照模板进行排版) 四、进度安排 第一天选择课程设计题目,分析课题的要求 第二-六天编程 第七-八天编程及调试 第九天写编程报告 第十天提交课程设计报告与源程序(打印稿及电子稿) 五、评分标准 1. 根据平时上机考勤、表现和进度,教师将每天点名和检查 2. 根据课程设计完成情况,必须有可运行的软件。 3. 根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。 六、建议参考资料 《C++面向对象程序设计》清华大学出版社

相关主题
文本预览
相关文档 最新文档