基于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。基于wince的c程序开发(计算器
相关推荐
dio Serviee)的英文简称,是在 GSM 系统上发展出来的一种新的承载业 务,目的是为 GSM 用户提供分组形式的数据业务。 GPRS 采用与 GSM 同样的无线调制标准、同样的频带、同样的突发结构、同样的跳频规则以及同样的 TDMA 帧结构。 GPRS 允许用户在端到端分组转移模式下发送和接收数据,而不需要利用电路交换模式的网络资源。 从而提供了一种高效、低成本的无线分组数据业务。
无 “防”的话,那么海鑫人脸识别监控系统的应用,将给安防系统一双“慧眼”,检测、识别 场景中的人,做到能“防”能“录”能“查”,满足机场、海关、金库等重要场合的安全保 障任务。 根据目前国内多数机场候机楼的登机流程和机场口岸出入境管理流程的模式来看,机场 候机楼内的安全检查柜台和入境检查 柜台都是长期有人值守的地方,而且是旅客必经之地。 另外在这类地区旅客的流动速度会放慢
到达客户 i 并且开始服务的时间是 ti,行驶时间是 ijt , wi 为所需的等待时间 ,Si 为服务时间 , iit 表示客户满意度 ,I是很大的整数。 定义变量 : ki 1 iky= 0 客 户 由 车 辆 配 送否 则 mkij 1 m k i jx= 0 车 场 的 车 从 用 户 行 驶 到否 则 基于顾客的满意程度可得求解目标有 : 第一步是最大化的平均客户满意度
private void Msave_Click(object sender, EventArgs e) { // = true。 = txt files (*.txt)|*.txt|All files (*.*)|*.*。 = 0。 // =。 // = txt。 if (() == ) { = + .txt。 StreamWriter sw = new StreamWriter()。 ()。
功实现。 附上判断游戏结束的代码: if(uTag==0) { for(int i=0。 i()。 i++) { CPoint uPoint1=(i)。 if(== amp。 amp。 ==) { uTag=1。 break。 } } } if(uTag==0) { 16 (0,uPoint)。 ReDisplay(uPoint)。 if(== amp。 amp。 ==) {
直通快车票额按列车限售区段分配。 首先保证始发站至终到站或限售区段以长途客流的 需要,途中各停车站的票额按限售区段以远客流量依次分配。 途中各停车站分配的票额由始发站套用。 限售区段以远各站如有下车规律数量,可按规律分配。 2.软、硬卧铺,软座票额 软、硬卧铺票额首先考虑列车始发站长途旅客的需要,同时根据列车沿途停靠站客流情况适当兼顾中途站。 根据长短途列车合理分工的运输组织原则