Top >C# 練習問題集

7. クラスⅠ

練習問題 7 - 1

以下の Dog クラスを使用して、次のプログラムを作成しなさい

  • Dog クラスのインスタンスを作成する
  • Name プロパティで名前を設定する
  • ShowProfile メソッドで名前を表示する

class Dog
{
    private string mName = "";    // 名前

    public string Name
    {
        get { return mName; }
        set { mName = value; }
    }

    public void ShowProfile()
    {
        Console.WriteLine(mName);
    }
}

class Exercise
{
    static void Main(string[] args)
    {
        Dog MyDog = new Dog();

        MyDog.Name = "ぽち";
        MyDog.ShowProfile();
    }
}

練習問題 7 - 2

前問の Dog クラスに、次の内容を追加しなさい

  • 年齢を保持する int 型のメンバー変数
  • 年齢を取得、設定するプロパティ、Age
  • ShowProfile メソッドで名前と年齢を表示するようにする

修正した Dog クラスを使用して次のプログラムを作成しなさい

  • Dog クラスのインスタンスを作成する
  • 名前と年齢を設定する
  • プロフィールを表示する

class Dog
{
    private string mName = "";    // 名前
    private int mAge = 0;         // 年齢

    public string Name
    {
        get { return mName; }
        set { mName = value; }
    }

    public int Age
    {
        get { return mAge; }
        set { mAge = value; }
    }

    public void ShowProfile()
    {
        Console.WriteLine(mName + "," + mAge + "歳");
    }
}

class Exercise
{
    static void Main(string[] args)
    {
        Dog MyDog = new Dog();

        MyDog.Name = "ぽち";
        MyDog.Age = 3;
        MyDog.ShowProfile();
    }
}

練習問題 7 - 3

前問の Dog クラスを使用して次のプログラムを作成しなさい

  • Dog クラスのインスタンスを2つ作成する
  • 1つ目のインスタンスに、名前と年齢を設定する
  • 2つ目のインスタンスに、名前と年齢を設定する
  • 1つ目のインスタンスの、プロフィールを表示する
  • 2つ目のインスタンスの、プロフィールを表示する

class Exercise
{
    static void Main(string[] args)
    {
        Dog Dog1 = new Dog();
        Dog Dog2 = new Dog();

        Dog1.Name = "ぽち";
        Dog1.Age = 3;
        Dog2.Name = "ジョン";
        Dog2.Age = 5;
        Dog1.ShowProfile();
        Dog2.ShowProfile();
    }
}

練習問題 7 - 4

前問の Dog クラスに、次の内容を追加しなさい

  • 犬種を保持する string 型のメンバー変数
  • 犬種を設定する引数( string )を持つコンストラクタ
  • ShowProfile メソッドで、犬種、名前、年齢、を表示するようにする

修正した Dog クラスを使用して次のプログラムを作成しなさい

  • 犬種を指定して Dog クラスのインスタンスを作成する
  • 名前と年齢を設定する
  • プロフィールを表示する

class Dog
{
    private string mName = "";       // 名前
    private int mAge = 0;            // 年齢
    private string mSpecies = "";    // 犬種

    public Dog(string species)
    {
        mSpecies = species;
    }

    public string Name
    {
        get { return mName; }
        set { mName = value; }
    }

    public int Age
    {
        get { return mAge; }
        set { mAge = value; }
    }

    public void ShowProfile()
    {
        Console.WriteLine(
            mSpecies + "の" + mName + "," + mAge + "歳");
    }
}

class Exercise
{
    static void Main(string[] args)
    {
        Dog MyDog = new Dog("秋田犬");

        MyDog.Name = "ぽち";
        MyDog.Age = 3;
        MyDog.ShowProfile();
    }
}

練習問題 7 - 5

硬貨の入れ物のようなクラス、CoinCase を作成しなさい

  • 500 円、100 円、50 円、10 円、5 円、1 円が、それぞれ何枚あるかを管理する
  • AddCoins メソッドで硬貨を追加する
    引数は硬貨の種類( int )と枚数( int )
  • GetCount メソッドで、指定した硬貨が何枚あるかを取得する
    引数は硬貨の種類( int )、戻り値は枚数( int )
  • GetAmount メソッドで、硬貨の総額を取得する
    引数はなし、戻り値は硬貨の総額( int )

CoinCase クラスを使用して次のプログラムを作成しなさい

  • CoinCase クラスのインスタンスを作成する
  • 種類と枚数を入力し、AddCoins メソッドで硬貨を追加することを 10 回繰り返す
  • 各硬貨の枚数を表示する
  • 硬貨の総額を表示する

class CoinCase
{
    private int Yen500 = 0;    // 500円硬貨の数
    private int Yen100 = 0;    // 100円硬貨の数
    private int Yen50 = 0;     // 50円硬貨の数
    private int Yen10 = 0;     // 10円硬貨の数
    private int Yen5 = 0;      // 5円硬貨の数
    private int Yen1 = 0;      // 1円硬貨の数

    public void AddCoins(int kind, int count)
    {
        switch(kind)
        {
            case 500:
                Yen500 += count;
                break;
            case 100:
                Yen100 += count;
                break;
            case 50:
                Yen50 += count;
                break;
            case 10:
                Yen10 += count;
                break;
            case 5:
                Yen5 += count;
                break;
            case 1:
                Yen1 += count;
                break;
        }
    }

