calculatorDlg.h
上传用户:luojiayill
上传日期:2022-08-09
资源大小:18342k
文件大小:3k
源码类别:

其他小程序

开发平台:

Visual C++

  1. // calculatorDlg.h : 头文件
  2. //
  3. #pragma once
  4. // CcalculatorDlg 对话框
  5. class CcalculatorDlg : public CDialog
  6. {
  7. // 构造
  8. public:
  9. CcalculatorDlg(CWnd* pParent = NULL); // 标准构造函数
  10. // 对话框数据
  11. enum { IDD = IDD_CALCULATOR_DIALOG };
  12. protected:
  13. virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
  14. // 实现
  15. protected:
  16. HICON m_hIcon;
  17. // 生成的消息映射函数
  18. virtual BOOL OnInitDialog();
  19. afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
  20. afx_msg void OnPaint();
  21. afx_msg HCURSOR OnQueryDragIcon();
  22. DECLARE_MESSAGE_MAP()
  23. public:
  24. CString m_show;  //显示的值
  25. CString m_jisuanshi;//显示计算式
  26. bool b; //用来判断初始值是不是0
  27. CString num1; //临时数值1
  28. CString num2; //临时数值2
  29. CString sv;//堆栈用
  30. int op;  //用来判断运算符
  31. static bool hasEqual;//判断是否已经计算了
  32. int Count(const TCHAR* str);//计算小数点后的位数
  33. int Jieceng(int n);//求n阶
  34. void SanjiaoFunc(int type);
  35. afx_msg void OnBnClickednum9();
  36. afx_msg void OnBnClickednum8();
  37. afx_msg void OnBnClickednum7();
  38. afx_msg void OnBnClickednum6();
  39. afx_msg void OnBnClickednum5();
  40. afx_msg void OnBnClickednum4();
  41. afx_msg void OnBnClickednum3();
  42. afx_msg void OnBnClickednum2();
  43. afx_msg void OnBnClickednum1();
  44. afx_msg void OnBnClickednum0();
  45. afx_msg void OnBnClickedbegin2();
  46. afx_msg void OnBnClickedadd();
  47. afx_msg void OnBnClickedresult();
  48. afx_msg void OnBnClickedbackspace();
  49. afx_msg void OnBnClickedsub();
  50. afx_msg void OnBnClickedmul();
  51. afx_msg void OnBnClickeddiv();
  52. afx_msg void OnBnClickedpoint();
  53. afx_msg void OnBnClickednum14();
  54. afx_msg void OnBnClickedpi();
  55. afx_msg void OnBnClickedmode();
  56. afx_msg void OnBnClickeddaoshu();
  57. afx_msg void OnBnClickedsqrt();
  58. afx_msg void OnBnClickedjieceng();
  59. afx_msg void OnBnClickedsin();
  60. afx_msg void OnBnClickedcos();
  61. afx_msg void OnBnClickedtan();
  62. afx_msg void OnBnClickedln();
  63. afx_msg void OnBnClickedlog();
  64. afx_msg void OnBnClickedjieceng7();
  65. afx_msg void OnBnClickedmr();
  66. afx_msg void OnBnClickedms();
  67. afx_msg void OnBnClickedopposite();
  68. afx_msg void OnBnClickedx2();
  69. afx_msg void OnBnClickedx3();
  70. afx_msg void OnBnClickedxy();
  71. afx_msg void OnBnClickedce();
  72. afx_msg void OnBnClickedmadd();
  73. };
  74. const int MAX_SIZE = 100;
  75. //堆栈类
  76. template <typename Type>
  77. class Stack
  78. {
  79. private:
  80. Type list[MAX_SIZE];
  81. int top;//标记
  82. public:
  83. Stack();
  84. void Push(const Type & a);//入栈
  85. Type Pop();//出栈
  86. void Clear();//清空栈
  87. Type GetTop();//获取栈顶元素
  88. bool IsEmpty()const;//判断堆栈是否为空
  89. bool IsFull()const;//判断堆栈是否满
  90. };
  91. //堆栈类Stack
  92. template<typename Type>
  93. //堆栈初始化
  94. Stack<Type>::Stack()
  95. {
  96. top =0;
  97. }
  98. template <typename Type>
  99. //入栈
  100. void Stack<Type>::Push(const Type &a)
  101. {
  102. if(top == MAX_SIZE)
  103. return;
  104. list[top++] = a;
  105. }
  106. //出栈
  107. template <typename Type>
  108. Type Stack<Type>::Pop()
  109. {
  110. return list[--top];
  111. }
  112. //清空堆栈
  113. template <typename Type>
  114. void Stack<Type>::Clear()
  115. {
  116. top =0;
  117. }
  118. //获取栈顶元素
  119. template <typename Type>
  120. Type Stack<Type>::GetTop()
  121. {
  122. int tp = top;
  123. return list[--tp];
  124. }
  125. //判断栈是否空
  126. template <typename Type>
  127. bool Stack<Type>::IsEmpty()const
  128. {
  129. return top == 0;
  130. }
  131. //判断栈是否满
  132. template <typename Type>
  133. bool Stack<Type>::IsFull()const
  134. {
  135. return top == MAX_SIZE;
  136. }