Top >VB.NET 練習問題集

7. クラスⅠ

練習問題 7 - 1

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

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

Class Dog
    Private mName As String = ""    ' 名前

    Public Property Name() As String
        Get
            Return mName
        End Get
        Set(value As String)
            mName = value
        End Set
    End Property

    Public Sub ShowProfile()
        Console.WriteLine(mName)
    End Sub
End Class

Sub Main()
    Dim MyDog As New Dog()

    MyDog.Name = "ぽち"
    MyDog.ShowProfile()
End Sub

練習問題 7 - 2

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

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

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

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

Class Dog
    Private mName As String = ""    ' 名前
    Private mAge As Integer = 0     ' 年齢

    Public Property Name() As String
        Get
            Return mName
        End Get
        Set
            mName = value
        End Set
    End Property

    Public Property Age() As Integer
        Get
            Return mAge
        End Get
        Set
            mAge = value
        End Set
    End Property

    Public Sub ShowProfile()
        Console.WriteLine(mName & "," & mAge & "歳")
    End Sub
End Class

Sub Main()
    Dim MyDog As New Dog()

    MyDog.Name = "ぽち"
    MyDog.Age = 3
    MyDog.ShowProfile()
End Sub

練習問題 7 - 3

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

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

Sub Main()
    Dim Dog1 As New Dog()
    Dim Dog2 As New Dog()

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

練習問題 7 - 4

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

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

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

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

Class Dog
    Private mName As String = ""       ' 名前
    Private mAge As Integer = 0        ' 年齢
    Private mSpecies As String = ""    ' 犬種

    Public Sub New(species As String)
        mSpecies = species
    End Sub

    Public Property Name() As String
        Get
            Return mName
        End Get
        Set(value As String)
            mName = value
        End Set
    End Property

    Public Property Age() As Integer
        Get
            Return mAge
        End Get
        Set(value As Integer)
            mAge = value
        End Set
    End Property

    Public Sub ShowProfile()
        Console.WriteLine(mSpecies & "の" & mName & "," & mAge & "歳")
    End Sub
End Class

Sub Main()
    Dim MyDog As New Dog("秋田犬")

    MyDog.Name = "ぽち"
    MyDog.Age = 3
    MyDog.ShowProfile()
End Sub

練習問題 7 - 5

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

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

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

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

Class CoinCase
    Private Yen500 As Integer = 0    ' 500円硬貨の数
    Private Yen100 As Integer = 0    ' 100円硬貨の数
    Private Yen50 As Integer = 0     ' 50円硬貨の数
    Private Yen10 As Integer = 0     ' 10円硬貨の数
    Private Yen5 As Integer = 0      ' 5円硬貨の数
    Private Yen1 As Integer = 0      ' 1円硬貨の数

    Public Sub AddCoins(kind As Integer, count As Integer)
        Select Case kind
            Case 500
                Yen500 += count
                Exit Select
            Case 100
                Yen100 += count
                Exit Select
            Case 50
                Yen50 += count
                Exit Select
            Case 10
                Yen10 += count
                Exit Select
            Case 5
                Yen5 += count
                Exit Select
            Case 1
                Yen1 += count
                Exit Select
        End Select
    End Sub

    Public Function GetCount(kind As IntegerAs Integer
        Select Case 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
        End Select

        Return 0
    End Function

    Public Function GetAmount() As Integer
        Return (Yen500 * 500) + (Yen100 * 100) + (Yen50 * 50) + (Yen10 * 10) + (Yen5 * 5) + Yen1
    End Function
End Class

Sub Main()
    Dim MyCase As New CoinCase()

    For i As Integer = 0 To 9
        Console.Write("硬貨の種類は?")
        Dim kind As Integer = Integer.Parse(Console.ReadLine())
        Console.Write("硬貨の枚数は?")
        Dim count As Integer = Integer.Parse(Console.ReadLine())

        MyCase.AddCoins(kind, count)
    Next

    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() & "円")
End Sub

練習問題 7 - 6

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

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

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

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

Class CoinCase
    Private Yen500 As Integer = 0    ' 500円硬貨の数
    Private Yen100 As Integer = 0    ' 100円硬貨の数
    Private Yen50 As Integer = 0     ' 50円硬貨の数
    Private Yen10 As Integer = 0     ' 10円硬貨の数
    Private Yen5 As Integer = 0      ' 5円硬貨の数
    Private Yen1 As Integer = 0      ' 1円硬貨の数

    Public Sub AddCoins(kind As Integer, count As Integer)
        Select Case kind
            Case 500
                Yen500 += count
                Exit Select
            Case 100
                Yen100 += count
                Exit Select
            Case 50
                Yen50 += count
                Exit Select
            Case 10
                Yen10 += count
                Exit Select
            Case 5
                Yen5 += count
                Exit Select
            Case 1
                Yen1 += count
                Exit Select
        End Select
    End Sub

    Public Function GetCount(kind As IntegerAs Integer
        Select Case 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
        End Select

        Return 0
    End Function

    Public Function GetCount() As Integer
        Return Yen500 + Yen100 + Yen50 + Yen10 + Yen5 + Yen1
    End Function

    Public Function GetAmount(kind As IntegerAs Integer
        Select Case 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
        End Select

        Return 0
    End Function

    Public Function GetAmount() As Integer
        Return (Yen500 * 500) + (Yen100 * 100) + (Yen50 * 50) + (Yen10 * 10) + (Yen5 * 5) + Yen1
    End Function
End Class

Sub Main()
    Dim MyCase As New CoinCase()

    For i As Integer = 0 To 9
        Console.Write("硬貨の種類は?")
        Dim kind As Integer = Integer.Parse(Console.ReadLine())
        Console.Write("硬貨の枚数は?")
        Dim count As Integer = Integer.Parse(Console.ReadLine())

        MyCase.AddCoins(kind, count)
    Next

    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() & "円")
End Sub
PAPER BOWL
NEZEN