简单计算器的程序

合集下载

简易计算器 (1)

简易计算器 (1)

目录第一章:设计目的11.1课程设计目的.................................................................................. 错误!未定义书签。

1.2简易计算器设计的意义 (1)1.3系统的基本要求 (1)1.4功能设计 (3)第二章:功能描述 (3)2.1功能模块框图 (3)2.2相关功能介绍.................................................................................. 错误!未定义书签。

2.1系统模块机构框图 (4)第三章:总体设计 (5)3.1系统流程图 (3)3.2模块描述 (5)3.3函数声明 (5)第四章:程序实现 (5)4.1界面设计 (10)4.2计算界面 (11)4.3退出界面 (12)第五章:课程设计的结果展示 (13)第六章:参考文献................................................................................................. - 15 -第七章:课程设计总结......................................................................................... - 16 -第一章课程设计目的1.通过一个学期的学习,我认为要学好C语言程序这门课程,不仅要认真阅读课本知识,更重要的是要通过上机实践才能增强和巩固我的知识。

特别是作为本科生,更要注重实践这一环节,只有这样我们才能成为合格的计算机人材。

通过这次课程设计,进一步巩固所学的语句,如语句嵌套等;加深对循环,分支等结构的运用;最后还可以熟悉四则运算﹑三角函数等经典算法。

2.通过此次课程设计扩展自己的知识面,课本上的东西是远远不够的,可以通过去图书馆查资料,上网找资料等手段学到一些新知识,比如画图函数,颜色填充函等。

开发一个简单计算器程序-基于对话框

开发一个简单计算器程序-基于对话框

开发一个简单科学计算器(基于对话框模式的应用程序)一。

开发目标及软件功能开发一个科学计算器程序,要求采用基于对话框模式的应用程序,至少具有加、减、乘、除四个基本功能,并在此基础上扩展平方、开方、三角函数等功能。

(1)仔细阅读操作过程,学习如何根据编译信息,定位语法错误。

(2)将警告与错误一律看作是错误。

(3)学习并模仿书上的程序书写风格。

二. 编程步骤1. 启动Visual C++6。

0,选择File | new 菜单项,弹出New 对话框。

单击Projects 选项卡,项目类型选择MFC AppWizard(exe),在Project name中填入工程名,在Location中填用户子目录路径(设置用户程序子目录的目的是,将所有编程时产生的中间文件和最终执行程序文件全部放在自己的目录中,以便管理)。

2。

在程序向导的第1步选择建立一个基于对话框(Dialog based)的应用程序,点击“Finish”结束向导。

3。

在对话框上添加各类控件,设计对话框的界面如图所示.在对话框中右键点击,弹出属性设置对话框(Dialog Properties),标题(caption)中填入“迷你计算器”;其余各控件的参数设置如下表所示。

控件类型ID号Caption 其它Button IDC_ADD +Button IDC_SUB -Button IDC_MUL ×Button IDC_DIV /Button IDC_SIN sinButton IDC_COS cosButton IDC_SQU x^2Button IDC_REC 1/xButton IDC_EQUAL =Edit Box IDC_FIRSTEdit Box IDC_SECONDEdit Box IDC_RESULT4。

为对话框中的控件添加相应的成员变量:点击菜单“View →ClassWizard" ,点击“Member Variables”标签项,为对话框中的三个编辑框控件添加对应的成员变量如图所示。

Python之实现一个简易计算器

Python之实现一个简易计算器

Python之实现⼀个简易计算器⾃⼰动⼿写计算器⼀、功能分析 ⽤户输⼊⼀个类似这样 3*( 4+ 50 )-(( 100 + 40 )*5/2- 3*2* 2/4+9)*((( 3 + 4)-4)-4) 这样的表达式,假设表达式⾥⾯除了包含空格、'+'、'-'、'*'、'/'和括号再⽆其他特殊符号,然后⾃⼰动⼿写代码解析其中的表达式,实现加减乘除,最后得出的结果与真实的计算机所算的结果必须⼀致。

⼆、所需的知识点字符串的处理正则表达式的运⽤函数递归三、程序实现流程分析1. ⽤正则表达式处理字符串,只提取其中的数字和运算符,并转换成列表2. 编写⼀个函数,处理没有括号的基本运算的基本表达式3. 再写⼀个函数递归处理带有括号的函数,先计算最内部括号中的表达式, 然后将最内部的括号替换为计算后的结果, 在递归外部⼀层的,最后返回的就是所需的结果四、具体实现过程1.正则表达式处理⽤户输⼊字符串 这⾥我不会讲正则表达式具体的⽤法,要将的话都可以讲⼀本书了,我只讲本⽂⽤到的正则表达式。

根据需求,我们需要提取出⽤户输⼊字符串中的数字和运算符到⼀个列表中,⽽空格将会被忽略掉,假设⽤户输⼊的表达式是 expression,我们可以写出下⾯的代码:1 2 3 4import reexpression='(( 100 + 40 )*5/2- 3*2* 2/4+9)*((( 3 + 4)-4)-4)'l=re.findall('([\d\.]+|/|-|\+|\*)',expression)print(l) #['100', '+', '40', '*', '5', '/', '2', '-', '3', '*', '2', '*', '2', '/', '4', '+', '9', '*', '3', '+', '4', '-', '4', '-', '4'] ⾸先我们先看⼀下 findall 的⽤法,findall可以匹配所有符合规律的内容,返回包含结果的列表。

简单计算器可视化程序编程

简单计算器可视化程序编程

简单计算器一、基本功能描绘二进制、八进制、十进制及十六进制数的加、减、乘、除、乘方、取模等简单计算科学计算函数,包括( 反 ) 正弦、 ( 反) 余弦、 ( 反 ) 正切、 ( 反 ) 余切、开方、指数等函数运行以角度、弧度两种方式实现上述部分函数具备历史计算的记忆功能对不正确的表达式能指出其错误原因二、流程图输入数据子函数编写框关系变量m_num=0键入一个数N可否为正数?Ym_num m_num=10*m_num+i=10*m_num-i可否为小数?Y复原 m_numN依照小数点后位数将键入的数除以 n 次 10 累加到 m_numY连续键入数字?N用 UpdateData(FALSE) 刷新显示图 1 输入数据子函数流程图图 2三、设计步骤翻开 Microsoft Visual C++ 6.0 , 在文件中点击新建,在弹出框内选择MFC AppWizard[exe] 工程,输入工程名Calculter及其所在位置,点击确定,如图3所示。

将弹出这样,图 3 新建 MFC AppWizard[exe] 工程MFC AppWizard-step 1对话框,选择基本对话框,点击达成,如图图 4 基本对话框MFC AppWizard 就成立了一个鉴于对话窗口的程序框架,如图图 5 新建的对话框4 所示。

5 所示。

四、界面设计1、创立控件在图 5 所示的 Resoure View 选项卡中翻开Dialog 资源组,双击IDD_CALCULATOR_DIALOG,在右边的窗口中显示出待编写的对话框。

开始摆放控件,包括编写框和按钮的创立。

按钮的创立1)在图 5 中 Controls 的“编写框”按钮上单击鼠标左键,在对话框编写窗口上合适的地点按下鼠标左键并拖动鼠标画出一个大小合适的编写框。

在编写框上单击鼠标右键,在弹出的快捷莱单中选择属性选项,此时弹出Edit 属性对话框,如图 6 所示,在该对话框中输入ID 属性。

计算器课程设计--简易计算器

计算器课程设计--简易计算器

1 设计课题任务、功能要求说明及总体方案介绍1.1 设计课题任务课题:简易计算器任务:设计一个具有特定功能的计算器。

该计算器上电或按键复位后能自动显示系统提示界面,进入准备工作状态。

能实现基本的加、减、乘、除四则运算。

1.2 功能要求说明在本次工程实践中,主要完成如下方面的设计任务:(1)计算器上电或按键复位后能显示初始化界面(2)2秒后进入计算器界面(3)按键能进行加、减、乘、除运算并显示结果(4)按清零键后能进行下一次计算1.3 设计课题总体方案介绍及工作原理说明计算器的总体功能原理是以AT89S52单片机为主要控制核心,通过外接4*4行列式键盘作为控制信号输入源,一块12864液晶作为显示器件,通过按键控制,单片机实时地去执行,在12864液晶上显示界面。

系统控制原理图如图1所示。

图1系统控制原理图2 设计课题硬件系统的设计2.1 设计课题硬件系统各模块功能简要介绍2.1.1 AT89S52控制模块考虑到设计功能需要,控制器的功能用于外部键盘信号的接收和识别、液晶模块的显示控制、复位电路等,我们选择了AT89S52系列单片机,具有反应速度极快,工作效率特高的特点。

AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。

使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。

用语言编写的加减乘除计算器程序

用语言编写的加减乘除计算器程序

用语言编写的加减乘除计算器程序下面是一个使用Python编写的加减乘除计算器程序,超过1200字。

请注意,这是一个基本的计算器程序,可能还有一些功能可以改进和扩展。

你可以根据自己的需求进行修改和增加功能。

```python#定义加法函数def add(x, y):return x + y#定义减法函数def subtract(x, y):return x - y#定义乘法函数def multiply(x, y):return x * y#定义除法函数def divide(x, y):#检查除数是否为0if y == 0:return "除数不能为0"else:return x / y#打印菜单选项def print_menu(:print("欢迎使用加减乘除计算器")print("1. 相加")print("2. 相减")print("3. 相乘")print("4. 相除")print("5. 退出")#主函数def main(:while True:print_menuchoice = input("请选择操作(1/2/3/4/5):") #获取用户的选择if choice in ['1', '2', '3', '4']:num1 = float(input("请输入第一个数字:")) num2 = float(input("请输入第二个数字:"))#根据用户选择的操作调用相应的函数if choice == '1':print("结果:", add(num1, num2))elif choice == '2':print("结果:", subtract(num1, num2))elif choice == '3':print("结果:", multiply(num1, num2))else:print("结果:", divide(num1, num2))elif choice == '5':print("感谢使用加减乘除计算器!")breakelse:print("无效的选择,请重新输入。

创建简单计算器程序

创建简单计算器程序

实验一创建简单计算器程序实验目标本试验介绍如何创建一个简单的计算器应用程序。

技术要点创建windows窗体应用程序的基本步骤。

实验步骤1.首先,运行visual studio2005,新建一个Windows应用程序命名为calculate2.向窗体中添加【Button】按钮控件,数字0-9,并设置控件的ForeColor 属性为Blue.布局如下:3. 向窗体添加【Button】按钮控件,运行符“+”“-”“*”“/”“.”“-/+”“C”“=”。

并设置控件的ForeColor属性为Red。

4.向窗体添加【TextBox】空间用于显示数据,并将其TextAlign属性设置为“Right”。

5.在Form1类中对下列数据进行定义和初始化:6. 在类中增加如下方法:7. 双击【Button】空间0-9,分别在每个按钮的Click事件处理程序中添加如下代码:setText("0");setText("1");setText("2");setText("3");setText("4");setText("5");setText("6");setText("7");setText("8");setText("9");8.双击“+”号按钮,添加如下事件处理代码:setOperator(1);9.双击“-”号按钮,添加如下事件处理代码:setOperator(2);10.双击“*”号按钮,添加如下事件处理代码:setOperator(3);11.双击“/”号按钮,添加如下事件处理代码:setOperator(4);12.双击“=”号按钮,添加如下事件处理代码:doEquals();13.双击“.”号按钮,添加如下事件处理代码:setDecimal();14.双击“C”号按钮,添加如下事件处理代码:isSecond = false;setText("clear");15.程序运行结果如图:实验二使用菜单实验目标本实验介绍如何在应用程序中加入菜单,并通过菜单响应用户的请求技术要点创建窗体应用程序菜单的简单步骤,时间响应方法。

简单计算器程序操作步骤

简单计算器程序操作步骤

简单计算器程序操作步骤一、建立”D\ajsq”文件夹二、用VC6编写“简单计算器程序”1、启动VC6,创建“简单计算器程序”工程。

选择D:\asjq,工程名:jsq,选择基于对话框,下一步,完成。

(介绍:类卡、文件卡、资源卡,代码提示工具卡两个,安装visual assist X)2、设计主界面对话框:IDD_JSQ_DIALOG,删除自生成的控件,添加三个Edit Box文本编辑框控件、一个Button按钮控件。

(1)对EDIT查看属性、增加、关联变量:右击EDIT1,选属性,查看ID号为:IDC_EDIT1。

增加、关联变量,右击EDIT1,建立类向导,选成员变量,选中IDC_EDIT1,单击增加变量,名称:m_a,value:float,单击OK。

右击EDIT2,选属性,查看ID号为:IDC_EDIT2。

增加、关联变量,右击EDIT2,建立类向导,选成员变量,选中IDC_EDIT2,单击增加变量,名称:m_b,value:float,单击OK。

右击EDIT3,选属性,查看ID号为:IDC_EDIT3。

增加、关联变量,右击EDIT3,建立类向导,选成员变量,选中IDC_EDIT3,单击增加变量,名称:m_c,value:float,单击OK。

(2)对BUTTON1修改属性和增加消息映射响应函数:右击BUTTON1,选属性,查看ID号为:IDC_BUTTON1,修改标题为:add;增加消息映射响应函数,右击,建立类向导,选中Message Maps,选中IDC_BUTTON1,选中BN_CLICKED,单击Add Function,名称:OnButton1,单击OK。

单击edit code,编写代码:BUTTON1的OnButton1的代码.txt。

UpdateData(true); //从控件得到值赋给变量,给m_a=5;m_b=8;m_c=0;m_c=m_a+m_b; // m_c=13;UpdateData(false); //从变量值给控件显示,文本框分别显示:5,8,13;三、操作使用所编写的“简单计算器程序”F7,Ctrl+F51。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Jsq implements ActionListener { private JFrame frame;
private JButton[] bus;
private JTextField jtx;
private JButton bu;
private char[] strs;
private String d_one = "";
private String operator;
public static void main(String[] args) {
new Jsq();
}
/* 利用构造进行实例化*/
public Jsq() {
frame = new JFrame("计算器");
jtx = new JTextField(14);
bus = new JButton[16];
strs = "789/456*123-0.+=".toCharArray();
for (int i = 0; i < 16; i++) {
bus[i] = new JButton(strs[i] + "");
bus[i].addActionListener(this);
}
bu = new JButton("C");
bu.addActionListener(this);
init();
}
/* GUI 初始化*/
public void init() {
JPanel jp1 = new JPanel();
jp1.add(jtx);
jp1.add(bu);
frame.add(jp1, BorderLayout.NORTH);
JPanel jp2 = new JPanel();
jp2.setLayout(new GridLayout(4, 4)); for (int i = 0; i < 16; i++) {
jp2.add(bus[i]);
}
frame.add(jp2, BorderLayout.CENTER);
frame.pack();
frame.setLocation(300, 400);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EX IT_ON_CLOSE);
}
/* 事件的处理*/
public void actionPerformed(ActionEvent arg0) {
/*获取输入字符*/
String conn = arg0.getActionCommand();
/*清除计算器内容*/
if ("C".equals(conn)) {
d_one = "";
operator = "";
jtx.setText("");
return;
}
/*暂未实现该功能*/
if(".".equals(conn)){
return;
}
/*记录运算符,保存运算数字*/
if (("+-*/".indexOf(conn)) != -1) {
if("".equals(d_one) && "".equals(jtx.getText())) return;
d_one = jtx.getText();
operator = conn;
jtx.setText("");
return;
}
/*计算结果*/
if ("=".equals(conn)) {
if("".equals(d_one) && "".equals(jtx.getText())) return;
double db = 0;
if ("+".equals(operator)) {
db = Double.parseDouble(d_one)
+
Double.parseDouble(jtx.getText());
jtx.setText(db + "");
}
if ("-".equals(operator)) {
db = Double.parseDouble(d_one)
-
Double.parseDouble(jtx.getText());
jtx.setText(db + "");
}
if ("*".equals(operator)) {
db = Double.parseDouble(d_one)
*
Double.parseDouble(jtx.getText());
jtx.setText(db + "");
}
if ("/".equals(operator)) {
db = Double.parseDouble(d_one)
/
Double.parseDouble(jtx.getText());
jtx.setText(db + "");
}
d_one = db + "";
return;
}
//界面显示
jtx.setText(jtx.getText() + conn);
} }。

相关文档
最新文档