Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
38 / 27 / 13
Регистрация: 18.12.2019
Сообщений: 423
Записей в блоге: 1
1

Консольное приложение, состоящее из двух классов "UserInterface" и "ApplicationSettingsHelper "

18.10.2022, 17:29. Показов 293. Ответов 3

Author24 — интернет-сервис помощи студентам
Доброго времени суток.
Есть вот такое вот задание:

Разработать консольное приложение, состоящее из двух классов:
 класс UserInterface предоставляет пользователю возможность
изменять настройки окна приложения (цвет фона и текста консоли,
размер окна, заголовок и др.);
 класс ApplicationSettingsHelper хранит настройки окна приложения,
а также позволяет их считывать из файла и записывать в файл
Я честно говоря не совсем представляю как его делать, что, где и в каком виде должно быть.

Помогите, пожалуйста разобраться, хотя бы с "костяком". Заранее благодарен за любую помощь.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.10.2022, 17:29
Ответы с готовыми решениями:

Сделать консольное приложение с использованием классов
Объект - вектор. Поля - координаты концов. Методы - длина вектора. Координаты векторы, скалярное...

Создать приложение, состоящее из двух форм
Создать приложение с меню, состоящее из трех пунктов: Вкладка, на которой будет картинка, кнопка с...

Приложение, состоящее из двух выполняемых файлов
Добрый день! Нужна ваша помощь форумчане. Может у кого-то есть проект(пример) простенького...

Создайте приложение, состоящее из двух форм
Создайте приложение, состоящее из двух форм. На первой форме расположите: кнопку «Открыть»;...

Создать приложение, состоящее из двух форм.
Создать приложение, состоящее из двух форм. На первой форме расположить: кнопку «Показать форму...

3
702 / 440 / 233
Регистрация: 03.01.2017
Сообщений: 1,256
18.10.2022, 18:34 2
atorvik, сделал одним классом, собственно сам класс
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
    public class UserInterface
    {
        public ConsoleColor BackgroundColor { get; set; }
        public ConsoleColor ForegroundColor { get; set; }
        public int WindowWidth { get; set; }
        public int WindowHeight { get; set; }
        public string Title { get; set; }
        public void Save()
        {
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(UserInterface));
            using (FileStream fs = new FileStream("UserInterface.xml", FileMode.Create))
            {
                xmlSerializer.Serialize(fs, this);
            }
        }
        public static UserInterface Restore()
        {
            UserInterface userInterface;
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(UserInterface));
            using (FileStream fs = new FileStream("UserInterface.xml", FileMode.Open))
            {
                userInterface = xmlSerializer.Deserialize(fs) as UserInterface;
            }
            return userInterface;
        }
        public void Apply()
        {
            Console.BackgroundColor = BackgroundColor;
            Console.ForegroundColor = ForegroundColor;
            Console.WindowWidth = WindowWidth;
            Console.WindowHeight = WindowHeight;
            Console.Title = Title;
        }
    }
Использование при сохранении
C#
1
2
3
4
5
6
7
8
9
            UserInterface userInterface = new UserInterface()
            {
                BackgroundColor = Console.BackgroundColor,
                ForegroundColor = Console.ForegroundColor,
                WindowWidth = Console.WindowWidth,
                WindowHeight = Console.WindowHeight,
                Title = "Привет медвед"
            };
            userInterface.Save();
Использование при восстановлении настроек
C#
1
2
            UserInterface userInterface = UserInterface.Restore();
            userInterface.Apply();
1
38 / 27 / 13
Регистрация: 18.12.2019
Сообщений: 423
Записей в блоге: 1
18.10.2022, 19:31  [ТС] 3
Увидел, аж неудобно стало. Но спасибо за желание помочь поставлю.

Нужно что-то типа этого, не выше этого "уровня языка". Собственно с сохранением и загрузкой буду отдельно возиться, о ней пока не думаю. Будет для нее отдельно два пункта ("сохранить", "загрузить") в главном меню.

Это пока наброски, да кривые, но я пытаюсь не унывать

task\Program.cs
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
namespace task
{
    internal class Program
    {
        /*
         Разработать консольное приложение, состоящее из двух классов:
            класс UserInterface предоставляет пользователю возможность 
           изменять настройки окна приложения (цвет фона и текста консоли, 
           размер окна, заголовок и др.);
            класс ApplicationSettingsHelper хранит настройки окна приложения, 
           а также позволяет их считывать из файла и записывать в файл
         */
 
        static void Main(string[] args)
        {
            UserInterface ui = new UserInterface();
            ui.MainMenu();
 
 
 
 
        }
    }
}
task\UserInterface.cs
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
namespace task
{
    // Предоставляет пользователю возможность изменять настройки окна приложения (цвет фона и текста консоли, размер окна, заголовок и др.).
    internal class UserInterface
    {
        // Хранит все настройки консоли.
        private ApplicationSettingsHelper? ahs;
 
        // Массив со значениями членов перечисления ConsoleColor.
        private ConsoleColor[] colors = (ConsoleColor[])ConsoleColor.GetValues(typeof(ConsoleColor));
 
        // Сохранение исходного цвета фона и переднего плана.
        private ConsoleColor currentBackground = Console.BackgroundColor;
        private ConsoleColor currentForeground = Console.ForegroundColor;
 
        // Сохранение исходного размера окна.
        int origWidth = Console.WindowWidth;
        int origHeight = Console.WindowHeight;
 
        // Главное меню.
        public void MainMenu()
        {
            Console.WriteLine(@"1. Цвет фона консоли.
2. Цвет текста консоли.
3. Размер окна.");
            Console.WriteLine();
            Console.WriteLine("Я выбираю: ");
            string choice = Console.ReadLine();
 
            switch (choice)
            {
                case "1":
                    BackgroundColor();
                    break;
                case "2":
                    Console.WriteLine("Цвет текста консоли.");
 
                    break;
                case "3":
                    Console.WriteLine("Размер окна.");
 
                    break;
            }
        }
 
        // Цвет фона консоли.
        private void BackgroundColor()
        {
            Console.Clear();
            Console.WriteLine("Цвет фона консоли.");
 
            // Отображение всех цветов переднего плана, кроме того, который соответствует фону.
            Console.WriteLine("Все цвета переднего плана, кроме {0}, который соответствует фону:",
                currentBackground);
 
            for (int i = 0; i < colors.Length; i++)
            {
                if (colors[i] == currentBackground) continue;
 
                Console.ForegroundColor = colors[i];
                Console.WriteLine("   {0}. Цвет переднего плана {1}.", i, colors[i]);
            }
            Console.WriteLine();
 
            Console.WriteLine();
            Console.WriteLine("Я выбираю : ");
            int foreColorSelection = Convert.ToInt32(Console.ReadLine());
            ahs.ConsoleBackgroundColor = colors[foreColorSelection];
        }
 
    }
}
 
 
/*
         * Цвет переднего плана DarkBlue.    | db
           Цвет переднего плана DarkGreen.   | dg
           Цвет переднего плана DarkCyan.    | dc
           Цвет переднего плана DarkRed.     | dr
           Цвет переднего плана DarkMagenta. | dm
           Цвет переднего плана DarkYellow.  | dy
           Цвет переднего плана Gray.        | g
           Цвет переднего плана DarkGray.    | d
           Цвет переднего плана Blue.        | b
           Цвет переднего плана Green.       | 
           Цвет переднего плана Cyan.        | 
           Цвет переднего плана Red.         | 
           Цвет переднего плана Magenta.     | 
           Цвет переднего плана Yellow.      | 
           Цвет переднего плана White.       | 
         */
тут кстати ошибка в 68 строчке ..

task\ApplicationSettingsHelper.cs
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
namespace task
{
    // Хранит настройки окна приложения, а также позволяет их считывать из файла и записывать в файл.
    internal class ApplicationSettingsHelper
    {
        // Цвет фона консоли.
        private ConsoleColor _ConsoleBackgroundColor;
        public ConsoleColor ConsoleBackgroundColor
        {
            set { _ConsoleBackgroundColor = value; }
        }
 
        // Цвет текста консоли.
        private ConsoleColor _ConsoleTextColor;
        public ConsoleColor ConsoleTextColor
        {
            set { _ConsoleTextColor = value; }
        }
 
        // Размер окна консоли.
        int _ConsoleWindowWidth;     // Ширина.
        public int ConsoleWindowWidth
        {
            set { _ConsoleWindowWidth = value; }
        }
 
        int _ConsoleWindowHeight;    // Высота.
        public int ConsoleWindowHeight
        {
            set { _ConsoleWindowHeight = value; }
        }
 
        // Заголовок консоли.
        private string _ConsoleTitle;
        public string ConsoleTitle
        {
            set { _ConsoleTitle = value; }
        }
 
        // Сохранить настройки.
        void Save()
        {
 
        }
 
        // Загрузить настройки.
        void Load()
        {
 
        }
    }
}
0
702 / 440 / 233
Регистрация: 03.01.2017
Сообщений: 1,256
18.10.2022, 19:52 4
atorvik, сохранить и загрузить выдерните из моего кода да и все)
Ну только там надо пару моментов будет поправить
1
18.10.2022, 19:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.10.2022, 19:52
Помогаю со студенческими работами здесь

Консольное приложение с многоуровневой иерархией классов Животные
Добрый вечер! Помогите, нужна ваша помощь. Необходимо создать консольное приложение с...

Создайте приложение, состоящее из двух списков Listbox
Создайте приложение, состоящее из двух списков Listbox. В первом будет, например, перечень...

Объект-Геометрическая прогрессия.(Консольное приложение с использованием классов)
Объект-Геометрическая прогрессия. Поля-первый член, знаменатель. Методы-Среднее арифметическое и...

Объект-Геометрическая прогрессия.(Консольное приложение с использованием классов)
Объект-Геометрическая прогрессия. Поля-первый член, знаменатель. Методы-Среднее арифметическое и...

Создайте приложение, состоящее из главного и двух дочерних окон
1. Создайте два скрипта на языке программирования Python и с использованием модуля ...

Какое консольное mini-приложение можно сделать с использованием классов (для практики)?
Подскажите пожалуйста какое то консольное mini-приложение можно сделать с использованием классов. А...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru