制作一个计算器应用程序课程设计
简易计算器的课程设计

简易计算器的课程设计一、课程目标知识目标:1. 学生能理解简易计算器的内部工作原理,掌握其基本功能操作。
2. 学生能运用计算器进行基本的算术运算,包括加、减、乘、除以及百分比计算。
3. 学生理解并掌握计算器上各个按键的功能及其在数学运算中的应用。
技能目标:1. 学生能够使用计算器辅助解决实际问题,如购物找零、面积计算等。
2. 学生通过计算器的使用,提高数据输入、结果读取和运算过程纠错的能力。
3. 学生能够结合数学知识,利用计算器进行数据的简单统计分析。
情感态度价值观目标:1. 培养学生对待科学技术的积极态度,认识到计算器在日常生活和学习中的便捷性。
2. 增强学生的团队协作意识,通过小组活动,学会分享和交流使用计算器的经验。
3. 培养学生遵守计算器使用的规则,养成良好的计算器使用习惯,珍惜公共资源。
本课程设计针对的学生群体为小学高年级学生,他们已经具备了一定的数学基础和操作简单电子设备的能力。
课程性质为实用技能型,旨在通过简易计算器的教学,将理论知识与实践操作相结合,提高学生解决实际问题的能力。
在教学要求上,注重培养学生的动手操作能力和创新思维,同时强调情感态度的培养,使学生在学习技能的同时,也能形成正确的价值观。
通过具体学习成果的分解,教师可进行有针对性的教学设计和学习效果评估。
二、教学内容本章节教学内容依据课程目标,结合教材内容,科学系统地组织以下部分:1. 简易计算器基础知识:介绍计算器的发展历程、种类及简易计算器的结构组成,对应教材第二章第一节。
2. 计算器按键功能:详细讲解各按键的功能及其在数学运算中的应用,对应教材第二章第二节。
3. 基本运算操作:教授如何使用计算器进行加、减、乘、除以及百分比计算,对应教材第二章第三节。
4. 计算器在实际应用中的使用:结合实际案例,如购物找零、面积计算等,展示计算器的实用性,对应教材第二章第四节。
5. 数据的简单统计分析:利用计算器进行数据输入、处理和简单统计分析,对应教材第二章第五节。
【精品文档】java课程设计 计算器的制作

【精品文档】java课程设计计算器的制作科信学院计算机科学与技术专业 java课设报告书JAVA课程设计说明书——————计算器的设计专业班级班课设题目学生姓名学生学号指导教师提交日期 2- 1 -科信学院计算机科学与技术专业 java课设报告书一、内容摘要:运用本学期所学知识设计一个能够完成简单四则运算的计算器;以Myeclipse作为开发环境,结合之前所学的Java基础知识共同完成。
该计算器的计算结果保留了两位小数;这里简单介绍设计思想:构造出一个界面,然后往面板上粘贴各个组件,包括按钮、标签、文本框等。
二、设计目的:通过课程设计加深对Java程序设计的理解,掌握Java程序开发的基本方法,把课堂上所学到的多个单元串到一起,提高解决问题和分析问题的能力,具体体现在以下几个方面:1、了解Java开发一般应用程序的方法和步骤;进一步强化类的定义,掌握类的继承、接口; 2、3、熟练掌握变量、数组的应用;4、熟悉图形用户界面中常用组件的使用,掌握事件处理机制;5、了解数据库连接技术JDBC、网络编程和多线程机制。
三、设计内容:3.1 需求分析3.1.1 计算器的基本功能:加法运算:用“+”按钮进行运算;减法运算:用“-”按钮进行运算;乘法运算:用“*”按钮进行运算;除法运算:用“/”按钮进行运算;清零键: 用”清空”按钮实现;- 2 -科信学院计算机科学与技术专业 java课设报告书3.2 用户界面设计该计算器程序的设计:用户界面包括Swing组件,不过程序中大都使用的是AWT 组件.import java.awt.*;在AWT组件中:(1)、使用了面板和按钮:mianban 1,2,3;private JPanel mianBan1 = new JPanel(); //面板1存放,窗口、和清空按钮chuangKou.add(mianBan1,BorderLayout.NORTH); //面板1,存放窗口的北边private JPanel mianBan2 = new JPanel();//存放其他按钮mianBan2.add(s7);mianBan2.add(s8);mianBan2.add(s9);mianBan2.add(jia);mianBan2.add(s4);mianBan2.add(s5);mianBan2.add(s6);mianBan2.add(jian);mianBan2.add(s1);mianBan2.add(s2);mianBan2.add(s3);mianBan2.add(cheng);mianBan2.add(s0);mianBan2.add(dian);mianBan2.add(deng);mianBan2.add(chu);mianBan2.setLayout(new GridLayout(4,4)); //面板2的布局模式Button s0,s1,s2,s3,s4,s5,s6,s7,s8,s9;- 3 -科信学院计算机科学与技术专业 java课设报告书Button jia,jian,cheng,chu;Button 清空, = , . ;private JPanel mianBan3 = new JPanel(); //存放标签JLabel biaoQian0 = new JLabel("----------------------- 屠式计算器------------------------"); //标签mianBan3.add(biaoQian0);chuangKou.add(mianBan3,BorderLayout.SOUTH); //位于窗口南边(2)、界面属性:chuangKou.setVisible(true);//可见chuangKou.pack(); //把容器包起来chuangKou.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //直接退出shuRuKuang.setHorizontalAlignment(JTextField.RIGHT ); //编辑框文字右对齐//chuangKou.setResizable(false); //不能调大小chuangKou.setLocation(500,300); //坐标chuangKou.setSize(330,250); //大小(3)、给按钮添加背景颜色:jia.setBackground(new Color(255,50,50));jian.setBackground(new Color(255,50,50));cheng.setBackground(new Color(255,50,50));chu.setBackground(new Color(255,50,50));dian.setBackground(new Color(60,200,50));deng.setBackground(new Color(60,200,50));s0.setBackground(new Color(60,200,50));s1.setBackground(new Color(60,200,50));s2.setBackground(new Color(60,200,50));s3.setBackground(new Color(60,200,50));s4.setBackground(new Color(60,200,50));s5.setBackground(new Color(60,200,50));- 4 -科信学院计算机科学与技术专业 java课设报告书s6.setBackground(new Color(60,200,50));s7.setBackground(new Color(60,200,50));s8.setBackground(new Color(60,200,50));s9.setBackground(new Color(60,200,50));qingKong.setBackground(new Color(200,250,100)); //清除按钮颜色mianBan1.setBackground(new Color(200,200,255)); //mianBan1颜色mianBan3.setBackground(new Color(200,200,255)); //mianBan2颜色(4)、事件监听:dian.addMouseListener(new OperationMouseListener());deng.addMouseListener(new OperationMouseListener());a、注册四则运算监听jia.addMouseListener(new YunSuanJianTing());jian.addMouseListener(new YunSuanJianTing());cheng.addMouseListener(new YunSuanJianTing());chu.addMouseListener(new YunSuanJianTing());b、注册数字监听事件s0.addMouseListener(new ShuZiJianTing());s1.addMouseListener(new ShuZiJianTing());s2.addMouseListener(new ShuZiJianTing());s3.addMouseListener(new ShuZiJianTing());s4.addMouseListener(new ShuZiJianTing());s5.addMouseListener(new ShuZiJianTing());s6.addMouseListener(new ShuZiJianTing());s7.addMouseListener(new ShuZiJianTing());s8.addMouseListener(new ShuZiJianTing());s9.addMouseListener(new ShuZiJianTing());c、清空监听器:qingKong.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)shuRuKuang.setText(""); //清空编辑框d、数字按钮监听器:- 5 -科信学院计算机科学与技术专业 java课设报告书private class ShuZiJianTing implements MouseListenerpublic void mouseClicked(MouseEvent e)if(shuRuKuang.getText().trim().equals("0")) //如果文本框已经是0,结果还是0shuRuKuang.setText(((JButton)e.getSource()).getText().trim()); shuRuKuang.setText(shuRuKuang.getText().concat(((JButton)e.getSource ()).getText().trim()));public void mouseEntered(MouseEvent e)public void mouseExited(MouseEvent e)public void mousePressed(MouseEvent e)public void mouseReleased(MouseEvent e) e、运算按钮监听器:private class YunSuanJianTing implements MouseListener//如果输入的是运算符号,保存第一个结果和运算符号public void mouseClicked(MouseEvent e)num1 = shuRuKuang.getText().trim();shuRuKuang.setText("");operator = ((JButton)e.getSource()).getText().trim();public void mouseEntered(MouseEvent e)public void mouseExited(MouseEvent e)public void mousePressed(MouseEvent e)public void mouseReleased(MouseEvent e) f、小数点、等号监听器:private class OperationMouseListener implements MouseListenerpublic void mouseClicked(MouseEvent e)if(e.getSource() == dian)String text = shuRuKuang.getText().trim();//如果按了小数点,如果文本框已经有小数点,不做任何操作,否则在结果后面加上小数点if(text.indexOf(".") == -1){- 6 -科信学院计算机科学与技术专业 java课设报告书shuRuKuang.setText(text.concat("."));}else if(e.getSource() == deng){//如果是等号if(!operator.trim().equals("")){if(!shuRuKuang.getText().trim().equals("")){double result = 0D;if(operator.equals("+")){//执行加法运算result = Double.parseDouble(num1) +Double.parseDouble(shuRuKuang.getText().trim());}else if(operator.equals("-")){//减法运算result = Double.parseDouble(num1) -Double.parseDouble(shuRuKuang.getText().trim());}else if(operator.equals("*")){//乘法运算result = Double.parseDouble(num1) *Double.parseDouble(shuRuKuang.getText().trim());}else if(operator.equals("/")){//除法运算result = Double.parseDouble(num1) /Double.parseDouble(shuRuKuang.getText().trim());} //格式化最终结果,保留两位小数点shuRuKuang.setText(new DecimalFormat("0.00").format(result));四、测试4.1加法运算(实现49+57=106):4.2减法运算(实现48-79= -31):- 7 -科信学院计算机科学与技术专业 java课设报告书4.3乘法运算(684*211=144324):4.4除法运算(251/51=4.92):4.5清空:任何情况下鼠标点击清空按钮都可以进行清空操作4.6计算器整界面运行效果:五、设计缺陷:5.1该计算器只能进行简单的加、减、乘、除四则运算,不能进行科学计算比如:幂运算、对数运算、三角函数运算等。
可视化编程课程设计(含源码)计算器系统实现

