Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Bubbles
1 / 1 / 0
Регистрация: 28.05.2013
Сообщений: 132
#1

Удалить первый элемент с заданным объемом информации, добавить элемент перед элементом с указанным номером - C++

08.02.2014, 11:42. Просмотров 929. Ответов 7
Метки нет (Все метки)

Структура "Информация":
- носитель;
- объем;
- название;
- автор.
Удалить первый элемент с заданным объемом информации, добавить элемент перед элементом с указанным номером.
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
#include <iostream>
#include <string>
using namespace std;
 
struct Inform
{
   string name;
   int v;
   string autor;
   string nositel;
};
 
void ShowData(Inform *M, int N)
{
   for (int i = 0; i < N; i++)
    {
     cout << M[i].name << endl;
     cout << M[i].v << endl;
     cout << M[i].autor << endl;
     cout << M[i].nositel << endl;
     cout << endl;
    }
}
void GetData(Inform *M,int N)
{
    for (int i=0; i < N; i++)
    {
        cout << "NAZVANIE: "; cin >> M[i].name;
        
        cout << "OBIEM: "; cin >> M[i].v;
 
        cout << "AUTOR: "; cin >> M[i].autor;
        
        cout << "NOSITEL: "; cin >> M[i].nositel;
        cout << endl;
    }
}
  
int main()
{
    int N; cout << "Vvedite  N: "; cin >> N;
    Inform *M = new Inform[N];
    GetData(M, N); 
    ShowData(M, N); 
    delete [] M;
    system("PAUSE");
    return 0;
}
Добавлено через 2 минуты
И как записать все в файл, и удалить запись с желаемым объемом.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2014, 11:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Удалить первый элемент с заданным объемом информации, добавить элемент перед элементом с указанным номером (C++):

Доработка структуры (удалить первый элемент с заданным объемом информации, добавить элемент перед элементом с указанным номером) - C++
//--------------------------------------------------------------------------- ЗАДАНИЕ:Создать двоичный файл из элементов , заданных...

Структура "Информация": - носитель; - объем; - название; - автор. Удалить первый элемент с заданным объемом информации, добавить элемент перед элемент - C++
Структура &quot;Информация&quot;: - носитель; - объем; - название; - автор. Удалить первый элемент с заданным объемом информации, добавить...

Сформировать двунаправленный список. Удалить из него элемент с заданным ключом, добавить элемент с указанным номером - C++
Записи в линейном списке содержат ключевое поле типа *char(строка символов). Сформировать двунаправленный список. Удалить из него элемент с...

Удалить первый положительный элемент массива; вставить новый элемент перед первым максимальным элементом - C++
Дан целочисленный массив размера N. Как удалить первый положительный элемент ? Как вставить новый элемент перед первым максимальным...

Сформировать однонаправленный список и добавить элемент перед элементом с заданным ключом - C++
задача: Сформировать однонаправленный список. Добавить элемент перед элементом с заданным ключом; Наиболее близко к решению...

Удалить элемент с заданным номером и добавить К элементов в начало списка - C++
Написать программу, в которой создаются динамические структуры и выполнить их обработку в соответствии со своим вариантом. Для...

7
zss
Модератор
Эксперт С++
6477 / 6040 / 1981
Регистрация: 18.12.2011
Сообщений: 15,648
Завершенные тесты: 1
08.02.2014, 11:55 #2
Запись в файл
C++
1
2
3
4
5
6
7
8
9
10
11
void StoreData(ostream out,Inform *M, int N)
{
   for (int i = 0; i < N; i++)
   {
     out << M[i].name << endl;
     out << M[i].v << endl;
     out << M[i].autor << endl;
     out << M[i].nositel << endl;
     out << endl;
   }
}
0
Bubbles
1 / 1 / 0
Регистрация: 28.05.2013
Сообщений: 132
08.02.2014, 12:02  [ТС] #3
А файл сам создастся и с каким именем? Это где указывать?
0
zss
Модератор
Эксперт С++
6477 / 6040 / 1981
Регистрация: 18.12.2011
Сообщений: 15,648
Завершенные тесты: 1
08.02.2014, 12:05 #4
Удаление всех элементов с заданным объемом
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void DeleteElem(int v0,Inform *M, int &N)
{
   for (int i = 0; i < N; i++)
    {
         if(M[i].v==v0)
         {
             for (int k = i; k < N-1; k++)//сдвиг всех элементов на один
             {
                M[k].name=M[k+1].name;
                M[k].v=M[k+1].v;
                M[k].autor=M[k+1].autor;
                M[k].nositel=M[k+1].nositel;
             }
             N--; // количество элементов уменьшилось
             i--; // надо снова проверить, что теперь на i-ом месте.
         }
    }
}
Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main()
{
    int N; cout << "Vvedite  N: "; cin >> N;
    Inform *M = new Inform[N];
    GetData(M, N);
    fostream out("file.txt");
    StoreData(out,M, N);
    out.close();
    int v=111;
    DeleteElem(v,M,N);
    ShowData(M, N); 
    delete [] M;
    system("PAUSE");
    return 0;
}
0
Bubbles
1 / 1 / 0
Регистрация: 28.05.2013
Сообщений: 132
08.02.2014, 12:12  [ТС] #5
fostream out("file.txt");
Эта строка не работает, ошибку выдает.
0
zss
Модератор
Эксперт С++
6477 / 6040 / 1981
Регистрация: 18.12.2011
Сообщений: 15,648
Завершенные тесты: 1
08.02.2014, 16:14 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Bubbles Посмотреть сообщение
ошибку выдает.
#include <fstream>
подключили?

