|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
12.03.2017, 23:02 | #1 |
Пользователь
Регистрация: 12.03.2017
Сообщений: 29
|
Курсовая работа C++
Пишу курсач на C++,помогите с удалением записи через динамический массив.
Вот код: #include "stdafx.h" #include<iostream> #include<string> #include<fstream> #include<windows.h> using namespace std; int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); while (1) { string a,c,x,n; string str; int b; int z; char name[100]; setlocale(LC_ALL, "rus"); cout << " Тарифы на коммунальные услуги\n"; cout << "__________________________________ ___________________________________ ____" << endl; cout << " Меню:\n"; cout << "1.Зделать список комунальных услуг" << endl; cout << "2.Посмотреть список" << endl; cout << "3.Очистить базу " << endl; cout << "4.Добавить запись" << endl; cout << "5.Удалить строку" << endl; cin >> b; switch (b) { case 1: { cout << "Введите год" << endl; cin >> z; if(z>=2017 && z<=2025){ } else{ cout<<" Извините,но этот год не входит в диапазон!\n"; return 1;} cout << "Введите цену на коммуналку " << endl; cin>>a>>c>>x>>n; ofstream fout("text1.txt"); fout << z << endl; fout << a << endl; fout << c << endl; fout << x << endl; fout << n << endl; cout << endl; cout << "Данные сохранены" << endl; break; } case 2: { ifstream fout("text1.txt"); while (!fout.eof()) { string str; getline(fout, str); cout << str << endl; } break; } case 3: { ofstream fout("text1.txt", ios_base::trunc); cout << "База очищена." << endl; break; } case 4: { char v[100]; cout << "Введите запись" << endl; cin >> v; ofstream fout("text1.txt", ios:ut | ios::app); fout << v << endl; break; } case 5: { break; } default: { cout << "Неправильный ввод.Попоробуйте еще раз." << endl; } } } return 0; } Последний раз редактировалось Andrey0072; 12.03.2017 в 23:11. |
12.03.2017, 23:53 | #2 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
А причём тут "динамический массив"?
Я вижу только работу с файлами и всё... |
13.03.2017, 00:01 | #3 |
Пользователь
Регистрация: 12.03.2017
Сообщений: 29
|
А как тогда удалить запись если не через динамический массив ?
|
13.03.2017, 00:18 | #4 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
А как удалять с помощью динамического массива?
(как ты себе это представляешь?) А почему именно динамический? Почему не статический (с запасом, скажем на 50 элементов)? Ты думаешь, что размер динамического массива, в процессе работы программы, можно менять как тебе хочется? (кстате, в языке Делфи так можно поступать, но не в С++). Динамический массив можно создать на любое количество элементов (в процессе работы программы) и всё, больше он НЕ меняется... Притом-то нужно знать кол-во элементов массива (для первоначального создания), - как ты планируешь решать эту проблему? В файле (в первой строчке, например) разместить кол-во элементов? Их считать, а потом создавать массив... ___________________________________ ___________________ Дело в том, что в С++ есть ещё односвязные списки, в которые можно удалять/добавлять узлы... Такое не проходили? ___________________________________ ___________________ Расскажи о задании подробней... Почему у тебя такая тесная работа с файлами? Обычно все манипуляции осуществляются в самой программе, а во внешние файлы сохраняют только уже отредактированные данные... Последний раз редактировалось ura_111; 13.03.2017 в 23:15. |
13.03.2017, 00:31 | #5 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
Может быть работа с файлами должно идти отдельный пункт меню?
Например. Код:
Последний раз редактировалось ura_111; 13.03.2017 в 00:38. |
13.03.2017, 00:42 | #6 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
Кстате, (если ты так любишь файлы) не рассматривал возможность промежуточного файла:
построчно читаешь из оригинала и пишешь в промежуточный файл, доходишь до строчки, которую нужно удалить - пропускаешь её и продолжаешь писать дальше. В конце не нужный файл можно и удалить. И без массива можно обойтись. Что ты думаешь поэтому поводу? |
13.03.2017, 00:49 | #7 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
Кстате, придумал как обойтись без сохранения дополнительной переменой (размер массива):
1) прочитать весь файл чисто чтобы посчитать кол-во информации и рассчитать размер массива, 2) закрыть файл. Создать массив. 3) читать файл снова, но уже для переноса информации в массив. |
13.03.2017, 17:02 | #8 |
Пользователь
Регистрация: 12.03.2017
Сообщений: 29
|
Односвязные списки не учили , а про курсовую работу подробней , так там тема "база данных коммунальных услуг" ну и нам говорили что должно быть сохранение информации,вывести информацию на екран и удаление записи,это можна сказать набросок я буду ещё структуры туда добавлять.
Последний раз редактировалось Andrey0072; 13.03.2017 в 17:06. |
13.03.2017, 17:29 | #9 |
Пользователь
Регистрация: 12.03.2017
Сообщений: 29
|
Предлагали еще кто может в Windows Forms C++ зделать базу данных но я по формам книг не нашол.
|
13.03.2017, 22:22 | #10 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
Это правильно (когда делаешь по легче, а если остаётся время на Forms, то разбираешься в нём)...
Вообщем, я вижу вот такое меню: Код:
Код:
12.jpg пользователь играется с БД, а когда надоест - п.меню 6 выход. Если много информации на экране, тогда п.меню 5 Очистить экран. p.s.1: поиграйся с кодом (с тем, что пока работает)... Выбери себе какой-нибудь п.меню и попытайся его написать (по аналогии). p.s.2: Данные-заглушки, эти которые: Код:
p.s.3: пару слов о динамическом массиве. Код:
В конце правда надо удалить динамическую память. Код:
Ктате, я придумал как удалить/добавить запись из/в массива. Через промежуточный (динамический) массив: 1) есть массив а[5]. Надо удалить одну позицию. 2) создаём b[5-1]. копируем из а[5] в b[4] и удаляем []а. 3) создаём новый массив а[4] и приваимаем элементы b[4]. 4) удаляем b[4]. Всё. ___________________________________ _____________________ Пиши, что ты обо всём этом думаешь. Последний раз редактировалось ura_111; 13.03.2017 в 23:21. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Курсовая работа | Evgesha1222 | Фриланс | 3 | 20.06.2013 14:12 |
Курсовая работа по БД | Suslik963 | Фриланс | 6 | 23.05.2013 11:55 |
Курсовая работа(( | Юрико | Помощь студентам | 4 | 27.12.2012 17:09 |
курсовая работа по с# | сишарп | Фриланс | 1 | 05.06.2012 23:15 |
Курсовая работа! | ...Dls... | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 26.12.2008 12:42 |