c#实现科学计算器 实现篇之常数表实现

介绍了一个用于计算器的常数表类设计,该类包括多个变量和常数,如π和e,并提供了保存和读取变量值的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常数表是用来在计算器中提供常数数据用的,为了使提供常数更加方便,所以设计常数表类。大家一定会发现,在这张表中除了常数外,还有许多变量,这里之所以叫常数表,是因为这些变量的值其实是用来替换表达式中的相应字符串的。
    /// 
    
/// 常数及变量表
    
/// 

    public class ConstantTable
    
{
        
public static double AX=0.0;    //数存储变量A
        public static double BX=0.0;    //数存储变量B
        public static double CX=0.0;    //数存储变量C
        public static double DX=0.0;    //数存储变量D
        public static double EX=0.0;    //数存储变量E
        public static double FX=0.0;    //数存储变量F
        public static double ANS=0.0;    //最终结果存储变量

        
public const double PI=Math.PI;    //常数PI
        public readonly static double EXP=Math.Exp(1);    //常数e
        /// 
        
/// 保存浮点数到一个变量
        
/// 
        
/// 变量名
        
/// 

        public static void SaveTo(string x,double Value)
        
{
            
switch(x.ToUpper())
            
{
                
case "A":
                    ConstantTable.AX
=Value;
                    
break;
                
case "B":
                    ConstantTable.BX
=Value;
                    
break;
                
case "C":
                    ConstantTable.CX
=Value;
                    
break;
                
case "D":
                    ConstantTable.DX
=Value;
                    
break;
                
case "E":
                    ConstantTable.EX
=Value;
                    
break;
                
case "F":
                    ConstantTable.FX
=Value;
                    
break;
                
default:
                    ConstantTable.ANS
=Value;
                    
break;
            }

        }

        
/// 
        
/// 从一个变量读取一个浮点值
        
/// 
        
/// 变量名
        
/// 

        public static double GetFrom(string x)
        
{
            
switch(x.ToUpper())
            
{
                
case "A":
                    
return ConstantTable.AX;
                
case "B":
                    
return ConstantTable.BX;
                
case "C":
                    
return ConstantTable.CX;
                
case "D":
                    
return ConstantTable.DX;
                
case "E":
                    
return ConstantTable.EX;
                
case "F":
                    
return ConstantTable.FX;
                
default:
                    
return ConstantTable.ANS;
            }
        
        }



实验题目:计算器实验 二、实验目的: 1)熟悉.NET的编程方法,掌握项目的创建与使用及安装; 2)熟悉C#编程语言,字符串使用、自定义类、自定义类库等; 3)熟悉Windows应用程序类编程、事件驱动编程; 三、实验内容: 1)参照Windows提供的计算器工具,设计一个与之类似的程序;另外可参考运行效果下载(计算器Demo程序); 2)基本要求:实现“普通运算”功能,支持连续运算,如连续输入“2+3×5”后点击“等号”按钮进行运算其结果为25. 3)附加要求: A,支持“科学运算”功能,即输入达式时遵循运算符号的优先原则,连续输入“2+3×5”后点击“等号”按钮进行运算其结果为17; B,支持数字键盘(小键盘)输入功能(焦点不在文本框内时也支持键盘输入); 四、实验方法 经过用户的输入得到数学达式后,可选择以下方法计算结果: 方法1)不定义计算类方法,在程序中直接计算出结果。 方法2)在项目中设计一个计算类(CalculateClass),其中包含“普通计算”和“科学计算”功能,即输入数学运算达式字符串,返回计算结果。直接在项目中调用该类,输出计算结果。 方法3)在解决方案中增加一个类库(ClassLibrary)项目(在bin\debug下生成dll文件),其中包含计算类(CalculateClass),该类中包含两个方法(普通计算和科学计算),可以根据达式计算结果。然后在计算器项目中“引用”该类库中的类,输出计算结果; 点评:方法1代码重用性差;方法2代码重用性好,在项目内可方便使用;方法3代码重用性较好,能在不同的项目内重用。 五、实验说明 1)认真分析总结每个“按钮”点击之后的动作(对应的代码); 2)代码的共享:如数字按钮可以共享一个事件代码; 3)考虑操作性或实用性,如支持退格键、异常输入处理等; 4)为突出实验重点,可以不考虑数制转换、复合运算、括号运算等功能; 5)支持小键盘输入时,留意理解窗口的KeyPreview属性,即是否窗口接收键盘事件。另外实现时会涉及到“焦点隐藏”问题,以及按钮的键盘事件等。 6)“麻雀虽小,五脏俱全”,程序很容易出Bug,请认真调试; 7)要想达到界面有特点,不亚于在功能上下功夫。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值