Окончательный вариант
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
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 
struct Inform
{
   string name;
   int v;
   string autor;
   string nositel;
};
 
void ShowData(Inform *M, int N)
{
   for (int i = 0; i < N; i++)
    {
     cout << M[i].name << endl;
     cout << M[i].v << endl;
     cout << M[i].autor << endl;
     cout << M[i].nositel << endl;
     cout << endl;
    }
}
void GetData(Inform *M,int N)
{
    for (int i=0; i < N; i++)
    {
        cout << "NAZVANIE: "; cin >> M[i].name;
        
        cout << "OBIEM: "; cin >> M[i].v;
 
        cout << "AUTOR: "; cin >> M[i].autor;
        
        cout << "NOSITEL: "; cin >> M[i].nositel;
        cout << endl;
    }
}
void DeleteElem(int v0,Inform *M, int &N)
{
   for (int i = 0; i < N; i++)
    {
         if(M[i].v==v0)
         {
             for (int k = i; k < N-1; k++)//сдвиг всех элементов на один
             {
                M[k].name=M[k+1].name;
                M[k].v=M[k+1].v;
                M[k].autor=M[k+1].autor;
                M[k].nositel=M[k+1].nositel;
             }
             N--; // количество элементов уменьшилось
             i--; // надо снова проверить, что теперь на i-ом месте.
         }
    }
}
void StoreData(ofstream &out,Inform *M, int N)
{
   for (int i = 0; i < N; i++)
   {
     out << M[i].name << endl;
     out << M[i].v << endl;
     out << M[i].autor << endl;
     out << M[i].nositel << endl;
     out << endl;
   }
}
int main()
{
    int N; cout << "Vvedite  N: "; cin >> N;
    Inform *M = new Inform[N];
    GetData(M, N);
    ofstream out("file.txt");
    StoreData(out,M, N);
    out.close();
    int v=111;
    DeleteElem(v,M,N);
    ShowData(M, N); 
    delete [] M;
    system("PAUSE");
    return 0;
}
2
Bubbles
1 / 1 / 0
Регистрация: 28.05.2013
Сообщений: 132
09.02.2014, 16:29  [ТС] #7
Все работает, спасибо!
0
Светлана Слонь
0 / 0 / 0
Регистрация: 21.11.2015
Сообщений: 209
07.02.2016, 19:41 #8
а откуда v0? чему оно равняется?
Цитата Сообщение от zss Посмотреть сообщение
void DeleteElem(int v0,Inform *M, int &N)
{
* *for (int i = 0; i < N; i++)
* * {
* * * * *if(M[i].v==v0)
0
07.02.2016, 19:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2016, 19:41
Привет! Вот еще темы с ответами:

Удалить из списка элемент с заданным номером и добавить элементфы, начиная с заданного номера. - C++
Помогите написать программу, в которой создаются динамические структуры, я не знаю как :-|:( Записи в линейном списке содержат ключевое...

Удалить элемент структуры с заданным номером медицинской карты, добавить 2 элемента в начало файла - C++
1. Структура &quot;Пациент&quot;: - Фамилия, имя, отчество; - Домашний адрес; - Номер медицинской карты; - Номер страхового полиса. Удалить...

Указатели . Удалить из одномерного массива элемент с заданным номером, добавить К элементов, начиная с заданного номера - C++
Сформировать одномерный массив. Удалить из него элемент с заданным номером, добавить К элементов, начиная с заданного номера

Перед указанным элементом массива вставить новый элемент - C++
Дан массив размера N и целое число K (1 ≤ K ≤ N). Перед элемен- том массива с порядковым номером K вставить новый элемент с нулевым ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru