zoukankan      html  css  js  c++  java
  • 基于Wince的计算器程序

          折腾一个星期,终于把计算器完成了,实现加减乘除,精确度能达到20位。

          由于用DUI实现界面布局,因此要达到存储24位整数数值,必须用数组,两者结合,使用TCHAR数组,

          加减乘除算法网上都有,有了算法需要的就是操作逻辑,计算器操作逻辑其实并不简单,这里需要搞清楚

          我的逻辑是这样的,首先你要写入一个数字a,按下运算符号,再写入一个数字b,按下=号,记录之前的符号和当前的符号进行判断,以便于下次计算,当你输入小数的时候,需要将所有的小数都化为整数去计算,网上的算法都是正整数的,所以符号位你需要另外去考虑,这也就意味着负数和减法的冲突,也就是说如果先按下负号,你需要判断现在的情况,是用减法的功能,还是负号的功能。另外小数化为整数,运算得到的结果还需要根据原小数点的位置进行判断,所以要进行小数点的移位。

         你需要的变量就比较多了

            TCHAR num_input_a[1000];//输入第一个数
    TCHAR i_input_a[1000];//输入第一个数的整数部分
    TCHAR f_input_a[1000];//输入第一个数的小数部分
    int index_a;//输入第一个数的索引
    int i_index_a;//输入第一个数整数部分的索引
    int f_index_a;//输入第一个数小数部分的索引


    int temp_a;//保存第一个数的临时索引
    int i_temp_a;//保存第一个数整数部分的临时索引
    int f_temp_a;//保存第一个数小数部分的临时索引




    TCHAR num_input_b[1000];//输入的第二个数
    TCHAR i_input_b[1000];//输入第二个数的整数部分
    TCHAR f_input_b[1000];//输入第二个数的小数部分
    int index_b;//输入第二个数的索引
    int i_index_b;//输入第二个数整数部分的索引
    int f_index_b;//输入第二个数小数部分的索引


    bool m_isFloat;//是否为小数
    int  num_point_a;//输入第一个数的小数位数
    int  num_point_b;//输入第二个数的小数位数


    int m_iNega;//0为正数,1为负数


    bool m_continmul;//按下乘除后 是否没有按数字,直接按计算符号


    bool m_isFlag;//是否点击了加减乘除


    TCHAR num_result[1000];//输出结果
    TCHAR i_num_result[1000];//输出整数部分结果
    TCHAR f_num_result[1000];//输出小数部分结果


    int m_jw;//十进制进位
    int m_sign;//判断符号
    int m_prvsign;//判断计算时前一个符号
    int temp_count;//保存小数位中较多的位数

  • 相关阅读:
    Task async await
    信号量
    操作符?? 与 ?.
    Expression表单式树
    delegate Func Action Expression
    常用技术
    一次移动记账 App 的设计探索
    网站渗透测试教程--渗透测试基本程序
    【】网站渗透测试教程--了解渗透测试
    15 位健在的牛叉程序员,你知道哪几位?
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3127410.html
Copyright © 2011-2022 走看看