C#—密度较量拓展
2016-04-15 21:31
381 查看
/* * 编写控制台应用程序,在其中创建物体类PhysicalObject,通过其私有字段来存放重量和体积,通过公有属性来访问其重量、体积、密度 * ,并通过公有方法来判断该物体是否会在水中下沉。 * 提示:(1)浮力计算公式: 物体密度>液体密度,下沉,G物>F浮 * 物体密度=液体密度,悬浮,G物=F浮(基本物体是空心的) * 物体密度<液体密度,上浮,(静止后漂浮)G物<F浮 * (2)纯水密度是1克每立方厘米,1升水的重量为1kg. * (3)比重(密度)=物体的重量/物体的体积。 * 从PhysicalObject类中派生出移动动物类MovingObject,在其中添加物体的速度信息,并实现物体动量和动能的计算。 */ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; namespace ConsoleApplication2 { class PhysicalObject { protected double zl, tj; public PhysicalObject(double zl, double tj) { this.zl = zl; this.tj = tj; } public double Zl { get { return zl; } set { if (value > 0) zl = value; else Console.WriteLine("输入错误!"); } } public double Tj { get { return tj; } set { if (value > 0) tj = value; else Console.WriteLine("输入错误!"); } } public double md { get { if (tj != 0) return zl / tj; else return 0; } } public string judge() { if (md > 1) return "下沉"; else if (md == 1) return "悬浮"; else return "上浮"; } } class MovingObject : PhysicalObject { private double speed; public MovingObject(double x, double y, double z) :base(x,y) { speed=z; } public double dongliang(double m, double v) { return m * v; } public double dongneng(double m, double v) { return m * v * v/2; } } class Program { static void Main(string[] args) { for (; ; ) { Console.WriteLine("请输入重量、体积和速度:"); string s = Console.ReadLine(); string[] ns = s.Split(' '); double[] n = new double[4]; for (int i = 0; i < ns.Length; i++) n[i] = Convert.ToDouble(ns[i]); if (n[0] == 1 && n[1] == 1 && n[2] == 1) break; MovingObject p = new MovingObject(n[0], n[1], n[2]); Console.WriteLine("物体在水中的状态:{0}\n", p.judge()); Console.WriteLine("物体的动量为:{0}", p.dongliang(n[0], n[2])); Console.WriteLine("物体的动能为:{0}", p.dongneng(n[0], n[2])); } Console.WriteLine("结束!"); Console.ReadKey(); } } }
运行结果:
相关文章推荐
- c#调用COM组件
- C#实现把指定数据写入串口
- C#动态创建button的方法
- C#中抽象方法与虚拟方法的区别
- c#中虚函数的相关使用方法
- C#实现给图片加水印的方法
- C#使用加边法计算行列式的值
- C#实现多线程的同步方法实例分析
- C#中尾递归的使用、优化及编译器优化
- C#中的delegate委托类型基本学习教程
- C#实现子窗体与父窗体通信方法实例总结
- C#通用邮件发送类分享
- 举例讲解C#中自动实现的属性
- C#中this的用法集锦
- C#数据结构之顺序表(SeqList)实例详解
- C#.NET获取拨号连接的宽带连接方法
- C#异步绑定数据实现方法
- C#实现AddRange为数组添加多个元素的方法
- C#中Equality和Identity浅析
- C#比较二个数组并找出相同或不同元素的方法