简单WINDOWS小程序设计——四则运算计算器

合集下载

四则运算计算器设计说明书

四则运算计算器设计说明书

四则运算计算器设计说明书一、设计目标本次计算器的程序设计,通过使用JAVA中的AWT包和Swing包的类库设计图形界面的计算器。

此计算器能够完成加减乘除的四则混合运算。

利用面向对象程序设计的思想,将各个组件的事件响应分别用不同的方式表达出来,并且使用了图形界面中的事件委托机制来处理事件响应。

二、设计流程1.分析该计算器需要完成的功能。

用户能够完成添加负号的四则混合运算,开方,取倒数,并且计算器能够自动识别运算符的优先级,根据用户输入的运算表达式,自动计算出相应的结果。

同时还完成了计算器中C按钮清屏功能和Backspace退格键。

2. 考虑异常处理。

(1)当输入的表达式中出现除零的操作,显示框将显示“Infinity(无穷大)”。

(2)当输入的表达式错误时,将弹出提示框显示“表达式错误请重新输入”(3)当计算器的显示文本框里为没有输入内容时直接点击等号按钮3. 编码实现计算器的功能。

(1)新建相关的文件。

(2)引入JAVA中相关的包。

(3)定义相关的变量,创建相关组件,并对组件的属性进行设置。

(4)对所创建的组件进行布局,完成界面的实现。

(5)为各个组件添加事件监听器。

(6)重写事件接口ActionListener的方法public voidactionPerformed(ActionEvent e)。

(7)为各个组件编写事件代码,完成每个按钮的不同功能。

三、程序截图四、程序代码import java.awt.BorderLayout;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.GridLayout;import java.awt.Toolkit;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 Calc extends JFrame implements ActionListener { JPanel topPanel = null;JPanel midPanel = null;JPanel bottomPanel = null;JTextField tResult = null;JButton backspaceButton = null;JButton ceButton = null;JButton cButton = null;JButton button1 = null;JButton button2 = null;JButton button3 = null;JButton button4 = null;JButton button5 = null;JButton button6 = null;JButton button7 = null;JButton button8 = null;JButton button9 = null;JButton button0 = null;JButton buttonDiv = null;JButton buttonPlus = null;JButton buttonMinus = null;JButton buttonMul = null;JButton buttonSqrt = null;JButton buttonMod = null;JButton buttonPM = null;JButton buttonX = null;JButton buttonPoint = null;JButton buttonEquals = null;StringBuffer str = new StringBuffer();boolean isDouble = false;// 是否为实数int opFlag = -1;static double t1 = 0, t2 = 0, t3 = 0, result = 0;static int opflag1 = -1, opflag2 = -1, flag = 0, resflag = 1;int preOp, currentOp = 0;// 标准位double op1 = 0, op2 = 0;// 操作数double n3;// 取得屏幕对象Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); // 取得屏幕的宽度int width = screenSize.width;// 取得屏幕的高度int heigth = screenSize.height;public Calc() {tResult = new JTextField("0.");tResult.setColumns(26);tResult.setHorizontalAlignment(JTextField.RIGHT);topPanel = new JPanel();topPanel.add(tResult);backspaceButton = new JButton("Backspace");backspaceButton.addActionListener(this);ceButton = new JButton("CE");ceButton.addActionListener(this);cButton = new JButton("C");cButton.addActionListener(this);midPanel = new JPanel();midPanel.add(backspaceButton);midPanel.add(ceButton);midPanel.add(cButton);bottomPanel = new JPanel(new GridLayout(4, 5, 3, 3));button7 = new JButton("7");button7.addActionListener(this);bottomPanel.add(button7);button8 = new JButton("8");button8.addActionListener(this);bottomPanel.add(button8);button9 = new JButton("9"); button9.addActionListener(this); bottomPanel.add(button9);buttonDiv = new JButton("/"); buttonDiv.addActionListener(this); bottomPanel.add(buttonDiv);buttonSqrt = new JButton("sqrt"); buttonSqrt.addActionListener(this); bottomPanel.add(buttonSqrt);button4 = new JButton("4"); button4.addActionListener(this); bottomPanel.add(button4);button5 = new JButton("5"); button5.addActionListener(this); bottomPanel.add(button5);button6 = new JButton("6"); button6.addActionListener(this); bottomPanel.add(button6);buttonMul = new JButton("*"); buttonMul.addActionListener(this); bottomPanel.add(buttonMul);buttonMod = new JButton("%"); buttonMod.addActionListener(this); bottomPanel.add(buttonMod);button1 = new JButton("1"); button1.addActionListener(this); bottomPanel.add(button1);button2 = new JButton("2"); button2.addActionListener(this); bottomPanel.add(button2);button3 = new JButton("3"); button3.addActionListener(this); bottomPanel.add(button3);buttonMinus = new JButton("-");buttonMinus.addActionListener(this);bottomPanel.add(buttonMinus);buttonX = new JButton("1/x");buttonX.addActionListener(this);bottomPanel.add(buttonX);button0 = new JButton("0");button0.addActionListener(this);bottomPanel.add(button0);buttonPM = new JButton("+/-");buttonPM.addActionListener(this);bottomPanel.add(buttonPM);buttonPoint = new JButton(".");buttonPoint.addActionListener(this);bottomPanel.add(buttonPoint);buttonPlus = new JButton("+");buttonPlus.addActionListener(this);bottomPanel.add(buttonPlus);buttonEquals = new JButton("=");buttonEquals.addActionListener(this);bottomPanel.add(buttonEquals);this.setLayout(new BorderLayout());this.add(topPanel, "North");this.add(midPanel, "Center");this.add(bottomPanel, "South");this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(310, 225);this.setResizable(false);// 设置窗体出现在屏幕的中央this.setLocation((width - this.getWidth()) / 2,(heigth - this.getHeight()) / 2);this.setVisible(true);}/*** @param args*/public static void main(String[] args) {new Calc();}@Overridepublic void actionPerformed(ActionEvent e) {String s = e.getActionCommand().trim();if (s.equals("CE")) {// 如果是CE则清除文本框tResult.setText("0.");} else if (s.equals("Backspace")) {if (!tResult.getText().trim().equals("0.")) {// 如果文本框中有内容if (str.length() != 1 && str.length() != 0) {tResult.setText(str.delete(str.length() - 1, str.length()).toString());} else {tResult.setText("0.");str.setLength(0);}}op2 = Double.parseDouble(tResult.getText().trim());} else if (s.equals("C")) {// 如果是C删除当前计算tResult.setText("0.");op1 = op2 = 0;str.replace(0, str.length(), " ");preOp = currentOp = 0;} else if (s.equals("1/x")) {// 如果按键为1/x则将文本框中的数据为它的倒数String temp = tResult.getText().trim();double dtemp = Double.parseDouble(temp);tResult.setText("" + 1 / dtemp);} else if (s.equals("sqrt")) {// 如果按键为sqrt则将文本框中的内容求平方根String temp = tResult.getText().trim();double dtemp = Double.parseDouble(temp);tResult.setText("" + Math.sqrt(dtemp));} else if (s.equals("+")) {str.setLength(0);if (currentOp == 0) {preOp = currentOp = 1;op2 = 0;tResult.setText("" + op1);} else {currentOp = preOp;preOp = 1;switch (currentOp) {case 1:op1 += op2;tResult.setText("" + op1);break;case 2:op1 -= op2;tResult.setText("" + op1);break;case 3:op1 *= op2;tResult.setText("" + op1);break;case 4:op1 /= op2;tResult.setText("" + op1);break;}}} else if (s.equals("-")) {str.setLength(0);if (currentOp == 0) {preOp = currentOp = 2;// op1=op2;op2=0;tResult.setText("" + op1);} else {currentOp = preOp;preOp = 2;switch (currentOp) {case 1:op1 = op1 + op2;tResult.setText("" + op1);break;case 2:op1 = op1 - op2;tResult.setText("" + op1);break;case 3:op1 = op1 * op2;tResult.setText("" + op1);break;case 4:op1 = op1 / op2;tResult.setText("" + op1);break;}}} else if (s.equals("*"))// *{str.setLength(0);if (currentOp == 0) {preOp = currentOp = 3;// op1=op2;op2=1;tResult.setText("" + op1);// op1=op2;} else {currentOp = preOp;preOp = 3;switch (currentOp) {case 1:op1 = op1 + op2;tResult.setText("" + op1);break;case 2:op1 = op1 - op2;tResult.setText("" + op1);break;case 3:op1 = op1 * op2;tResult.setText("" + op1);break;case 4:op1 = op1 / op2;tResult.setText("" + op1);break;}}} else if (s.equals("/"))// /{str.setLength(0);if (currentOp == 0) {preOp = currentOp = 4;// op2=1;tResult.setText("" + op1);// op1=op2;} else {currentOp = preOp;preOp = 4;switch (currentOp) {case 1:op1 = op1 + op2;tResult.setText("" + op1);break;case 2:op1 = op1 - op2;tResult.setText("" + op1);break;case 3:op1 = op1 * op2;tResult.setText("" + op1);break;case 4:op1 = op1 / op2;tResult.setText("" + op1);break;}}} else if (s.equals("="))// ={if (currentOp == 0) {str.setLength(0);tResult.setText("" + op2);} else {str.setLength(0);currentOp = preOp;switch (currentOp) {case 1:op1 = op1 + op2;tResult.setText("" + op1);break;case 2:op1 = op1 - op2;tResult.setText("" + op1);break;case 3:op1 = op1 * op2;tResult.setText("" + op1);break;case 4:op1 = op1 / op2;tResult.setText("" + op1);break;}currentOp = 0;op2 = 0;}} else if (s.equals(".")) {isDouble = true;if (tResult.getText().trim().indexOf('.') != -1);else {if (tResult.getText().trim().equals("0")) {str.setLength(0);tResult.setText((str.append("0" + s)).toString());}// else// if(tResult.getText().trim().equals("")){}//如果初时显示为空则不做任何操作else {tResult.setText((str.append(s)).toString());}}} else if (s.equals("0"))// 如果选择的是"0"这个数字键{if (tResult.getText().trim().equals("0.")) {} else {tResult.setText(str.append(s).toString());op2 = Double.parseDouble(tResult.getText().trim());}} else if (s.equals("%"))// 如果选择的是"0"这个数字键{} else {tResult.setText(str.append(s).toString());op2 = Double.parseDouble(tResult.getText().trim());if (currentOp == 0)op1 = op2;}}}。

汇编语言课程设计_四则运算计算器设计

汇编语言课程设计_四则运算计算器设计

目录1 设计目的 (1)2 概要设计 (1)2.1 系统总体分析 (1)2.2 主模块框图及说明 (2)3 详细设计 (3)3.1 主模块及子模块说明 (3)3.2 各模块详细设计 (3)3.2.1 判定运算符模块设计 (3)3.2.2取运算数模块 (3)3.2.3计算模块 (4)3.2.4结果处理模块 (5)3.2.5输出模块 (5)3.2.6错误处理模块 (6)4 程序调试 (7)4.1 运行界面分析 (7)4.2 调试过程及分析 (7)5 心得体会 (8)5.1 设计体会 (8)5.2 系统改进 (8)参考文献 (10)附录 (11)实现加减乘除四则运算的计算器1 设计目的汇编语言是继机器语言后出现的计算机程序设计语言,是计算机所能提供给用户使用的最快而又最有效的语言,也是能够利用计算机所有硬件特征并能够直接控制硬件的惟一语言。

因而了解之一语言的特性,并熟练掌握这一语言并应用于开发中便是计算机专业学生所必需掌握的技能之一。

本课程设计通过加减乘除四则运算计算器的设计,增强对于汇编语言寄存器、指令、伪指令、中断等的理解。

可通过编写的汇编程序完成基本的加减乘除四则运算。

主要功能:能实现加减乘除的计算;该程序接受的是16进制数;执行时,需在文件名后直接跟上计算表达式,如在命令提示符下执行结果如下:C:\tasm>js 3+252 概要设计2.1 系统总体分析四则运算计算器应当实现对用户输入表达式的处理。

根据用户输入的表达式,完成加减乘除四则运算。

程序自动判定表达式输入,并完成对于输入的16进制数的转换,同时计算结果并以10进制数输出。

对于异常情况程序应当进行处理,保证程序的正确运行。

设计一个计算器,在DOS界面下输入<程序名> <表达式>可直接输出运算结果。

例如在DOS界面中输入JS 3+6,可直接输出9。

程序接受16进制数输入,以十进制数输出运算结果。

对于输出错误情况,程序自动给出错误提示,若输入的格式有误,程序给出“JS <Expression> [10]”(即输入样例)提示,若输入的表达式有误,程序给出“Error in expression !”(即表达式错误)提示。

MFC计算器

MFC计算器

《C++面向对象程序设计》实验报告学院:信息科学与工程学院专业:学号:姓名:一.题目:利用MFC框架编写Windows附件中所示的简易计算器二.功能描述:1.能够实现最基本的加,减,乘,除四则基本运算。

2.界面有清空,退格按钮,方便用户计算使用。

3.此计算器具有开方,取倒数,求对数的高级运算。

三.概要设计:1.Windows消息处理机制通过对教材的阅读,对Windows程序的消息处理机制有个大致的了解。

Windows的程序都是通过消息来传送数据,并且存在异常处理等不需要用户参与的系统消息,用户消息就是鼠标的单击,双击等。

2.界面的设计如图,简易的计算器界面主要使用菜单中相关控件,并合理的布置各个按钮的位置,使得界面让用户看起来整洁简单。

3.框架描述Windows 简易计算器在资源视图画好界面添加控件的同时,通过属性修改名称为各个按钮和编辑框添加不同的函数四则运算+,-,*,/ 1/x,lgx等函数退格和清空键4.建立的变量和控件的命名,对应的消息处理函数命名表ID CAPTION Message Handler IDC_BUTTON0 0 OnButton0()IDC_BUTTON1 1 OnButton1()IDC_BUTTON2 2 OnButton2()IDC_BUTTON3 3 OnButton3()IDC_BUTTON4 4 OnButton4()IDC_BUTTON5 5 OnButton5()IDC_BUTTON6 6 OnButton6()IDC_BUTTON7 7 OnButton7()IDC_BUTTON8 8 OnButton8()IDC_BUTTON9 9 OnButton9()IDC_BUTTON10 . OnButton11()IDC_BUTTON11 = OnButtonequal() IDC_BUTTON12 + OnButtonadd()IDC_BUTTON13 - OnButtoncut()IDC_BUTTON14 * OnButtonmultiply() IDC_BUTTON15 / OnButtonremove() IDC_BUTTON16 1/x OnButton1x()IDC_BUTTON17 lg OnButtonlg()IDC_BUTTON18 sqrt OnButtonsqrt()IDC_BUTTON19 Backspace OnButtonbackspace() IDC_BUTTON20 C(清空) OnButtonclear()5.下图是基本对话框中所有的类四.详细设计:1.新建工程,选择MFC AppWizard[exe],并命名工程的名称为mycalculator2.选择基本对话框3.通过控件添加各种按钮和编辑框(对话框右边的“Controls”控件箱提供了可用于对话框的各种组建,在此次计算器中,基本上只用到上面四个控件,对话框只能通过控件来实现它们的功能,把控件中的数据保存在对话框类的数据成员中,应用程序才能通过这些数据成员获取控件中的数据)4.考虑用户们的习惯,把编辑框的显示的数字属性由靠左改成靠右(选中编辑框,右击选择属性-样式,排列文本改为向左)5.用同样的方法改变按钮的标题,其他按钮同理6.为美观改变对话框的标题为“计算器”7.右击编辑框添加类向导,添加变量m_result,且type为CString//可通过其改变类型和名称8.实现每个按钮的功能,双击按钮,为按钮添加函数,可以改变函数的名称① 0~9和小数点的函数大致类似void CMycalculatorDlg::OnButton1(){// TODO: Add your control notification handler code herem_result +=_T("1");UpdateData(FALSE);}函数_T()可以对字符串进行操作,UpdateData(FALSE)可以把数据传到文本框里面,小数点与数字同样这样处理。

四则运算计算器的微信小程序_2运算

四则运算计算器的微信小程序_2运算

四则运算计算器的微信⼩程序_2运算js⽂件:function isOperator(value) {var operatorString = '+-*/()×÷';return operatorString.indexOf(value) > -1;}function getPrioraty(value) {if(value == '-' || value == '+') {return 1;} else if(value == '*' || value == '/' || value == '×' || value == '÷' ) {return 2;} else{return 0;}}function prioraty(v1, v2) {return getPrioraty(v1) <= getPrioraty(v2);}function outputRpn(exp) {var inputStack = [];var outputStack = [];var outputQueue = [];var firstIsOperator = false;exp.replace(/\s/g,'');if(isOperator(exp[0])){exp = exp.substring(1);firstIsOperator = true;}for(var i = 0, max = exp.length; i < max; i++) {if(!isOperator(exp[i]) && !isOperator(exp[i-1]) && (i != 0)) {inputStack[inputStack.length-1] = inputStack[inputStack.length-1] + exp[i] + '';} else {inputStack.push(exp[i]);}}if(firstIsOperator) {inputStack[0] = -inputStack[0]}while(inputStack.length > 0) {var cur = inputStack.shift();if(isOperator(cur)) {if (cur == '(') {outputStack.push(cur);} else if (cur == ')') {var po = outputStack.pop();while(po != '(' && outputStack.length > 0) {outputQueue.push(po);po = outputStack.pop();}} else {while(prioraty(cur,outputStack[outputStack.length - 1]) && outputStack.length > 0) {outputQueue.push(outputStack.pop());}outputStack.push(cur)}} else {outputQueue.push(Number(cur));}}if(outputStack.length > 0){while (outputStack.length > 0) {outputQueue.push(outputStack.pop());}return outputQueue;}function calRpnExp(rpnArr) {var stack = [];for(var i = 0, max = rpnArr.length; i < max; i++) {if(!isOperator(rpnArr[i])) {stack.push(rpnArr[i]);} else {var num1 = stack.pop();var num2 = stack.pop();if(rpnArr[i] == '-') {var num = num2 - num1;} else if(rpnArr[i] == '+') {var num = num2 + num1;} else if(rpnArr[i] == '*' || rpnArr[i] == '×') {var num = num2 * num1;} else if(rpnArr[i] == '/' || rpnArr[i] == '÷') {var num = num2/num1;}stack.push(num);}}return stack[0];}function calCommonExp(exp) {var rpnArr = outputRpn(exp);return calRpnExp(rpnArr)}module.exports = {isOperator: isOperator,getPrioraty: getPrioraty,outputRpn: outputRpn,calRpnExp: calRpnExp,calCommonExp: calCommonExp}function formatTime(date) {var year = date.getFullYear()var month = date.getMonth() + 1var day = date.getDate()var hour = date.getHours()var minute = date.getMinutes()var second = date.getSeconds()return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':') }function formatNumber(n) {n = n.toString()return n[1] ? n : '0' + n}module.exports = {formatTime: formatTime}//index.js//获取应⽤实例var rpn = require("../../utils/rpn.js");var app = getApp()data: {id1:"back",id2:"clear",id3:"negative",id4:"+",id5:"9",id6:"8",id7:"7",id8:"-",id9:"6",id10:"5",id11:"4",id12:"×",id13:"3",id14:"2",id15:"1",id16:"÷",id17:"0",id18:".",id19:"history",id20:"=",screenData:"0",lastIsOperator: false,logs: []},//事件处理函数onLoad: function () {},onReady: function () {},onShow: function () {},onHide: function () {},onUpload: function () {},history: function () {wx.navigateTo({url:'../list/list'})},clickButton: function (event) {console.log(event);var data = this.data.screenData.toString();var id = event.target.id;if(id == this.data.id1) {if(data == 0){return;}console.log(data);console.log("data.substring(0,data.length-1)"+data.substring(0,data.length-1)); var data = data.substring(0,data.length-1);console.log(data);} else if(id == this.data.id2) {data = 0;} else if (id == this.data.id3) {var firstWord = data.substring(0,1);if(firstWord != '-'){data = '-' + data;} else {data = data.substring(1);}} else if (id == this.data.id20){if(data == 0) {return;}var lastWord = data.substring(data.length-1, data.length);if(isNaN(lastWord)) {return;}console.log("parseFloat(data)"+parseFloat(data));console.log("data"+data)if(parseFloat(data) == data){return;}var log = data;var data = rpn.calCommonExp(data);log = log + '=' +data;this.data.logs.push(log);wx.setStorageSync('callogs',this.data.logs)console.log(wx.getStorageSync('callogs'));} else {if(id == this.data.id4 || id == this.data.id8 || id == this.data.id12 || id == this.data.id16) { if(stIsOperator || data == 0) {return;}}if(data == 0) {data = id;} else {data = data + id}if(id == this.data.id4 || id == this.data.id8 || id == this.data.id12 || id == this.data.id16) { this.setData({lastIsOperator:true});} else {this.setData({lastIsOperator:false})}}this.setData({screenData:data})}})//获取应⽤实例var app = getApp()Page({data: {logs:[]},onLoad: function () {var logs =wx.getStorageSync('callogs');this.data.logs=logs;}})(原项⽬作者:忽如寄(简书)原⽂链接:https:///p/47c1a65009a7)。

简单WINDOWS小程序设计——四则运算计算器

简单WINDOWS小程序设计——四则运算计算器

简单WINDOWS小程序设计——四则运算计算器实验一:简单WINDOWS小程序——四则运算计算器题目基本要求:创建一个Windows程序,在文本框中输入两个整数,按“计算”按钮后输出这两个整数的和、差、积、商。

程序运行范例参见所提供的范例。

程序设计的具体要求如下:(1)用户在两个文本框中输入2个整数后单击“计算”按钮,可在标签框中显示计算结果。

(2)要求计算结果标签框中的内容分行显示(3)当除数输入为0以及输入的是非数值时,观察程序的运行状态,为什么?程序提示:(1)每个一在窗体中的控件都应该是一个对象,其中name属性为该控件在程序中的名字。

(不能使用汉字)(2)文本框控件为:Textbox,其中text属性即为用户输入的文本,其类型为字符串类型(3)字符串String 为系统已经定义的一个类,其中有很多可以直接使用的方法,如:字符串连接、字符串复制等等。

(4)通过文本框输入的数据类型是字符串,并不能直接用于数值计算,同理,计算之后的结果也不能直接显示在文本框或者标签中,需要转换!相关代码和使用到的方法如下:int.Parse(txtNumber1.Text)//将字符串txtNumber1.Text转换为相应的整数,不考虑字符串输入错误,不能转换为整数的情况。

int x = 5;txtNumber1.Text =x.ToString();//将整数转换成字符串并赋值给文本框的text属性。

(5)和C语言一样,在C#/C++中,整数和整数相除仍然得整数。

(6)要分行显示,可以使用回车,但它是转义字符,为\n,比如:string s1=”abc”+”\n”+”efg”,可以实现字母的分行显示(7)所谓文本框清空,也就是文本框的text属性值为空串。

也可以使用clear()事件(8)在Windows窗体程序中,经常使用label控件(标签)完成显示和输出,属性text 用于显示,类型为字符串。

(9)C#中,类的全部属性和方法定义都是放在类中的。

四则运算计算器

四则运算计算器

前言本次课程设计的题目是用汇编语言实现一个简单的计算器,要求:编写一个程序,每运行一次可执行程序,可以实现加减乘除四则运算。

计算器是最简单的计算工具,简单计算器具有加、减、乘、除四项运算功能。

通过使用汇编语言设计实现简单计算器,以此进一步了解和掌握对数据存储,寄存器的使用,加减乘除相关指令以及模块的调用等汇编语言知识的有效运用。

本次课程设计以实现一个基本功能完善,界面友好,操作简便易行的计算器为最终目的。

通过对具有加减乘除基本功能的计算器的设计实现,学会使用汇编语言实现输入输出模块的设计,模块合理调用的设计,加减乘除运算的判断以及退出程序的判断的设计。

通过对各种指令的合理使用,熟悉并加深对各种指令的用法。

学会使用汇编语言设计各个功能模块。

当实现各个程序模块后,学会通过程序的调用最终实现一个具有基本计算功能的简单计算器。

1中文摘要实现一个简单计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。

运算过程中的进位或是借位,选择用什么样的方式进行输出,如何实现清屏等也是要解决的问题。

设计当用户根据提示信息输入一个算式后,按下enter键或是‘=’符号键时,程序依据输入的算式进行计算,并将结果显示在屏幕上。

如果用户输入错误,则返回,提示信息让用户重新输入算式,当用户按下Q或q键时退出程序。

在各个子功能模块设计好的情况下,通过主题模块的合理调用,最终实现一个具有简单运算功能的计算关键字:计算器、四则运算、进位、错位、清屏目录1系统分析 -------------------------------------------------2系统总体设计----------------------------------------------3详细设计-------------------------------------------------- 4统测试 ---------------------------------------------------5软件使用说明书 ------------------------------------------- 设计总结----------------------------------------------------参考文献----------------------------------------------------致谢———————————————————————————————————31.系统分析本次汇编语言课程设计的最终目的是要实现一个简单计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。

编写一个简单的计算器程序

编写一个简单的计算器程序

编写一个简单的计算器程序计算器程序是一种非常实用的工具,它可以帮助我们进行数学计算,并简化复杂的运算过程。

本文将介绍如何编写一个简单的计算器程序,实现基本的加减乘除运算。

首先,我们需要确定计算器程序的功能和界面设计。

在本文中,我们将使用Python编程语言来编写计算器程序,并使用命令行界面(CLI)进行交互。

这意味着我们将在终端窗口中输入表达式,并显示结果。

接下来,我们需要考虑计算器程序的基本运算功能。

一个简单的计算器需要实现四个基本的运算:加法、减法、乘法和除法。

我们将使用函数来实现每个运算功能。

以下是一个示例代码:```pythondef add(x, y):return x + ydef subtract(x, y):return x - ydef multiply(x, y):return x * ydef divide(x, y):return x / y```在这个示例代码中,我们定义了四个函数,每个函数接受两个参数,并返回计算结果。

接下来,我们需要处理输入表达式并调用相应的运算函数。

我们将使用一个循环来持续接收用户输入,并在用户输入“exit”时退出程序。

以下是一个示例代码:```pythonwhile True:expression = input("请输入一个表达式:")if expression == "exit":break#解析表达式,提取运算符和操作数operator = Nonefor op in ["+", "-", "*", "/"]:if op in expression:operator = opbreakif not operator:print("表达式错误,请重新输入!") continueoperands = expression.split(operator) x = float(operands[0])y = float(operands[1])if operator == "+":result = add(x, y)elif operator == "-":result = subtract(x, y)elif operator == "*":result = multiply(x, y)elif operator == "/":result = divide(x, y)print("运算结果:", result)print("谢谢使用,再见!")```在这个示例代码中,我们使用了一个无限循环来持续接收用户输入。

windows程序设计codeblocks简易计算器

windows程序设计codeblocks简易计算器

主要功能实现10以内加减乘除,当所有文本编辑处有输入时点击提交按钮,即可得到对应的计算结果。

当有编辑框无输入时,默认为0当除数为0或者无输入时提示有错误,重新输入以下是程序源码:#include <windows.h>LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; LRESULT CALLBACK ChildWndProc(HWND,UINT,WPARAM,LPARAM); TCHAR szChildClass[]=TEXT("Checker3_Child");int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow){static TCHAR szAppName[] = TEXT ("HelloWin") ;HWND hwnd ;MSG msg ;WNDCLASS wndclass ;wndclass.style = CS_HREDRAW | CS_VREDRAW ;wndclass.lpfnWndProc = WndProc ;wndclass.cbClsExtra = 0 ;wndclass.cbWndExtra = 0 ;wndclass.hInstance = hInstance ;wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION) ; //(HICON) LoadImage(NULL,TEXT("./11.ico"),IMAGE_ICON,0, 0,LR_DEFAULTCOLOR | LR_CREATEDIBSECTION | LR_LOADFROMFILE);wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;HBITMAP back_groud;back_groud =(HBITMAP)LoadImage(hInstance,"F:\1.bmp",IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION|LR _DEFAULTSIZE|LR_LOADFROMFILE); // ??è?í???wndclass.hbrBackground = (HBRUSH)(CreatePatternBrush(back_groud)); //3ìDò±3?°wndclass.hbrBackground = (HBRUSH) (COLOR_BTNFACE + 1) ;wndclass.lpszMenuName = NULL ;wndclass.lpszClassName = szAppName ;if (!RegisterClass (&wndclass)){MessageBox (NULL, TEXT ("Program requires Windows NT!"),szAppName, MB_ICONERROR) ;return 0 ;}RegisterClass(&wndclass);hwnd = CreateWindow (szAppName, TEXT ("简易计算器"),WS_OVERLAPPEDWINDOW ,100, 150,900, 500,NULL, NULL, hInstance, NULL) ;ShowWindow (hwnd, iCmdShow) ;UpdateWindow (hwnd) ;while (GetMessage (&msg, NULL, 0, 0)){TranslateMessage (&msg) ;DispatchMessage (&msg) ;}return msg.wParam ;}LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) {HDC hdc ;PAINTSTRUCT ps ;RECT rect ;static HWND hwndLab1,hwndLab2,hwndLab3,hwndLab4,hwndLab5,hwndLab6,hwndLab7,hwndLab8,hwndLab 9,hwndLab10,hwndLab11,hwndLab12,hwndLab13,childHwnd;static HWND hwndEdt1,hwndEdt2,hwndEdt3,hwndEdt4,hwndEdt5,hwndEdt6,hwndEdt7,hwndEdt8;static HWND hwndcmb1,hwndradiobtn1,hwndradiobtn2,hwndcheckbox1,hwndcheckbox2,hwndcheckbox3,hw ndbtnlogin,hwndbtnreset;static HWND hwndlistbox1,hwndlistbox2,hwndlistbox3,hwndlistbox4;int cxClient,cyClient;HINSTANCE hInstance ;static int cyChar , cxChar ;wchar_t *szUsername[32],*szNumber[32],*szclass[32],*szlistbox[32];wchar_t *radiotext[20],*checkboxtext[20];wchar_t *temp[120];wchar_t *split[]={" + "};wchar_t*NUM1[32],*NUM2[32],*NUM3[32],*NUM4[32],*NUM5[32],*NUM6[32],*NUM7[32],*NUM8[3 2];int res1,res2,res3,res4;wchar_t *tNUM1[32],*tNUM2[32],*tNUM3[32],*tNUM4[32];int itemid,radioindex;char *n;int i1,i2,i3,i4,i5,i6,i7,i8;switch (message){case WM_CREATE:hInstance = (HINSTANCE) GetWindowLong (hwnd, GWL_HINSTANCE) ;hwndLab1 = CreateWindow ( TEXT("static"),"我的计算器",WS_CHILD | WS_VISIBLE | SS_CENTER ,0, 0,0, 0,hwnd, (HMENU) 15555,hInstance, NULL) ;hwndLab2 = CreateWindow ( TEXT("static"),"NUM1",WS_CHILD | WS_VISIBLE | SS_CENTER ,0, 0,0, 0,hwnd, (HMENU) 255,hInstance, NULL) ;hwndLab3 = CreateWindow ( TEXT("static"),"NUM2",WS_CHILD | WS_VISIBLE | SS_CENTER ,0, 0,0, 0,hwnd, (HMENU) 355,hInstance, NULL) ;hwndLab4 = CreateWindow ( TEXT("static"),"NUM3",WS_CHILD | WS_VISIBLE | SS_CENTER ,0, 0,0, 0,hwnd, (HMENU) 1004,hwndLab5 = CreateWindow ( TEXT("static"),"NUM4",WS_CHILD | WS_VISIBLE | SS_CENTER ,0, 0,0, 0,hwnd, (HMENU) 105,hInstance, NULL) ;hwndLab6 = CreateWindow ( TEXT("static"),"NUM5",WS_CHILD | WS_VISIBLE | SS_CENTER ,0, 0,0, 0,hwnd, (HMENU) 36,hInstance, NULL) ;hwndLab7 = CreateWindow ( TEXT("static"),"NUM6",WS_CHILD | WS_VISIBLE | SS_CENTER ,0, 0,0, 0,hwnd, (HMENU) 77,hInstance, NULL) ;hwndLab8 = CreateWindow ( TEXT("static"),"NUM7",WS_CHILD | WS_VISIBLE | SS_CENTER ,0, 0,0, 0,hwnd, (HMENU) 87,hInstance, NULL) ;hwndLab9 = CreateWindow ( TEXT("static"),"NUM8",WS_CHILD | WS_VISIBLE | SS_CENTER ,0, 0,0, 0,hwnd, (HMENU) 95,hInstance, NULL) ;hwndLab10 = CreateWindow ( TEXT("static"),"+",WS_CHILD | WS_VISIBLE | SS_CENTER ,0, 0,0, 0,hInstance, NULL) ;hwndLab11 = CreateWindow ( TEXT("static"),"-",WS_CHILD | WS_VISIBLE | SS_CENTER ,0, 0,0, 0,hwnd, (HMENU) 98,hInstance, NULL) ;hwndLab12 = CreateWindow ( TEXT("static"),"*",WS_CHILD | WS_VISIBLE | SS_CENTER ,0, 0,0, 0,hwnd, (HMENU) 99,hInstance, NULL) ;hwndLab13 = CreateWindow ( TEXT("static"),"/",WS_CHILD | WS_VISIBLE | SS_CENTER ,0, 0,0, 0,hwnd, (HMENU) 97,hInstance, NULL) ;/////////////////////////////////////////////////////////////////////////////////// hwndlistbox1=CreateWindow ( TEXT("listbox"),"",WS_CHILD | WS_VISIBLE |WS_VSCROLL | WS_BORDER | LBS_NOTIFY,0, 0,0, 0,hwnd, (HMENU) 14,hInstance, NULL) ;hwndlistbox2=CreateWindow ( TEXT("listbox"),"",WS_CHILD | WS_VISIBLE |WS_VSCROLL | WS_BORDER | LBS_NOTIFY,0, 0,0, 0,hwnd, (HMENU) 14,hInstance, NULL) ;hwndlistbox3=CreateWindow ( TEXT("listbox"),"",WS_CHILD | WS_VISIBLE |WS_VSCROLL | WS_BORDER | LBS_NOTIFY,0, 0,0, 0,hwnd, (HMENU) 14,hInstance, NULL) ;hwndlistbox4=CreateWindow ( TEXT("listbox"),"",WS_CHILD | WS_VISIBLE |WS_VSCROLL | WS_BORDER | LBS_NOTIFY,0, 0,0, 0,hwnd, (HMENU) 14,hInstance, NULL) ;//////////////////////////////////////////////////////////////////////////////////// hwndEdt1 = CreateWindow ( TEXT("edit"),"",WS_CHILD | WS_VISIBLE | ES_LEFT ,0, 0,0, 0,hwnd, (HMENU) 6,hInstance, NULL) ;hwndEdt2 = CreateWindow ( TEXT("edit"),"",WS_CHILD | WS_VISIBLE | ES_LEFT ,0, 0,0, 0,hwnd, (HMENU) 7,hInstance, NULL) ;hwndEdt3 = CreateWindow ( TEXT("edit"),"",WS_CHILD | WS_VISIBLE | ES_LEFT ,0, 0,0, 0,hwnd, (HMENU) 8,hInstance, NULL) ;//上面3个是输入框hwndEdt4 = CreateWindow ( TEXT("edit"),"",WS_CHILD | WS_VISIBLE | ES_LEFT ,0, 0,0, 0,hwnd, (HMENU) 9,hInstance, NULL) ;//上面3个是输入框hwndEdt5 = CreateWindow ( TEXT("edit"),"",WS_CHILD | WS_VISIBLE | ES_LEFT ,0, 0,0, 0,hwnd, (HMENU) 10,hInstance, NULL) ;//上面3个是输入框hwndEdt6 = CreateWindow ( TEXT("edit"),"",WS_CHILD | WS_VISIBLE | ES_LEFT ,0, 0,0, 0,hwnd, (HMENU) 11,hInstance, NULL);hwndEdt7 = CreateWindow ( TEXT("edit"),"",WS_CHILD | WS_VISIBLE | ES_LEFT ,0, 0,0, 0,hwnd, (HMENU) 12,hInstance, NULL);hwndEdt8 = CreateWindow ( TEXT("edit"),"",WS_CHILD | WS_VISIBLE | ES_LEFT ,0, 0,0, 0,hwnd, (HMENU) 13,hInstance, NULL);hwndbtnlogin=CreateWindow ( TEXT("button"),TEXT("提交"),WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,0, 0,0, 0,hwnd, (HMENU) 15,hInstance, NULL) ;hwndbtnreset=CreateWindow ( TEXT("button"),TEXT("重置"),WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,0, 0,0, 0,hwnd, (HMENU) 16,hInstance, NULL) ;cyChar = HIWORD (GetDialogBaseUnits ()) ;cxChar = LOWORD(GetDialogBaseUnits ()) ;return 0;case WM_SIZE:cxClient=LOWORD(lParam);cyClient=HIWORD(lParam);// MoveWindow(hwndRect,cxClient,cyClient,150,200,TRUE);MoveWindow(hwndLab1,3*cxClient/20+1*cxChar,1*cyClient/10,50*cxChar,2*cyChar,TRUE); //我的计算器MoveWindow(hwndLab2,3*cxClient/20,3*cyClient/10+cyChar/5,10*cxChar,2*cyChar,TRUE); //NUM1MoveWindow(hwndLab3,10*cxClient/20,3*cyClient/10+cyChar/5,10*cxChar,2*cyChar,TRUE); //NUM2MoveWindow(hwndLab4,3*cxClient/20,4*cyClient/10+cyChar/5,10*cxChar,2*cyChar,TRUE); //NUM3MoveWindow(hwndLab5,10*cxClient/20,4*cyClient/10+cyChar/5,10*cxChar,2*cyChar,TRUE); //NUM4MoveWindow(hwndLab6,3*cxClient/20,5*cyClient/10+cyChar/5,10*cxChar,2*cyChar,TRUE); //NUM5MoveWindow(hwndLab7,10*cxClient/20,5*cyClient/10+cyChar/5,10*cxChar,2*cyChar,TRUE); //NUM6MoveWindow(hwndLab8,3*cxClient/20,6*cyClient/10+cyChar/5,10*cxChar,2*cyChar,TRUE); //NUM7MoveWindow(hwndLab9,10*cxClient/20,6*cyClient/10+cyChar/5,10*cxChar,2*cyChar,TRUE); //NUM8MoveWindow(hwndLab10,8*cxClient/20,3*cyClient/10+cyChar/5,10*cxChar,2*cyChar,TRUE);//+MoveWindow(hwndLab11,8*cxClient/20,4*cyClient/10+cyChar/5,10*cxChar,2*cyChar,TRUE); //-MoveWindow(hwndLab12,8*cxClient/20,5*cyClient/10+cyChar/5,10*cxChar,2*cyChar,TRUE); //*MoveWindow(hwndLab13,8*cxClient/20,6*cyClient/10+cyChar/5,10*cxChar,2*cyChar,TRUE); ///MoveWindow(hwndlistbox1,15*cxClient/20+10*cxChar,3*cyClient/10,20*cxChar,1.5*cyChar,TRU E); //学院显示MoveWindow(hwndlistbox2,15*cxClient/20+10*cxChar,4*cyClient/10,20*cxChar,1.5*cyChar,TRU E);MoveWindow(hwndlistbox3,15*cxClient/20+10*cxChar,5*cyClient/10,20*cxChar,1.5*cyChar,TRU E);MoveWindow(hwndlistbox4,15*cxClient/20+10*cxChar,6*cyClient/10,20*cxChar,1.5*cyChar,TRU E);MoveWindow(hwndEdt1,3*cxClient/20+10*cxChar,3*cyClient/10,20*cxChar,1.5*cyChar,TRUE); //NUM1输入框MoveWindow(hwndEdt2,10*cxClient/20+10*cxChar,3*cyClient/10,20*cxChar,1.5*cyChar,TRUE); //NUM2输入框MoveWindow(hwndEdt3,3*cxClient/20+10*cxChar,4*cyClient/10,20*cxChar,1.5*cyChar,TRUE); //NUM3输入框MoveWindow(hwndEdt4,10*cxClient/20+10*cxChar,4*cyClient/10,20*cxChar,1.5*cyChar,TRUE); //NUM4输入框MoveWindow(hwndEdt5,3*cxClient/20+10*cxChar,5*cyClient/10,20*cxChar,1.5*cyChar,TRUE); //NUM5输入框MoveWindow(hwndEdt6,10*cxClient/20+10*cxChar,5*cyClient/10,20*cxChar,1.5*cyChar,TRUE); //NUM6输入框MoveWindow(hwndEdt7,3*cxClient/20+10*cxChar,6*cyClient/10,20*cxChar,1.5*cyChar,TRUE); //NUM5输入框MoveWindow(hwndEdt8,10*cxClient/20+10*cxChar,6*cyClient/10,20*cxChar,1.5*cyChar,TRUE); //NUM6输入框MoveWindow(hwndbtnlogin,3*cxClient/20+5*cxChar,7*cyClient/10+3*cyChar,15* cxChar,3*cyChar,TRUE); //提交按钮MoveWindow(hwndbtnreset,3*cxClient/20+35*cxChar,7*cyClient/10+3*cyChar,15* cxChar,3*cyChar,TRUE); // 重置按钮return 0;case WM_COMMAND:switch(LOWORD(wParam)) //判断子窗口ID, 根据子窗口ID做出不同响应{case 15: //处理ID为15的子窗口消息switch(HIWORD(wParam)){case BN_CLICKED: //处理的按下通知码i1 = SendMessage(hwndEdt1,EM_LINELENGTH,0,0); //判断长度if(i1==0) NUM1[32]="0";else SendMessage(hwndEdt1,WM_GETTEXT,32,(LPARAM)NUM1);//i2 = SendMessage(hwndEdt2,EM_LINELENGTH,0,0); //判断长度if(i2==0) NUM2[32]="0";else SendMessage(hwndEdt2,WM_GETTEXT,32,(LPARAM)NUM2); //获取NUM2i3 = SendMessage(hwndEdt3,EM_LINELENGTH,0,0); //判断长度if(i3==0) NUM3[32]="0";else SendMessage(hwndEdt3,WM_GETTEXT,32,(LPARAM)NUM3);i4 = SendMessage(hwndEdt4,EM_LINELENGTH,0,0); //判断长度if(i4==0) NUM4[32]="0";else SendMessage(hwndEdt4,WM_GETTEXT,32,(LPARAM)NUM4);i5 = SendMessage(hwndEdt5,EM_LINELENGTH,0,0); //判断长度if(i5==0) NUM5[32]="0";else SendMessage(hwndEdt5,WM_GETTEXT,32,(LPARAM)NUM5);i6 = SendMessage(hwndEdt6,EM_LINELENGTH,0,0); //判断长度if(i6==0) NUM6[32]="0";else SendMessage(hwndEdt6,WM_GETTEXT,32,(LPARAM)NUM6);i7 = SendMessage(hwndEdt7,EM_LINELENGTH,0,0); //判断长度if(i7==0) NUM7[32]="0";else SendMessage(hwndEdt7,WM_GETTEXT,32,(LPARAM)NUM7);i8 = SendMessage(hwndEdt8,EM_LINELENGTH,0,0); //判断长度if(i8==0) NUM8[32]="0";else SendMessage(hwndEdt8,WM_GETTEXT,32,(LPARAM)NUM8);if(atoi(NUM8)==0) MessageBox( hwnd, "信息输入有误", TEXT("除数不能为0"), MB_OK | MB_ICONASTERISK ) ;else{res1=atoi(NUM1)+atoi(NUM2);itoa(res1, tNUM1,32);SendMessage(hwndlistbox1,LB_ADDSTRING,0,(LPARAM)tNUM1);res2=atoi(NUM3)-atoi(NUM4);itoa(res2, tNUM2,32);SendMessage(hwndlistbox2,LB_ADDSTRING,0,(LPARAM)tNUM2);res3=atoi(NUM5)*atoi(NUM6);itoa(res3, tNUM3,32);SendMessage(hwndlistbox3,LB_ADDSTRING,0,(LPARAM)tNUM3);res4=atoi(NUM7)/atoi(NUM8);itoa(res4, tNUM4,32);SendMessage(hwndlistbox4,LB_ADDSTRING,0,(LPARAM)tNUM4);}break ;}break ;case 16: ///重置switch(HIWORD(wParam)){case BN_CLICKED:SendMessage(hwndEdt1,EM_SETSEL,0,20);SendMessage(hwndEdt1,WM_CLEAR,0,0);SendMessage(hwndEdt2,EM_SETSEL,0,20);SendMessage(hwndEdt2,WM_CLEAR,0,0);SendMessage(hwndEdt3,EM_SETSEL,0,20);SendMessage(hwndEdt3,WM_CLEAR,0,0);SendMessage(hwndEdt4,EM_SETSEL,0,20);SendMessage(hwndEdt4,WM_CLEAR,0,0);SendMessage(hwndEdt5,EM_SETSEL,0,20);SendMessage(hwndEdt5,WM_CLEAR,0,0);SendMessage(hwndEdt6,EM_SETSEL,0,20);SendMessage(hwndEdt6,WM_CLEAR,0,0);SendMessage(hwndEdt7,EM_SETSEL,0,20);SendMessage(hwndEdt7,WM_CLEAR,0,0);SendMessage(hwndEdt8,EM_SETSEL,0,20);SendMessage(hwndEdt8,WM_CLEAR,0,0);SendMessage(hwndlistbox1,LB_DELETESTRING,0,0);SendMessage(hwndlistbox2,LB_DELETESTRING,0,0);SendMessage(hwndlistbox3,LB_DELETESTRING,0,0);SendMessage(hwndlistbox4,LB_DELETESTRING,0,0);break ;}break;}return 0 ;case WM_DESTROY:PostQuitMessage (0) ;return 0 ;}return DefWindowProc (hwnd, message, wParam, lParam) ;}。

四则运算(window窗体程序)

四则运算(window窗体程序)

四则运算(window窗体程序)我的第⼀个程序忙活了半个下午做出来了,勉强可以见⼈,虽然还有些瑕疵,但是我也尽⼒了......我做的是⼀个能对0--10之间的整数进⾏四则运算的,题⽬的数据是程序⾃动⽣成的,⽽且程能接收⽤户输⼊的整数答案,并判断对错程序结束时,统计出答对、答错的题⽬数量。

我做的是⼀个窗体:拖了三个textbox控件,⼀个combobox控件,⼀个label和三个button控件,⼤部分的控件属性都没有改变,只有前两个textbox控件改了Enabled的属性改为false,使其不可输⼊数据,按下“说明”按钮有个⼩⼩的说明:程序运⾏后的结果是这样的:这个程序其实很简单,最主要的是“+”“-”“*”“/”,不同计算⽅法的切换,所以我⽤了switch语句,string result = "";switch (symbol) {case '+':result = (n1 + n2).ToString();break;case '-':result = (n1 - n2).ToString();break;case '*':result = (n1 * n2).ToString();break;case '/':result = n2 == 0 ? "除数不能为零。

" : (n1 / n2).ToString();break;default:break;}return result;这部分是最难得,其次就是随机数的产⽣,private void RandomNum(){Random ran = new Random();double n1, n2;n1 = ran.Next(0, 10);n2 = ran.Next(0, 10);textBox1.Text = n1.ToString();textBox2.Text = n2.ToString();textBox3.Text="";Count++;}最后就是窗体之间的转换和最后计算结果的现实,这个⽐较简单啦!private void button3_Click(object sender, EventArgs e){new Form3().Show();}(窗体转换)private void Form2_Load(object sender, EventArgs e){textBox1.Text = Form1.Count.ToString();textBox2.Text = Form1.right.ToString();textBox3.Text = ((Form1.right / (double)(Form1.Count)) * 100).ToString() + "%";}(最后在form3现实结果)这个就是我的全部设计,⾄于时间,因为是断断续续的没法精确,但是我这点⼉⽔平。

简单的四则运算计算器程序

简单的四则运算计算器程序
1操作符栈里符号进栈规则是后进栈的操作符优先级必须高于已经进栈符号的优先级比方如果接收的操作符优先级等于或小于栈顶操作符优先级则先对栈顶操作符进行出栈运算
简单的四则运算计算器程序
实验目的与要求: 目的: 1、掌握类、构造函数/析构函数、栈等概念,掌握字符串操作; 2、步了解类的设计方法,初步了解词法分析、表达式求值的算符优先算法等 内容。 要求:
cout<<"程序错误,0作为除数出现!";
} else
a=a/b; }break; case '+':a=a+b;break; case '-':a=a-b;break; default:{}break; } Operand oper(a); sOperand.push(oper);
//cout<<"计算,并将结果压:"<<sOperand.getTop().get()<<"入栈\n";
char ch=temp[0]; double a,b; if(ch=='(') {
Operator oper('('); sOperator.push(oper);
//cout<<"符号:"<<sOperator.getTop().get()<<"入栈\n";
} else if(ch==')') {
//cout<<"计算,并将结果压:"<<sOperand.getTop().get()<<"入栈\n";

2四则运算计算器

2四则运算计算器

四则运算计算器本案例知识要点● 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,可以创建“多文档类型”、“单文档类型”、“基于对话框类型”等不同类型和规模的应用程序。

四则运算计算器程序设计javagui

四则运算计算器程序设计javagui

四则运算计算器程序设计(java-gui) 四则运算计算器程序是一种常见的计算机程序,用于执行基本的数学运算,包括加法、减法、乘法和除法。

本文将介绍如何设计一个使用Java GUI实现的四则运算计算器程序。

首先,我们需要创建一个Java GUI窗体,用于显示计算器的界面。

可以使用Java Swing或JavaFX来创建窗体,本文以Java Swing为例。

可以使用JFrame类来创建一个窗体,并添加各种组件,如按钮、标签和文本框等。

在窗体中,我们需要添加一个文本框用于输入表达式和显示结果。

可以使用JTextField类来创建一个文本框,并设置合适的大小和位置。

另外,我们还需要添加一些按钮来表示数字和运算符,可以使用JButton类来创建按钮,并将其添加到窗体中。

接下来,我们需要为按钮添加事件监听器,以便在用户点击按钮时执行相应的操作。

例如,当用户点击数字按钮时,我们需要将相应的数字添加到文本框中;当用户点击运算符按钮时,我们需要将相应的运算符添加到文本框中;当用户点击等号按钮时,我们需要解析文本框中的表达式,并执行相应的运算。

为了实现四则运算,我们可以使用Java的数学库来执行相应的运算。

例如,可以使用Integer.parseInt方法将文本框中的字符串转换为整数,使用加法运算符执行加法运算,使用乘法运算符执行乘法运算等。

在解析和执行表达式时,我们需要考虑一些错误情况,例如除数为零或表达式不合法等。

可以使用try-catch语句来捕获这些异常,并显示相应的错误信息。

最后,我们需要将计算结果显示在文本框中,并提供清除按钮,以便用户可以清除文本框中的内容。

可以使用setText方法将计算结果显示在文本框中,使用setText("")方法来清除文本框中的内容。

综上所述,一个基本的四则运算计算器程序的设计包括创建窗体、添加组件、添加事件监听器、解析和执行表达式、处理异常和显示结果等步骤。

编写一个能自动生成小学四则运算题目的程序。

编写一个能自动生成小学四则运算题目的程序。

编写⼀个能⾃动⽣成⼩学四则运算题⽬的程序。

主要功能:运算⼩学四则运算,可以选择加减乘除以及混合运算。

设计思想:⾸先思考运算数字范围,考虑⼩学⽣的运算能⼒,然后分类运算⽅法,分为加减乘除混合运算,然后可以选择是继续做题还是退出程序,可以总结做对或者做错的题数,⽅便计算正确以及错误的题数。

源代码:#include <stdio.h>#include <ctype.h>#include <time.h>#include <stdlib.h>#include <windows.h>#define IDNO_LENGTH 6#define CALC_KIND 4char getSignal();int getResult(int,int,char);void takeTest();void falsePrint(int);void correctPrint(int);//main函数void main(){while(1){takeTest();}}//获取随机运算符char getSignal(){char signal[CALC_KIND]={'+','-','*','/'};srand((unsigned)time(NULL));return signal[rand()%4];}int random(double start, double end){return (int)(start+(end-start)*rand()/(RAND_MAX+ 1.0)); }//运算int getResult(int num1,int num2,char signal){int res;switch(signal){case '+':res=num1+num2;break;case '-':res=num1-num2;break;case '*':res=num1*num2;break;case '/':res=num1/num2;break;default:res=0;printf("运算符不符合规则\n");}return res;}//列出题⽬void takeTest(){int giveRes;int num1;int num2;char signal;int printFlag;srand((unsigned)time(NULL));signal=getSignal();if(signal=='-'){if(num1<num2){int temp;temp=num1;num1=num2;num2=temp;}}if(signal=='/'){if(num2==0){int temp;temp=num1;num1=num2;num2=temp;}}printf("%d%c%d=",num1,signal,num2);scanf("%d",&giveRes);fflush(stdin);if(getResult(num1,num2,signal)==giveRes){printFlag=random(1,5);correctPrint(printFlag);}else{printFlag=random(1,4);falsePrint(printFlag);printf("正确答案:%d\n",getResult(num1,num2,signal));//回答正确打印信息void correctPrint(int num){switch(num){case 1:printf("You're right!\n");break; case 2:printf("It's OK!\n");break;case 3:printf("Correct!\n");break;case 4:printf("Perfect!\n");break;case 5:printf("Good!\n");break;default:printf("Powerful!\n");break; }}//回答错误打印信息void falsePrint(int num){switch(num){case 1:printf("You're lost!");break; case 2:printf("Failure!");break;case 3:printf("Come on!");break;case 4:printf("It's wrong!");break;default:printf("Incorrect!");break;}感谢《百度贴吧》⼤神的帮助。

设计一个简单计算器

设计一个简单计算器

设计一个简单计算器计算器是一种能够进行数学运算的工具,可以帮助我们进行加减乘除等基本运算,并且能够处理复杂的数学表达式。

在现代科技的帮助下,我们可以轻松设计一个简单计算器,来满足日常计算的需求。

界面设计:一个简单计算器的界面主要分为数字键、运算符键、等号键和清除键等几部分。

数字键用于输入数字,运算符键用于选择运算符,等号键用于进行计算,清除键用于清除输入。

数据输入:为了方便用户输入数据,我们可以使用虚拟键盘或者物理键盘来实现数据输入功能。

用户可以通过点击数字键或者使用键盘输入数字。

同时,为了避免用户输入错误,我们可以设置一些输入的限制条件,比如只能输入数字和小数点,不能输入字母等。

运算处理:简单计算器需要支持基本的四则运算,即加、减、乘、除。

我们可以在输入的过程中判断用户选择的运算符,然后根据不同的运算符进行相应的运算。

同时,为了保证计算的准确性,我们可以使用合适的数据类型来处理计算过程中的数据,比如使用浮点数类型。

结果显示:此外,为了增加计算器的实用性,我们还可以考虑添加一些额外功能:1.历史记录:记录用户的计算历史,方便用户查看之前的计算结果。

2.科学计算:支持其他常用的数学函数,比如平方根、三角函数等。

3.单位转换:支持长度、重量、温度、速度等不同物理量单位的转换,方便用户进行单位换算。

4.百分比计算:支持百分数的计算,方便用户计算折扣、利率等。

综上所述,一个简单计算器的设计需要综合考虑界面设计、数据输入、运算处理和结果显示等几个方面,可以根据实际需求增加一些额外功能来提升计算器的实用性。

通过合理设计和优化,我们可以实现一个功能齐全、易于使用的简单计算器。

易语言四则运算小程序手把手教你编写

易语言四则运算小程序手把手教你编写

易语言四则运算小程序我用易语言做了个四则运算小程序,下面一步步的带大家编写。

目录第一部分界面制作 (1)第二部分程序编写 (6)第三部分实例演示 (7)第一部分界面制作第一步,打开易语言新建一个windows程序,进入下图界面。

第二步,点击下图框内程序选项卡第三步,点击下图框内启动窗口,进入下图界面第四步,点击下图框内组件,拖动到左边的窗口第五步,拖动四次,形成下图界面第六步,点击其中一个按钮,注意左边框内,可以修改名称第七步,我们从上往下依此修改为:加、减、乘、除,如下图第八步,我们选中右边,下图框内组件第九步,拖动然后复制3次,如下图第十步,选中右边下图框内组件第十一步,按照前面的经验,制作如下图界面第二部分程序编写第一步,双击下图框内加按钮,我们输入:编辑框2.内容=到文本 (到整数 (编辑框1.内容) +到整数 (编辑框3.内容))如图:第二步,我们按照同样的办法,把加、减、乘、除搞定如图:只是改变下运算符号第三部分实例演示第一步,我们点击下图框内图标,运行程序第二步,界面如下第三步,我们在分别在参数一、二输入数字第四步,我们点击加按钮,如图第五步,我们点击减按钮,如图第六步,我们点击乘按钮,如图第七步,我们点击除按钮,如图特别提醒:我这个四则运算有缺陷,就是做小数运算会出错,比如:1.2+1.2结果显示为2,如下图这个是因为,我是输入的是文本,易语言要转换成其他数据类型才能四则运算,我涂方便就转换成整数类型,结果1.2就转换成1,这样就出错了,我做这个教程是帮助大家入门的,后续教程会慢慢完善。

四则运算计算器程序设计(java-GUI)

四则运算计算器程序设计(java-GUI)
当进行按下‘=’键时,进行表达式的求值。表达式求值的过程参见数据结构与算法设 计部分。
三、 布局设计
如右图所示的布局方式, 整体分为三部分,使用三个 中间容器即可实现此种布局。 构造方法用于布局的实现, 在构造方法中申明和初始化 三个中间容器 p1、p2、p3, 其中 p1 存放显示控件,位于 窗体的上部;p2 存放数字键, 位于窗体的左部;p3 存放功能键和运算符按钮,位于窗体的右部。p1 使用 FlowLayout 布局, 并设置对齐方式为左对齐;p2 和 p3 使用 GridLayout 布局,网格规模分别为 4*3 和 3*3。窗 体布局使用 BorderLayout 布局,按图所示分别使 p1 在 NORTH 位置,p2 在 WEST 位置,p3 在 CENTER 位置。
布局的方式有多种多样,读者可以有自己的创新,不局限与这一种布局方式。
四、 事件处理响应
通过实现 ActionListener 接口中的 public void actionPerformed(ActionEvent e)方法,将事 件处理全部集中在 actionPerformed(ActionEvent e)方法中。首先在构造方法中为所有的 JButton 对象添加监听器,在 actionPerformed(ActionEvent e)方法中,首先有一个 JButton 类 型的变量用来获取事件源的引用,然后程序根据事件源的不同做出不同的响应。
for( i=0 ; i<11 ; i++)//为所有的按钮添加监听器 button_num[i].addActionListener(this);
for( i=0 ; i<7 ; i++) button_bol[i].addActionListener(this);

四则运算计算器的程序编写

四则运算计算器的程序编写

四则运算计算器一、程序功能简介可以计算整数四则运算,例如:7+5*(3+4)二、课程设计要求(1)按要求在提供的框架程序源程序的基础上对程序进行修改、补充,并调试通过。

(2)修改主程序结构,使程序可以反复运算,直到选择退出为止。

(3)增加文件的输入输出功能,是计算过的式子和结果可以根据需要设置命令存储到文件中,同时也可以直接从文件中输入四则运算的式子,运算后,结果输出到原文件中。

(4)扩充程序功能,使程序适合实型数运算。

(5)增加程序的判断功能,当有非法的输入时(如字母等),给出提示信息并退出运算。

(6)扩充程序功能,使程序可以进行关系表达式(>=,>,<=,<,==等)的运算,运算结果为TRUE 或FALSE 。

在VC++6 环境下编译已经完美实现上述功能注:包含Debug 的语句如:if (Debug) printf(""); 都可以忽略,这些显示是编写工程中需要观察的信息,如果要打开,请在主菜单下输入大写的'D'。

Log:20060703 开始分析框架程序,并规划程序结构20060704 计算的核心部分基本完成,并封装成Operation()20060705 编写Menu_Sel() Do_Press() strChk() Do_File() FileCHK() Nexus() 整体功能和界面基本完成20060706 强化strChk(),增加Debug 模式,修正符号优先级问题。

20060707 郁闷,在英化程序-_-/// ...在Do_File() 增加输出文件另存功能...20060708 ....20060709 ....20060710 强化strChk(),增加结果整形识别,增加'!=' 处理,文件名非法字符校验。

最后更新20060710*//* =============================================== *//* 头文件声明*/#include <stdio.h> /* In Out printf().. */#include <math.h> /* pow(M,n) 开M^n */#include <string.h> /* strcpy... */#include <stdlib.h> /* atof... */#include <conio.h> /* getch()... */#define Max 256 /* 表达式长度定义,可以在这里调节*//* =============================================== *//* 函数声明*//* 计算字符串(不带括号的),计算的核心部分*/char*Calculate_f(char*chpString);/* 主操作过程,输入式子串,返回double 型结果*/double Operation(char*chpString);/* Source1、Source2 加起来到Destination 中*/char*AddStrings_f(char*chpDestination,char*chpSource1,char*chpSource2);/* 寻找char_to_find 在Source 中的位置,后移一位*/int FindChar(char*chpSource,char chCharToFind);/* 获取字符串的长度*/int Len_f(char*chpSource);/* 将Source 左边Length 个字符放在Destination 中*/char*Left_f(char*chpSource,char*chpDestination,int nLength);/* 将Source 右边Length 个字符放在Destination 中*/char*Right_f(char*chpSource,char*chpDestination,int nLength);/* 将Source 中从Start 开始Length 长度的字符串截下来放在Destination 中*/ char*Midstr_f(char*chpSource,char*chpDestination,int nStart,int nLength);/* 在字符串中删除一个字符del '+' */void DelChar(char*chpString,int sPos);/* 在字符串中插入一个字符*/int InsChar(char*chpString,int sPos,char sChar);/* 替换字符串中的某个字符*/void StrReplace(char*chpString,char strOld ,char strNew);/* 将实数值变为字符串*/char*Str_f(double nV alue,char*chpDestination);/* 计算字符串的值,返回实数值*/double V al_f(char*chpSource);/* =============================================== *//* 主菜单... */int Menu_Sel();/* 手工输入表达式求值*/int Do_Press();/* 文件导入表达式求值*/int Do_File();/* 文件检查0 重新输入,1 继续*/int FileChk(char*FN);/* 式子的合法性检查0 含有非法字符,1 正常2 关系运算*/int StrChk(char*chpSource);/* 关系运算*/int Nexus(char strIn[]);/* 显示关于*/void Show_About();/* =============================================== *//* 全局变量声明*/int Debug=0;/* 调试信息显示开关0 不显示,1 显示*/char*TF_Info[3]={"FALSE","TURE","Error"};/* 关系运算信息*//* 将Source 左边Length 个字符放在Destination 中*/char*Left_f(char*chpSource,char*chpDestination,int nLength){*(chpDestination+--nLength+1)=0;/* 设置目标字符串最后一个为NULL*/while(nLength>=0)/* 直到目标字符串的最后一个*/{*(chpDestination+nLength)=*(chpSource+nLength--);}return chpDestination;}/* 将Source 中从Start 开始Length 长度的字符串截下来放在Destination 中*/char*Midstr_f(char*chpSource,char*chpDestination,int nStart,int nLength){chpSource+=nStart-1;/* 设置源起点*/*(chpDestination+--nLength+1)=0;/* 设置目标字符串最后一个为NULL */while(nLength>=0)/* 直到目标字符串的最后一个*/{*(chpDestination+nLength)=*(chpSource+nLength--);}return chpDestination;}/* 将Source 右边Length 个字符放在Destination 中*/char*Right_f(char*chpSource,char*chpDestination,int nLength){while(*chpSource !=0){chpSource++;}/* 将源指针移到最后*/chpSource-=nLength;/* 将源指针跳到开始复制点*/ *(chpDestination+--nLength+1)=0;/* 设置目标字符串最后一个为NULL */while(nLength>=0)/* 直到目标字符串的最后一个*/{*(chpDestination+nLength)=*(chpSource+nLength--);}return chpDestination;}/* 在字符串中删除一个字符del '+' */void DelChar(char*chpString,int sPos){char sBuf[Max];int nCount;strcpy(sBuf,chpString);for(nCount=sPos;sBuf[nCount];nCount++){sBuf[nCount]=sBuf[nCount+1];}strcpy(chpString,sBuf);}/* 在字符串中插入一个字符*/int InsChar(char*chpString,int sPos,char sChar){char sBuf[Max];int iLen;int nCount;strcpy(sBuf,chpString);iLen=strlen(sBuf);if(iLen<Max){sBuf[iLen+1]='\0';for(nCount=iLen;nCount>=sPos;nCount--){sBuf[nCount+1]=sBuf[nCount];}sBuf[sPos]=sChar;strcpy(chpString,sBuf);}elsereturn0;return1;}/* 替换字符串中的某个字符'#' to '-' */void StrReplace(char*chpString,char strOld ,char strNew){char sBuf[Max];int nCount=0;strcpy(sBuf,chpString);while(sBuf[nCount]){if(sBuf[nCount]==strOld) sBuf[nCount]=strNew;nCount++;}strcpy(chpString,sBuf);}/* 寻找char_to_find 在Source 中的位置,后移一位*/int FindChar(char*chpSource,char chCharToFind){int nPos=0;while(*(chpSource+nPos)!=0)/* 直到目标字符串的最后一个*/ {if(chCharToFind ==*(chpSource+nPos++))/* 比较.. */{return nPos;/* 返回第一个出现点,加一*/ }}return0;}/* 获取字符串的长度*/int Len_f(char*chpSource){int nRetval=0;/* 初始化长度*/while(*(chpSource+nRetval++)!=0){}/* 移动指针到Null */return--nRetval;}/* 将实数值变为字符串*/char*Str_f(double nV alue,char*chpDestination){char strTmp[Max];gcvt(nV alue,sizeof(double)+1,strTmp);/* 实数值转字符串*/if(strTmp[0]=='-')/* 将'-' 负号转译为'#' */{strTmp[0]='#';}strcpy(chpDestination,strTmp);if(Debug) printf("...Conversion Double to String:%f - >%s\n",nV alue,chpDestination);return chpDestination;}/* Source1、Source2 加起来到Destination 中*/char*AddStrings_f(char*chpDestination,char*chpSource1,char*chpSource2){char*chpTempdest=chpDestination;while(*chpSource1!=0)/* 先把chpSource1 放入chpDestination */{*(chpTempdest++)=*(chpSource1++);}while(*chpSource2!=0)/* 在chpDestination 后继续写入chpSource2 */{*(chpTempdest++)=*(chpSource2++);}*chpTempdest=0;/* 指针位置归零*/return chpDestination;}/* 计算字符串的值,返回实数值*/double V al_f(char*chpSource){double nResult=0.;char strTmp[Max];strcpy(strTmp,chpSource);if(strTmp[0]=='#')/* 将'#' 转译为'-' 负号*/{strTmp[0]='-';}nResult=atof(strTmp);/* 字符串转为实数*/if(Debug)printf("...Conversion String to Double:%s -> %s -> %f\n",chpSource,strTmp,nResult);return nResult;}。

窗体应用程序:四则运算

窗体应用程序:四则运算

窗体应⽤程序:四则运算1、需求分析编写⼀个能对0--10之间随机⽣成的整数进⾏四则运算的“软件” 程序能接收⽤户输⼊的整数答案,并判断对错程序结束时,统计出答对、答错的题⽬数量。

2、具体设计思路⾸先想到,既然要⽤四种⽅法,就⽤switch case 语句来根据⽤户的选择进⾏其中的⼀种运算。

算法直接嵌套在case语句⾥,这样既简单⼜⽅便。

要求进⾏运算的两个数是随机的,⽤Random产⽣两个0~10的随机数。

共需要两个窗体,⼀个进⾏四则运算,⼀个进⾏统计。

定义⼀个count来进⾏存储答题数⽬,定义⼀个right来进⾏存储答对数⽬。

3、编写过程截图4.具体代码实现Form1.cs:using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace四则运算{public partial class Form1 : Form{public Form1(){InitializeComponent();}public static int Count = 0;public static int right = 0;private void RDN(){Random rd = new Random();int n1, n2;n1 = rd.Next(0, 11);n2 = rd.Next(0, 11);textBox1.Text = n1.ToString();textBox2.Text = n2.ToString();textBox3.Text = "";}private void button1_Click(object sender, EventArgs e){label1.Text = button1.Text;RDN();}private void button2_Click(object sender, EventArgs e){label1.Text = button2.Text;RDN();}private void button3_Click(object sender, EventArgs e){label1.Text = button3.Text;RDN();}private void button4_Click(object sender, EventArgs e){label1.Text = button4.Text;RDN();}private void button5_Click(object sender, EventArgs e){Form2 frm2 = new Form2();frm2.ShowDialog();}private void textBox3_KeyDown(object sender, KeyEventArgs e){int result = 0;string s = label1.Text;switch (s){case"+":result = int.Parse(textBox1.Text) + int.Parse(textBox2.Text);break;case"-":result = int.Parse(textBox1.Text) - int.Parse(textBox2.Text);break;case"×":result = int.Parse(textBox1.Text) * int.Parse(textBox2.Text);break;case"÷":if (textBox2.Text=="0"){MessageBox.Show("分母为0,不计⼊答题总数,请回车继续答题!"); }else{result = int.Parse(textBox1.Text) / int.Parse(textBox2.Text);}break;}if (e.KeyCode == Keys.Enter){if (textBox3.Text == result.ToString()){right++;Count++;MessageBox.Show("回答正确!");}else{if (textBox2.Text=="0"){RDN();}else{MessageBox.Show("答题错误!");RDN();Count++;}}RDN();}}}}Form2.cs:using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace四则运算{public partial class Form2 : Form{public Form2(){InitializeComponent();}private void Form2_Load(object sender, EventArgs e){textBox1.Text = Form1.Count.ToString();textBox2.Text = Form1.right.ToString();textBox3.Text = (Form1.Count - Form1.right).ToString();}}}5、运⾏截图6、总结通过这次的作业,我发现,“分析”很重要啊。

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

实验一:简单WINDOWS小程序——四则运算计算器
题目基本要求:创建一个Windows程序,在文本框中输入两个整数,按“计算”按钮后输出这两个整数的和、差、积、商。

程序运行范例参见所提供的范例。

程序设计的具体要求如下:
(1)用户在两个文本框中输入2个整数后单击“计算”按钮,可在标签框中显示计算结果。

(2)要求计算结果标签框中的内容分行显示
(3)当除数输入为0以及输入的是非数值时,观察程序的运行状态,为什么?
程序提示:
(1)每个一在窗体中的控件都应该是一个对象,其中name属性为该控件在程序中的名字。

(不能使用汉字)
(2)文本框控件为:Textbox,其中text属性即为用户输入的文本,其类型为字符串类型(3)字符串String 为系统已经定义的一个类,其中有很多可以直接使用的方法,如:字符串连接、字符串复制等等。

(4)通过文本框输入的数据类型是字符串,并不能直接用于数值计算,同理,计算之后的结果也不能直接显示在文本框或者标签中,需要转换!
相关代码和使用到的方法如下:
int.Parse(txtNumber1.Text)
//将字符串txtNumber1.Text转换为相应的整数,不考虑字符串输入错误,不能转换为整数的情况。

int x = 5;
txtNumber1.Text =x.ToString();
//将整数转换成字符串并赋值给文本框的text属性。

(5)和C语言一样,在C#/C++中,整数和整数相除仍然得整数。

(6)要分行显示,可以使用回车,但它是转义字符,为\n,比如:
string s1=”abc”+”\n”+”efg”,可以实现字母的分行显示
(7)所谓文本框清空,也就是文本框的text属性值为空串。

也可以使用clear()事件
(8)在Windows窗体程序中,经常使用label控件(标签)完成显示和输出,属性text 用于显示,类型为字符串。

(9)C#中,类的全部属性和方法定义都是放在类中的。

不允许类外定义方法。

思考:
(1)什么是对象,什么是类,有什么关系,在上述程序中,哪些是类,哪些是对象。

(2)对象和对象之间是如何区分的。

(3)什么是属性,什么是方法,在上述代码中,哪些是属性,哪些是方法,在控件的使用过程中,对象和属性能否改变
(4)你认为面向对象的程序设计的关键应该在哪里?使用系统或者第三方软件公司已经定义好的类有什么好处,又有什么坏处?
需要在网络辅助教学平台上提交的作业:
简要回答上述四道思考题!。

相关文档
最新文档