@laketych
Баскетболистный программист

Как отобразить второй параметр класса?

Доброго времени суток!
Здание звучит так -> нужно реализовать стек, в который будут помещены вагоны; класс вагон имеет тип(а/б - еще не доделал) и его уникальный номер.
Проблема заключается в том, что когда я вывожу элементы вагона, мне выводит только один его параметр(номер).
Я уже пытался сделать, но все равно не получилось.
Уже долгое время сижу на этом, не знаю что надо изменить ...

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

interface IStack {
    Boolean Empty();
    object Pop();
    object Push(object element1);
    object Peek();
    void Display();
}

class Carriage {
    public int CarriageNumber {
        get; protected set;
    }

    public string CarriageType
    {
        get; protected set;
    }

    public Carriage(string type, int number)
    {
        this.CarriageNumber = number;
        this.CarriageType = type;
    }

    public override string ToString()
    {
        return CarriageNumber.ToString();
    }
}

class Stack : IStack
{
    int StackSize;
    int top;
    object[] item1, item2;

    public int StackSizeProperty
    {
        get { return StackSize; }
        set { StackSize = value; }
    }

    public Stack()
    {
        StackSizeProperty = 10;
        item1 = new object[StackSize];
        top = 0;
    }

    public Stack(int capacity)
    {
        StackSizeProperty = capacity;
        item1 = new object[StackSizeProperty];
        top = 0;
    }

    public bool Empty()
    {
        if (top == 0)
        {
            return true;
        }
        return false;
    }

    public object Push(object element1)
    {
        if (top == StackSize)
        {
            Console.WriteLine("Stack is full.\n");
            return "Stack is full.";
        }
        else
        {
            item1[++top] = element1;
            Console.WriteLine("Item was been pushed.\n");
            return "item was been pushed.";
        }
    }

    /*public void Entering() {
        Console.Write("\n\tEnter the type of train: ");
        string CarriageType = Console.ReadLine();
        Console.Write("\tEnter the number of train: ");
        int CarriageNumber = int.Parse(Console.ReadLine());
    }*/

    public object Pop()
    {
        if (Empty())
        {
            Console.WriteLine("Stack is empty.\n");
            return "Nothing.";
        }
        else
        {
            return item1[top--];
        }
    }

    public object Peek()
    {
        if (Empty())
        {
            Console.WriteLine("Stack is empty.\n");
            return "Nothing.";
        }
        else
        {
            return item1[top];
        }
    }

    public void Display()
    {
        int element2 = top;
        for (int element1 = top; element1 > 0; element1--)
        {
            Console.WriteLine("Item " + element1 + ": " + item1[element1]);
        }
    }

    public void Exit()
    {
        do
        {
        } while (Console.ReadKey().Key != ConsoleKey.Escape);
    }
}

class MainProgramStacks {
    static void Main() {
        Stack FullStack  = new Stack();
        Stack AtypeStack = new Stack();
        Stack BtypeStack = new Stack();

        int choice;
        while (true) {
            Console.WriteLine("- -- --- Menu --- -- -");
            Console.WriteLine("- 1 - Add an element -"); //Push()
                                                         // Pop()
                                                         //Peek()
            Console.WriteLine("- 2 - Display stacks -"); //Exit()
            Console.WriteLine("- 3 -     Exit       -");
            choice = int.Parse(Console.ReadLine());
            
            switch (choice) {
                case 1:
                    Console.Write("\n\tEnter the type of train: ");
                    string CarriageType = Console.ReadLine();
                    Console.Write("\tEnter the number of train: ");
                    int CarriageNumber = int.Parse(Console.ReadLine());
                    Carriage myCarriage = new Carriage(CarriageType, CarriageNumber);
                    FullStack.Push(myCarriage); 
                    break;
                case 2:
                    FullStack.Display();
                    break;
                case 3:
                    FullStack.Exit();
                    break;
            }
        }
    }
}


Заранее благодарен!
  • Вопрос задан
  • 65 просмотров
Решения вопроса 1
AlexanderYudakov
@AlexanderYudakov
C#, 1С, Android, TypeScript
Меняем это:

public override string ToString()
{
return CarriageNumber.ToString();
}

на это:

public override string ToString()
{
return CarriageNumber.ToString() + " " + CarriageType;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Кнопка Екатеринбург
До 100 000 руб.
EVEN Foundation Москва
от 120 000 до 200 000 руб.
Payment Systems Москва
от 160 000 до 200 000 руб.
21 авг. 2018, в 11:52
70000 руб./за проект
21 авг. 2018, в 11:28
1000 руб./за проект
21 авг. 2018, в 11:24
40000 руб./за проект