经典C#入门例子
更新时间:2023-08-25 19:18:01 阅读量: 教育文库 文档下载
学习C#、net
<1>
//(1)开发控制台应用程序,实现一个欢迎界面的功能。
//首先程序提示用户输入姓名,然后显示“欢迎XXX进入C#的世界”。
//最后显示一段鼓励的话,如“A ZA A ZA Fighting!”。
using System;
using System.Collections.Generic;
using System.Text;
namespace exercise1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入您的姓名:");
string s = Console.ReadLine();
Console.WriteLine("欢迎" + s + "进入C#的世界!");
Console.WriteLine("A ZA A ZA Fighting!");
}
<2>
//(2)已知两个矩形的长和宽,编程求它们的面积和周长。
//假设,矩形1的长和宽分别为50和20;矩形2的长和宽分别为5.6和4.5。
//长、宽由键盘输入。
using System;
using System.Collections.Generic;
using System.Text;
namespace exercise2
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入第1个矩形的长和宽:");
float a1 = Convert.ToSingle(Console.ReadLine());
float b1 = Convert.ToSingle(Console.ReadLine());
Console.WriteLine("请输入第2个矩形的长和宽:");
float a2 = Convert.ToSingle(Console.ReadLine());
float b2 = Convert.ToSingle(Console.ReadLine());
Console.WriteLine("第1个矩形的周长是{0},面积是{1}", 2 * (a1 + b1), a1 * b1); Console.WriteLine("第2个矩形的周长是{0},面积是{1}", 2 * (a2 + b2), a2 * b2); }
}
<3>
//(3)写出一个控制台应用程序,实现一个string类型变量转换为一个int类型变量的多种方法。 using System;
using System.Collections.Generic;
using System.Text;
namespace exercise3
{
class Program
{
static void Main(string[] args)
{
学习C#、net
string s = Console.ReadLine();
int i = Convert.ToInt32(s); //第1种方法
int j = Int32.Parse(s); //第2种方法
Console .WriteLine ("{0},{1}",i,j);
}
}
}
<4>
//(4)编写一个控制台程序,将用户输入的以秒为单位计算的时间长度拆分为以时、分、秒计量,并输出。 using System;
using System.Collections.Generic;
using System.Text;
namespace exercise4
{
class Program
{
static void Main(string[] args)
{
int t = Int32.Parse(Console.ReadLine());
int h = t /3600;
int m = t % 3600 / 60;
int s = t % 60;
Console.WriteLine(t + "秒转换为:");
Console.WriteLine("{0}小时{1}分{2}秒", h, m, s);
}
}
<5>
//(2)编写程序,输出100以内个位数为6且能被3整除的所有的数。
using System;
using System.Collections.Generic;
using System.Text;
namespace exercise
{
class Program
{
static void Main(string[] args)
{
for (int i = 1; i < 100; i++)
if ((i % 10 == 6) && (i % 3 == 0))
Console.WriteLine(i);
}
}
}
<6>
//(1)编写程序,使用if语句将输入的三个整数按从小到大的顺序排序。
using System;
using System.Collections.Generic;
using System.Text;
namespace exercise1
{
class Program
{
学习C#、net
static void Main(string[] args)
{
Console.WriteLine("请输入三个整数:");
int a = Convert.ToInt32(Console.ReadLine());
int b = Convert.ToInt32(Console.ReadLine());
int c = Convert.ToInt32(Console.ReadLine());
int t;
if (a > b)
{
t = a; a = b; b = t;
}
if (b > c)
{
t = b; b = c; c = t;
}
if (a> b)
{
t = a; a = b; b = t;
}
Console.WriteLine("排序后为:{0},{1},{2}", a, b, c);
}
}
}
<7>
//(3)编写一个简单的计算器程序,能够根据用户从键盘输入的运算指令和整数,进行简单的加减乘除运算。 using System;
using System.Collections.Generic;
using System.Text;
namespace exercise3
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入两个运算数字:");
int a = Convert.ToInt32(Console.ReadLine());
int b = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("请输入运算符号:");
char s = Convert .ToChar (Console .ReadLine());
switch (s)
{
case '+': Console.WriteLine(a + "+" + b + "={0}", a + b); break;
case '-': Console.WriteLine(a + "-" + b + "={0}", a - b); break;
case '*': Console.WriteLine(a + "*" + b + "={0}", a * b); break;
case '/': Console.WriteLine(a + "/" + b + "={0}", (Single )a / b); break; default: Console.WriteLine("输入的运算符有误!"); break;
}
}
}
}
<8>
using System;
using System.Collections.Generic;
using System.Text;
学习C#、net
//(4)合数就是非素数,即除了1和它本身之外还有其他约数的正整数。
//编写一个程序求出指定数据范围(假设10~100)内的所有合数。
namespace exercise4
{
class Program
{
static void Main(string[] args)
{
for(int i =10;i<=100;i++)
for(int j =2;j<i/2;j++)
if (i % j == 0)
{
Console.Write(i);
Console.Write(" ");
break;
}
}
}
}
<9>
//(1)定义两个方法,分别求两个正整数的最大公约数和最小公倍数。
//其中,最大公约数的计算采用辗转相除法;最小公倍数的计算采用先计算最大公约数,
//然后再用两个数的积去除最大公约数来求得。
//在Main方法中实现两个待求正整数的输入及结果的输出。
using System;
using System.Collections.Generic;
using System.Text;
namespace exercise1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入两个正整数:");
int i = Convert.ToInt32(Console.ReadLine());
int j = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("最大公约数是:{0}" , gcd(i, j));
Console.WriteLine("最小公倍数是:{0}" , gcm(i, j));
}
public static int gcd(int a, int b)
{
int max = a > b ? a : b;
int r = a % b;
while (r != 0)
{
a = b; b = r; r = a % b;
}
return b;
}
public static int gcm(int a, int b)
{
return a * b / gcd(a, b);
}
}
学习C#、net
}
<10>
using System;
using System.Collections.Generic;
using System.Text;
//(2)定义一个方法,给三个整数按从小到大的顺序排序并求其和及平均值。
//其中,三个待求整数及其排序后的结果由引用参数传递;其和由输出参数传递;
//平均值由返回值返回。在Main方法中实现三个待求整数的输入及结果的输出。
namespace exercise2
{
class Program
{
static void Main(string[] args)
{
int s=0;
Console.WriteLine("请输入3个正整数:");
int a = Convert.ToInt32(Console.ReadLine());
int b = Convert.ToInt32(Console.ReadLine());
int c = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("平均值为:"+function(ref a, ref b, ref c,out s));
Console.WriteLine("排序后:{0},{1},{2}", a, b, c);
Console.WriteLine("和为:"+s);
}
public static double function(ref int i, ref int j, ref int k, out int sum)
{
int t;
if (i > j)
{
t = i; i = j; j = t;
}
if(j>k)
{
t = j; j = k; k = t;
}
if (i > j)
{
t = i; i = j; j = t;
}
sum = i + j + k;
return (i + j + k) / 3.0;
}
}
}
<11>
//(3)用重载方法实现两个整数或三个浮点数的排序,
//按照从小到大的顺序将排序结果输出。
using System;
using System.Collections.Generic;
using System.Text;
namespace exercise3
{
学习C#、net
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入两个正整数:");
int a = Convert.ToInt32(Console.ReadLine());
int b = Convert.ToInt32(Console.ReadLine());
sort(ref a,ref b);
Console.WriteLine("排序后:{0},{1}", a, b);
Console.WriteLine("请输入3个浮点数:");
float x = Convert.ToSingle (Console.ReadLine());
float y = Convert.ToSingle(Console.ReadLine());
float z = Convert.ToSingle(Console.ReadLine());
sort(ref x, ref y, ref z);
Console.WriteLine("排序后:{0},{1},{2}", x, y, z);
}
public static void sort(ref int i, ref int j)
{
if (i > j)
{
int t = i; i = j; j = t;
}
}
public static void sort(ref float i, ref float j, ref float k)
{
float t;
if (i > j)
{
t = i; i = j; j = t;
}
if (j > k)
{
t = j; j = k; k = t;
}
if (i > j)
{
t = i; i = j; j = t;
}
}
}
}
<12>
//(6)创建一个类,它存储一个int数据成员MyNumber,
//并给该数据成员创建属性。当该数据成员被存储时,
//将其乘以100;当其被读取时,将其除以100。
using System;
using System.Collections.Generic;
using System.Text;
namespace exercise
{
class Program
{
static void Main(string[] args)
{
学习C#、net
Test t = new Test();
t.Number = 11;
Console.WriteLine(t.Number);
}
}
class Test
{
private int MyNumber;
public int Number
{
get { return MyNumber / 100; }
set { MyNumber = value * 100; }
}
}
}
<13>
//(1)在控制台应用程序中创建student类,并声明构造函数及构造函数的重载。
//要求类定义中包含字段:学号(字符串),姓名(字符串),年龄(整型)和性别(布尔型)。 //输出性别时,根据对应的布尔值,输出“男”或“女”。
//要求:使用字段时可声明为公有,可以不使用属性。
//声明三种不同的构造函数,包括:①可初始化学号、姓名、性别与年龄字段值的构造函数;
//②只初始化姓名的构造函数;③声明默认的无参构造函数。
//实现用不同的初始化方式来声明3个不同的对象,并输出相应成员的值。
using System;
using System.Collections.Generic;
using System.Text;
namespace exercise1
{
class Program
{
static void Main(string[] args)
{
Console.Write("stu1:");
student stu1 = new student();
student stu2 = new student("张三");
Console.WriteLine("stu2:"+http://www.77cn.com.cn);
student stu3 = new student("20071234", "李四", true, 20);
Console.Write("stu3:{0},{1},{2},", stu3.id, http://www.77cn.com.cn, stu3.age);
stu3.printsex();
}
}
class student
{
public string id;
public string name;
public int age;
public bool sex;
public void printsex()
{
学习C#、net
if (sex == true)
Console.WriteLine("男");
else
Console.WriteLine("女");
}
public student(string i, string n, bool s, int a)
{
id = i; name = n; sex = s; age = a;
}
public student(string n)
{
name = n;
}
public student()
{
Console.WriteLine("没有初始化数据");
}
}
}
<14>
//(2)在控制台应用程序中创建Car类,在类中定义字段和属性。
//私有字段包括mcolor和mwheels,公有属性包括Color和Wheels。
//构造对象mycar,并设置属性颜色为“红色”,轮子数为4,最后输出属性的值。
//要求:设计完成后,利用单步执行(快捷键F11),了解属性的调用过程。
using System;
using System.Collections.Generic;
using System.Text;
namespace exercise2
{
class Program
{
static void Main(string[] args)
{
Car mycar = new Car();
mycar.Color = "红色";
mycar.Wheels = 4;
Console.WriteLine("颜色为:" + mycar.Color);
Console.WriteLine("轮子数为:" + mycar.Wheels);
}
}
class Car
{
private string mcolor;
private int mwheels;
public string Color
{
get { return mcolor; }
set { mcolor = value; }
}
public int Wheels
{
get { return mwheels; }
set { mwheels = value; }
学习C#、net
}
}
}
<15>
//(3)定义一个描述复数的类Complex并测试。Complex类中包含两个私有字段,
//用于保存复数的实部和虚部,相应属性用于访问字段。
//另外还定义有两个方法,分别用于对两个复数进行加、减四则运算,
//且有带参数的构造函数,用于在创建复数对象时初始化复数的实部和虚部。
using System;
using System.Collections.Generic;
using System.Text;
namespace exercise3
{
class Program
{
static void Main(string[] args)
{
Complex c1 = new Complex(5, 6);
Complex c2 = new Complex(3, 4);
Console.WriteLine("复数1:{0}+{1}i", c1.Real, c1.Image);
Console.WriteLine("复数2:{0}+{1}i", c2.Real, c2.Image);
Complex a=c1.add(c2);
Console.WriteLine("其和为:{0}+{1}i", a.Real, a.Image);
Complex b = c1.sub(c2);
Console.WriteLine("其差为:{0}+{1}i", b.Real, b.Image);
}
}
class Complex
{
private int real;
private int image;
public int Real
{
get { return real; }
set { real = value; }
}
public int Image
{
get { return image; }
set { image = value; }
}
public Complex(int i, int j)
{
this.Real = i;
this.Image = j;
}
public Complex add(Complex x)
{
return new Complex(this.Real+x.Real ,this.Image +x.Image);
}
public Complex sub(Complex x)
{
return new Complex(this.Real- x.Real ,this.Image-x.Image);
}
学习C#、net
}
}
<17>
//(4)创建一个描述图书信息的类并测试。
//类中应保存有图书的书号、标题、作者、出版社、价格等信息。
using System;
using System.Collections.Generic;
using System.Text;
namespace exercise4
{
class Program
{
static void Main(string[] args)
{
Book b = new Book();
b.ISBN = "123456789";
b.Author = "张三";
b.Title = "无题";
b.Press = "出版社";
b.Price = 1.50;
Console.Write("{0},{1},{2},", b.ISBN, b.Author, b.Title);
Console.WriteLine("{0},{1}", b.Press, b.Price);
}
}
class Book
{
private string isbn;
private string title;
private string author;
private string press;
private double price;
public string ISBN
{
get { return isbn; }
set { isbn = value; }
}
public string Title
{
get { return title ; }
set { title = value; }
}
public string Author
{
get { return author ; }
set { author = value; }
}
public string Press
{
get { return press ; }
set { press = value; }
}
public double Price
{
学习C#、net
get { return price ; }
set { price = value; }
}
}
}
<18>
//(5)定义一个描述圆的类Circle。类中包含一个私有字段radius,
//用于保存圆的半径,一个属性Radius,用于读取和设置radius字段,
//并定义有一个默认构造函数和一个带参数的构造函数,用于初始化对象。
//另外,定义一个包含Main方法的类,在该类中定义一个方法CompareCircle,
//用于比较两个圆的大小,其中待比较的圆对象由参数传递,
//在Main方法中利用默认构造函数,创建一个半径为5的圆circle1,
//利用带参数的构造函数创建三个圆circle2、circle3、circle4(半径分别为8、10、5),
//并调用方法CompareCircle比较circle1和其他三个圆的大小。
using System;
using System.Collections.Generic;
using System.Text;
namespace exercise5
{
class Program
{
static void Main(string[] args)
{
Circle circle1 = new Circle();
circle1.Radius = 5;
Circle circle2 = new Circle(8);
Circle circle3 = new Circle(10);
Circle circle4 = new Circle(5);
CompareCircle(circle1, circle2);
CompareCircle(circle1, circle3);
CompareCircle(circle1, circle4);
}
public static void CompareCircle(Circle a,Circle b)
{
if (a.Radius == b.Radius)
Console.WriteLine("半径为{0}圆与半径为{1}圆大小相同", a.Radius , b.Radius ); else if (a.Radius > b.Radius)
Console.WriteLine("半径为{0}圆大于半径为{1}圆", a.Radius , b.Radius ); else
Console.WriteLine("半径为{0}圆小于半径为{1}圆", a.Radius , b.Radius ); }
}
class Circle
{
private double radius;
public double Radius
{
set { radius = value; }
get { return radius; }
}
public Circle()
{ }
public Circle(double r)
{
学习C#、net
}
}
}
<19>
//(7)编写一个矩形类,私有数据成员为矩形的长(len)和宽(wid),
//类包括取矩形的长度Len、取矩形的宽度Wid、
//求矩形的周长、求面积、修改矩形的长度和宽度为对应的形参值等公用属性和方法。
//另外,无参构造函数将Len和Wid设置为0,有参构造函数设置Len和Wid的值。
//分别实例化不同的对象并调用相应成员。
using System;
using System.Collections.Generic;
using System.Text;
namespace exercise7
{
class Program
{
static void Main(string[] args)
{
Rectangle r1 = new Rectangle();
r1.SetLen(3.5f); r1.SetWid(2.5f);
Console.WriteLine("r1周长为{0},面积为{1}", r1.Length(), r1.Area());
Rectangle r2 = new Rectangle(0.5f, 4.5f);
Console.WriteLine("r2周长为{0},面积为{1}", r2.Length(), r2.Area());
}
}
class Rectangle
{
private float len;
private float wid;
public float Len
{
get { return len; }
set { len = value; }
}
public float Wid
{
get { return wid; }
set { wid = value; }
}
public float Length()
{
return (Len + Wid) * 2;
}
public float Area()
{
return Len * Wid;
}
public void SetLen(float l)
学习C#、net
public void SetWid(float w)
{ Wid = w; }
public Rectangle()
{
Wid = 0; Len = 0;
}
public Rectangle(float l, float w)
{
Len = l; Wid = w;
}
}
}
<20>
//2、定义多边形类Polygon,在类中定义字段、属性和虚方法;
//由基类Polygon创建派生类Square和Pentagon。在派生类中实现方法重写;
//在程序中实例化类的对象并且调用类的方法实现多态性。
//要求:
//()基类Polygon包含以下成员:
// 私有字段length,代表边长,int型
// 私有字段sides,代表边数,int型
// 公有属性Length,用于获取和设置length字段。在构造函数中初始化为。
// 公有属性Sides,用于获取和设置sides字段。
// 虚方法GetPeri(),用于计算图形周长,方法返回类型为string。
//()定义派生类Square和Pentagon,在其中重写基类的虚方法。
// 在类Square的构造函数中,设置Sides为。
// 在类Pentagon的构造函数中,设置Sides为。
// 在派生类中,分别重写虚方法GetPeri(),方法返回一个字符串“The perimeter of the Polygon is x”, //其中x表示Length和Sides的乘积。
//()实例化类的对象,调用方法输出周长。
// 实例化Square的一个对象,设置Length值为,调用方法GetPeri()。
// 实例化Pentagon的一个对象,设置Length值为,调用方法GetPeri(),输出返回的字符串。
using System;
using System.Collections.Generic;
using System.Text;
namespace exercise1
{
class Program
{
static void Main(string[] args)
{
Square s = new Square(); // 实例化Square的一个对象
s.Length = 2; //设置Length值为,
Console.WriteLine(s.GetPeri()); //调用方法GetPeri()。
Pentagon p = new Pentagon(); // 实例化Pentagon的一个对象
s.Length = 5; //设置Length值为
Console.WriteLine(s.GetPeri()); //调用方法GetPeri(),输出返回的字符串。 }
}
class Polygon
{
private int length; // 私有字段length,代表边长,int型
private int sides; // 私有字段sides,代表边数,int型
public int Length // 公有属性Length,用于获取和设置length字段。
学习C#、net
{
get { return length; }
set { length = value; }
}
public Polygon() //在构造函数中初始化(Length)为。
{
Length = 1;
}
public int Sides // 公有属性Sides,用于获取和设置sides字段。
{
get { return sides; }
set { sides = value; }
}
public virtual string GetPeri() // 虚方法GetPeri(),用于计算图形周长,方法返回类型为string。
{
return "this is a virtual mothod";
}
}
class Square : Polygon
{
public Square() // 在类Square的构造函数中,设置Sides为。
{
Sides = 4;
}
public override string GetPeri() // 在派生类中,重写虚方法GetPeri(),方法返回一个字符串“The perimeter of the Polygon is x”,其中x表示Length和Sides的乘积。
{
int x = Length * Sides;
return "The perimeter of the Polygon is " + x;
}
}
class Pentagon : Polygon
{
public Pentagon() // 在类Pentagon的构造函数中,设置Sides为。
{
Sides = 5;
}
public override string GetPeri() // 在派生类中,重写虚方法GetPeri(),方法返回一个字符串“The perimeter of the Polygon is x”,其中x表示Length和Sides的乘积。
{
int x = Length * Sides;
return "The perimeter of the Polygon is " + x;
}
}
}
<21>
假设你是一家银行的工作人员。要求你为帐户的类型定义对象。这些帐户是活期帐户(CheckingAccount)和储蓄存款帐户(SavingsAccount)。活期帐户具有以下特征:帐户持有者的名字只能在创建帐户时指定;初始金额必须在帐户创建时指定;帐户创建时必须分配帐户号。活期帐户的帐户号范围是从1000到4999,每个帐户必须具有唯一的帐户号。(不必检查帐户号的正确性)。活期帐户持有者能够:往帐户中加钱;如果帐户里资金充足,可以从中取钱。
学习C#、net
储蓄存款帐户具有以下特征:帐户持有者的名字只能在创建帐户时指定;初始金额必须在帐户创建时指定;帐户创建时必须分配帐户号。储蓄存款帐户的帐户号范围是从5000到9999,每个帐户必须具有唯一的帐户号。(不必检查帐户号的正确性)。储蓄存款帐户持有者能够:往帐户中加钱;如果帐户里资金充足,可以从中取钱;帐户可以赚取利息,利率取决于帐户余额。如果余额大于1000,利息率是6%,否则是3%。
提示:可先定义基类BankAccout,然后定义派生类CheckingAccount和SavingsAccount。基类中包含派生类的共有成员。
using System;
using System.Collections.Generic;
using System.Text;
namespace exercise2
{
class Program
{
static void Main(string[] args)
{
CheckingAccount ca = new CheckingAccount("张三", 1000);
Console.WriteLine("*******活期帐户*******");
Console.WriteLine("用户名:{0}\n帐号:{1}\n帐户初始金额:{2}", ca.CustomerName, ca.CustomerId, ca.CustomerBalance);
ca.Deposit(500);
Console.WriteLine("存入后的余额是:" + ca.CustomerBalance);
ca.Withdraw(800);
Console.WriteLine("取出后的余额是:{0}\n", ca.CustomerBalance);
SavingsAccount sa = new SavingsAccount("李四", 1500);
Console.WriteLine("*****储蓄存款帐户*****");
Console.WriteLine("用户名:{0}\n帐号:{1}\n帐户初始金额:{2}", sa.CustomerName, sa.CustomerId, sa.CustomerBalance);
sa.Deposit(300);
Console.WriteLine("存入后的余额是:{0}\n利率是:{1}", sa.CustomerBalance, sa.Rate); sa.Withdraw(1000);
Console.WriteLine("取出后的余额是:{0}\n利率是:{1}", sa.CustomerBalance, sa.Rate);
}
}
class BankAccount
{
protected int cid;
protected string cname;
protected decimal cbalance;
public string CustomerName
{
get { return cname; }
}
public int CustomerId
{
get { return cid; }
}
public decimal CustomerBalance
{
get { return cbalance; }
学习C#、net
public void BankAccout(string n, decimal b)
{
cname = n;
cbalance = b;
}
public virtual void Deposit(decimal money)
{
cbalance += money;
}
public virtual bool Withdraw(decimal money)
{
if (money <= cbalance)
{
cbalance -= money;
return true;
}
else
return false;
}
}
class CheckingAccount : BankAccount
{
static private int seedId = 1000;
public CheckingAccount(string name, decimal balance)
{
base.BankAccout(name, balance);
cid = seedId++;
}
}
class SavingsAccount : BankAccount
{
static private int seedId = 5000;
public SavingsAccount(string name, decimal balance)
{
base.BankAccout(name, balance);
cid = seedId++;
}
private decimal rate;
public decimal Rate
{
get
{
if (cbalance > 1000)
rate = 0.06M;
else rate = 0.03M;
return rate;
}
}
public override void Deposit(decimal money)
{
base.Deposit(money);
rate = this.Rate;
}
public override bool Withdraw(decimal money)
学习C#、net
if (base.Withdraw(money))
{
rate = this.Rate;
return true;
}
else return false;
}
}
}
<22>
//1、定义动物类Animal,在类中定义字段、属性和抽象方法;由基类Animal创建派生类Cat和Cow。 //在派生类中实现方法重写;在程序中实例化类的对象并且调用类的方法。
//要求:
//(1)基类Animal包含如下成员:
// bool型私有字段sex,string型私有字段sound。
// 公有属性Sex,用于获取和设置sex字段,在类的构造函数中设置初始值为false。
// 公有属性Sound,用于获取和设置sound字段。
// 抽象方法Roar(),用于模拟动物发出叫声,返回值类型为string。
//(2)定义派生类Cat和Cow,在其中重写基类的抽象方法。
// 在类Cat的构造函数中,设置属性Sound的值为“Miaow……”
// 在类Cow的构造函数中,设置属性Sound的值为“Moo……”
// 在类Cat中实现方法Roar,返回字符串为“Cat:”加上属性Sound的值。
// 在类Cow中实现方法Roar,返回字符串为“Cow:”加上属性Sound的值。
//(3)实例化类的对象。
// 实例化Cat的一个对象,并调用Roar(),输出方法返回的字符串。
// 实例化Cow的一个对象,并调用Roar(),输出方法返回的字符串。
using System;
using System.Collections.Generic;
using System.Text;
namespace exe1
{
class Program
{
static void Main(string[] args)
{
Cat ca = new Cat();
Console.WriteLine(ca.Roar()); // 实例化Cat的一个对象,并调用Roar(),输出方法返回的字符串。
Cow co = new Cow();
Console.WriteLine(co.Roar()); // 实例化Cow的一个对象,并调用Roar(),输出方法返回的字符串。
}
}
abstract class Animal
{
private bool sex;
private string sound; // bool型私有字段sex,string型私有字段sound。
public bool Sex // 公有属性Sex,用于获取和设置sex字段,
{
get { return sex; }
set { sex = value; }
}
学习C#、net
public string Sound // 公有属性Sound,用于获取和设置sound字段。
{
get { return sound; }
set { sound = value; }
}
public Animal() //在类的构造函数中设置(Sex)初始值为false。
{
Sex = false;
}
public abstract string Roar(); // 抽象方法Roar(),用于模拟动物发出叫声,返回值类型为string。
}
class Cat : Animal
{
public Cat() // 在类Cat的构造函数中,设置属性Sound的值为“Miaow……”
{
Sound = "Miaow........";
}
public override string Roar() // 在类Cat中实现方法Roar,返回字符串为“Cat:”加上属性Sound的值。
{
return "Cat:" + Sound;
}
}
class Cow : Animal
{
public Cow() // 在类Cow的构造函数中,设置属性Sound的值为“Moo……”
{
Sound = "Moo.......";
}
public override string Roar() // 在类Cow中实现方法Roar,返回字符串为“Cow:”加上属性Sound的值。
{
return "Cow:" + Sound;
}
}
}
<23>
//(2) 根据动物的继承关系定义用于描述猫、狗、金鱼、鲸鱼等动物的类。
//要求首先定义一个动物接口IAnimal,
//描述所有动物的共有特性(属性Sound和方法Eat()),
//然后在实现IAnimal接口的基础上定义两个抽象类WaterAnimal和LandAnimal,
//上述动物类都必须继承类WaterAnimal或LandAnimal。
using System;
using System.Collections.Generic;
using System.Text;
namespace exe2
{
class Program
{
static void Main(string[] args)
{
Cat c = new Cat();
学习C#、net
c.Sound = "Miaow";
Console.WriteLine("Cat's sound is "+c.Sound);
c.Eat();
Dog d = new Dog();
d.Eat();
Goldfish g = new Goldfish();
g.Eat();
Whale w = new Whale();
w.Eat();
}
}
interface IAnimal
{
string Sound
{
get;
set;
}
void Eat();
}
abstract class WaterAnimal:IAnimal
{
#region IAnimal 成员
private string sound;
public string Sound
{
get
{
return sound;
}
set
{
sound = value;
}
}
public abstract void Eat();
#endregion
}
abstract class LandAnimal : IAnimal
{
#region IAnimal 成员
private string sound;
public string Sound
{
get
{
return sound;
}
set
{
sound = value;
}
}
正在阅读:
经典C#入门例子08-25
中国洋参含片市场发展研究及投资前景报告(目录) - 图文09-28
浅谈Kinetis的中断03-14
中南大学2008年自控原理试题及答案(AB卷热动)09-29
富宁县木央镇区规划说明书 - 图文10-19
班队干部大家选教学设计反思05-20
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- C#
- 入门
- 例子
- 经典
- 北京什刹海烟袋斜街改造研究
- 2013年职业道德与法律试卷及答案
- 051FABE销售法培训教案-明阳天下拓展
- 格力营销渠道分析
- 2019-2020年广州一模:广东省广州市2019届高三第一次模拟考试英语试题(有答案)-附详细答案
- 第八章 投资项目国民经济评价(投资项目评估-上海财经大学 何康为)
- TCL集团股份有限公司服务营销分析
- 微生物论文
- 2018-2019年山东济宁一模:山东省济宁市2018届高三第一次模拟考试文综试题 word-附答案精品
- 一年级年级主任工作总结
- 停薪留职管理办法
- 【最新】一年级数学下册 两位数加减两位数不进位不退位教案 苏教版
- 土家族研究参考文献
- 一些数学课程视频的链接
- (精品)2016年最新北师大版一年级上册数学6到10的加减法复习
- 外墙内保温材料检验报告及
- 水电站厂房设计 文档
- 巴赫《小步舞曲》教案设计
- 联想笔记本电脑bios设置图解
- 幼儿数学操作性学习及其教学策略研究)开题报告