⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unitsystem.cs

📁 改程序能够查询课程表
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;

namespace Common.Utility.Unit {
    public abstract class UnitSystem {
        
        public abstract UnitSystemEnum Name {
            get;
        }
        public abstract Dictionary<UnitEnum, Unit> Units {
            get;
           
        }


        public Unit GetUnit(UnitEnum name) {
            return Units[name];
        }
        
    }

    public class InternationalUnitSystem : UnitSystem {
        private UnitSystemEnum name;
        public override UnitSystemEnum Name {
            get {
                return name;
            }
        }

        private Dictionary<UnitEnum, Unit> units;
        public override Dictionary<UnitEnum, Unit> Units {
            get {
                return units;
            }
        }

        public InternationalUnitSystem() {
            name = UnitSystemEnum.International;
            units = new Dictionary<UnitEnum, Unit>();
            units.Add( UnitEnum.Depth, new Unit( UnitEnum.Depth, "m", 1 ) );
            units.Add( UnitEnum.Length, new Unit( UnitEnum.Length, "m", 1 ) );
            units.Add( UnitEnum.Diameter, new Unit( UnitEnum.Diameter, "m", 1 ) );
            units.Add( UnitEnum.Size, new Unit( UnitEnum.Size, "m", 1 ) );
            units.Add(UnitEnum.Area, new Unit(UnitEnum.Area, "m^2", 1));
            units.Add( UnitEnum.Volume, new Unit( UnitEnum.Volume, "m^3", 1 ) );
            units.Add( UnitEnum.Capacity, new Unit( UnitEnum.Capacity, "m^3", 1 ) );
            units.Add( UnitEnum.Velocity, new Unit( UnitEnum.Velocity, "m/s", 1 ) );
            units.Add( UnitEnum.PumpOutput, new Unit( UnitEnum.PumpOutput, "m^3/s", 1 ) );
            units.Add(UnitEnum.DeliveryCapacity, new Unit(UnitEnum.DeliveryCapacity, "m^3/s", 1));
            units.Add( UnitEnum.PumpPressure, new Unit( UnitEnum.PumpPressure, "Pa", 1 ) );
            units.Add( UnitEnum.Pressure, new Unit( UnitEnum.Pressure, "Pa", 1 ) );
            units.Add( UnitEnum.Force, new Unit( UnitEnum.Force, "N", 1 ) );
            units.Add( UnitEnum.Density, new Unit( UnitEnum.Density, "kg/m^3", 1 ) );
            units.Add( UnitEnum.FormationPressureGradient, new Unit( UnitEnum.FormationPressureGradient, "Pa/m", 1 ) );
            units.Add( UnitEnum.ShearStress, new Unit( UnitEnum.ShearStress, "Pa", 1 ) );
            units.Add( UnitEnum.ShearRate, new Unit( UnitEnum.ShearRate, "s^-1", 1 ) );
            units.Add( UnitEnum.ConsistencyIndexK, new Unit( UnitEnum.ConsistencyIndexK, "Pa•(s^n)", 1 ) );
            units.Add( UnitEnum.PlasticViscosity, new Unit( UnitEnum.PlasticViscosity, "Pa•s", 1 ) );
            units.Add( UnitEnum.FunnelViscosity, new Unit( UnitEnum.FunnelViscosity, "s/quart", 1 ) );
            units.Add( UnitEnum.YieldPoint, new Unit( UnitEnum.YieldPoint, "Pa", 1 ) );
            units.Add(UnitEnum.FilterLoss, new Unit(UnitEnum.FilterLoss, "m^3", 1));
            units.Add( UnitEnum.CakeThickNess, new Unit( UnitEnum.CakeThickNess, "m", 1 ) );
            units.Add( UnitEnum.Temperature, new Unit( UnitEnum.Temperature, "℃", 1 ) );
            units.Add( UnitEnum.Price, new Unit( UnitEnum.Price, "¥/t", 1 ) );
            units.Add( UnitEnum.Cost, new Unit( UnitEnum.Cost, "¥", 1 ) );
            units.Add( UnitEnum.AngleRateOfChange, new Unit( UnitEnum.AngleRateOfChange, "°/100m", 1 ) );
            units.Add( UnitEnum.GrainSize, new Unit( UnitEnum.GrainSize, "m", 1 ) );
            units.Add(UnitEnum.AnnulusUpwardVelocity, new Unit(UnitEnum.AnnulusUpwardVelocity, "m/s", 1));
            units.Add(UnitEnum.ChipSlipRate, new Unit(UnitEnum.ChipSlipRate, "m/s", 1));
            units.Add(UnitEnum.Content, new Unit(UnitEnum.Content, "kg/m^3", 1));
            units.Add(UnitEnum.Hardness, new Unit(UnitEnum.Hardness, "kg/m^3", 1));
            units.Add(UnitEnum.Concentration, new Unit(UnitEnum.Concentration, "kg/m^3", 1));
            units.Add(UnitEnum.LiquidUsage, new Unit(UnitEnum.LiquidUsage, "m^3", 1));
            units.Add(UnitEnum.Weight, new Unit(UnitEnum.Weight, "kg", 1));
            units.Add(UnitEnum.NozzleSize,new  Unit(UnitEnum.NozzleSize,"m",1));
            units.Add(UnitEnum.GuantiArea, new Unit(UnitEnum.GuantiArea, "m^2", 1));
            units.Add(UnitEnum.ZuanGanShenChang, new Unit(UnitEnum.ZuanGanShenChang, "m", 1));
            units.Add(UnitEnum.ZuanGanLaLi, new Unit(UnitEnum.ZuanGanLaLi, "N", 1));
            units.Add(UnitEnum.Power, new Unit(UnitEnum.Power, "W", 1));
            units.Add(UnitEnum.UnitPower,new Unit(UnitEnum.UnitPower,"W/m^2",1));
            units.Add(UnitEnum.DrillingSpeed, new Unit(UnitEnum.DrillingSpeed, "m/s", 1));
            units.Add(UnitEnum.DrillingPipeCapacity, new Unit(UnitEnum.DrillingPipeCapacity, "m^3", 1));
            units.Add(UnitEnum.PumpingSpeed,new Unit(UnitEnum.PumpingSpeed,"冲/s",1));
            units.Add(UnitEnum.Stroke, new Unit(UnitEnum.Stroke, "m", 1));
        }
    }

    public class EnglishUnitSystem : UnitSystem {
        private UnitSystemEnum name;
        public override UnitSystemEnum Name {
            get {
                return name;
            }
        }

        private Dictionary<UnitEnum, Unit> units;
        public override Dictionary<UnitEnum, Unit> Units {
            get {
                return units;
            }
        }

        public EnglishUnitSystem() {
            name = UnitSystemEnum.English;
            units = new Dictionary<UnitEnum, Unit>();
            units.Add( UnitEnum.Depth, new Unit( UnitEnum.Depth, "ft", 0.3048M ) );
            units.Add( UnitEnum.Length, new Unit( UnitEnum.Length, "ft", 0.3048M ) );
            units.Add( UnitEnum.Diameter, new Unit( UnitEnum.Diameter, "in", 0.0254M ) );
            units.Add( UnitEnum.Size, new Unit( UnitEnum.Size, "in", 0.0254M ) );
            units.Add(UnitEnum.Area, new Unit(UnitEnum.Area, "in^2", 0.0006452M));
            units.Add( UnitEnum.Volume, new Unit( UnitEnum.Volume, "bbl", 0.159M ) );
            units.Add( UnitEnum.Capacity, new Unit( UnitEnum.Capacity, "bbl", 0.159M ) );
            units.Add( UnitEnum.Velocity, new Unit( UnitEnum.Velocity, "ft/s", 0.3048M ) );
            units.Add( UnitEnum.PumpOutput, new Unit( UnitEnum.PumpOutput, "gal/min", 0.0000633M ) );
            units.Add(UnitEnum.DeliveryCapacity, new Unit(UnitEnum.DeliveryCapacity, "gal/min", 0.0000633M));
            units.Add( UnitEnum.PumpPressure, new Unit( UnitEnum.PumpPressure, "psi", 6894.8M ) );
            units.Add( UnitEnum.Pressure, new Unit( UnitEnum.Pressure, "psi", 6894.8M ) );
            units.Add( UnitEnum.Force, new Unit( UnitEnum.Force, "lb", 4.4482M ) );
            units.Add( UnitEnum.Density, new Unit( UnitEnum.Density, "lb/gal", 120M ) );
            units.Add( UnitEnum.FormationPressureGradient, new Unit( UnitEnum.FormationPressureGradient, "psi/ft", 22600M ) );
            units.Add( UnitEnum.ShearStress, new Unit( UnitEnum.ShearStress, "lb/(100ft^2)", 0.48M ) );
            units.Add( UnitEnum.ShearRate, new Unit( UnitEnum.ShearRate, "s^-1", 1 ) );
            units.Add(UnitEnum.ConsistencyIndexK, new Unit(UnitEnum.ConsistencyIndexK, "lb•(s^n)/(100ft^2)", 0.479M));
            units.Add( UnitEnum.PlasticViscosity, new Unit( UnitEnum.PlasticViscosity, "cP", 0.001M ) );
            units.Add( UnitEnum.FunnelViscosity, new Unit( UnitEnum.FunnelViscosity, "s/quart", 1 ) );
            units.Add(UnitEnum.YieldPoint, new Unit(UnitEnum.YieldPoint, "lb/(100ft^2)", 0.48M));
            units.Add( UnitEnum.FilterLoss, new Unit( UnitEnum.FilterLoss, "quart", 0.9464M) );
            units.Add( UnitEnum.CakeThickNess, new Unit( UnitEnum.CakeThickNess, "1/32 in", 0.0008M ) );
            units.Add(UnitEnum.Temperature, new Unit(UnitEnum.Temperature, "℉", 1));
            units.Add(UnitEnum.Price, new Unit(UnitEnum.Price, "£/t", 14.92M));
            units.Add(UnitEnum.Cost, new Unit(UnitEnum.Cost, "£", 14.92M));
            units.Add(UnitEnum.AngleRateOfChange, new Unit(UnitEnum.AngleRateOfChange, "°/100ft", 3.3M));
            units.Add(UnitEnum.GrainSize, new Unit(UnitEnum.GrainSize, "in", 0.0254M));
            units.Add(UnitEnum.AnnulusUpwardVelocity, new Unit(UnitEnum.AnnulusUpwardVelocity, "ft/min", 0.00508M));
            units.Add(UnitEnum.ChipSlipRate, new Unit(UnitEnum.ChipSlipRate, "ft/min", 0.00508M));
            units.Add(UnitEnum.Content, new Unit(UnitEnum.Content, "lb/bbl", 2.85M));
            units.Add(UnitEnum.Hardness, new Unit(UnitEnum.Hardness, "ppm", 0.00107M));
            units.Add(UnitEnum.Concentration, new Unit(UnitEnum.Concentration, "ppm", 0.00107M));
            units.Add(UnitEnum.LiquidUsage, new Unit(UnitEnum.LiquidUsage, "ft^3", 0.02832M));
            units.Add(UnitEnum.Weight, new Unit(UnitEnum.Weight, "t", 1106M));
            units.Add(UnitEnum.NozzleSize, new Unit(UnitEnum.NozzleSize, "1/32 in", 0.0008M));
            units.Add(UnitEnum.GuantiArea, new Unit(UnitEnum.GuantiArea, "in^2", 0.0006452M));
            units.Add(UnitEnum.ZuanGanShenChang, new Unit(UnitEnum.ZuanGanShenChang, "ft", 0.3048M));
            units.Add(UnitEnum.ZuanGanLaLi, new Unit(UnitEnum.ZuanGanLaLi, "lb", 4.4482M));
            units.Add(UnitEnum.Power, new Unit(UnitEnum.Power, "hp", 745.7M));
            units.Add(UnitEnum.UnitPower, new Unit(UnitEnum.UnitPower, "hp/in^2", 1155765.6541M));
            units.Add(UnitEnum.DrillingSpeed, new Unit(UnitEnum.DrillingSpeed, "ft/h", 0.0000847M));
            units.Add(UnitEnum.DrillingPipeCapacity, new Unit(UnitEnum.DrillingPipeCapacity, "bbl", 0.159M));
            units.Add(UnitEnum.PumpingSpeed, new Unit(UnitEnum.PumpingSpeed, "Stroke/min", 0.0167M));
            units.Add(UnitEnum.Stroke, new Unit(UnitEnum.Stroke, "ft", 0.3048M));
        }
    }
    public class MetricUnitSystem : UnitSystem
    {
        private UnitSystemEnum name;
        public override UnitSystemEnum Name
        {
            get
            {
                return name;
            }
        }

        private Dictionary<UnitEnum, Unit> units;
        public override Dictionary<UnitEnum, Unit> Units
        {
            get
            {
                return units;
            }
        }

        public MetricUnitSystem()
        {
            name = UnitSystemEnum.Metric;
            units = new Dictionary<UnitEnum, Unit>();
            units.Add(UnitEnum.Depth, new Unit(UnitEnum.Depth, "m", 1));
            units.Add(UnitEnum.Length, new Unit(UnitEnum.Length, "m", 1));
            units.Add(UnitEnum.Diameter, new Unit(UnitEnum.Diameter, "mm", 0.001M));
            units.Add(UnitEnum.Size, new Unit(UnitEnum.Size, "mm", 0.001M));
            units.Add(UnitEnum.Area, new Unit(UnitEnum.Area, "mm^2", 0.000001M));
            units.Add(UnitEnum.Volume, new Unit(UnitEnum.Volume, "m^3", 1));
            units.Add(UnitEnum.Capacity, new Unit(UnitEnum.Capacity, "m^3", 1));
            units.Add(UnitEnum.Velocity, new Unit(UnitEnum.Velocity, "m/s", 1));
            units.Add(UnitEnum.PumpOutput, new Unit(UnitEnum.PumpOutput, "L/s", 0.001M));
            units.Add(UnitEnum.DeliveryCapacity, new Unit(UnitEnum.DeliveryCapacity, "L/s", 0.001M));
            units.Add(UnitEnum.PumpPressure, new Unit(UnitEnum.PumpPressure, "kPa", 1000M));
            units.Add(UnitEnum.Pressure, new Unit(UnitEnum.Pressure, "MPa", 1000000M));
            units.Add(UnitEnum.Force, new Unit(UnitEnum.Force, "kN", 1000M));
            units.Add(UnitEnum.Density, new Unit(UnitEnum.Density, "g/cm^3", 1000M));
            units.Add(UnitEnum.FormationPressureGradient, new Unit(UnitEnum.FormationPressureGradient, "kPa/m", 1000M));
            units.Add(UnitEnum.ShearStress, new Unit(UnitEnum.ShearStress, "Pa", 1));
            units.Add(UnitEnum.ShearRate, new Unit(UnitEnum.ShearRate, "s^-1", 1));
            units.Add(UnitEnum.ConsistencyIndexK, new Unit(UnitEnum.ConsistencyIndexK, "Pa•(s^n)", 1));
            units.Add(UnitEnum.PlasticViscosity, new Unit(UnitEnum.PlasticViscosity, "mPa•s", 0.001M));
            units.Add(UnitEnum.FunnelViscosity, new Unit(UnitEnum.FunnelViscosity, "s", 1));
            units.Add(UnitEnum.YieldPoint, new Unit(UnitEnum.YieldPoint, "Pa", 1));
            units.Add(UnitEnum.FilterLoss, new Unit(UnitEnum.FilterLoss, "mL", 0.001M));
            units.Add(UnitEnum.CakeThickNess, new Unit(UnitEnum.CakeThickNess, "mm", 0.001M));
            units.Add(UnitEnum.Temperature, new Unit(UnitEnum.Temperature, "℃", 1));
            units.Add(UnitEnum.Price, new Unit(UnitEnum.Price, "¥/t", 1));
            units.Add(UnitEnum.Cost, new Unit(UnitEnum.Cost, "¥", 1));
            units.Add(UnitEnum.AngleRateOfChange, new Unit(UnitEnum.AngleRateOfChange, "°/100m", 1));
            units.Add(UnitEnum.GrainSize, new Unit(UnitEnum.GrainSize, "mm", 0.001M));
            units.Add(UnitEnum.AnnulusUpwardVelocity, new Unit(UnitEnum.AnnulusUpwardVelocity, "m/s", 1));
            units.Add(UnitEnum.ChipSlipRate, new Unit(UnitEnum.ChipSlipRate, "m/s", 1));
            units.Add(UnitEnum.Content, new Unit(UnitEnum.Content, "kg/m^3", 1));
            units.Add(UnitEnum.Hardness, new Unit(UnitEnum.Hardness, "mg/L", 0.001M));
            units.Add(UnitEnum.Concentration, new Unit(UnitEnum.Concentration, "mg/L", 0.001M));
            units.Add(UnitEnum.LiquidUsage, new Unit(UnitEnum.LiquidUsage, "mL", 0.000001M));
            units.Add(UnitEnum.Weight, new Unit(UnitEnum.Weight, "t", 1000M));
            units.Add(UnitEnum.NozzleSize, new Unit(UnitEnum.NozzleSize, "mm", 0.001M));
            units.Add(UnitEnum.GuantiArea, new Unit(UnitEnum.GuantiArea, "cm^2", 0.0001M));
            units.Add(UnitEnum.ZuanGanShenChang, new Unit(UnitEnum.ZuanGanShenChang, "cm", 0.01M));
            units.Add(UnitEnum.ZuanGanLaLi, new Unit(UnitEnum.ZuanGanLaLi, "t", 10000M));
            units.Add(UnitEnum.Power, new Unit(UnitEnum.Power, "kW", 1000M));
            units.Add(UnitEnum.UnitPower, new Unit(UnitEnum.UnitPower, "hp/m^2", 735.5M));
            units.Add(UnitEnum.DrillingSpeed, new Unit(UnitEnum.DrillingSpeed, "m/s", 1));
            units.Add(UnitEnum.DrillingPipeCapacity, new Unit(UnitEnum.DrillingPipeCapacity, "L", 0.001M));
            units.Add(UnitEnum.PumpingSpeed, new Unit(UnitEnum.PumpingSpeed, "冲/min", 0.0167M));
            units.Add(UnitEnum.Stroke, new Unit(UnitEnum.Stroke, "mm", 0.001M));
        }
    }

    public enum UnitSystemEnum {
        International,
        English,
        Metric,
        Mixture
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -