Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 14.07.2019, 02:18   #1
Anonymous4722
Новичок
 
Аватар для Anonymous4722
 
Регистрация: 28.03.2013
Адрес: Тюмень
Сообщений: 1
Репутация: 10

icq: 220592937
skype: Anonymous4722
По умолчанию Создание меню на Си++ (консольное) есть наработки

Нужно создать меню, допустим: 1. Выбрать действие: 1.1 ввести число или строку, потом результат ввода строки или числа записать в файл. Примерно так надо сделать. Задание ниже:

Я сделал заготовки, но не пойму, как реализовать само меню и самое сложное это записать потом результат в файл. Я искал в интернете примеры и не мог найти. И еще, очень желательно вместо массива использовать векторы, которые мы еще не проходили.

Разработать классы: "Пункт меню", "Меню". Меню содержит массив указателей на пункты меню (агрегация).
Необходимо создать несколько пунктов меню, разместить их в меню.
Вывести меню (позволяет выбрать пункт и выполнить).
Реализовать сохранение всей структуры объектов на диск и чтение всей структуры объектов с диска. При запуске программы считывать с диска - и создавать все объекты, и отображать получившееся меню.


Код:
#include "pch.h"
#include <iostream>
#include <string>
#include <Windows.h>
#include <typeinfo>
#include <vector>
using namespace std;
const char n = '\n';
 
class menu_item;
class menu;
class user_int;
 
void act()
{
    cout << n << "hi" << n;
}
 
class user_int
{
public:
    user_int();
    ~user_int();
    void add(menu_item item);
    void addMenu1(menu_item item); 
    void showMenu1();
 
private:
    vector<menu_item> items;
    menu *m1, *m2;
 
};
 
class menu_item
{
public:
    menu_item(string title, void(*actoin)())
        :title(title), action(action) {}
    void print()
    {
        cout << title << n;
    }
 
    void execute()
    {
        action();
    }
 
private:
    string title;
    void(*action)();
};
 
class menu
{
public:
    menu(string titile)
        :title(title) {}
    void add(menu_item* item_ptr)
    {
        items.push_back(item_ptr); // чтобы добавить 
    }
 
    void show() // она не реализована
    {
        for (size_t i = 0; i < items.size(); i++)
        {
            cout << items[i] << n;
        }
    }
private:
    string title;
    vector<menu_item*> items;
};
 
user_int::user_int()
{
    // todo
 
}
 
user_int::~user_int()
{
    // todo
}
 
void user_int::add(menu_item item)
{
    items.push_back(item);
    
}
 
void user_int::showMenu1()
{
    // todo
}
 
int main()
{
    setlocale(0, "");
 
    user_int ui;
    ui.add(menu_item("item 1", act));
}
__________________
Skype: Anonymous4722
ICQ: 220592937
e-mail: balashov_vadim@mail.ru
Anonymous4722 вне форума   Ответить с цитированием
Старый 14.07.2019, 14:26   #2
Desc
Developer
ПользовательПользователь
 
Аватар для Desc
 
Регистрация: 21.11.2007
Адрес: Ukraine
Сообщений: 44
Репутация: 34

icq: 491992125
По умолчанию

Здесь нечто похожее на Ваше задание:
Работа с файлом
https://www.programmersforum.ru/show...E0+switch+case

Или воспользуйтесь поиском форума:
Нажмите, на этом форуме, ссылку "Расширенный поиск". В поле "Ключевые слова:" введите фразу – "чтение запись файла switch case", или фраза "чтение файла". В поле выбора разделов форума "Поиск по разделам" выберите раздел "C++". Затем нажмите кнопку "Поиск". Найдется много тем с вариантами решения вопроса.
__________________
Корректно сформулировал вопрос - приблизился к решению

Последний раз редактировалось Desc; 14.07.2019 в 14:29.
Desc вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание проекта. Нет в меню кнопки "Консольное приложение" ttn11 C# (си шарп) 2 24.01.2016 17:26
Часы(есть наработки) sllh_111 Помощь студентам 2 19.04.2010 17:04
Pascal, наработки есть. Otre4eHHbIu Помощь студентам 1 24.12.2009 09:43
Паскаль, массивы, наработки есть. Otre4eHHbIu Помощь студентам 3 12.05.2009 12:26


19:39.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru