Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 26.06.2019
Сообщений: 149

Неробочая опция

07.11.2019, 22:17. Показов 485. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Делаю модель простенького магазина. Мой вопрос вот в чем: В главной функции есть выбор функции через "switch case", при выборе 4 пункта программа должна вызвать другую функцию с названием "Zapow", туда передается массив структур для заполнения и его размер. После запуска выше названого кейса функция выполняется и следующим нажатием программа закрывается хотя после выполнения идет "break". Как это исправить?
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
#include <iostream>
#include <string>
#include <conio.h>
#include <fstream>
using std::cout;
using std::cin;
using std::endl;
using std::string;
using std::ifstream;
using std::ofstream;
using std::getline;
using std::size;
 
 
struct Towar {
    string Name;
    string size;
    string size2;
    string size3;
};
 
void see_all_towar(int X, Towar Product[]) {
 
    for (int i = 0; i < X; i++) {
        cout << Product[i].Name << endl;
        cout << Product[i].size << endl;
        cout << Product[i].size2 << endl;
        cout << Product[i].size3 << endl;
    }
}
void create_new_towar() {
    ofstream file2;
    file2.open("MyFile.txt",ofstream::app);
    if (!file2.is_open())
    {
        cout << "Помилка, файл не вiдкрився" << endl;
    }
    else
    {
        cout << "Файл вiдкрито" << endl;
    }
    string str;
    cin >> str;
    file2 << str;
    str = "";
    cin >> str;
    file2 << "\t" << str;
    str = "";
    cin >> str;
    file2 << "\t" << str;
    str = "";
    cin >> str;
    file2 << "\t" << str << "\n";
    str = "";
    file2.close();
}
void Masiv(int X) {
    ofstream file2;
    file2.open("Masiv.txt");
    file2 << X;
    file2.close();
}
void Zapow(int X, Towar Product[]) {
 
    ifstream file;
    file.open("MyFile.txt");
 
    if (!file.is_open())
    {
        cout << "Помилка, файл не вiдкрився" << endl;
    }
    else
    {
        cout << "Файл вiдкрито" << endl;
    }
 
    string str;
 
    int a = 0;
 
    while (!file.eof()) {
 
        str = "";
        file >> str;
        Product[a].Name = str;
 
        str = "";
        file >> str;
        Product[a].size = str;
 
        str = "";
        file >> str;
        Product[a].size2 = str;
 
        str = "";
        file >> str;
        Product[a].size3 = str;
 
        a++;
    }
    file.close();
 
}
void delete_towar() {
    
    int n = 0, count = 1; // n - номер строки которую нужно удалить
    cout << "Виберіть номер товару який хочете видалити" << endl;
    cin >> n;
    string str;
 
    ifstream in("in.txt");
    ofstream out("out.txt");
 
    if (in.is_open())
    {
        while (getline(in, str))
        {
            if (count != n) out << str << '\n';
            count++;
        }
    }
    else cout << "Файл не відкрито\n";
 
}
 
int main() {
 
    setlocale(LC_CTYPE, "ukr");
    ifstream file;
    file.open("Masiv.txt");
    int size = 0;
    file >> size;
    file.close();
    Towar* Xtowar = new Towar[size];
    cout << "Кількість місць у магазині: " << size << endl;
 
 
    int Switch = 0;
    do {
        cout << "Вибір опції" << endl;
        cin >> Switch;
        cout << endl;
        switch (Switch) {
        //Нове місце для товару у магазині.
        case 1: {
            Towar* new_product = new Towar[size + 1];
            cout << "Додавання нового продукта" << endl;
            for (int i = 0; i < size; i++)
            {
                new_product[i] = Xtowar[i];
 
            }
            size++;
            delete[] Xtowar;
            Xtowar = new_product;
            Masiv(size);
            break;
        }
        //Показати усі товари.
        case 2: {
            see_all_towar(size, Xtowar);
            break;
        }
        //Додати товар у каталог.
        case 3: {
            create_new_towar();
            size++;
            Masiv(size);
            break;
        }
        //Завантажити товари з каталога.
        case 4: {
            Zapow(size, Xtowar);
            break;
        }
        //Видалити товар з каталога.
        case 5: {
            delete_towar();
            break;
        }
        default: {
            cout << "Нерпавильна опція" << endl;
            break;
        }
        }
    } while (true);
 
 
 
    
    system("pause");
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.11.2019, 22:17
Ответы с готовыми решениями:

Curl опция переменной
Собственно передача опции курлу выглядит незамысловато: curl_easy_setopt(CURL *handle, CURLoption option, parameter); Необходимо...

Опция -l и -L в компиляторе mingw(g++)
Здравствуйте.Извините если не по адресу но это наверно больше относится к c/c++ чем bat.В общем у меня имеется библиотека sfml в...

Отображалась не только выбранная опция, но и выводилось сообщение, которая опция была активной перед этим
Всем привет! Нужен совет. У меня есть код программы: есть 3 элемента RaddioButton, в зависимости какой RaddioButton я выберу(1, 2 или...

3
 Аватар для vlisp
1061 / 982 / 153
Регистрация: 10.08.2015
Сообщений: 5,325
08.11.2019, 06:47
ты должен создать отдельный класс на основе стандартного вектора для хранения инфы по товарам с возможностью загрузки из файла и сохранения в файл.
для товара создай конструктор, добавь свойство
C++
1
int ID ; // номер товара
не нужно сразу все писать в файл. создай отдельный пункт меню для этого
товары храни в файле cdf читай построчно, разбирай строку на части, создавай объект товара и кидай его в коллекцию товаров. запись в файл производи в обратной последовательности
0
1 / 1 / 0
Регистрация: 26.06.2019
Сообщений: 149
08.11.2019, 14:33  [ТС]
vlisp, Что такое вектор?
0
 Аватар для vlisp
1061 / 982 / 153
Регистрация: 10.08.2015
Сообщений: 5,325
08.11.2019, 15:35
вектор - это стандартный контейнер в стандартной библиотеке с++
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.11.2019, 15:35
Помогаю со студенческими работами здесь

опция -h i --help
всем привет) как можно прописать две опции -h i --help в програме так,что они подавали описание что прога должна делать; после вызова...

Опция UniFLOW
Здравствуйте! Есть ли смысл при 6 заказываемых МФУ и принтеров Canon оснащать их uniFlow опцией? Поясню: есть желание разграничить печать с...

Неизвестная опция компилятора '-Wl'
ОС Windows XP SP3. Установил mingw. Скачал Qt-4.4.0 и Qwt-6.0.1. В консоле Qt-4.4.0 выполняю: qmake qwt.pro mingw32-make ...

Опция g++ -fstack-protector-all?
Подскажите кто знает, для чего нужна опция компилятора g++: -fstack-protector-all?

DHCP опция 60 (ростелеком)
Приветствую. У матери провайдером является Ростелеком по технологии G-Pon. При установке они успешно впарили за немалые деньги свой роутер...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru