基于wince的c程序开发(计算器内容摘要:

流程图 打开设备 结束 开始 将运算结果转为整型 将数据输出到四个七段数码管 关闭设备 11 } 三、 关闭设备 void CcDlg::OnBnClickedButtonClosedevice() { // TODO: Add your control notification handler code here if(m_hFile) CloseHandle(m_hFile)。 } 第三部分 设计方案 一、 打开 Microsoft Visual Studio2020,单击 FileNewProject,弹出窗口如下: 12 在工程类型中选中 Visual C++Smart Device,在模板中选中 MFC Smart Device Application, 输入工程名称, 点击 OK 按钮,弹出设置窗口如下: 根据实际情况,我们做的是 WinCE操作系统上的 C++程序开发,选中该系统后,点击 Next,进入 下一步,如下图: 13 计算器程序属于基于对话框的应用程序类型,选中后可直接点击 Finish完成设置,或点击Next查看其他设置,直至弹出下图: 完成设置后,点击左侧视图框中的 Resource View 中的树状图,打开图标前的加号Calculator(工程名) *(工程名 .rc*) DialogIDD_CALCULATOR_DIALOG( IDD_工程名大写 _DIALOG双击,在中间设计框中出现设计界面,如下图: 14 分别拖动右侧工具栏中 Button、 Edit Control和 Static Text按下图摆放,并修改各个控件中的文字,得到计算器的雏形。 将 19Button 控件命名为 IDC_1_BUTTON 至 IDC_9_BUTTON,小数点 Button 控件命名为IDC_DECIMAL_BUTTON , 等 号 与 四 则 运 算 符 号 分 别 命 名 为 IDC_EQUAL_BUTTON 、IDC_PLUS_BUTTON、 IDC_MINUS_BUTTON、 IDC_TIMES_BUTTON 和 IDC_DIVIDE_BUTTON,清空Button 控 件 命 名 为 IDC_CLEAR, 打 开 设 备 与 关 闭 设 备 Button 控 件 命 名 为IDC_BUTTON_OPEN_DEVICE 和 IDC_BUTTON_CLOSE_DEVICE, 写入 Button 控 件命名 为IDC_WRITE, 显示结果的 Edit Control控件命名为 IDC_SHOW_RESULT_EDIT。 在 ,键入初始化代码: int calculator_type_i。 double count = 10, value=0。 double Input_data_int=0,Input_data_dec=0。 double Inputdata1=0,Inputdata2=0。 char datatostr_buffer[10]。 bool decimal=FALSE。 15 控件与变量的关联 鼠标右键点击 IDC_SHOW_RESULT_EDIT选中添加变量,弹出窗口如下,按图修改变量类别和类型,并输入变量名,点击确定。 完成上述步骤之后,双击各个 button 控件,键入设计原理中各功能键的 C++代码,完成设计,进入调试阶段。 第四 部分系统测试与性能分析 连接硬件后, 将操作系统 , 点击菜单栏中的 DebugStart Debug,开始调试,实验箱中的触控屏中出现下图: 16 点击触控屏中的按钮,可进行简单四则运算,点击 open_device打开实验箱上的七段数码管,然后点击 write将运算得出的结果 写入七段数码管 , 如下图: 第五 部分 结论 虽然,本 程序还存在 改善的空间 : 第一, 对于计算器本身的功能,我们还能增加部分功能代码进行扩展。 第二, 对于四个七段数码管,由于只能显示四位数字,而且没有显示小数点的功能,所以我们将结果强制转为整型, 最后发现七段数码管无法显示结果为负数的数值,这也是有待改进的。 第三, 我们曾经设想直接按下实验箱上的按钮实现触控屏上按钮的功能,由于技术有限,我们最终放弃了对此项功能的开发。 但是,本程序基本完成在 WinCE平台上实现拥有四则运算,并能控制四个七段数码管的开关,同时将计算器运算结果显示在七段数码管上三大功能的计算器。 17 附录 ( 1)参考资料 《面向 对象程序设计与 Visual C++》第 383页【例 128】 嵌入式《基础实验文档》第 24页【实验 2 数码管显示实验】 嵌入式 WinCE实验 4 C++应用程序编写之二 驱动程序编写 ( 2)遇到的问题与解决方法 问题 1:《面向对象程序设计与 Visual C++ 教程》书上的计算器设计,将四则运算符号放入 List Box控件中,而本程序是采用 Button控件。 解决方法:修改代码,并在调试中完善。 问题 2:《面向对象程序设计与 Visual C++ 教程》书上的计算器设计,为IDC_SHOW_RESULT_EDIT控件添加变量时,将变量类型设为 CString,并用以下代码将数据显示到 IDC_SHOW_RESULT_EDIT控件: _gcvt(value,10,datatostr_buffer)。 m_ShowResultEdit=(LPCTSTR)datatostr_buffer。 但是在编译中,这两句代码无法编译成功。 解决方法:将 IDC_SHOW_RESULT_EDIT控件的变量类型设为与 value一样,将 value 直接显示到控件当中。 问题 3: 《面向对象程序设计与 Visual C++》书上的计算器设计, 当除数显示为 0时,弹出警告窗口代码如下: MessageBox(除数不能为 0。 )。 但实际调试时,警告窗口却没有弹出。 解决方法:参考 以往实验,将代码改为: MessageBox(_T(除数不能为 0。 ),_T(系统信息 ),MB_OK|MB_ICONINFORMATION)。 ( 3)程序清单 操作系统: 计算器程序: 、 ( 4) 详细代码 void CcDlg::OnBnClicked1Button() { // TODO: Add your control notification handler code here if(decimal){ Input_data_dec=Input_data_dec+1/count。 count=10*count。 } else Input_data_int=10*Input_data_int+1。 value = Input_data_int+Input_data_dec。 UpdateData(FALSE)。 } void CcDlg::OnBnClicked2Button() { // TODO: Add your control notification handler code here if(decimal){ 18 Input_data_dec=Input_data_dec+2/count。 count=10*count。 } else Input_data_int=10*Input_data_int+2。 value = Input_data_int+Input_data_dec。 UpdateData(FALSE)。 } void CcDlg::OnBnClicked3Button() { // TODO: Add your control notification handler code here if(decimal){ Input_data_dec=Input_data_dec+3/count。 count=10*count。 } else Input_data_int=10*Input_data_int+3。 value = Input_data_int+Input_data_dec。 UpdateData(FALSE)。 } void CcDlg::OnBnClicked4Button() { // TODO: Add your control notificati。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。