|
1 / 1 / 1
Регистрация: 17.10.2014
Сообщений: 7
|
|
При изменении каких либо данных программа либо вылетает, либо просто не изменяет данные21.03.2017, 22:50. Показов 2202. Ответов 1
Метки нет (Все метки)
Добрый вечер. Только недавно начал заниматься С++. И вот возникли проблемы. При изменении каких либо данных. Программа либо вылетает(Qt), либо просто не изменяет данные (CodeBlock). Прошу прощения, если не та тема.
Вот код: Кликните здесь для просмотра всего текста
#include <iostream>
#include <stdio.h> #include <cmath> #include <fstream> #include <Windows.h> #include <cstring> using namespace std; struct Employer { char *name; char *surname ; double workedhours; }; int InitStruct(Employer **&Employees) { char tmp[100]; int count = 0; cout<<"\n Set array size: "; cin>> count; Employees = new struct Employer *[count]; for (int i = 0; i < count; i++) { Employees[i] = new struct Employer; cout << "\nType name: ";cin >> tmp; Employees[i]->name = new char((strlen(tmp)) + 1); strcpy(Employees[i]->name, tmp); cout << "\nType surename: ";cin >> tmp; Employees[i]->surname = new char((strlen(tmp)) + 1); strcpy(Employees[i]->surname, tmp); cout << "\nType work time: ";cin >> Employees[i]->workedhours; } return count; } int readFromFile(Employer **&Employees, int var) { int count = 0; char buffer[100]; ifstream fin("data2.txt"); if (!(fin.is_open())){ cout <<"not open\n"; fin.close(); return 0; } if(var == 0) fin >> count; if(var == 1){ ifstream fin_count("data.txt"); if(!(fin_count.is_open())){ cout<<"not open\n"; fin_count.close(); return 0; } for(;!(fin_count.eof()) {fin_count>>buffer; fin_count>>buffer; fin_count>>buffer; fin_count>>buffer; count++; } fin_count.close(); } Employees = new Employer *[count]; for(int i = 0; i< count; i++){ Employees[i] = new struct Employer; fin>>buffer; Employees[i]->name = new char [(strlen(buffer))+1]; strcpy(Employees[i]->name, buffer); fin>>buffer; Employees[i]->surname = new char [(strlen(buffer))+1]; strcpy(Employees[i]->surname, buffer); fin>>Employees[i]->workedhours; } fin.close(); return count; } void writeInFile(Employer **&Employees, int count){ char fileName[50]; cout<<"Type name file: ";cin>>fileName; ofstream fout(fileName); if(!(fout.is_open())) { cout<<"not open\n"; fout.close(); } for(int i = 0; i< count; i++) { fout<<Employees[i]->name; fout<<" "; fout<<Employees[i]->surname; fout<<" "; fout<<Employees[i]->workedhours; fout<<"\r\n"; } fout.close(); } void printStruct(Employer **&Employees, int count){ for(int i = 0;i< count; i++) { cout << " \n"; cout << " \n"; cout << "-----------------------------\n"; cout << "Mark: " << Employees[i]->name << "\n"; cout << "Max resolution: " << Employees[i]->surname << " \n"; cout << "Price: " << Employees[i]->workedhours << " р \n"; } } void del(Employer **&Employees, int count) { for(int i = 0; i< count; i++) { delete (Employees[i]->name); delete (Employees[i]->surname); Employees[i]->workedhours = 0; } delete [] Employees; } void calculate(Employer **&Employees, int count){ double sallary = 0; for(int i = 0; i < count; i++){ Employer *e = Employees[i]; cout<<"---------------------------------------------\n"; cout<<"Sallary is: " << (e->workedhours) * 125 / count << " p \n"; cout<<"Name is: " << e->name << "\n"; cout<<"Surmame is: " << e->surname << "\n"; cout<<"---------------------------------------------\n"; } } void changeParameters(Employer **&Employees, int count) { int EmployyNumber; int c; char tmp[100]; cout<<"Type monitor number : ";cin>>tmp; EmployyNumber = EmployyNumber - 1; cout<<"1. Change Name\n" <<"2. Change surname\n" <<"3. Change workedhours\n"; cout<<"--------------------------------------\n" <<"Type command number: "; cin>>c; switch (c) { case 1: { cout << "\nType name: ";cin >> tmp; Employees[EmployyNumber]->name = new char((strlen(tmp)) + 1); strcpy(Employees[EmployyNumber]->name, tmp); break; }; case 2: { cout << "\nType surname: ";cin >> tmp; Employees[EmployyNumber]->surname = new char((strlen(tmp)) + 1); strcpy(Employees[EmployyNumber]->surname, tmp); break; }; case 3: { cout << "\nType workedhours: ";cin >> Employees[EmployyNumber]->workedhours; break; }; default: cout<<"error"; } } int main() { int c; int count = 0; SetConsoleCP(1251); struct Employer **Employees; do { cout<<"-------------------------------------\n" <<"\Monitor\n" <<"1. Init array\n" <<"2. Read from file\n" <<"3. Total salary\n" <<"4. Write in file\n" <<"5. Print on scree\n" <<"6. Change parameters\n" <<"7. Exit\n\n"; cout<<"--------------------------------------\n" <<"Type command number: "; cin>>c; switch (c) { case 1: { if(count != 0) del(Employees, count); count = InitStruct(Employees); break; }; case 2: { if(count != 0) del(Employees, count); count = readFromFile(Employees, 1); }; case 3: { if(count != 0) calculate(Employees, count); else{cout<<"\nThe structure is not initialized\n";} break; }; case 4: { if(count != 0) writeInFile(Employees, count); else{cout<<"\nThe structure is not initialized\n";} break; }; case 5: { if(count != 0) printStruct(Employees, count); else{cout<<"\nThe structure is not initialized\n";} break; }; case 6: { if(count != 0) changeParameters(Employees, count); else{cout<<"\nThe structure is not initialized\n";} break; }; case 7: { if(count != 0) del(Employees, count); return 1; }; default: cout<<"error"; } } while(1); return 0; }
0
|
|
| 21.03.2017, 22:50 | |
|
Ответы с готовыми решениями:
1
две прямые либо паралельны либо совпадают либо не существуют Что-то интересное. Или программа, которая принимает либо 1, либо 2 числа При потсроении пишет что конструктор либо недоступен либо объявлен как explicit |
|
284 / 232 / 114
Регистрация: 07.09.2016
Сообщений: 584
|
||||||||||||||||
| 21.03.2017, 23:05 | ||||||||||||||||
Сообщение было отмечено guardian как решение
Решение
из увиденного:
0
|
||||||||||||||||
| 21.03.2017, 23:05 | |
|
Помогаю со студенческими работами здесь
2
Найти либо максимум, либо минимум для трех задаваемых чисел Проверка открытия файла либо работает, либо уходит в бесконечность По условию вывести сумму либо чётных, либо нечётных разрядов заданного шестизначного числа Никак не могу найти ошибку, должен сосздать матрицу либо из звездочеку либо из пробелов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
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 .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|