5.1
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace c5._1
{
class MyMath{
public const double PI = 3.1415926;
public static double Perimeter(double r)
{
return 2 \* PI \* r;
}
public static double Area(double r)
{
return PI \* r \* r;
}
public static double Volume(double r)
{
double v = 4 \* PI \* Math.Pow(r, 3) / 3;
return v;
}
}
class Program
{
static void Main(string\[\] args)
{
Console.Write("请输入半径:");
double r = double.Parse(Console.ReadLine());
Console.WriteLine("圆的周长={0}",MyMath.Perimeter(r));
Console.WriteLine("圆的面积={0}",MyMath.Area(r));
Console.WriteLine("圆的体积={0}",MyMath.Volume(r));
Console.ReadKey();
}
}
}
5.2
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace c5._2
{
public class TemperatureCelsius
{
protected double degree;
public TemperatureCelsius(double d)
{
this.degree = d;
}
public double ToFahrenheit()
{
return (degree * 9 / 5)+32;
}
}
class Program
{
static void Main(string\[\] args)
{
Console.Write("请输入摄氏温度:");
double d = Double.Parse(Console.ReadLine());
TemperatureCelsius t = new TemperatureCelsius(d);
Console.WriteLine("摄氏温度={0},华氏温度={1}",d,t.ToFahrenheit());
Console.ReadKey();
}
}
}
5.3
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace c5._3
{
public class Person
{
public string name;
public uint age;
public Person(string name, uint age)
{
this.name = name;
this.age = age;
}
public virtual void GetInfo()
{
Console.WriteLine(“Name:{0}”, name);
Console.WriteLine(“Age:{0}”, age);
}
}
public class Teacher:Person
{
public uint TeacherID;
public Teacher(string name, uint age, uint id)
: base(name, age)
{
this.TeacherID = id;
}
public override void GetInfo()
{
base.GetInfo();
Console.WriteLine("TeacherID:{0}", TeacherID);
}
}
class Program
{
static void Main(string\[\] args)
{
Teacher t = new Teacher("陈世光", 15, 100);
t.GetInfo();
Console.ReadKey();
}
}
}
5.4
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace c5._4
{
public abstract class Shape {
protected string name;
public Shape(string name)
{
this.name = name;
}
public abstract void Show();
public abstract double Area();
}
public class Rectangle : Shape
{
protected double weight;
protected double height;
public Rectangle(string name, double w, double h)
: base(name)
{
this.weight = w;
this.height = h;
}
public override void Show()
{
Console.WriteLine("Rectangle:{0}, Area:{1}", name, Area());
}
public override double Area()
{
return weight \* height;
}
}
public class Circle : Shape
{
protected double r;
const double PI = 3.1415929;
public Circle(string n, double r)
: base(n)
{
this.r = r;
}
public override void Show()
{
Console.WriteLine("Circle:{0}, Area:{1}", name, Area());
}
public override double Area()
{
return PI \* r \* r;
//return base.Area();
}
}
class Program
{
static void Main(string\[\] args)
{
Shape\[\] s={new Rectangle("矩形",10,2.5),new Circle("圆",4)};
foreach(Shape e in s)
{
e.Show();
}
Console.ReadKey();
}
}
}
5.5
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace c5._5
{
public class Complex
{
protected int real;//shibu
protected int imaginary;//虚部
public Complex(int r, int i)
{
this.real = r;
this.imaginary = i;
}
public static Complex operator +(Complex c1, Complex c2)//必须定义为static
{
return new Complex(c1.real + c2.real, c1.imaginary + c2.imaginary);
}
public static Complex operator -(Complex c1, Complex c2)
{
return new Complex(c1.real - c2.real, c1.imaginary - c2.imaginary);
}
public static Complex operator *(Complex c1, Complex c2)
{
return new Complex(c1.real * c2.real - c1.imaginary * c2.imaginary,
c1.real * c2.imaginary + c1.imaginary * c2.real);
}
public override string ToString()
{
return (String.Format(“{0}+{1}i”, real, imaginary));
//return base.ToString();
}
}
class Program
{
static void Main(string\[\] args)
{
Complex c1 = new Complex(4, 5);
Complex c2 = new Complex(3, 2);
Console.WriteLine("第一个复数:{0}", c1.ToString());
Console.WriteLine("第二个复数:{0}", c2.ToString());
Console.WriteLine("两个复数之和:{0}", (c1+c2).ToString());
Console.WriteLine("两个复数之差:{0}", (c1 - c2).ToString());
Console.WriteLine("两个复数之积:{0}", (c1 \* c2).ToString());
Console.ReadKey();
}
}
}
5.6
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace c5._6
{
public interface ICDPlayer
{
void Play();
void Stop();
void PreviousTrack();
void NextTrack();
void Off();
int CurrentTrack
{
get;
}
}
public class CDPlayer : ICDPlayer
{
private int currentTrack = 0;
public void Play()
{
Console.WriteLine("启动Rhythmbox...");
}
public void Stop()
{
Console.WriteLine("暂停Rhythmbox...");
}
public void PreviousTrack()
{
Console.WriteLine("上一首");
if (currentTrack >= 1)
currentTrack--;
}
public void NextTrack()
{
Console.WriteLine("下一首...");
//if(currentTrack)
currentTrack++;
}
public void Off()
{
Console.WriteLine("OFF!");
}
public int CurrentTrack {//好奇葩的方法,没有参数列表的??
get {
return currentTrack;
}
}
}
class Program
{
static void Main(string\[\] args)
{
CDPlayer cd = new CDPlayer();
cd.Play();
Console.WriteLine("CD.currentTrack={0}", cd.CurrentTrack);
cd.NextTrack();
cd.NextTrack();
Console.WriteLine("CD.currentTrack={0}", cd.CurrentTrack);
cd.PreviousTrack();
Console.WriteLine("CD.currentTrack={0}", cd.CurrentTrack);
cd.Stop();
cd.Off();
Console.ReadKey();
}
}
}
5.7
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;//for ArrayList
namespace c5._7
{
//①:声明提供事件数据的类,作为事件方法的参数
//即传递给事件的参数
public class NameListEventArgs : EventArgs
{
public string Name { get; set; }
public int Count{ get; set; }
public NameListEventArgs(string n, int c)//:Name(namespace),Count(c)
//实践证明不能用C++的默认初始化方法
{
Name = n;
Count = c;
}
}
//②:声明事件处理委托
public delegate void NameListEventHadndler(object source,NameListEventArgs args);
//③:声明引发事件的类,事件产生类
public class NameList
{
ArrayList list;
//④:在事件产生类中声明事件
public event NameListEventHadndler nameListEvent;//声明事件
public NameList()
{
list = new ArrayList();
}
public void Add(string name)
{
list.Add(name);
//⑤:产生事件
/*
if (nameListEvent != null)
{
nameListEvent(this, new NameListEventArgs(name, list.Count));
}*/
nameListEvent(this, new NameListEventArgs(name, list.Count));
}
}
//⑥:声明处理事件的类
public class EventDemo
{
//声明事件处理方法,跟委托声明中参数要一样
public static void Method1(object source, NameListEventArgs args)
{
Console.WriteLine(“列表中增加了项目:{0}” , args.Name);
}
public static void Method2(object source, NameListEventArgs args)
{
Console.WriteLine(“列表中的数目:{0}” , args.Count);
}
static void Main(string\[\] args)
{
NameList n1 = new NameList();
NameListEventHadndler p = new NameListEventHadndler(EventDemo.Method1);
//n1.nameListEvent+=new NameListEventHadndler(EventDemo.Method1);
//⑦:订阅事件
n1.nameListEvent += p;
n1.nameListEvent+=new NameListEventHadndler(EventDemo.Method2);
n1.Add("张三");
n1.Add("311006121");
n1.nameListEvent -= p;
n1.Add("陈某某");
Console.ReadKey();
}
}
}
—————————————————————————————————————————————————— //写的错误或者不好的地方请多多指导,可以在下面留言或者给我发邮件,指出我的错误以及不足,以便我修改,更好的分享给大家,谢谢。 转载请注明出处:https://www.royalchen.com/ author:royalchen Email:royalchen@royalchen.com ———————————————————————————————————————————————————
- 本文作者: royalchen
- 本文链接: http://www.royalchen.com/2016/02/24/cnet程序设计教程实验指导(清华大学江红,余青松-2/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!