C# 类 封装 属性 练习题

发布于:2025-08-17 ⋅ 阅读:(19) ⋅ 点赞:(0)

目录

1、封装一个类:Aircraft,拥有属性:牌子、型号、颜色、隶属公司、飞行速度、装载人数、飞机类型(大中小(400-200-100)由装载人数自动设置)、当前飞机装载的人数(随机生成)

2、编一个程序,定义类(有姓名,年龄,手机号码三个字段),再定义一个一维数组,使数组元素为类,存入数据,然后依次输出,使用for循环语句进行输入输出操作。

3、编一个程序,定义一个类,该类中定义二个非静态方法,一个方法用来求出这个三角形的周长,另一个方法用来求出这个三角形的面积。已知三角形三条边a,b,c,计算其面积可以用Math类中的Sqrt()方法,有表达式(s*(s-a)*(s-b)*(s-c)),可以利用它计算指定数的开方,其中s=(a+b+c)/2。在主方法中输入一个三角形三条边a,b,c,要求调用这二个非静态方法计算三角形的周长和面积。注意:在输入三角形三条边时,必须检查它们的数据合法性。

4、建立三个类:居民、成人、官员。居民包含身份证号、姓名、出生日期,而成人继承自居民,多包含学历、职业两项数据;官员则继承自成人,多包含党派、职务两项数据。要求每个类中都提供数据输入输出的功能。


1、封装一个类:Aircraft,拥有属性:牌子、型号、颜色、隶属公司、飞行速度、装载人数、飞机类型(大中小(400-200-100)由装载人数自动设置)、当前飞机装载的人数(随机生成)
using System.Drawing;

namespace _1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //1.封装一个类:Aircraft,拥有属性:牌子、型号、颜色、隶属公司、飞行速度、装载人数、飞机类型(大中小(400-200-100)由装载人数自动设置)、当前飞机装载的人数(随机生成)
            Aircraft Air=new Aircraft ("空客 (Airbus)", "A350 XWB","白色", "宇航",500);
            Air.random(); //随机生成当前飞机装载的人数
            Air.Judge(); //判断使用的飞机类型
            Air.Show(); //打印

            Aircraft Air1 = new Aircraft("安东诺夫(Antonov)", "An-124", "蓝色", "乌克兰军事航空", 400);
            Air1.random(); //随机生成当前飞机装载的人数
            Air1.Judge(); //判断使用的飞机类型
            Air1.Show(); //打印
        }
    }

    class Aircraft
    {
        public string PZ;            //飞机牌子
        public string Model;        //飞机型号
        public string Color;       //飞机颜色
        public string Company;    //飞机隶属公司
        public double Speed;     //飞机飞行速度
        public int People;      //飞机装载人数  
        public int Now_People; //当前飞机装载的人数
        public enum Etype   //飞机类型枚举
        {
            大 = 400, 中 = 200, 小 = 100
        }
        public Etype Type;  //飞机类型
        public Aircraft(string pZ, string model, string color, string company, double speed)
        {
            PZ = pZ;
            Model = model;
            Color = color;
            Company = company;
            Speed = speed;
        }
        public void random()
        {
            Random n = new Random();
            Now_People = n.Next(0, 401);
        }
        public void Judge()
        {
            if (Now_People <= 100)
            { 
                Type = Aircraft.Etype.小;
            }
            else if (Now_People > 200)
            { 
                Type = Aircraft.Etype.大;
            }
            else 
            {
                Type = Aircraft.Etype.中;
            }
            People = (int)Type;
        }
        public void Show()
        {
            Console.WriteLine($"飞机的牌子{PZ}、型号{Model}、颜色{Color}、隶属公司{Company}、飞行速度{Speed}km/h、装载人数{People}、飞机类型{Type}型、当前飞机装载的人数{Now_People}");
        }

    }
}
2、编一个程序,定义类(有姓名,年龄,手机号码三个字段),再定义一个一维数组,使数组元素为类,存入数据,然后依次输出,使用for循环语句进行输入输出操作。
 internal class Program
 {
     static void Main(string[] args)
     {
         ID[] str = new ID[3];
         for (int i = 0; i < 3; i++)
         {
             str[i] = new ID();
             Console.Write("请输入姓名:");
             str[i].Name = Console.ReadLine();
             Console.Write("请输入年龄:");
             str[i].Age = int.Parse(Console.ReadLine());
             Console.Write("请输入手机号码:");
             str[i].Telephone = Console.ReadLine();
             Console.WriteLine($"\r\n姓名:{str[i].Name}\r\n年龄:{str[i].Age}\r\n手机号码:{str[i].Telephone}\r\n");
         }
     }
 }

 class ID 
 {
     public string Name;
     public int Age;
     public string Telephone;
 }
