资源描述
面向对象程序设计编程
上机作业题目:
(1) 调试构造函数Pen( ) 例题
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication2
{
class Pen
{
public string Color;
private int Price;
public Pen()
{ Color="BLACK";
Price=5;
}
public void SetPrice(int newPrice)
{ Price=newPrice;}
public int GetPrice()
{ return Price; }
public void SetColor(string newColor)
{ Color=newColor; }
public string GetColor()
{ return Color; }
}
class Test
{ public static void Main()
{ Pen myPen=new Pen() ;
Console.WriteLine("The price is {0}",myPen.GetPrice());
Console.WriteLine("The Color is {0}",myPen.Color);
}
}
}
(2) 调试构造函数重载Pen( ) 例题
using System;
class Pen
{
public string Color;
private int Price;
public Pen()
{ Color = "BLACK"; Price = 5;}
public Pen(string newColor, int newPrice)
{ Color = newColor;
Price = newPrice;
}
public void SetPrice(int newPrice)
{ Price = newPrice; }
public void SetPrice()
{ Price = 5; }
public int GetPrice()
{ return Price; }
public void SetColor(string newColor)
{ Color = newColor; }
public string GetColor()
{ return Color; }
}
class Test
{
public static void Main()
{ Pen myPen = new Pen();
Pen hisPen = new Pen("GREEN", 8);
Console.WriteLine("The price is {0}", myPen.GetPrice());
Console.WriteLine("The Color is {0}", myPen.Color);
Console.WriteLine("The price is {0}", hisPen.GetPrice());
Console.WriteLine("The Color is {0}", hisPen.GetColor());
hisPen.SetPrice();
Console.WriteLine("The price is {0}", hisPen.GetPrice());
}
}
( 3) 使用重载方法求5和5.65的平方。
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication8
{
class Program
{ public class app
{public int app1(int x)
{ return x * x; }
public double app1(double y)
{ return y * y; }
}
static void Main(string[] args)
{ app x = new app();
Console.WriteLine("5的平方是{0}", x.app1(5));
Console.WriteLine("5.65的平方是{0}", x.app1(5.65));
}
}
}
( 4) 将运算符++和- -进行重载, 使之可对字符型数据进行运算, 即: 对一个字符型变量a, 当a=’L’时a++(或++a)的值为’M’, a- -(或- -a)的值为’K’
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication6
{
public class charTest
{
private char ch;
public charTest()
{ this.ch = ' '; }
public charTest(char val)
{ this.ch = val; }
public char c
{ get { return this.ch; }
set { this.ch = value; }
}
static public charTest operator ++(charTest orig)
{ charTest Result = new charTest();
Result.ch = (char)(orig.ch + 1);
return Result;
}
static public charTest operator --(charTest orig)
{ charTest Result = new charTest();
Result.ch = (char)(orig.ch - 1);
return Result;
}
public class overloadApp
{
public static void Main()
{ charTest a = new charTest('L');
charTest b = new charTest('L');
Console.WriteLine("Original value is :{0},{1}", a.c, b.c);
a = ++a; b = --b;
Console.WriteLine("Current value is :{0}.{1}", a.c, b.c);
a = ++a; b = --b;
Console.WriteLine("Final value is:{0},{1}", a.c, b.c);
}
}
}
}
( 5) 编写一个控制台程序, 完成下列功能并输出结果:
①创立一个类Test1, 用无参数的构造函数输出该类的类名;
②增加一个重载的构造函数, 带有一个string类型的参数, 在此构造函数中将传递的字符串打印出来;
③在Main方法中创立属于Test1类的一个对象, 不传递参数;
④在Main方法中创立属于Test1类的另一个对象, 传递一个字符串”This is a string”;
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication8
{
class Program
{
class Test1
{
public string test;
public Test1()
{ test = "Test1"; }
public Test1(string s)
{ test = s; }
}
static void Main(string[] args)
{
string x = "This is a string";
Test1 app1 = new Test1();
Test1 app2 = new Test1(x);
Console.WriteLine("{0}", app1.test);
Console.WriteLine("{0}", app2.test);
}
}
}
( 6) 编写一个控制台程序, 完成下列功能并输出结果:
①创立一个类A, 在A中编写一个能够被重写的带int类型参数的方法MyMethod,并在该方法中输出传递的整型值加10后的结果;
②再创立一个类B, 使其继承自类A, 然后重写A中的MyMethod方法,将A中接收的整型值加50, 并输出结果;
③在Main方法中分别创立类A和类B的对象, 并分别调用MyMethod方法;
using System;
class ClassA
{ public static int MyMethod(int i)
{i=i+10; return i;}
}
class ClassB:ClassA
{public static int MyMethod(int i)
{i=i+50;return i;}
}
class Test
{
public static void Main()
{ClassA a=new ClassA();
ClassB b=new ClassB();
Console.WriteLine("请输入一个数: ");
string s=Console.ReadLine();
int x=Int32.Parse(s);
Console.WriteLine("调用A类方法: {0}", ClassA.MyMethod(x));
Console.WriteLine("调用B类方法: {0}", ClassB.MyMethod(x));
}
}
( 7) 利用委托实现: 当用户输入一个字符’1’时, 调用两个整数相加的方法, 计算两整数之和; 当用户输入一个字符’2’时, 调用两个整数相减的方法, 计算两整数之差。
using System;
class App
{delegate int process(int a,int b);
public static int add(int a,int b)
{return a+b;}
public static int sub(int a,int b)
{return a-b;}
static void Main()
{string s,s1,s2;
process Pro;
Console.WriteLine("请输入一个数: ");
s1=Console.ReadLine();
int a=Int32.Parse(s1);
Console.WriteLine("请输入另一个数: ");
s2=Console.ReadLine();
int b=Int32.Parse(s2);
Console.WriteLine("请选择运算方法: 为相加, 为相减");
s=Console.ReadLine();
if(s=="1") Pro=new process(add);
else Pro=new process(sub);
Console.WriteLine("结果为: {0}",Pro(a,b));
}
}
展开阅读全文