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

структура - C++

Восстановить пароль Регистрация
 
snoop9x
0 / 0 / 0
Регистрация: 03.12.2010
Сообщений: 14
19.06.2011, 18:06     структура #1
вот задача:

Структура "Видеокассета":
- название фильма;
- режиссер;
- продолжительность;
- цена.
Удалить все элементы с ценой выше заданной, добавить 3 элемента в конец файла.

и здесь у меня возникли проблемы, может кто нибудь посоветует, как исправить код...

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
#include "stdafx.h"
#include <iostream>
#include <time.h>
#include <math.h>
 
 
struct Kass
{
  char naz[20];
  char rez[20];
  int prod;
  int zena;
};
 
 
using namespace std;
using namespace System;
int main(array<System::String ^> ^args)
{setlocale( LC_ALL,"Russian" );
    struct Kass t[200];
    int i,n,k,m;
    cout<<"Введите количество видеокассет:"<<endl;
    cin>>n;
   for(i=0;i<n;i++)
      {cout<<"Введите название "<<i+1<<" видеокассеты:"<<endl;
       cin>>t[i].naz;
       cout<<"Введите режиссера "<<i+1<<" видеокассеты:"<<endl;
       cin>>t[i].rez;
       cout<<"Введите продолжительность "<<i+1<<" видеокассеты:"<<endl;
       cin>>t[i].prod;
       cout<<"Введите цену "<<i+1<<" видеокассеты:"<<endl;
       cin>>t[i].zena;
      }
   cout<<endl<<endl<<"Название     Режиссер     Продолжительность     Цена"<<endl;
   cout<<"_______________________________________________________"<<endl;
  for(i=0;i<n;i++)
      {cout<<endl<<endl;
       cout<<t[i].naz<<"\t";
       cout<<t[i].rez<<"\t";
       cout<<t[i].prod<<"\t";
       cout<<t[i].zena<<"\t";
       
      }
  cout<<endl<<"_______________________________________________________"<<endl<<endl;
  cout<<"Введите максимальную цену"<<endl;
  cin>>k;
 
 
k=t[0].zena;
for ( i=0; i<n; i++)
  {if (t[i].zena>k)
      {k=t[i].zena;
      
      }
  }
 
         
     cout<<"";
 
 /* for(i=0;i<n;i++)
     { if(t[i].zena>k)
           { k=t[i].zena;
           }
     }
        /* for (i=k;i<n-k+2;i++)
            {
               t[i]=t[i+1];
            }
         for (i=0;i<n;i++)
            {
               printf("%d ",t[i]);
            }*/
  
     for(i=1;i<n-1;i++)  
      {
          t[i].zena=t[i+1].zena; n--;
      }
  for(i=0;i<n;i++)
        {cout<<endl<<endl;
  
       cout<<t[i].naz<<"\t";
       cout<<t[i].rez<<"\t";
       cout<<t[i].prod<<"\t";
       cout<<t[i].zena<<"\t";
       
        }
 
  system("pause");
  return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2011, 18:06     структура
Посмотрите здесь:

C++ структура
C++ Структура
C++ структура
C++ структура
Структура C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dakuenjery
18 / 15 / 3
Регистрация: 13.06.2011
Сообщений: 116
19.06.2011, 18:44     структура #2
Не знаю правильно ли я тебя понял, но вот что то набросал. Но под твой код не делал. Думаю допилить не будет проблемой
Вот код
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
#include <iostream>
#include <vector>
using namespace std;
 
struct st{
    int i;
    int j;
};
 
// в динам. памяти создаем структуру
st* newStruct(){
    return new st;
}
 
int main()
{
    vector<st*> pVec;
 
    // это можно под цикл
    pVec.push_back( newStruct() );
 
    // для примера
    pVec[0] -> i = 3;
    pVec[0] -> j = 5;
 
    // проверка на работоспособность
    cout << pVec[0] -> i << pVec[0] -> j;
 
    /*
    В твоем случае
    if( цена > чего то там)
    */
    delete pVec[0];
 
    cin.get();
 
}
snoop9x
0 / 0 / 0
Регистрация: 03.12.2010
Сообщений: 14
20.06.2011, 00:07  [ТС]     структура #3
А как в полученный массив можно добавить еще элементы?

Удалить больше заданной получилось...
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
#include "stdafx.h"
#include <iostream>
#include <time.h>
#include <math.h>
 
 
struct Kass
{
  char naz[20];
  char rez[20];
  int prod;
  int zena;
};
 
 
using namespace std;
using namespace System;
int main(array<System::String ^> ^args)
{setlocale( LC_ALL,"Russian" );
    struct Kass t[200];
    int i,n,k,m,iK=0;
    cout<<"Введите количество видеокассет:"<<endl;
    cin>>n;
   for(i=0;i<n;i++)
      {cout<<"Введите название "<<i+1<<" видеокассеты:"<<endl;
       cin>>t[i].naz;
       cout<<"Введите режиссера "<<i+1<<" видеокассеты:"<<endl;
       cin>>t[i].rez;
       cout<<"Введите продолжительность "<<i+1<<" видеокассеты:"<<endl;
       cin>>t[i].prod;
       cout<<"Введите цену "<<i+1<<" видеокассеты:"<<endl;
       cin>>t[i].zena;
      }
   cout<<endl<<endl<<"Название     Режиссер     Продолжительность     Цена"<<endl;
   cout<<"_______________________________________________________"<<endl;
  for(i=0;i<n;i++)
      {cout<<endl<<endl;
       cout<<t[i].naz<<"\t";
       cout<<t[i].rez<<"\t";
       cout<<t[i].prod<<"\t";
       cout<<t[i].zena<<"\t";
       
      }
  cout<<endl<<"_______________________________________________________"<<endl<<endl;
  cout<<"Введите максимальную цену"<<endl;
  cin>>k;
 
  k=t[0].zena;
        for(i=0; i<n; i++)
        {
                if (t[i].zena>k)  // Поиск макс
                {
                        k=t[i].zena;
                        iK=i;
                }
        }
 
        cout<<"Max element = "<<k<<"; ego nomer = "<<iK;
        ///////////
        cout<<endl;
 
        
             for (i=iK;i<n-iK+2;i++)
                  {
                     t[i]=t[i+1]; n--;
                  }
 
    
             for(i=0;i<n;i++)
                 {
                     cout<<endl<<endl;
                     cout<<t[i].naz<<"\t";
                     cout<<t[i].rez<<"\t";
                     cout<<t[i].prod<<"\t";
                     cout<<t[i].zena<<"\t";
                 }
 
  system("pause");
  return 0;
}
Добавлено через 3 часа 44 минуты
каким образом можно добавить элементы в конец массива? если можно напишите код...
dakuenjery
18 / 15 / 3
Регистрация: 13.06.2011
Сообщений: 116
20.06.2011, 00:13     структура #4
Цитата Сообщение от dakuenjery Посмотреть сообщение
// это можно под цикл
pVec.push_back( newStruct() );
вот это добавляет элемент в вектор
snoop9x
0 / 0 / 0
Регистрация: 03.12.2010
Сообщений: 14
20.06.2011, 00:18  [ТС]     структура #5
а не через вектор можно как нибудь, потому что я вектор совсем не знаю
dakuenjery
18 / 15 / 3
Регистрация: 13.06.2011
Сообщений: 116
20.06.2011, 00:32     структура #6
Вектор - динамический массив, без него навряд можно будет сделать это (ну можно конечно, но это будет кода намного больше, и самое главное, я пока не додумался как . Погугли, если не углубляться в детали, векторы не сложная тема.

Опиши как то поконкретней задачу, я попробую тебе написать код. Я не понял, что имеется ввиду под "добавить 3 элемента в конец файла" ?
snoop9x
0 / 0 / 0
Регистрация: 03.12.2010
Сообщений: 14
20.06.2011, 00:38  [ТС]     структура #7
Как я понял после того как удалили строчку, нужно добавить 3 элемента( а точнее этих элементов будет 12) один элемент это кассета, и в нем еще 4 подраздела... получается как бы дописать массив
dakuenjery
18 / 15 / 3
Регистрация: 13.06.2011
Сообщений: 116
20.06.2011, 00:41     структура #8
Блин, все равно не понимаю зачем это надо
Лан ща напишу код без добавления элементов в конец) 5-10 мин
snoop9x
0 / 0 / 0
Регистрация: 03.12.2010
Сообщений: 14
20.06.2011, 01:07  [ТС]     структура #9
вот что я подумал, если создать еще один массив, вбить туда эти 3 элемента, а потом объединить с первым массивом...
dakuenjery
18 / 15 / 3
Регистрация: 13.06.2011
Сообщений: 116
20.06.2011, 01:14     структура #10
хз, ща допишу код...
Я по другому пути пошел. Цена задается сразу и если цена касеты выше указанной, структура просто не сохраняется.
Так же, я надеюсь, можно??

Добавлено через 3 минуты
Вот код. Возможно не самый лучший способ реализации, но лучше, чем ничего)

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
#include <iostream>
#include <vector>
using namespace std;
 
