从简单计算器所想到的面向对象思想(C#源代码)
来源:互联网 发布:泰拉瑞亚怎么保存数据 编辑:程序博客网 时间:2024/05/22 09:43
转自 :http://blog.csdn.net/andylin02/archive/2008/11/14/3298409.aspx
- using System;
- namespace NMCounter
- {
- //run main class
- class CRunMain
- {
- public static int Main()
- {
- COperator objOpr = null;
- string strOpr;
- double duNum1 = 0.0;
- double duNum2 = 0.0;
- Console.WriteLine("please input first number: ");
- duNum1 = int.Parse(Console.ReadLine());
- Console.WriteLine("please input operation string:(+ - * /)");
- strOpr = Console.ReadLine();
- objOpr = COprFactory.CreateOperator(strOpr);
- if (null == objOpr)
- {
- Console.WriteLine("error operator!");
- return 0;
- }
- Console.WriteLine("please input the second number:");
- duNum2 = int.Parse(Console.ReadLine());
- objOpr.m_du1 = duNum1;
- objOpr.m_du2 = duNum2;
- Console.WriteLine("the result = " + objOpr.GetRuesult());
- return 0;
- }
- };
- class COprFactory
- {
- public static COperator CreateOperator(string strType)
- {
- COperator objOpr = null;
- switch (strType)
- {
- case "+":
- objOpr = new COprAdd();
- break;
- case "-":
- objOpr = new COprSub();
- break;
- case "*":
- objOpr = new COprMul();
- break;
- case "/":
- objOpr = new COprDiv();
- break;
- default:
- objOpr = null;
- break;
- }
- return objOpr;
- }
- };
- //计算器实现类
- class COperator
- {
- public COperator()
- {
- this.m_duNum1 = 0;
- this.m_duNum2 = 0;
- }
- public virtual double GetRuesult()
- {
- return 0;
- }
- public double m_du1
- {
- get
- {
- return this.m_duNum1;
- }
- set
- {
- this.m_duNum1 = value;
- }
- }
- public double m_du2
- {
- get
- {
- return this.m_duNum2;
- }
- set
- {
- this.m_duNum2 = value;
- }
- }
- private double m_duNum1;
- private double m_duNum2;
- };
- class COprAdd:COperator
- {
- public COprAdd()
- {
- }
- public override double GetRuesult()
- {
- return this.m_du1 + this.m_du2;
- }
- }
- class COprSub:COperator
- {
- public COprSub()
- {
- }
- public override double GetRuesult()
- {
- return this.m_du1 - this.m_du2;
- }
- }
- class COprMul:COperator
- {
- public COprMul()
- {
- }
- public override double GetRuesult()
- {
- return this.m_du1 * this.m_du2;
- }
- }
- class COprDiv:COperator
- {
- public COprDiv()
- {
- }
- public override double GetRuesult()
- {
- if (Math.Abs(this.m_du2) < 0.00000001)
- {
- throw new Exception("除数不能为0!");
- }
- return this.m_du1 / this.m_du2;
- }
- }
- }
- 从简单计算器所想到的面向对象思想(C#源代码)
- 单例模式---面向对象设计的一个常用模式,以及由此所想到的
- C#面向对象的思想
- C# 面向对象的思想
- 面向对象的简单计算器C#语言版
- 以面向对象的思想设计的计算器 代码
- 用面向对象的思想写一个计算器
- PHP入门-使用面向对象思想开发的图形计算器
- C#工厂模式-从简单到优雅的几种实践
- 面向对象思想实现简易计算器
- 由一个单例所想到的
- 由面向对象的思想走进java单例模式
- android之从简单计算器看intent
- 面向对象的思想
- 面向对象的思想
- 面向对象的思想
- 面向对象的思想
- 面向对象的思想
- 计算机常见术语解释
- Dos网络查看命令
- [转]用Asp.net操作Access的几点心得
- putchar () 函数
- 详细说明 List list = new ArrayList()
- 从简单计算器所想到的面向对象思想(C#源代码)
- 读《大话设计模式》---原型模式(Prototype)
- 概率,对人世的解释
- 地震当天下午(EarthQuake 3)
- GDI+ 透明窗口.UpdateLayeredWindow
- 杨辉三角源代码
- Makefile基本示例
- 图片上传与存储
- asp.net邮件发送