类与继承练习题
更新时间:2023-11-27 11:48:01 阅读量: 教育文库 文档下载
- 类的继承推荐度:
- 相关推荐
题〇:
【考察基本类的定义和使用】
编写一个矩形类,具有长(len)宽(wid)两个字段,默认构造函数为len和wid设置默认值,均为0,有参数构造函数根据传入参数的值为len和wid设置具体值。此外类包含以下几个方法:取长度、取宽度、计算周长、计算面积、修改矩形的长度、修改矩形的宽度等方法。
题一:
【考察静态方法、静态字段的意义和使用方式】
设计一个男女人数统计程序。定义一个Person类,包含姓名、性别、年龄三个私有字段。另包含males和females两个私有静态字段成员,用来记录男、女学生的人数;还有NumberMales和NumberFemales两个公有静态方法成员,这两个方法通过对静态字段males、females的访问返回男生总人数、女生总人数。设计其构造函数,要求完成每个Person对象的赋值和男女总人数的累加。 【答案】
using System;
namespace Exp0202 {
public enum Gender {男, 女}; public class Person {
//私有静态字段,分别统计男女人数 private static int males; private static int females; //公有字段,描述个人信息 public string Name; public Gender Sex; public int Age;
//构造函数,用来初始化对象
public Person (string name, Gender sex, int age) {
Name = name; Sex = sex; Age = age;
if (sex == Gender.男)
males++; //男生人数加1 if (sex == Gender.女)
females++; //女生人数加1
}
//返回男生人数
public static int NumberMales() {
return males; }
//返回女生人数
public static int NumberFemales() {
Return females; }
} //class Person结束
class Program {
static void Main (String[ ] args) {
//创建Person型的数组对象,用来记录6个人的信息 Person[ ] ps = new Person [6];
ps[0] = new Person (“李伟峰”, Gender.男, 20); ps[1] = new Person (“郭小雨”, Gender.女, 19);
ps[2] = new Person (“赵荣”, Gender.男, 22); ps[3] = new Person (“刘恒”, Gender.男, 21); ps[4] = new Person (“陈晶晶”, Gender.女, 21); ps[5] = new Person (“张馨”, Gender.女, 20); int NumOfMales = Person.NumberMales(); int NumOfFemales = Person.NumberFemales();
Console.WriteLine(“男生人数: {0}”,NumOfMales); Console.WriteLine(“女生人数: {0}”,NumOfFemales); Console.WriteLine(“学生名单如下: ”); foreach (Person p in ps) {
Console.Write(“{0}\\t”, p.Name); }
Console.Write(‘\\n’); Console.ReadLine(); } } }
题二:
【考察具有继承和派生的程序的编写基本形式、乘除法应用加减法的实现逻辑】
编写一个程序,包含两个类,分别用于提供两个整数的加减运算和乘除运算功能,要求具有乘除运算功能的类派生自具有加减运算功能的类,且乘法和除法的实现都不可以使用C#的
自有运算符“*”和“\\”。主函数通过对定义的类的对象的生产完成两个整数100和23的加、减、乘、除,并输出运算结果。 【答案】
//JiajianChengchu.cs
using System;
using System.Collections.Generic; using System.Linq; using System.Text;
namespace Calculate {
class Jiajian {
//protected int x, y;
/*public Jiajian(int xValue, int yValue) {
x = xValue; y = yValue; }*/
public int myadd(int x, int y) {
return x + y; }
public int mysub(int x, int y) {
return x - y; } }
class Chengchu : Jiajian {
//private int prod; //private int quot;
/*public Chengchu(int xValue, int yValue):base(xValue, yValue) { }*/
public int myMul(int x, int y) {
int prod = 0; for(int i=0; i prod = myadd(prod, x); } return prod; } public int myDiv(int x, int y) { int balance = x; int quot = 0; while (balance >= y) { balance -= y; quot++; } return quot; } } } //Program.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Calculate { class Program { static void Main(string[] args) { int a = 100; int b = 23; Jiajian jiajianObj = new Jiajian(); int sum = jiajianObj.myadd(a, b); Console.WriteLine(\, sum); int dif = jiajianObj.mysub(a, b); Console.WriteLine(\, dif); Chengchu chengchuObj = new Chengchu(); int prod = chengchuObj.myMul(a, b); Console.WriteLine(\, prod); int quot = chengchuObj.myDiv(a, b); Console.WriteLine(\, quot); } } } 题三: 【考察继承与派生,protected与private的继承性,virtual方法与override功能】 编写一个学生和教师的信息打印程序。具体要求:定义一个Person类,包含编号、姓名两个字段,以及打印虚方法infoPrint。定义由Person类派生出得两个类:Teacher类和Student类。其中Teacher类额外包含职称、部门两个字段,及一个infoPrint的重写方法,用于打印teacher的全部信息;Student类额外包含班级号、成绩两个字段,和一个infoPrint的重写方法,用于打印Student的全部信息。 主函数中定义一个Student类对象,姓名:夏雨,编号:101,班级号:2,成绩:90;和一个Teacher类对象,姓名:王宁,编号:86,职称:教授,部门:计算机。并打印各自的信息。 考虑以下两种情况的编程细节差别: (1) Person中的编号和姓名为protected类型; (2) Person中的编号和姓名为private类型; 【答案】: 情况一: //Person.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace TeacherAndStudent { class Person { protected int id; protected string name; public Person(int pid, string pname) { id = pid; name = pname; } public virtual void infoPrint() { Console.WriteLine(\, id); Console.WriteLine(\, name); } } class Teacher : Person { private string title; private string department; public Teacher(int tid, string tname, string ttitle, string tdep) : base(tid, tname) { title = ttitle; department = tdep; } public override void infoPrint() { Console.WriteLine(\ Teacher's Id: {0}\, id); Console.WriteLine(\ Teacher's Name: {0}\, name); Console.WriteLine(\ Teacher's Title: {0}\, title); Console.WriteLine(\ Teacher's Department: {0}\, department); } } class Student : Person { private int classNum ; private int score; public Student(int tid, string tname, int cNum, int sco) : base(tid, tname) { classNum = cNum; score = sco; } public override void infoPrint() { Console.WriteLine(\ Student's ID: {0}\, id); Console.WriteLine(\ Student's Name: {0}\, name); Console.WriteLine(\ Student's Class number: {0}\, classNum); Console.WriteLine(\ Student's Score: {0}\, score); } } } //Program.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace TeacherAndStudent { class Program { static void Main(string[] args) { Console.WriteLine(\); Teacher t = new Teacher(86, \, \, \); t.infoPrint(); Console.WriteLine(\); Student s = new Student(101, \, 2, 90); s.infoPrint(); } } } 情况二: //Person.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace TeacherAndStudent { class Person { private int id; private string name; public Person(int pid, string pname) { id = pid; name = pname; } public virtual void infoPrint() { Console.WriteLine(\, id); Console.WriteLine(\, name); } } class Teacher : Person { private string title; private string department; public Teacher(int tid, string tname, string ttitle, string tdep) : base(tid, tname) { title = ttitle; department = tdep; } public override void infoPrint() { base.infoPrint(); Console.WriteLine(\, title); Console.WriteLine(\, department); } } class Student : Person { private int classNum ; private int score; public Student(int tid, string tname, int cNum, int sco) : base(tid, tname) { classNum = cNum; score = sco; } public override void infoPrint() { base.infoPrint(); Console.WriteLine(\, classNum); Console.WriteLine(\, score); } } } //Program.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace TeacherAndStudent { class Program { static void Main(string[] args) { Console.WriteLine(\); Teacher t = new Teacher(86, \, \, \); t.infoPrint(); Console.WriteLine(\); Student s = new Student(101, \, 2, 90); s.infoPrint(); } } }
正在阅读:
类与继承练习题11-27
校园的大槐树作文350字06-19
2012年证券从业资格考试《证券交易》考前辅导基础知识点精要06-09
南开大学金融硕士考研经验须知刘yx05-27
再论泥沙起动流速08-11
鄂教版小学语文六年级上期末冲刺卷三05-24
公园风险指南 - 图文06-03
2017新版PayPal怎么提现?02-09
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 练习题
- 继承
- 科瑞达CCT-5300 NEW系列说明书(简) - 图文
- 小学六年级下册数学复习试题
- 郑州铁路职业技术学院文件
- 家畜繁殖学试题B答案
- 四年级下册《书法练习指导》完整教案(模板格式) - 图文
- 优衣库实习报告
- 《浙江居住证申领表》及回执式样
- 2019年农村专业技术协会发展调研报告
- 2016年专业技术人员的常见心理问题和成因试题及答案
- 动作电位 - 图文
- 2010年广东省高考预测物理模拟试卷(三)
- 新疆电大网上作业与考核 应用写作(汉语)课程形考作业5及答案
- 高等数学期中A考卷及答案 海大
- 旅游地理考试期末试题
- 小学生健康教育教案
- 2《国际经济学》模拟试卷2
- 供电公司创新型QC成果报告国优案例 - 配电运检专业 - 图文
- 2018年湖北省襄阳市中考物理试卷(含答案)
- 2017-2018九年级二模物理试卷
- 2014届高三英语(译林牛津版)一轮复习题库 - 模块5 - Unit3 Science - and - nature - Word版含解析