ImageVerifierCode 换一换
格式:DOCX , 页数:30 ,大小:87.82KB ,
资源ID:2922877      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2922877.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(CVI计算器设计报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

CVI计算器设计报告.docx

1、CVI计算器设计报告课 程 设 计基本信息学生XX:学号:院系名称:信息与电气工程学院 课程设计名称:用CVI设计一个普通的计算器 课程设计地点:H408课程设计时间:2012年11月5日至11月10日同组人XX:课程设计内容目录 页码1、课程设计题目与任务书.22、课程设计用仪器设备名称. 3、课程设计过程. 4、课程设计心得、建议等. 教师评语及课程设计成绩 评语: 成绩:教师签字:年 月 日一、课程设计题目与任务书课程设计(论文)任务书专 业测控技术与仪器班 级0902203学 生徐明珠指导教师王玲题 目虚拟仪器课程设计子 题用CVI设计一个普通的计算器设计时间2012年11月5日至20

2、11年11月10日 共 1 周设计要求用CVI设计一个普通标准型计算器(参考操作系统中的计算器)1、实现简单的加减乘除四则运算;2、实现开方,百分数转化,取倒数运算;3、可以实现清屏,清寄存器的功能;4、实现计算器内部寄存器的存储,读取,加减,清寄存器的功能5、菜单栏的复制,粘贴,退出等功能;指导教师签字: 系(教研室)主任签字:年 月 日二、课程设计用仪器设备名称 计算机一台、NI Labwindows CVI 软件;三、课程设计过程课程设计总体设计概述:题目要求我们使用CVI设计一个简易的计算器,由于功能应与操作系统中的计算器类似,因而我们首先应了解系统自带的计算器的功能。在了解了系统计算

3、器的功能之后,我们便能使用CVI首先设计出计算器的用户界面,在生成源代码之后,为计算器每个按钮设计相对应的回调函数,通过不断的调试,使之满足设计要求,最后,我们还为设计的计算器添加了菜单,力求尽可能地与系统自带的计算器做到一样。3.1 了解系统计算器功能图1 系统计算器操作系统自带的计算器如图1所示,下面分述各个按钮的功能1、 数字键09对应数字,小数点为插入小数点2、 加减乘除对应各自的功能,=号将运算结果显示出来3、 sqrt开方键,将显示的数直接开方,并显示4、 1/x 倒数键,将显示的数取倒数,并显示5、 % 百分号,将按百分比显示运算结果,如50+25%=62.56、 退格键,删除当

4、前显示数字的最后一位7、 CE 清屏8、 C 清除当前的计算,包括显示的数和存储的数字和运算9、MS 将显示的数保存在内存中10、MR 将内存中存储的数显示出来11、MC 清除内存中存储的数12、M+ 将显示的数与内存中存储的数相加,并存储在寄存器中12、M将显示的数与内存中存储的数相减,并存储在寄存器中参照系统计算器,在CVI用户界面窗口设计了如图2的计算器面板。图2 CVI设计的计算器3.2 各按钮及回调函数介绍加减乘除运算程序介绍:1、数字键:当19的按键按下后,其对应的回调函数会读取相应按键的标题值,并与显示框的字符串连接后重新显示在文本框中,字符串用字符串数组str1 存储。2、符号

5、键:当+,*,/,键按下后,会当做运算的第一个数已经输入完毕并存于str1中,将其转化为double型数据存储进strvalue1,并置运算符号的标志位,便于等号处理。3、等号键:当等号键按下后表明运算的第二个数已经输入完毕,将当前的输入数据转化为double型数据,并存储于strvalue2中,依据符号标志位值进行相应的操作,将运算结果存储在strvalue3中,并转化为字符串送文本框显示。(注:此计算器可以实现连续运算:equalflag为输入完参加运算的两个数后是否有等号按下;若有等号按下equalflag=1,则进行有等号的正常运算操作,若没有等号按下equalflag=0,则表明有连

6、续运算,在相应的连续运算的符号的回调函数中进行相应的运算,相当于在符号控件的回调函数中有等号运算操作)其他按键介绍:5、开方键:当第一个数输入完毕后,当按下开方键后,在相应的回调函数中将第一个数由字符串转化为double型数据存储在strvalue1中,并strvalue2=sqrt(strvalue1),将strvalue2转化为字符串并送文本框显示结果。6、百分键:当第一个数输入完毕后,当按下百分键后,在相应的回调函数中将第一个数由字符串转化为double型数据存储在strvalue1中,并strvalue2=100*(strvalue1),将strvalue2转化为字符串str2,并连接

7、%后,送文本框显示结果。7、倒数键:当第一个数输入完毕后,当按下倒数键后,在相应的回调函数中将第一个数由字符串转化为double型数据存储在strvalue1中,并strvalue2=1/ (strvalue1),将strvalue2转化为字符串str2,送文本框显示结果。8、后退键:当数输入完毕后,当按下后退键后,在相应的回调函数里,获取当前文本框的字符串,并获取当前字符串的长度,对字符串的最后字符置零。并送文本框显示。9、清屏键:当数输入完毕后,当按下清屏键后,在相应的回调函数里,将文本框送“”显示。10、清运算结果键:当数输入完毕后,当按下C键后,在相应的回调函数里将字符串数组,存储器清

8、0。11、当前显示数据存储键MS:MS键将当前显示数据存储在寄存器中。12、之前存储数据读取键MR:MR键将之前存储在寄存器中的数据读取,并显示在文本框。13、存储数据运算键M+():将之前MS存储数据与当前数据加,减后放到文本框显示。14、请存储键MC:将存储器里的数据清0。附加菜单介绍:15、复制菜单:将当前显示的数据复制到系统粘贴板上。16、粘贴菜单:将系统粘贴板上数据粘贴到当前文本框中。四、课程设计心得通过本次虚拟仪器课设,我学到了如何用C语言编写简单的计算器程序,熟悉了labwindows CVI的开发环境,基本掌握了编程方法。在实验中,我在数据的连续运算过程中遇到了困难,但通过分析

9、,利用几个标志位来分别标志:是否是第一次进行运算的标志xflag,两次输入数据后是否有等号按下的标志equalflag,基本解决了连续运算的问题。总之,本次实验留给我的编程方法和思考方式,给了我很大的影响,我相信,在未来的学习中,这次实验将给予我产生巨大的指导附:/*/ Labwindows/cvi2009 实现了计算器的基本功能/*#include #include #include #include #include #include toolbox.h#include jisuanqi.h/*static int panelHandle,aboutpanelhandle;static i

10、nt menubarhandle;static char str120; / 参数1的字符串static char str220; / 参数2的字符串static char str320; static char str420; static double strvalue1; / 参数1的值static double strvalue2; / 参数2的值static double strvalue3; / 运算结果static double strvalue4; / 计算器存储用变量static double strvalue5; / 粘贴板用变量static double strvalue

11、6; /static double strvalue7; /static int flag; / 加减乘除的标志static int equalflag=1; / 输完2个数后是否按下“=”标志static int mflag;static int xflag=1; int i;/*void setvalue (void);/*int main (int argc, char *argv) if (InitCVIRTE (0, argv, 0) = 0) return -1; /* out of memory */ if (panelHandle = LoadPanel (0, jisuanq

12、i.uir, PANEL) 0) return -1; DisplayPanel (panelHandle); menubarhandle = GetPanelMenuBar (panelHandle); /获取菜单栏的句柄 RunUserInterface (); DiscardPanel (panelHandle); return 0;/*/ 面板的函数/*int CVICALLBACK panelcb (int panel, int event, void *callbackData, int eventData1, int eventData2) switch (event) case

13、 EVENT_RIGHT_CLICK: / 弹出式的菜单 RunPopupMenu (menubarhandle, MENUBAR_EDIT, panelHandle, eventData1, eventData2, 0, 0, 0, 0); break; case EVENT_CLOSE: QuitUserInterface (0); break; return 0;/*/清显示int CVICALLBACK cmd_ce (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) switch (event) case EVENT_MIT: SetCtrlVal

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1