Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> C#, программa которая выводит на экран меню 
:(
    Опции темы
Annna96
Дата 14.2.2016, 01:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 14.2.2016

Репутация: нет
Всего: нет



Всем привет ! Учусь в швеции на шведском языке ! Дали задание написать программу, которая выводит на экран меню и может обрабатывать ввод и вывод. Программа представляет собой" рюкзак", который управляется через меню. Меню показывает доступные пользователю варианты.(сами варианты: 1Добавить объект , 2Вывести содержание, 3Очистить содержание , 4 Закончить программу).По итогу не поняла как можно очистить содержание , поэтомy сделалa без этого варианта
У меня получился такой код :
namespace ConsoleApplication4
{
class Uppgiftt2
{
static void Main(string[] args)
{
bool sluta = true;
while (sluta)


{ 
Console.WriteLine("\n\tHej och varmt välkomen till mitt program!");
Console.WriteLine("\t[1]Lägg till ett föremål.");
Console.WriteLine("\t[2]Skriv ut innehålet.");
Console.WriteLine("\t[3]Avsluta.");
Console.WriteLine("\tVälj: ");





int Val = Convert.ToInt32(Console.ReadLine());

switch (Val)
{
case 1:
Console.WriteLine("Lägg till föremål");
string formal = Console.ReadLine();


break;
case 2:
Console.WriteLine("\t[1]Lägg till ett föremål.");
Console.WriteLine("\t[2]Skriv ut innehålet.");
Console.WriteLine("\t[3]Avsluta.");
Console.ReadLine();

break;

case 3:
sluta = false;
break;
}
}


}
}
}



Кoментарий от учителя :"У тебя меню стоит на 2 месте программы, это не должна стоять в case 2. Вы получаете проблемы с переменными объектов являются локальными для case 1, поэтому не доступны для остальной части программы"


Пожалуйста обясните в чем ошибки и помогите исправить.!
PM MAIL   Вверх
solowey
Дата 14.2.2016, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 0
Регистрация: 24.11.2009

Репутация: нет
Всего: нет



Могу посоветовать разбить программу на функции:
1. Main()
2. Добавить объект
3. Вывести содержание
4. Очистить содержание
5. Закончить программу
В Main создаем цикл while:
Код

switch (Val)
{
case 1:
СоздаемОбъект();
break;

case 2:
ВывестиСодержимое();
break;

case 3:
ОчиститьСодержимое();
break;

case 4:
ЗакончитьПрограмму();
break;
}
}

Далее каждую функцию дописываем, что и как в ней должно делаться...

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
WERITAS
Дата 15.2.2016, 07:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


********
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 2.5.2005
Где: Москва

Репутация: нет
Всего: 5



Я бы сделал класс аля ConsoleInterface у которого был бы один пабликовский метод - Run(), а в нём бы была вся логика с бесконечным циклом while и кейсами. Ну а в маиновской функции были бы только две строчки: создание экземпляра моего класса и вызов его единственного метода Run.
Annna96,  smile 


--------------------
Арт-менеджер клуба, разрешивший концерт Алексея Глызина, уволен с формулировкой "Мудак"
PM MAIL   Вверх
chupachups
Дата 15.2.2016, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 0
Регистрация: 15.10.2008

Репутация: нет
Всего: 1



Вот поколение "ПАМПЕРС" !!! Даже комментарии препода через гугл-переводчик перевел !!! И как только мы учились когда не было ни интернета, ни собственно нормальных книг по программированию ?!

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
WERITAS
Дата 15.2.2016, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


********
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 2.5.2005
Где: Москва

Репутация: нет
Всего: 5



Цитата(chupachups @  15.2.2016,  12:41 Найти цитируемый пост)
И как только мы учились когда не было ни интернета, ни собственно нормальных книг по программированию ?!

"Зато у нас были травка и групповой секс" (с), фрау Недотрахер из  "Ночь живых придурков"


--------------------
Арт-менеджер клуба, разрешивший концерт Алексея Глызина, уволен с формулировкой "Мудак"
PM MAIL   Вверх
WERITAS
  Дата 15.2.2016, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


********
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 2.5.2005
Где: Москва

Репутация: нет
Всего: 5



Код

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

namespace LabaAnnechki
{
    class ConsoleInterface
    {
        private void AddObject()
        {
            //
        }

        private void ShowContent()
        {
            //
        }

        private void ClearContent()
        {
            //
        }

        private int PrintMenu()
        {
            Console.WriteLine("\n\t === МЕНЮ ===");
            Console.WriteLine("\t[1] Добавить объект.");
            Console.WriteLine("\t[2] Вывести содержимое.");
            Console.WriteLine("\t[3] Очистить содержание");
            Console.WriteLine("\t[4] закончить программу");
            
            Console.Write("\nВаш выбор: ");
            
            int result;
            string choice = Console.ReadLine();

            if (! int.TryParse(choice, out result))
                PrintMenu();

            return result;
        }

        public void Run()
        {
            bool terminate = false;

            while (!terminate)
            {
                int val = PrintMenu();

                switch (val)
                {
                    case 1:
                        AddObject();
                        break;
                    
                    case 2:
                        ShowContent();
                        break;
                    
                    case 3:
                        ClearContent();
                        break;

                    case 4:
                        terminate = true;
                        break;
                }
            }
        }
    }


    class Program
    {
        static void Main(string[] args)
        {
            ConsoleInterface console = new ConsoleInterface();
            console.Run();

            Console.Write("\npress any key to continue...");
            Console.ReadLine();
        }
    }
}


...Действительно не надо было печать меню в кейс запихивать, смысл в этом какой?!


--------------------
Арт-менеджер клуба, разрешивший концерт Алексея Глызина, уволен с формулировкой "Мудак"
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0509 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.