    public int GetCount(int kind)
    {
        switch(kind)
        {
            case 500:
                return Yen500;
            case 100:
                return Yen100;
            case 50:
                return Yen50;
            case 10:
                return Yen10;
            case 5:
                return Yen5;
            case 1:
                return Yen1;
        }

        return 0;
    }

    public int GetAmount()
    {
        return (Yen500 * 500) + (Yen100 * 100) + (Yen50 * 50)
                + (Yen10 * 10) + (Yen5 * 5) + Yen1;
    }
}

class Exercise
{
    static void Main(string[] args)
    {
        CoinCase MyCase = new CoinCase();

        for(int i = 0 ; i < 10 ; i++)
        {
            Console.Write("硬貨の種類は?");
            int kind = int.Parse(Console.ReadLine());
            Console.Write("硬貨の枚数は?");
            int count = int.Parse(Console.ReadLine());

            MyCase.AddCoins(kind, count);
        }

        Console.WriteLine("500円は" + MyCase.GetCount(500) + "枚");
        Console.WriteLine("100円は" + MyCase.GetCount(100) + "枚");
        Console.WriteLine("50円は" + MyCase.GetCount(50) + "枚");
        Console.WriteLine("10円は" + MyCase.GetCount(10) + "枚");
        Console.WriteLine("5円は" + MyCase.GetCount(5) + "枚");
        Console.WriteLine("1円は" + MyCase.GetCount(1) + "枚");
        Console.WriteLine("総額は" + MyCase.GetAmount() + "円");
    }
}

練習問題 7 - 6

前問の CoinCase クラスに、次の内容を追加しなさい

  • 総ての硬貨の枚数を取得する、引数なしの GetCount メソッド
  • 指定した種類の硬貨の総額を取得する、引数のある GetAmount メソッド

修正した CoinCase クラスを使用して次のプログラムを作成しなさい

  • CoinCase クラスのインスタンスを作成する
  • 種類と枚数を入力し、AddCoins メソッドで硬貨を追加することを 10 回繰り返す
  • 各硬貨の枚数と金額を表示する
  • 硬貨の総枚数を表示する
  • 総額を表示する

class CoinCase
{
    private int Yen500 = 0;    // 500円硬貨の数
    private int Yen100 = 0;    // 100円硬貨の数
    private int Yen50 = 0;     // 50円硬貨の数
    private int Yen10 = 0;     // 10円硬貨の数
    private int Yen5 = 0;      // 5円硬貨の数
    private int Yen1 = 0;      // 1円硬貨の数

    public void AddCoins(int kind, int count)
    {
        switch(kind)
        {
            case 500:
                Yen500 += count;
                break;
            case 100:
                Yen100 += count;
                break;
            case 50:
                Yen50 += count;
                break;
            case 10:
                Yen10 += count;
                break;
            case 5:
                Yen5 += count;
                break;
            case 1:
                Yen1 += count;
                break;
        }
    }

    public int GetCount(int kind)
    {
        switch(kind)
        {
            case 500:
                return Yen500;
            case 100:
                return Yen100;
            case 50:
                return Yen50;
            case 10:
                return Yen10;
            case 5:
                return Yen5;
            case 1:
                return Yen1;
        }

        return 0;
    }

    public int GetCount()
    {
        return Yen500 + Yen100 + Yen50 + Yen10 + Yen5 + Yen1;
    }

    public int GetAmount( int kind )
    {
        switch( kind )
        {
            case 500:
                return Yen500 * 500;
            case 100:
                return Yen100 * 100;
            case 50:
                return Yen50 * 50;
            case 10:
                return Yen10 * 10;
            case 5:
                return Yen5 * 5;
            case 1:
                return Yen1 * 1;
        }

        return 0;
    }

    public int GetAmount()
    {
        return (Yen500 * 500) + (Yen100 * 100) + (Yen50 * 50)
                + (Yen10 * 10) + (Yen5 * 5) + Yen1;
    }
}

class Exercise
{
    static void Main(string[] args)
    {
        CoinCase MyCase = new CoinCase();

        forint i = 0 ; i < 10 ; i++ )
        {
            Console.Write("硬貨の種類は?");
            int kind = int.Parse(Console.ReadLine());
            Console.Write("硬貨の枚数は?");
            int count = int.Parse(Console.ReadLine());

            MyCase.AddCoins( kind, count );
        }

        Console.WriteLine("500円は" + MyCase.GetCount(500)
                        + "枚、" + MyCase.GetAmount(500) + "円");
        Console.WriteLine("100円は" + MyCase.GetCount(100)
                        + "枚、" + MyCase.GetAmount(100) + "円");
        Console.WriteLine("50円は" + MyCase.GetCount(50)
                        + "枚、" + MyCase.GetAmount(50) + "円");
        Console.WriteLine("10円は" + MyCase.GetCount(10)
                        + "枚、" + MyCase.GetAmount(10) + "円");
        Console.WriteLine("5円は" + MyCase.GetCount(5 )
                        + "枚、" + MyCase.GetAmount(5) + "円");
        Console.WriteLine("1円は" + MyCase.GetCount(1)
                        + "枚、" + MyCase.GetAmount(1) + "円");
        Console.WriteLine("全部で" + MyCase.GetCount() + "枚");
        Console.WriteLine("総額は" + MyCase.GetAmount() + "円");
    }
}
PAPER BOWL
NEZEN