版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于MFC的简易计算器制作设计【实用文档】doc文档可直接使用可编辑,欢迎下载
J基于MFC的简易计算器制作设计【实用文档】doc文档可直接使用可编辑,欢迎下载JINGCHUUNIVERSITYOFTECHNOLOGY《一个简单的计算器设计》课程设计报告学院:计算机工程学院学号:2012304030223姓名:朱钟雄专业年级:12计算机应用技术2班指导教师:游明坤时间:2014年12月25日基于对话框的计算器MFC方法实现随着社会的发展,人们在日常生活中经常需要用到计算器来进行简单或者复杂的运算,计算器在人们生活中的地位也越来越重要.简单的计算器能实现加、减、乘、除、开方、平方等运算。学习了C++的程序设计语言这门课程,可以利用基于VC的MFC方法制作一个简易的计算器,实现基本的运算功能,从而满足生活中的需要,降低计算的难度。一.面向对象的程序设计方法区别与面向过程的“先功能后数据”思想,面向对象的程序设计方法把状态(数据)和行为(功能)捆绑在一起,形成了对象。当遇到一个具体的问题时,我们只需要将一个系统分解成一个个的对象,同时将状态和行为封装在对象中.
面向对象的程序设计方法具有三个基本特点:封装、继承和多态.
(1)
封装性
封装是一个用来指代将对象的状态和行为捆绑到一个单一逻辑单元的机制的正式术语。它不是面向对象语言所特有的,面向过程的C语言用结构封装了数据,函数封装了逻辑。但是面向对象封装了两者,从这种意义上来说,面向对象的封装更加完美。
出于一些安全性与方便性的考虑,对象经常会限制对它们特征(包括属性和方法)的访问,这种限制称为信息隐藏。作为对象的抽象,类通常只公开对象可以公开的东西,主要是一个特定对象对系统的服务,而隐藏执行服务的内部细节和为了完成这些服务而设计的数据。
(
2)
继承性
继承是定义新类的一种机制,使用这种机制创建新类时只需要声明新类和已创建类之间的差别。
对于一个特定的继承关系,我们将创建的新类称为子类(subclass),被继承的原始类称为超类(superclass).子类可以使用超类定义属性和方法,也可以自己定义新的属性和方法。超类的特征不会受到子类的影响.
继承带来的第一个且是最显而易见的好处是减少了代码冗余,因此也减轻了需要改进或重写代码时的负担.
进一步地,子类会比不使用继承时更加简洁,这点应当不难理解;通过继承可以不加修改地重用和扩展已经彻底测试的代码,这避免了工程性的组装对已经完成测试代码的影响;最好的一点,即使没有已有类的源代码,仍然可以从已有的类中派生出新类,只要我们拥有那个类编译后的字节码.
(3)多态性
术语多态指的是属于两个或多个不同类的对象以各自的类相关的不同方式响应同一消息(方法调用)的能力。同一个消息根据发送的对象不同而采用多种不同的行为方式.换句话说多态使得消息发送者能给一组具有公共接口的对象发送相同的消息,接收者做出相应的回应。
多态的作用:增强了代码的可读性、操作的透明性,增强了代码的灵活性和可扩充性。二。MFC程序设计方法
(1)API
应用程序编程的接口函数
一个应用程序要和具体的硬件打交道,比如接收按键值,接收鼠标左击或右击,记录鼠标的坐标等,就势必要有所有这些硬件的驱动,这样加大了程序的代码量。而且,每一个应用程序都得写,增加了不必要的重复工作。操作系统就是解决这些问题的。
操作系统基于硬件和应用程序之间,它提供应用程序调用的函数,应用程序可通过这些函数与硬件打交道。而这些函数就是API.
(2)MFC(Microsoft
Foundation
Class)微软基础类库
MFC类库集成了大量已经预先定义好的类,用户可以根据编程的需要调用响应的类,或根据需要自定义有关的类.
(3)窗口
就是一个应用程序能够看到的部分。是Windows应用程序中一个非常重要的元素。
通常都包含标题栏、菜单栏、系统菜单等
(4)消息和消息队列
消息
:应用程序接收的事件都会产生相应的消息,消息的产生是因为事件发生的结果。如键盘有键盘按下和抬起消息,鼠标有点击消息,画面有刷新消息,重画消息等。
编写应用程序时,如果需要对某事件进行响应,如需要当按下Ctrl+S组合键就进行保存操作时,就需要对Ctrl+S这个事件对应的消息设计响应函数。
消息队列
:
应用程序对事件消息进行的响应时从它本身的消息队列里取出消息来执行的。事件是有操作系统接收的,然后把它转化成消息,再把消息送到应用程序所在的队列中,供应用程序取走。
(5)事件驱动
Windows应用程序函数执行过程没有一个固定的顺序。一条消息过来就对应进行响应(只要设计了响应函数),那条消息来就执行那条对应的函数,没有消息就等待。
MFC程序设计的好处:一是MFC提供了一个标准化的结构,通过创建时的选择就可以实现一个基本的程序功能.这样不必从头开始设计创建和管理一个标准Windows应用程序所需的代码,节省了时间;二是它可以自动生成很多代码,比如只要用类向导(ClassWizard)添加了一个成员变量,它就会自动在代码的相应位置添加代码进去,如果手动添加,不光麻烦,而且文件很多,位置不固定可能会遗漏。所以类向导是经常需要用的,以提高编程效率,减少出错。
MFC编程的主要过程就是编写消息响应函数的过程,因为其他的工作都自动生成了。因此就需要我们知道如何添加消息响应函数(用类向导),响应函数中写什么内容。
响应函数的内容主要是调用系统函数,类里定义的成员函数,系统的系统函数,以及变量的传递等.三。MFC实现计算器的程序设计程序流程图点击加减乘除点击加减乘除等进行运算选择点击数字键,输入第二个操作数点击数字键,输入第一个操作数点击“=”键,输出运算结果程序开始显示运算结果主要程序代码如下://为了能在同一个编辑框里显示完整的算式,我添加了两个编辑框,同时输入,一个负责计算数据的不可见,另一个可见的用来显示。voidCJncalDlg::OnNUM1()//点击数字键1时显示1{UpdateData(TRUE);ﻩm_str1=m_str1+”1";/在编辑框1的字符串后加上字符1ﻩm_str2=m_str2+"1";/在编辑框2的字符串后加上字符1UpdateData(FALSE);}voidCJncalDlg::OnNUM2()//按下数字键2时显示数字2{UpdateData(TRUE); m_str1=m_str1+”2";//在编辑框1的字符串后加上字符2ﻩm_str2=m_str2+"2”;//在编辑框2的字符串后加上字符2UpdateData(FALSE);}voidCJncalDlg::OnNUM3()//按下数字键3时显示数字3{UpdateData(TRUE); m_str1=m_str1+”3";//在编辑框1的字符串后加上字符3ﻩm_str2=m_str2+"3”;//在编辑框2的字符串后加上字符3UpdateData(FALSE);}数字键4、5、6、7、8、9、0、00的代码同上voidCJncalDlg::OnSUB()//加法{UpdateData(TRUE); m_str2=m_str2+"+";//显示框上显示“+"UpdateData(FALSE);ﻩSaveValue1();//调用函数将第一个操作数变为double型并保存m_Sign=0;//选择语句的条件赋值}voidCJncalDlg::OnDEC()//减法{UpdateData(TRUE); m_str2=m_str2+”—";//显示框上显示“-”UpdateData(FALSE);ﻩSaveValue1();//调用函数将第一个操作数变为double型并保存m_Sign=1;//选择语句的条件赋值}voidCJncalDlg::OnMUL(){UpdateData(TRUE); m_str2=m_str2+"×";//显示框上显示“×”UpdateData(FALSE); SaveValue1();//调用函数将第一个操作数变为double型并保存m_Sign=2;//选择语句的条件赋值}voidCJncalDlg::OnDIV()//除法{UpdateData(TRUE);ﻩm_str2=m_str2+”÷”;//显示框上显示“÷"UpdateData(FALSE);ﻩSaveValue1();//调用函数将第一个操作数变为double型并保存m_Sign=3;//选择语句的条件赋值}voidCJncalDlg::OnEQUAL()//“="操作{ﻩCalculator();//调用Calculator函数}voidCJncalDlg::SaveValue1()//保存第一个操作数函数{UpdateData(TRUE);ﻩm_num1=atof(m_str1);//第一个编辑框内的字符转换为数字并赋给m_fNumber1ﻩm_str1="”;//清空第一个编辑框UpdateData(FALSE);}voidCJncalDlg::Calculator()//Calculator函数{UpdateData(TRUE);ﻩm_num2=atof(m_str1);//编辑框1内的字符转换成数字并赋值给m_fNumber2ﻩdoubler=0.0f;ﻩswitch(m_Sign)//选择语句ﻩ{ﻩcase0://加ﻩf=m_num1+m_num2; break;ﻩcase1://减 f=m_num1-m_num2; break; case2://乘 f=m_num1*m_num2; break;ﻩcase3://除 if(m_num2==0.0f)ﻩ{MessageBox(”输入错误,请重新输入”);ﻩ}ﻩelseﻩ{ﻩf=m_numn1/m_num2;ﻩ}ﻩbreak;ﻩcase4://平方 f=m_num2*m_num2; break;ﻩcase5://开方 f=sqrt(m_num2); break; default: break; }ﻩif(r-int(r)<=1e-5)//如果浮点数其实是个整数ﻩ{ m_str1.Format("%d",(int)f);ﻩm_str2=m_str2+"="+m_str1+””; } elseﻩ{ﻩm_str1.Format("%f",f);ﻩm_str2=m_str2+”="+m_str1+"";ﻩ}UpdateData(FALSE);ﻩm_num1=r; m_num2=0。0f;}voidCJncalDlg::OnABOUT()//软件关于按钮{CAboutDlgdlg;dlg.DoModal();//调用}voidCJncalDlg::OnCE()//清空编辑框操作{UpdateData(TRUE);ﻩm_str1=”";//第一个编辑框赋空值 m_str2=””;//第二个编辑框赋空值 m_num1=0。0f;//第一个操作数赋0ﻩm_num2=0.0f;//第二个操作数赋0m_Sign=0;UpdateData(FALSE);}voidCJncalDlg::OnDEL()//退格操作{UpdateData(TRUE);ﻩif(!m_str1。IsEmpty())//移除编辑框内最右边一个字符 {ﻩm_str1=m_str1。Left(m_str1.GetLength()—1); m_str2=m_str2。Left(m_str2.GetLength()—1);ﻩ}UpdateData(FALSE);}//以下为显示当前时间操作intCJncalDlg::OnCreate(LPCREATESTRUCTlpCreateStruct){ if(CDialog::OnCreate(lpCreateStruct)==-1) return-1;SetTimer(1,1000,NULL);//设置定时器 return0;}voidCJncalDlg::OnTimer(UINTnIDEvent){ SYSTEMTIMEst;GetLocalTime(&st);CStringstr_time;str_time.Format(”%d:%d:%d",st.wHour,st.wMinute,st。wSecond);SetDlgItemText(IDC_STATICTIME,str_time);CDialog::OnTimer(nIDEvent);}四、试验结果展示计算器的整体效果图。我在计算器的顶端加入了显示当前日期和时间的功能,更加方便快捷。加法功能的实现减法功能的实现乘法功能的实现除法功能的实现本计算器除了能实现加减乘除运算,还能进行平方(x^2)和开方(sqrt)的运算.以下为开方演示。关于计算器经过后续改进,我又再计算器中加入了音乐播放功能,能够边听音乐边计算。截图及程序代码如下:voidCJncalDlg::OnMUSIC1()//播放音乐1{PlaySound("F://1.wav”,NULL,SND_FILENAME|SND_ASYNC);}voidCJncalDlg::OnMUSICOFF()//关闭音乐{ //TODO:AddyourcontrolnotificationhandlercodeherePlaySound(NULL,NULL,SND_ASYNC);}voidCJncalDlg::OnMUSICCHANGE()//播放音乐2{ﻩ//TODO:AddyourcontrolnotificationhandlercodeherePlaySound("F://1.wav”,NULL,SND_FILENAME|SND_ASYNC);}五、总结这次计算器的制作我查阅了大量参考文献借鉴了许多前辈们的制作基础上独立完成的。控件的添加,代码的编写都是耗费大量时间和精力才成功的.计算器已经实现了其基本功能,可以进行整数和小数的加减乘除、平方、开方运算,与其他计算器不同的是我所制作的计算器能够完整的显示运算式,这样能够清楚的看到自己所做的运算,更加方便,能够及时找出错误,并且我还在计算器的顶端设计了当天日期和当前时间,更加符合人们的生活需要。计算器的图标也是我自己绘制的具有独特风格的JN字样,显得美观大方。计算器虽然已经基本实现其功能,但是由于我水平所限,并不能打到十全十美的程度,还有许多功能可以添加和完善,例如sin、cos、tan、log等运算。计算器让我不满意的一点是只能通过设定的按键进行输入,不能通过键盘输入,后来经过改进,键盘输入也只能输入第一个操作数,这是此计算器瑕疵的地方,有待改进和提高。欢迎提供意见和指导.参考文献[1]宋金珂编著,VC++程序设计基础教程,清华大学出版社[2]谭浩强.《c语言程序设计》。清华大学出版社[3]辛长安编著.VC++编程技术与难点剖析.清华大学出版社[4]陈恭和编著.数据库Access2002应用教程.清华大学出版社[5]王瑞编著.VisualC++数据库系统开发完全手册.人民邮电出版社[6]王春才编著。VisualBasic数据库系统开发完全手册.人民邮电出版社[7]高春艳。VisualBasic数据库系统开发案例精选.人民邮电出版社[8]李晓黎编著.VisualBasic+SQLServer数据库应用系统开发与实例.人民邮电出版社[9]启明工作室编著.VisualBasic+Access数据库应用系统开发与实例.人民邮电出版社[10]启明工作室编著.VisualC+++SQLServer数据库应用系统开发与实例。人民邮电出版社[11]吕军编著《VisualC++与面向对象程序设计教程》第二版.高等教育出版社基于单片机的简易计算器设计TOC\o”1-3”\h\z\uHYPERLINK1.3设计目的PAGEREF_Toc374299142\h4HYPERLINK\l"_Toc374299143”1.4设计任务PAGEREF_Toc374299143\h4HYPERLINK\l"_Toc374299144"第二章单片机发展现状PAGEREF_Toc374299144\h5HYPERLINK3.3其它器件介绍及说明PAGEREF_Toc374299152\h113。3.1LCD1602液晶显示PAGEREF_Toc374299153\h11HYPERLINK第四章PROTEUS模拟仿真PAGEREF_Toc374299155\h15第五章系统硬件设计及说明PAGEREF_Toc374299156\h17第六章软件设计PAGEREF_Toc374299157\h186.1汇编语言和C语言的特点及选择PAGEREF_Toc374299158\h18HYPERLINK\h\z\uHYPERLINK\l”_Toc346206228"1引言5HYPERLINK\l”_Toc346206229"2总体设计方案6HYPERLINK\l”_Toc346206230”2.1程序流程图72.2簇中的各元素在条件结构中代表的序号72.3具体实现过程8HYPERLINK\l”_Toc346206233”2。3。1前面板设计及键入感应8_Toc346206235"2.3。3数字1——9的输入92。3。4数字0的输入10_Toc346206239”2。3。7“+/-”键的设计13HYPERLINK\l”_Toc346206240”2.3。8“+、—、*、/”四则运算132。3.12取倒数运算15退格键的设计152。3.14清零键的设计16致谢18参考文献18HYPERLINK\l”_Toc346206252"附录19基于LABVIEW的简易计算器设计1引言本次课程设计是基于LabVIEW虚拟仪器系统开发与实践等原理与技术而设计的计算器,可以用来模拟真实计算器而进行一些简单的基本运算。虚拟仪器的起源可以追溯到20世纪70年代,“虚拟”的含义主要是强调软件在仪器中的作用,体现了虚拟仪器与主要通过硬件实现各种功能的传统仪器的不同。由于虚拟仪器结构形式的多样性和适用领域的广泛性,目前对于虚拟仪器的概念还没有统一的定义。美国国家仪器公司(NationalInstrunentsCorpotion,NI)认为,虚拟仪器是由计算机硬件资源、模块化仪器硬件和用于数据分析、过程通信及图形用户界面的软件组成的测控系统,是一种计算机操纵的模块化仪器系统。使用虚拟仪器技术,工程师可以利用图形化开发软件方便、高效的创建完全自定义的解决方案,以满足灵活多变的需求趋势.本次设计的计算器是利用虚拟仪器技术而完成的,可以完成利用计算器可以进行简单的四则运算、可以进行平方、开根号和倒数运算、计算器可以进行清零和关闭计算器操作、在输入数据时不慎将某个数字输错可以运用BackSpace清除该值等一些基本简单的运算。2总体设计方案完成标准型计算器的一般功能。设计框图如图2-1所示:图2—1程序框图2。1程序流程图图2-2程序流程图2。2簇中的各元素在条件结构中代表的序号表2-1簇中元素默认12345条件结构中序号012345簇中元素67890。条件结构中序号67891011簇中元素+/—+—*/=条件结构中序号121314151617簇中元素sqrt%1/xBackspaceCEXIT条件结构中序号1819202122232.3具体实现过程2。3。1前面板设计及键入感应首先建立一个簇,然后在簇中建立23个布尔量,其中包括0—-9十个数字键,1个小数点键,4个“+、—、*、/"运算键,1个等号键,1个开方键,1个符号转换键,1个倒数键,1个求百分数键,1个清零键,1个退格键,1个退出键.如图2—3所示:图2-3前面板然后通过簇至数组转换函数将簇中元素按产生的顺序组成一个一维数组,如图2—4所示:图2-4键入感应过程这样就实现了每个键与数字(1—-23)之间的对应。每次按下一个键时,通过搜索一维数组函数查找出对应的键并把其加1后对应的数字连接到一个case结构,然后执行对应case结构中的程序,至此就完成了对一个键的感应过程。2。3.2运算变量的初始化在运行程序之前,首先对需要用到的变量进行初始化,如图2—5所示:图2—5运算变量的初始化在没有键按下的情况下,数值显示控件显示的是0.从上到下的寄存器功能依次为:最上面的用来存储display中的数据,第二个用来存放四则运算的符号,第三个用来前一次运算后输出的数值,最底下的用来给出控制变量.2。3.3数字1—-9的输入以数字“1”为例,当第一次输入数字“1"后,波尔量为真,进入case结构,将1输出到display中,波尔量变为假,如图2-6所示。图2—6输入数字1时若再次输入1,为避免出现01这样的字符串,先判断之前显示的数据是否为0,若为0,则直接输出1,如图2-7所示.图2-7输入第一个数字为0时若不为0,则将这两次输入的数据通过连接字符串函数连接到一起,在display中输出。数字2到9也是同样的道理,如图2—8所示。图2—8输入第一个数字不为0时2。3.4数字0的输入当第一次输入0时,与输入数字1-9的情况相同,现在就零输入时的多零问题进行设计。虽然以多个零开头不影响输出的结果,但考虑到显示形式的正确性,只在小数点前显示一个零。当数据输入后,通过连接字符与00比较,若不等,则将数据直接输出如图2—9所示。图2—9输入不是00时当数据输入后,通过连接字符与00比较,若相等,则直接输出0,如图2-10所示。图2-10输入是00时2。3.5小数点的输入在小数点的输入时,最多只能显示出一个。若直接点击小数点,则以“0。”输出。若之前已输入数据,此时再输入小数点首先利用如图2—11所示程序图2—11判断小数点的有无判断已输入的数据中是否含有小数点,若不含有,则执行程序“真”,如图2—12所示;图2—12输入不含小数点时若已输入的数据中含有小数点,则执行程序“假”,如图2—13所示。图2-13输入含有小数点结果去零操作在进行“+、-、*、/”运算及取负,取百分数,去倒数,开放运算之后程序默认为以保留6位小数的形式输出。而为了显示结果的简便,将末位不影响结果的零及小数点进行省略。利用层叠式顺序结构,首先将得出的结果经过N-1位的偏移后与零进行比较,若相等,则进行去零操作,运用while循环结构,直至末位数字不为零,循环结束(如图2-14-——上图表示末位为零,下图表示末位不为零)。图2—14去0操作在进行去零操作之后,进行层叠式顺序结构的第二层,对无关的小数点进行清除(如图2—15-—————上图表示末位为小数点,下图表示末位不是小数点).图2—15去多余小数点操作2。3。7“+/—”键的设计首先进行扫描字符串,将字符串数据转换为数值数据,经过取负数后再转换为字符串形式输出.如图2—16所示,其中的顺序结构为去末尾零和去无关小数点的操作.图2—16去0和小数点操作2.3。8“+、—、*、/”四则运算以加法为例,当簇中输出的数据表示进行加法运算时,程序进入五层的层叠式顺序结构,首先将字符串进行扫描,转换为数值变量,如图2-17所示。图2—17扫描字符串并转换为数值变量之后,对之前的数据进行运算,以保证连续运算时得到正确的结果:当第一次输入时,默认进行firstrun条件下的程序,如图2—18所示。图2—18默认条件下的程序若以前已有运算,以减法为例,先将之前的两个数进行相减运算,并进行去零操作,之后再将本次的运算符号送入“运算符号"的局部变量,以便于进行下次运算,如图2—19所示。图2—19运算过程操作2.3。9等号键实现最终的运算结果,将结果进行去零操作后输出到display中,同时将代表运算符号的移位寄存器置为空字符串。以加法为例。如图2—20所示:图2—20输出运算结果百分数运算将字符串转换为数值输出后除以100即可得到百分数输出,并对其进行去零(顺序结构的后两层为去零操作),如图2—21所示:图2-21输出百分数运算结果2。3.11开方运算将字符串转换为数值后进行开放运算,再转换为字符串输出,并进行去零操作(顺序结构的后两层为去零操作),如图2-22所示:图2-22输出开方运算结果2.3。12取倒数运算将字符串转换为数值后进行取倒数运算,再转换为字符串输出,并进行去零操作(顺序结构的后两层为去零操作),如图2—23所示:图2—23取倒去0操作2。3。13退格键的设计在点击退格键时,要实现从末位开始的依次推格,直至输出为0.首先,将整数部分与小数部分进行分离,运用拆分字符串函数实现此功能.分离后,将小数部分的字符串长度与0进行比较,若大于0,则进入到条件结构的“真”,字符串长度减1后与整数部分连接,得到新的display输出,如图2-24所示。图2—24小数部分退格键设计若原字符串只有整数部分或者小数部分已经过退格键清除,则进入到条件结构的“假”。若整数部分的字符串长度大于1,则进入到子条件结构的“假”,将整数的字符串长度减一后输出,如图2—25所示.图2—25整数部分退格键设计若整数部分的长度不大于1,即小于等于1时,则进入到子条件结构的“真”,直接输出0.,如图26所示。图2-26整数部分退格键设计2.3。14清零键的设计将程序中所有用到的变量均进行复位,达到清零复位的目的,如图2—27所示。图2-27清零操作相当于进行计数器的初始化操作。2.3。15停止键程序结束,将T输入到while循环的停止键上,如图2—28所示.图2-28退出操作3结论经过调试,此次设计的简易计算器可以实现实物计算器具有的一般功能。LABVIEW对于初学者比较容易理解接受,用LABVIEW设计的程序调理分明,具有很强的逻辑。即使在不深入学习的情况下,也可以实现一些简单的设计。还可以根据用户自己的需要添加一些特有的功能,这是比实物的计算器更高明的地方的。但是,由于虚拟仪器的局限,使得用户在一些情况下没有实物用着方便,使用LABVIEW必须在准备好的环境下才能使用.总之,由于LABVIEW能够为用户提供简明、直观、易用的图形编辑方式,能够将繁琐复杂的语言编程简化成以菜单提示方式选择功能,与传统的语言比较,LABVIEW图形编辑方式能够节省程序的开发时间.在不久的将来,人们可以LABVIEW设计的计算器计算出任何问题,在实现基础运算的条件下,只需要选择运算的路径,届时使用虚拟仪器一定会成为社会的主流。致谢这次毕业设计得到了老师和同学的帮助,另外,感谢消校方给予我们这样一次机会,能够独立的完成一个课题,并在这个过程当中,给予我们一些机会,使我们在即将实习的最后一段时间里,能够更多学习一些实践应用知识,增强了我们实践操作和动手应用能力,提高了独立思考的能力。再一次对我的母校表示感谢.感谢在整个毕业设计期间给予过我帮助的伙伴们,在本次课程设计即将结束的最后的日子里,正是因为有了你们的帮助,才让我不仅学到了本次课题所涉及的新知识,更让我感觉到了知识以外的东西.最后,感谢所有在这次毕业设计中给予过我帮助的人.再一次真诚地表示感谢你们!参考文献[1]叶齐鑫,侯国屏,赵伟.虚拟仪器环境下的频率特性测试方法[J]。电测与仪表,2005(6):10—13.[2]高聪杰,李松岩。基于LabVIEW的信号输出与数据采集系统[J]。数采与监测,2008,(24):135—136.[3]马银平,宣亮亮,彭如.基于LabVIEW的数据采集系统分析与设计《电子元器件应用》2009年第11卷第10期[4]夏俊芳,周勇,张平华.基于虚拟仪器技术的排种器漏播检测技术[J]。华中农业大学学报,2008,27(4):540—544.[5]刘雁征,滕光辉.虚拟仪器技术在设施农业中的应用现状及趋势[J].华中农业大学学报,2004(增刊35):81-86。[6]陈秀清。关于虚拟实验室的建设[J]。福建广播电视大学学报,2003(1):40-43。[7]杨乐平,李海涛。北京LabVIEW高级程序设计[M].北京:清华大学出版社,2003。1-350。[8]陈锡辉。Labview8.20程序设计从入门到精通[M]。北京:清华大学出版社,2007.[9]龙华伟,顾永刚与DAQ数据采集[M].北京:清华大学出版社,2008。[10][美]RobertHBishop,乔瑞萍译.LabVIEW7实用教程[M]。北京:电子工业出版社,2005。[11]侯国屏,王坤,叶齐鑫.LabVIEW7.1编程与虚拟仪器设计[M]。北京:清华大学出版社,2005。[12]张桐,陈国顺,王正林.精通LabVIEW程序设计[M]。北京:电子工业出版社,2008.附录整体程序课程设计验收指导教师评语及成绩:成绩指导教师签字年月日教研室主任意见教研室主任签字年月日一、设计思想:
。创建3个字符串显示控件num1,num2,num3,其中:
1、第一个输入数据存储在num1中
2、第二个输入数据存入num2中
3、将其赋给
num3,并使num2为空,以便输入的数据存入num2
4、所有的运算是在num1和
num3间进行
5、运算结果都赋给result,同时赋给num1,用于下一次的运算
.创建4个布尔开关按钮change,change1,change2,change3,其中:
1、Change的真假用来判断是第一个数据还是第二个数据
2、change1的功能是在输入=,运算完后,不需要初始化即可进行下一次运算
3、change2用来去掉数据小数末尾的0
4、change3用来保证backspace键仅对输入的数据有效,对运算结果无效
。创建2个数值显示控件type1,type2,并分别在其后面板的属性——数据类型--表示法中选择U8其中:
1、type1用来存储运算符号
2、type2用来保证连续“+、-、*、/”的正确性
3、所有的运算结果都赋给result
4、result经过去零处理后得到result1,将数据显示在前面板上。利用labview设计一些小项目不仅可以更好的学习虚拟仪器知识,还能方便生活!应用所学知识,实现计算器实现步骤的设计框架,设计计算器!(1)设计目的
利用所学虚拟仪器知识,应用labview软件设计一个能实现加减乘除以及开方、取倒、取反功能的计算器。提高使用labview设计项目的能力!
(2)设计思路
该设计采用模块化编程思想,从而使整个项目更加的简洁明了,直观大方,利于阅读。总体上可分为以下几个模块:
(1)数值输入模块:主要实现的功能就是数值的键入,主要是数字键以及表示进制转换时的进制数的键入。
(2)按键模块:这个模块包括3个部分,输入数按键,运算符按键以及特殊功能按键。
(3)菜单选择模块:该模块主要实现的功能有,进制转换功能,弧度角度转换功能,以及标准型计算器和科学计算器之间的切换.
(4)进制选择模块:可以转换二、八、十、十六进制的数.
(5)单位选择模块:该功能可以实现将输出的数转换成你想要的单位,包括角度、弧度以及各种进制数。
(6)数值显示模块:该模块主要功能就是数值的键入显示以及数值的输出显示。
(7)清除返回模块:该模块主要的功能就是当用户发现输入错误数据时,使用该功能就能改正错误,从而节约了时间
以及提高了计算效率.
三角函数等高级运算模块:该模块主要就是一些三角函数等一些高级运算,是为科学计算器而设计的,功能非常强大,实时操作性很好。本次毕业设计是基于LabVIEW所设计的计算器,目的是为了实现两个数之间的加、减、乘、除四则运算及开方、求倒、取负运算,达到简易计算器的功能。编程的思想是完成一种运算的完整过程是:输入第一个数,存储并显示
输入要进行运算的类型并存储
输入第二个数,存储并显示
按“=”或则按其它运算符号“+、-、*、/”进行连续的运算时显示运算结果完成标准型计算器的一般功能.
输入第一个数,进行存储并显示
输入运算的类型并存储
输入第二个数,存储并显示
按“=”或则按其它运算符号“+、-、*、/”进行连续的运算,最后显示运算结果。创建3个字符串显示控件num1,num2,num3,其中:第一个输入数据存储在num1中,第二个输入数据存入num2中,将其赋给
num3,并使
num2为空,以便输入的数据存入num2,所有的运算是在num1和
num3
间进行,运算结果都赋给result,同时赋给num1,用于下一次的运算.
创建4个布尔开关按钮change,change1,change2,change3,其中:
Change的真假用来判断是第一个数据还是第二个数据,change1的功能是
在输入=,运算完后,不需要初始化即可进行下一次运算,change2用来去
掉数据小数末尾的0,
change3用来保证backspace键仅对输入的数据有效,对运算结果无效。创建2个数值显示控件type1,type2,并分别在其后面板的属性——
数据类型--表示法中选择U8其中:type1用来存储运算符号,type2用
来保证连续“+、-、*、/"的正确性,所有的运算结果都赋给result,result
经过去零处理后得到result1,将数据显示在前面板上。
此计算器可以实现基本的加减乘除以及开方、取倒、取反功能,可以
进行数据的连续运算以及简单的报错、纠错功能,在此计算器模版上,可
以继续添加条件分支,实现更多功能的运算,但是不支持第二个数位为开
方、取反、取倒的功能。前面板设计:
前面板是LabVIEW的图形用户界面,在LabVIEW
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学校雇佣保安合同范例
- 共用店铺合作合同范例
- 商票质押合同范例
- 《古代汉语之音韵》课件
- 汛期应急险情解读
- 苏州科技大学天平学院《现代制造技术》2021-2022学年第一学期期末试卷
- 《涉外秘书资格证》课件
- 智能制造的成本效益分析考核试卷
- 2024燃煤锅炉承包合同范本
- 安全监督在建筑施工中的作用与职责考核试卷
- MT-T 5017-2017民用运输机场航站楼安防监控系统工程设计规范
- 七年级第一次期中家长会课件
- 2024下半年四川省广元市直属事业单位招聘104人历年公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版
- 市政道路施工工程重难点分析及对策
- 一例下肢静脉溃疡的伤口个案护理
- 2024年渤海船舶职业学院单招职业适应性测试题库及答案解析
- 《行政复议法》讲座课件-2024鲜版
- 外国新闻传播史 课件 第十九章 非洲其他代表性国家的新闻传播事业
- JTJ034-2000 公路路面基层施工技术规范
- 小班数学活动《分类》课件
- 《娱乐场所管理条例》课件
评论
0/150
提交评论