3、编一个程序,定义一个类,该类中定义二个非静态方法,一个方法用来求出这个三角形的周长,另一个方法用来求出这个三角形的面积。已知三角形三条边a,b,c,计算其面积可以用Math类中的Sqrt()方法,有表达式(s*(s-a)*(s-b)*(s-c)),可以利用它计算指定数的开方,其中s=(a+b+c)/2。在主方法中输入一个三角形三条边a,b,c,要求调用这二个非静态方法计算三角形的周长和面积。注意:在输入三角形三条边时,必须检查它们的数据合法性。
internal class Program
{
    static void Main(string[] args)
    {
        TRI tri=new TRI ();
        Console.WriteLine("请输入三角形的三条边长:");
        tri.a =int.Parse(Console.ReadLine());
        tri.b=int.Parse(Console.ReadLine());
        tri.c=int.Parse(Console.ReadLine());

        if (tri.a + tri.b > tri.c && tri.a + tri.c > tri.b && tri.c + tri.b > tri.a)
        {
            Console.WriteLine(tri.CCC());
            Console.WriteLine(tri.SSS());
        }
        else
        {
            Console.WriteLine("不能组成三角形:");
        }
    }
}
class TRI
{
    public int a;
    public int b;
    public int c;

    //public TRI(int a, int b, int c)
    //{
    //    this.a = a;
    //    this.b = b;
    //    this.c = c;
    //}
    public int CCC() { int C = a + b + c; return C; }
    public double  SSS() { double s = (a + b + c) / 2;double S = (s * (s - a) * (s - b) * (s - c)); return S; }
}
4、建立三个类:居民、成人、官员。居民包含身份证号、姓名、出生日期,而成人继承自居民,多包含学历、职业两项数据;官员则继承自成人,多包含党派、职务两项数据。要求每个类中都提供数据输入输出的功能。
namespace _2
{
    internal class Program
    {
        static void Main(string[] args)
        {
            JM mj= new JM(); 
            mj.Read();  //数据输入
            mj.Write(); //数据输出

            CR Li= new CR();
            Li.Read(); //数据输入
            Li.Write();//数据输出

            GY guan= new GY();
            guan.Read();      //数据输入
            guan.Write();     //数据输出
        }
    }
}
namespace _2
{
    internal class JM
    {
        public  string ID;
        public string Name;
        public string Birth;

        public virtual void Read()
        {
            Console.Write("请输入身份证号:");
            ID=Console.ReadLine();
            Console.Write("请输入姓名:");
            Name=Console.ReadLine();
            Console.Write("请输入出生日期:");
            Birth=Console.ReadLine();
        }

        public virtual void Write()
        {
            Console.WriteLine($"\n身份证号:{ID}\n姓名:{Name}\n出生日期:{Birth}\n");
        }

    }
}
namespace _2
{
    internal class CR:JM
    {
        public  string Education;
        public  string Occupation;

        public override void Read()
        {
            base.Read();//继承父类此函数中的全部内容

            Console.Write("请输入学历:");
            Education=Console.ReadLine();
            Console.Write("请输入职业:");
            Occupation=Console.ReadLine();
        }

        public override void Write()
        {
            Console.WriteLine($"\n身份证号:{ID}\n姓名:{Name}\n出生日期:{Birth}学历:{Education}\n职业:{Occupation}\n");
        }
    }
}
namespace _2
{
    internal class GY:CR
    {

        public string Party;         //党派
        public string position;     //职务

        public override void Read()
        {
            base.Read();
            Console.Write("请输入党派:");
            Party=Console.ReadLine();
            Console.Write("请输入职务:");
            position=Console.ReadLine();
        }

        public override void Write()
        {
            Console.WriteLine($"\n身份证号:{ID}\n姓名:{Name}\n出生日期:{Birth}学历:{Education}\n职业:{Occupation}\n党派:{Party}\n职务:{position}\n");
        }
    }
}

网站公告

今日签到

点亮在社区的每一天
去签到