设计题目:计算器系统实现1.分别用API与MFC编程来实现计算器的以下功能。
2.实现计算器的基本功能:连续数据的无优先级混合运算(加减乘除)3.可以实现其他附加功能:优先级运算,加入括号,加入其他函数运算功能等。
(不在要求范围之内)4.要求界面良好,功能完整。
一.基于MFC的简单计算器1.设计思路打开MFC应用操作界面,布局计算器界面,利用组框将计算器界面分为三个部分,一个是编辑输入,一个是数字界面,一个是功能键部分。
利用布局参考线对齐按钮,使界面美观。
然后就是对各个按钮进行属性设置,关联类设置,接着对各个按钮进行源代码编程。
最后,调试找出问题,解决问题,运行MFC成品计算器。
2.简单操作以及功能说明由于本人技术有限,所以本程序只能按照正确的计算运算顺序进行,该简单计算器能进行四则混合运算,除了加减乘除外,添加了一个括号,对于有些未知的错误,由于时间有限,并未来得及全面测试使用。
该简单计算器能实现四则运算,退格运算,清零运算,并且支持输出的结果保留给直接的下一个运算。
3.系统实现的各个模块1)编辑框模块由于编辑框模块需要连续输入字符串,所以在给编辑框建立类向导时,给编辑框定义的成员变量应该是字符串(String)变量。
编辑框模块用于运算算式的输入,以及结果的输出。
2)数字键模块数字键模块比较简单,该简单计算器数字键模块设置有0~9数字,还设置有小数点,以及正负数转换实现按钮。
数字键模块按钮在建立类向导时无需定义成员变量,但是需要定义按钮响应链接,用于实现点击按钮,在编辑框上显示点击按钮信息。
3)功能键模块功能键模块包括加减乘除基本按钮,以及一个输入错误是后能用于退格功能的退格键按钮,还有一个用于区别优先级运算的括号功能,当然有最重要的计算结果输入按钮,等于号按钮。
在编辑框附近还有一个功能键,就是清除功能键,用于清除编辑框,以便实现下一轮输入。
4.设计过程1)设计总流程图2)界面的设计3)建立的变量,控件的命名,对应的消息处理函数对应表ID CAPTION MessageHandler IDD_JISUANQI_DIALOG 简易计算器N/AIDC_NUM0 0 OnNum0IDC_NUM1 1 OnNum1IDC_NUM2 2 OnNum2IDC_NUM3 3 OnNum3IDC_NUM4 4 OnNum4IDC_NUM5 5 OnNum5IDC_NUM6 6 OnNum6IDC_NUM7 7 OnNum7IDC_NUM8 8 OnNum8IDC_NUM9 9 OnNum9IDC_OPER_ADD + OnOperAdd IDC_OPER_SUB - OnOperSub IDC_OPER_MULTI * OnOperMulti IDC_OPER_DIV / OnOperDiv IDC_ADD_SUB +/- OnAddSubIDC_POINT . OnPointIDC_EQUAL = OnEqualIDC_LBRACKET ( OnLbracket1)数字键模块void CJiSuanQiDlg::OnNum0(){if(calculated == TRUE) //已经按了等号,不让其再接受字符return;UpdateData(TRUE);//刷新编辑框界面calcutateString += "0";//存储输入的数字m_data += "0";//显示输入的数字UpdateData(FALSE);}2)功能键模块①加法功能键源程序void CJiSuanQiDlg::OnOperAdd(){if(calculated == TRUE)///其前一步按了= 号{calculated = FALSE;m_data = oldResult;double temp = atof(oldResult);//定义临时变量存储上一步结果if(temp < 0){calcutateString = "0" + oldResult;}else{calcutateString = oldResult;}calcutateString += "+";//存储做完该功能后的结果m_data += "+";//显示该步骤完成的结果UpdateData(FALSE);}else ///前一步不是={UpdateData(TRUE);calcutateString += "+";//直接存储此步操作m_data += "+";//直接显示此步操作UpdateData(FALSE);}}②退格功能键源程序void CJiSuanQiDlg::OnBackspeace(){if(calculated == FALSE){UpdateData(TRUE);int count = m_data.GetLength();if(count >= 1)//判断是否能执行退格操作{m_data = m_data.Left(count -1);count = calcutateString.GetLength();calcutateString = calcutateString.Left(count -1);UpdateData(FALSE);}}}③清除功能键源程序void CJiSuanQiDlg::OnClear(){// TODO: Add your control notification handler code herem_data = "";oldResult = "";calcutateString = "";calculated = FALSE;UpdateData(FALSE);}④括号功能键源程序void CJiSuanQiDlg::OnLbracket(){// TODO: Add your control notification handler code hereif(calculated == TRUE) ///已经按了等号,不让其再接受字符return;UpdateData(TRUE);calcutateString += "(";m_data += "(";UpdateData(FALSE);}⑤正负转换功能键源程序void CJiSuanQiDlg::OnAddSub(){// TODO: Add your control notification handler code hereif(calculated == FALSE){UpdateData(TRUE);calcutateString = calcutateString + "0" + "-";m_data += "-";UpdateData(FALSE);}}6.运行结果界面截图7.制作过程中所遇问题以及解决方法过程1)源代码编写错误通过查阅资料,请教同学,逐步一一解决。
简单计算器c++课程设计

简单计算器1 基本功能描述简单计算器包括双目运算符和单目运算符。
双目运算符包含基本的四则运算及乘幂功能,单目运算符包含正余弦、阶乘、对数、开方、倒数等运算。
可对输入任意操作数包含小数和整数及正数和负数进行以上的所有运算并能连续运算。
出现错误会给出提示,同时包含清除、退格、退出功能以及有与所有按钮相对应的菜单项。
2 设计思路如图1,是输入数据子函数的流程图。
打开计算器程序,输入数据,判断此次输入之前是否有数字输入,如果有,则在之前输入的数字字符后加上现有的数字字符;如果没有,则直接使编辑框显示所输入的数字字符。
判断是否继续键入数字,如果是,则继续进行前面的判断,如果否,则用UpdateData(FALSE)刷新显示。
如图2,是整个计算器的流程图。
对于输入的算式,判断运算符是双目运算符还是单目运算符。
如果是双目运算符,则把操作数存入数组a[z+2]中,把运算符存入b[z+1]中;如果是单目运算符,则把字符串转化为可计算的数字,再进行计算。
下面判断运算符是否合法,如果合法,则将结果存入a[0],不合法,则弹出对话框,提示错误。
结束程序。
图2 简单计算器总流程图3 软件设计3.1设计步骤打开Microsoft Visual C++6.0,在文件中点击新建,在弹出框内选择MFC AppWizard[exe]工程,输入工程名及其存储路径,点击确定,如图3所示。
图3 新建MFC AppWizard[exe]工程将弹出MFC AppWizard-step1对话框,选择基本对话框,点击完成,如图4所示。
图4 基本对话框这样,MFC AppWizard就建立了一个基于对话窗口的程序框架,如图5所示。
图5 新建的对话框3.2界面设计1、创建控件在图5所示的Resoure View选项卡中打开Dialog资源组,双击IDD_LUXIAOYING_DIALOG,在右边的窗口中显示出待编辑的对话框。
开始摆放控件,包括编辑框和按钮的创建。
简单计算器课程设计报告

简单计算器课程设计报告目录1.基本功能描述 (1)2.设计思路 (1)2.1相关说明 (1)2.2各块流程图 (2)3.软件设计 (7)3.1 设计步骤 (7)3.2 界面设计 (9)3.2.1添加图标 (9)2.2.2添加控件 (10)3.2.3添加菜单 (12)3.3 关键功能的实现 (14)4.结论与心得体会 (16)5.参考文献 (18)6.思考题 (18)7.附录 (20)7.1调试报告 (20)7.2测试结果 (21)7.3关键源代码 (23)简单计算器1.基本功能描述该简单计算器主要实现了双目运算和单目运算功能。
双目运算符包含基本的四则运算及乘幂功能,单目运算符主要包含正余弦,阶乘,对数,开方,倒数等运算,同时也包含角度制的转换、科学型与标准型的转换、输出设计者信息、清除、退格、退出功能。
简单计算器可对输入的任意操作数,包括小数和整数及正数和负数进行上述各种运算并能实现连续运算,并且能在出现错误时给出相应提示。
同时也可以操作与运算按钮相对应的菜单项。
2.设计思路2.1相关说明1)相关的变量标志位:m_num:与编辑框相关联的变量num1:作为临时变量储存当时按下的按钮值num2:作为临时变量储存编辑框的值m_hudu:角度制的标志位,为0时为弧度m_jiao:角度转换的临时变量point:bool值,小数点有无标志位,当值为ture时为有小数点dianhou:小数点后位数记录位danshuang:单双目运算符标志位zhengfu:bool值,作为正负数标志位,当为ture时为正数2)主要功能设计简述:该简单计算器的重难点主要在一个编辑框要实现输入和输出的显示,小数的实现,正负数的交替输入,退格时数的实现,单双目运算符的不同如何实现等方面。
其中单目运算符sin、cos、tan等要考虑角度转换,之后的运算和其他单目运算符没有差别,基于以上的考虑,想到必须对相关的操作进行相应的标志位,具体的如上列举。
简易的计算器课程设计