struct video{
    char nameFilm[20];
    char director[20];
    int time;
    int cost;
};
 
void newVid();
void display(video vid){
    cout << vid.nameFilm << endl
         << vid.director << endl
         << vid.time << endl
         << vid.cost;
}
 
int maxCost;
vector<video> vid;
video kaseta;
 
int main()
{
    char ch;
 
    cout << "Enter max cost > ";
    cin >> maxCost;
 
    while(1){
        cout << "Do you want create a new video? y/n > ";
        cin >> ch;
        if(ch == 'n')
            break;
        else
            newVid();
    }
 
    vector<video>::iterator it = vid.begin();
    for(int i=0; it < vid.end(); ++it, ++i){
        cout << endl;
        display(vid[i]);
    }
}
 
void newVid(){
    cout << "Enter name of a film > ";
    cin >> kaseta.nameFilm;
    cout << "Enter director's name > ";
    cin >> kaseta.director;
    cout << "Enter fils's time > ";
    cin >> kaseta.time;
    cout << "Enter film's name > ";
    cin >> kaseta.cost;
    if(kaseta.cost < maxCost)
        vid.push_back(kaseta);
}
Добавлено через 1 минуту
Код не допиленный, но главное работает правильно
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.06.2011, 12:09     структура
Еще ссылки по теме:

Структура C++
C++ структура
C++ структура

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

Или воспользуйтесь поиском по форуму:
snoop9x
0 / 0 / 0
Регистрация: 03.12.2010
Сообщений: 14
20.06.2011, 12:09  [ТС]     структура #11
это не совсем то что мне нужно...

Добавлено через 10 часов 4 минуты
покажите пример добавления в конец одномерного массива элементов, или объединение двух одномерных массивов.
Yandex
Объявления
20.06.2011, 12:09     структура
Ответ Создать тему
Опции темы

Текущее время: 15:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru