类与继承练习题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
department=tdep;
}
publicoverridevoidinfoPrint()
{
Console.WriteLine(" Teacher's Id: {0}", id);
Console.WriteLine(" Teacher's Name: {0}", name);
Console.WriteLine(" Teacher's Title: {0}", title);
主函数中定义一个Student类对象,姓名:夏雨,编号:101,班级号:2,成绩:90;和一个Teacher类对象,姓名:王宁,编号:86,职称:教授,部门:计算机。并打印各自的信息。
考虑以下两种情况的编程细节差别:
(1)Person中的编号和姓名为protected类型;
(2)Person中的编号和姓名为private类型;
:base(tid,tname)
{
classNum=cNum;
score=sco;
}
publicoverridevoidinfoPrint()
{
Console.WriteLine(" Student's ID: {0}", id);
Console.WriteLine(" Student's Name: {0}", name);
题〇:
【考察基本类的定义和使用】
编写一个矩形类,具有长(len)宽(wid)两个字段,默认构造函数为len和wid设置默认值,均为0,有参数构造函数根据传入参数的值为len和wid设置具体值。此外类包含以下几个方法:取长度、取宽度、计算周长、计算面积、修改矩形的长度、修改矩形的宽度等方法。

【考察静态方法、静态字段的意义和使用方式】
}
publicvirtualvoidinfoPrint()
{
Console.WriteLine("Id: {0}", id);
Console.WriteLine("Name: {0}", name);
}
}
classTeacher:Person
【答案】:
情况一:
//Person.cs
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
namespaceTeacherAndStudent
{
classPerson
{
protectedintid;
{
prod=myadd(prod, x);
}
returnprod;
}
publicintmyDiv(intx,inty)
{
intbalance = x;
intquot= 0;
while(balance >= y)
{
balance-= y;
quot++;
}Leabharlann Baidu
returnquot;
}
}
}
//Program.cs
}
}
}
题三
【考察继承与派生,protected与private的继承性,virtual方法与override功能】
编写一个学生和教师的信息打印程序。具体要求:定义一个Person类,包含编号、姓名两个字段,以及打印虚方法infoPrint。定义由Person类派生出得两个类:Teacher类和Student类。其中Teacher类额外包含职称、部门两个字段,及一个infoPrint的重写方法,用于打印teacher的全部信息;Student类额外包含班级号、成绩两个字段,和一个infoPrint的重写方法,用于打印Student的全部信息。
males++; //男生人数加1
if (sex == Gender.女)
females++; //女生人数加1
}
//返回男生人数
publicstaticintNumberMales()
{
returnmales;
}
//返回女生人数
publicstaticintNumberFemales()
{
Return females;
Console.WriteLine(" Student's Class number: {0}",classNum);
Console.WriteLine(" Student's Score: {0}", score);
}
}
}
//Program.cs
usingSystem;
usingSystem.Collections.Generic;
intb = 23;
JiajianjiajianObj=newJiajian();
intsum =jiajianObj.myadd(a, b);
Console.WriteLine("100+23={0}", sum);
intdif =jiajianObj.mysub(a, b);
Console.WriteLine("100-23={0}", dif);
/*publicJiajian(intxValue,intyValue)
{
x =xValue;
y =yValue;
}*/
publicintmyadd(intx,inty)
{
returnx + y;
}
publicintmysub(intx,inty)
{
returnx - y;
}
}
classChengchu:Jiajian
usingSystem.Linq;
usingSystem.Text;
namespaceTeacherAndStudent
{
classPerson
{
privateintid;
privatestringname;
publicPerson(intpid,stringpname)
{
id=pid;
name=pname;
t.infoPrint();
Console.WriteLine("A Student:");
Students =newStudent(101,"XiaYu", 2, 90);
s.infoPrint();
}
}
}
情况二:
//Person.cs
usingSystem;
usingSystem.Collections.Generic;
protectedstringname;
publicPerson(intpid,stringpname)
{
id=pid;
name=pname;
}
publicvirtualvoidinfoPrint()
{
Console.WriteLine("Person's Id: {0}", id);
Console.WriteLine("Person's Name: {0}", name);
ChengchuchengchuObj=newChengchu();
intprod =chengchuObj.myMul(a, b);
Console.WriteLine("100*23={0}", prod);
intquot=chengchuObj.myDiv(a, b);
Console.WriteLine("100/23={0}",quot);
}
} //class Person结束
classProgram
{
staticvoidMain(String[ ]args)
{
//创建Person型的数组对象,用来记录6个人的信息
Person[]ps= new Person [6];
ps[0] = new Person (“李伟峰”, Gender.男, 20);
usingSystem.Linq;
usingSystem.Text;
namespaceTeacherAndStudent
{
classProgram
{
staticvoidMain(string[]args)
{
Console.WriteLine("A Teacher:");
Teachert =newTeacher(86,"WangNing","professor","CS");
{
//privateintprod;
//privateintquot;
/*publicChengchu(intxValue,intyValue):base(xValue,yValue)
{
}*/
publicintmyMul(intx,inty)
{
intprod = 0;
for(inti=0;i<y;i++)
设计一个男女人数统计程序。定义一个Person类,包含姓名、性别、年龄三个私有字段。另包含males和females两个私有静态字段成员,用来记录男、女学生的人数;还有NumberMales和NumberFemales两个公有静态方法成员,这两个方法通过对静态字段males、females的访问返回男生总人数、女生总人数。设计其构造函数,要求完成每个Person对象的赋值和男女总人数的累加。
ps[1] = new Person (“郭小雨”, Gender.女, 19);
ps[2] = new Person (“赵荣”, Gender.男, 22);
ps[3] = new Person (“刘恒”, Gender.男, 21);
ps[4] = new Person (“陈晶晶”, Gender.女, 21);
Console.WriteLine(“女生人数: {0}”,NumOfFemales);
Console.WriteLine(“学生名单如下:”);
foreach(Person p inps)
{
Console.Write(“{0}\t”,p.Name);
}
Console.Write(‘\n’);
Console.ReadLine();
【答案】
//JiajianChengchu.cs
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
namespaceCalculate
{
classJiajian
{
//protectedintx, y;
ps[5] = new Person (“张馨”, Gender.女, 20);
intNumOfMales=Person.NumberMales();
intNumOfFemales=Person.NumberFemales();
Console.WriteLine(“男生人数: {0}”,NumOfMales);
Console.WriteLine(" Teacher's Department: {0}", department);
}
}
classStudent:Person
{
privateintclassNum;
privateintscore;
publicStudent(inttid,stringtname,intcNum,intsco)
}
}
}
题二
【考察具有继承和派生的程序的编写基本形式、乘除法应用加减法的实现逻辑】
编写一个程序,包含两个类,分别用于提供两个整数的加减运算和乘除运算功能,要求具有乘除运算功能的类派生自具有加减运算功能的类,且乘法和除法的实现都不可以使用C#的自有运算符“*”和“\”。主函数通过对定义的类的对象的生产完成两个整数100和23的加、减、乘、除,并输出运算结果。
【答案】
usingSystem;
namespaceExp0202
{
publicenumGender {男,女};
publicclass Person
{
//私有静态字段,分别统计男女人数
privatestaticintmales;
privatestaticintfemales;
//公有字段,描述个人信息
publicstring Name;
publicGender Sex;
publicintAge;
//构造函数,用来初始化对象
publicPerson (string name, Gender sex,intage)
{
Name = name;
Sex = sex;
Age = age;
if (sex == Gender.男)
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
namespaceCalculate
{
classProgram
{
staticvoidMain(string[]args)
{
inta = 100;
}
}
classTeacher:Person
{
privatestringtitle;
privatestringdepartment;
publicTeacher(inttid,stringtname,stringttitle,stringtdep)
:base(tid,tname)
{
title=ttitle;
相关文档
最新文档