1、面向对象程序设计编程上机作业题目: (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 Pric
2、e; 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
3、 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(strin
4、g 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, hisPe
5、n.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 app
6、1(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)的值为Kusing System;using Syst
7、em.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
8、 = 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 char
9、Test(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类型的参数, 在此构造函数中将传递的字符串打印
10、出来; 在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 vo
11、id 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
12、中接收的整型值加50, 并输出结果; 在Main方法中分别创立类A和类B的对象, 并分别调用MyMethod方法; using System;class ClassA public static int MyMethod(int i) i=i+10; return i;class ClassB:ClassApublic static int MyMethod(int i)i=i+50;return i;class Testpublic static void Main() ClassA a=new ClassA(); ClassB b=new ClassB(); Console.WriteLi
13、ne(请输入一个数: ); 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 Appdelegate int process(int a,int b)
14、; 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);