简易的计算器课程设计一、课程目标知识目标:1. 学生能理解计算器的基本功能,掌握开关机、数字输入、基本运算符号的使用。
2. 学生能掌握计算器上各按键的功能,如清除、撤销等操作。
3. 学生了解计算器的类型,如简单计算器、科学计算器等。
技能目标:1. 学生能熟练操作计算器,完成基本的数学运算,如加减乘除、百分比等。
2. 学生能运用计算器解决实际生活中的数学问题,如购物找零、计算面积等。
3. 学生能通过计算器进行简单的数据统计和分析。
情感态度价值观目标:1. 学生培养对数学的兴趣和好奇心,认识到计算器在生活中的重要性。
2. 学生养成良好的计算习惯,尊重数学知识,注重实际应用。
3. 学生在小组合作中,学会分享和倾听,培养团队协作精神。
本课程针对小学四年级学生设计,结合学生的认知特点,注重培养实际操作能力和解决问题的能力。
课程以计算器为工具,引导学生运用数学知识解决实际问题,提高学生对数学学科的兴趣和自信心。
通过分解课程目标,教师可以更好地进行教学设计和评估,确保学生达到预期学习成果。
二、教学内容本章节教学内容主要包括以下三个方面:1. 计算器的基本操作与功能- 认识计算器的各部分名称和功能- 学习开关机、数字输入、基本运算符号的使用- 掌握清除、撤销等操作教学内容关联课本第四章第一节数学工具的使用。
2. 基本数学运算- 加减乘除四则运算- 百分数、乘方运算- 混合运算顺序与计算教学内容关联课本第四章第二节数学运算的应用。
3. 计算器在实际生活中的应用- 解决购物找零问题- 计算简单图形的面积和周长- 数据的统计与处理教学内容关联课本第四章第三节数学与生活。
教学大纲安排如下:第一课时:认识计算器及其基本操作第二课时:基本数学运算与计算器操作第三课时:计算器在实际生活中的应用教学进度根据学生的掌握情况灵活调整,确保学生充分理解和掌握教学内容。
三、教学方法针对本章节内容,采用以下教学方法:1. 讲授法:教师通过生动的语言和形象的表达,向学生介绍计算器的基本操作与功能,以及基本数学运算的规则。
数电课程设计简易计算器
数电课程设计简易计算器辽宁工业大学数字电子技术基础课程设计(论文)题目:简易计算器课程设计(论文)任务及评语摘要这次的课程设计的任务是设计一个具备加减乘运算功能的电路,能够通过开关控制进行加减法计算和乘法计算,并利用LED灯显示计算结果。
本次设计通过开关的闭合和开通来代表电平的高地位继而代表0和1来输入所要计算的十进制数字.加减运算电路主要由74LS283的级联电路组成。
通过异或门将原码全部转换为补码,然后采用个位和个位相加,十位和十位的相加的原则,将两个的个位的代码送入到一个加法器中,将进位依次传递.但是加法器只可以做加法运算,不满足我们的设计要求,于是我们将减法也变成加法进行运算,运算都为补码,最后再将结果在转换为原码,通过LED灯显示出来。
乘法运算电路主要由移位寄存器74LS194和加法器74LS283组成。
显示电路主要由7段显示译码器构成,将加减和乘法运算电路计算所得的运算结果每4为输入到一块7448芯片中,按高低位排列就得到了我们所需要的十进制的运算结果了。
关键词:运算;反码;LED显示;移位寄存器目录第1章绪论 (1)1。
1简易计算器概况 (1)1。
2本文设计要求 (1)1.3方案论证 (2)1。
4总体设计方案 (2)第2章简易计算器各单元电路设计 (3)2。
1简易计算加法电路设计 (3)2.2简易计算器减法电路设计 (4)2。
3乘法运算电路设计 (5)2.4译码显示电路设计 (6)第3章简易计算器整体电路设计 (8)3。
1系统原理图 (8)3.2部分电路仿真 (9)3.2.1 加法电路仿真 (9)3。
2。
2 减法电路仿真 (10)第4章设计总结 (11)参考文献 (12)附录 (13)第1章绪论1.1简易计算器概况提起计算器,值得我们骄傲的是最早的计算工具诞生在中国.中国古代最早采用的一种计算工具叫筹策,又叫做算筹,这种算筹多用竹子制成,也有用木头、兽骨充当材料的,约270,枚一束,放在布袋里克随身携带.17世纪初,西方国家的计算工具有了较大的发展,英国数学家纳皮尔发明的“纳皮尔算筹”,英国牧师奥却德法发明了圆柱形对数计算尺,这种计算尺不仅能做加减乘除、乘方、开方运算,甚至可以计算三角函数、指数函数和对数函数,这些计算工具不仅带动了计算机的发展,也为现代计算器的发展奠定了良好的基础,计算器已经成为现代社会应用广泛的计算工具。
计算器课程设计-简易计算器
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种软件可选择节电模式。
基于51单片机简易计算器课程设计报告
基于51单片机简易计算器课程设计报告引言:计算器是现代社会中常见的电子设备之一,它能够帮助人们进行各种数学运算,提高计算效率。
本文将介绍基于51单片机的简易计算器的设计过程及实现方法。
一、设计目标本次设计的目标是实现一个简易计算器,能够进行基本的加减乘除运算,并能够显示计算结果。
通过该设计,旨在加深学生对51单片机的理解,培养其实际操作能力。
二、硬件设计1. 电源模块:采用稳压电源模块,提供稳定的电压给单片机及其他电路模块。
2. 单片机模块:采用51单片机,作为计算器的核心控制模块,负责接收按键输入、进行运算和显示结果。
3. 按键模块:设计合适的按键电路,用于输入数字和操作符。
4. 显示模块:采用数码管或液晶显示屏,显示计算结果。
5. 连接线:将各个模块连接起来,确保信号的传输畅通。
三、软件设计1. 初始化:设置单片机的工作模式、端口方向和初始状态。
2. 按键扫描:通过轮询的方式检测按键是否被按下,若有按键按下则进行相应的处理。
3. 输入处理:根据按键的顺序和操作符的位置进行输入的处理,将输入的数字和操作符分别存储在相应的变量中。
4. 运算处理:根据输入的操作符进行相应的运算,得出计算结果。
5. 结果显示:将计算结果通过数码管或液晶显示屏进行显示。
6. 清零处理:在计算结果显示完毕后,对相关的变量进行清零处理,以便进行下一次的计算。
四、功能实现1. 加法运算:通过按下"+"按键,输入第一个数字,再按下"="按键,输入第二个数字,最后按下"="按键,计算并显示结果。
2. 减法运算:通过按下"-"按键,输入第一个数字,再按下"="按键,输入第二个数字,最后按下"="按键,计算并显示结果。
3. 乘法运算:通过按下"*"按键,输入第一个数字,再按下"="按键,输入第二个数字,最后按下"="按键,计算并显示结果。
C++课程设计报告---计算器的设计与实现
C++课程设计报告---计算器的设计与实现C++课程设计报告( 20 -- 20 年度第学期)计算器的设计与实现专业计算机科学与技术学生姓名班级学号指导教师完成日期C++课程设计报告(2011)目录1 概述 (3)1.1 课程设计目的 (3)1.2 课程设计内容 .................................................. 3 2 系统需求分析 ..................................................... 32.1 系统目标 ...................................................... 3 2.2 主体功能 ...................................................... 3 2.3 开发环境 ...................................................... 3 3 系统概要设计 ..................................................... 43.1 系统功能划分 .................................................. 4 3.2 系统流程图 .................................................... 5 4系统详细设计 ...................................................... 5 4.1 设计步骤 ...................................................... 5 4.2 界面设计 ...................................................... 7 4.2实现高级按钮控件类 ........................................... 10 5 测试 ............................................................ 11 5.1 测试方案 ..................................................... 11 5.2 测试结果 ..................................................... 11 6 小结 ............................................................ 12 参考文献 ......................................................... 14 附录 .......................................................... 15 附录1 源程序清单 . (15)C++课程设计报告(2011)计算器的设计与实现1 概述1.1 课程设计目的1、巩固并加深学生对C++语言程序设计知识的理解;2、培养学生面向对象的程序设计思想,使学生认识面向过程和面向对象两种设计方法的区别;3、进一步掌握和应用VC++ 6.0集成开发环境;4、提高运用C++语言解决实际问题的能力;5、初步掌握开发小型实用软件的基本方法,能独立设计、实现基本的MIS系统;6、掌握书写程序设计开发文档的能力(书写课程设计实验报告)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
---------------------------------------------------------------最新资料推荐------------------------------------------------------ 1 / 14 制作一个计算器应用程序课程设计
. . C++ 面向对象编程 课程设计 题目: 制作一个计算器应用程序 学 生 姓 名: 学 号: 学 生 姓 名: 学 号: 学 生 姓 名: 学 号: 二级学院名称: 新媒体学院 专 业: 数字媒体技术 指 导 教 师: 成 绩: 题目 . . 题目内容 (1) 完成整数+、 -、 、 /、 的功能。 (2) 完成浮点数的+、 -、 、 /、 的功能。 (3) 完成任意大小数字的+、 -、 、 /、 的功能。 功能分析 通过按钮控件(对应为数字的输出) 往编辑框内输入数据, 再通过按钮控件(对应为算法的输出) 进行对变量 num1 赋值的处理, 最后通过按钮控件(对应为等于号) 进行变量 num2 的赋值处理和 num1、num2 的算法处理并输出到编辑框内。 程序流程图 所涉及类 类的设计 编译器所给的四个类(包含两个基类) 类的相互关系 所有的类都服务于 myDlg.cpp . . 分步骤实现过程 步骤 1: 新建工程: 新建一个基于对话框的工程, 取名为 my。 步骤 2: 界面设计(控件+背景图): 界面: 步骤 3: 添加成员函数, 成员变量: 1、 成员函数: 双击每个控件在 CmyDlg.cpp 内添加所对应的函数。 2、 成员变量: 如图: 编辑框对应的变量: 3、背景图片的导入: 引入 bmp格式图片作为背景, 在 OnPaint(). . 函数里实现。 步骤 4: 代码实现 给每个控件对应的函数添加代码, 用来实现计算器的功能。 效果分析与总结 效果分析: 这次课程设计我们都十分用心的去做, 最终的效果还是非常不错的, 界面美观, 运行准确无误。 ---------------------------------------------------------------最新资料推荐------------------------------------------------------ 3 / 14 在设计的过程中, 我们不但做出题目要求的效果, 而且还做出另外好几种效果, 比如求倒数, 平方开方等效果, 但最终为了 整体的和谐, 简洁, 美观等因素的考虑, 我们删去了 其中几个功能。 另外这是我们第一次使用 MFC 进行开发, 很多事情都是从零开始, 困难是必不可少的, 但是我们互相帮助, 鼓励, 逐渐熟悉了 MFC 的使用方法。 最终出色地完成了 这次课程设计。 总结: 整体上来讲, 我们的程序可以执行题目要求的几个功能, 界面也用心设计, 是比较成功的一次课程设计。 体会: 这次课程设计最大的体会就是团队的力量是远大于个人的力量的,在遇到困难时才会感到个人力量的渺小, 这时团队的优势就体现出来了, 通过团队配合很多问题迎刃而解。 还有一点就是通过这次课程设计我们对软件开发有一个初步的了解, 软件开发是一个富有挑战性的工作, 需要团队的配合, 个人的好想法, 足够的耐心, 严密的逻辑, 出色的执行力, 当然还要一个好体力, 才能完成这项工作。 代码附录(另附压缩包) myDlg.h: class CMyDlg : public CDialog { // Construction public: CMyDlg(CWnd* pParent = NULL); // standard constructor double num1,num2; //添加变量 char cal; BYTE dotflag; BYTE numflag; int dotnum; // Dialog Data //{{AFX_DATA(CMyDlg) enum { IDD = IDD_MY_DIALOG }; double m_Num; //}}AFX_DATA // ClassWizard generated virtual function overrides . . //{{AFX_VIRTUAL(CMyDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL // Implementation protected: HICON m_hIcon; // Generated message map functions //{{AFX_MSG(CMyDlg) virtual BOOL OnInitDialog(); afx_msg void OnSysCommand(UINT nID, LPARAM lParam); afx_msg void OnPaint(); afx_msg HCURSOR OnQueryDragIcon(); afx_msg void OnChangeEdit1(); afx_msg void OnButton1C(); afx_msg void OnBUTTON2DIv(); afx_msg void OnBUTTON3Mul(); afx_msg void OnBUTTON4Backspace(); afx_msg void OnButton5Num7(); afx_msg void OnButton6Num8(); afx_msg void OnButton7Num9(); afx_msg void OnBUTTON8Sub(); afx_msg void OnButton9Num4(); afx_msg void OnButton10Num5(); afx_msg void OnButton11Num6(); afx_msg void OnBUTTON12Add(); afx_msg void OnBUTTON16Sqrt(); afx_msg void OnButton13Num1(); afx_msg void OnButton14Num2(); afx_msg void OnButton15Num3(); afx_msg void OnBUTTON17fh(); afx_msg void OnButton19Num0(); afx_msg void OnBUTTON18Dot(); afx_msg void OnBUTTON20Equal(); //}}AFX_MSG ---------------------------------------------------------------最新资料推荐------------------------------------------------------ 5 / 14 DECLARE_MESSAGE_MAP() }; //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line. #endif . . // !defined(AFX_MYDLG_H__5AD95B9B_1743_4BF8_B0FB_ED2935396407__INCLUDED_) myDlg.cpp: #include stdafx.h #include my.h #include myDlg.h #includemath.h #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CAboutDlg dialog used for App About class CAboutDlg : public CDialog { public: CAboutDlg(); // Dialog Data //{{AFX_DATA(CAboutDlg) enum { IDD = IDD_ABOUTBOX }; //}}AFX_DATA // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CAboutDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL // Implementation protected: //{{AFX_MSG(CAboutDlg) //}}AFX_MSG DECLARE_MESSAGE_MAP() }; CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { //{{AFX_DATA_INIT(CAboutDlg) //}}AFX_DATA_INIT . . } void CAboutDlg::DoDataExchange(CDataExchange* pDX)