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

класс "очередь параметров" - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Полиномы чебышева http://www.cyberforum.ru/cpp-beginners/thread431671.html
Программа должна аппроксимировать функцию полиномами чебышева. Подскажите в чём ошибка. #include <iostream> #include <cmath> #include <ctime> #include <fstream> #include <conio.h> #include <iomanip> #include "windows.h"
C++ Алгоритм Джарвиса. вече добрый, у меня вопрос по алгоритму Джарвиса - http://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%94%D0%B6%D0%B0%D1%80%D0%B2%D0%B8%D1%81%D0%B0 как найти первую точку я понял, но как найти вторую, я не понял. если у нас будут первые две точки, то третью мы найдем, если пройдем по всем оставшимся и найдем наибольшим угол, который образуют эти три точки. и так... http://www.cyberforum.ru/cpp-beginners/thread431664.html
Описать структуру с именем ZNAK C++
вот код программы всё работает, тут ввод с клавиатуры а нужно чтобы из файла Добавлено через 32 секунды #include <fstream> #include <iostream> #include <cstdio> #include <cstdlib> #include <string> using namespace std; struct ZNAK {
Задачи на массивы в С++ C++
Здравствуйте, помогите пожалуйста с решением 2 задач: 1. Даны целые числа a1, ..., a30. Все члены последовательности с четными номерами, предшествующие первому по порядку члену со значением max(a1,...,a30), домножить на max(a1,...,a30). 2. Задана матрица Z(5,6). Выбрать строку с наибольшей суммой элементов и вывести элементы этой строки в массив, затем каждый отрицательный элемент умножить...
C++ Обработку исключений при вводе некорректных данных http://www.cyberforum.ru/cpp-beginners/thread431645.html
#include <iostream> #include <signal.h> using namespace std; class Student{public: string Status,Speciality,Name,LName; string Write(){cout<<"Status: ";cin>>Status; if (Status != "Student"){throw Status;} } string Display(){cout<<"Status: "+Status<<endl;} ...
C++ Дружественные классы. Есть ли смысл в коде: class A{ ... public: bool ff(); } class B{ подробнее

Показать сообщение отдельно
pavlovnik
41 / 22 / 4
Регистрация: 07.12.2011
Сообщений: 114
20.01.2012, 00:17     класс "очередь параметров"
вот такое задание дали...но запоминаем что сразу делаем с динамической памятью.
1. Разработать класс "очередь параметров" в соответствии со следующим заданием:
Состояние класса -
Очередь параметров представляется в виде вектора (массива). Параметром очереди могут быть данные сложного типа, например, первое поле число, второе поле строка символов фиксированной длины. Для описания параметра очереди целесообразно использовать структуру. Память под массив выделяется статически, во время компиляции, и задается массивом фиксированного размера.
Протокол класса -
Определяет возможности создания и инициализации экземпляров класса и правила их использования (методы класса).
Предусмотреть следующие возможности:
• создание экземпляров структуры (параметра) с инициализацией начальным состоянием по умолчанию;
• пустой конструктор для инициализации экземпляров и массивов экземпляров класса (очереди) по умолчанию;
• создание экземпляров класса (очереди) с инициализацией заданным количеством параметров из массива параметров;
• ввод значения параметра из входного потока (с помощью перегруженного оператора >> );
• ввод (добавление) параметра в очередь из входного потока (с помощью перегруженного оператора >> );
• вывод значения параметра в выходной поток (с помощью перегруженного оператора << );
• вывод содержимого очереди (в порядке следования) в выходной поток (с помощью перегруженного оператора << );
• добавление параметра, заданного переменной, в очередь (с помощью перегруженного оператора += );
• выборка параметра из очереди – копирование параметра в переменную соответствующего типа с удалением из очереди (с помощью перегруженного оператора ( ) );
• проверка состояния очереди (пуста, частично заполнена или полна).
3. Повторить разработку класса при условии, что память под строку символов в параметре и массив структур необходимой длины выделяется динамически, во время выполнения программы (с помощью оператора new; память задается указателем на char в структуре и указателем на структуру в состоянии класса).
Дополнить интерфейс класса следующими возможностями:
• ввести в состояние класса размер очереди, который всякий раз при переполнении очереди увеличивать;
• память под данные поля информации выделять динамически с помощью оператора new;
• создание экземпляра класса (очереди) с его инициализацией другим экземпляром класса (копирующий конструктор) для параметра и очереди;
• переопределение экземпляра класса (с помощью перегруженного оператора присваивания) для параметра и очереди.
4. Написать прикладную программу, использующую разработанный класс.



вот что я навоял, но хочу чтобы работало,посмотрите ошибки и с программой которая функции все проверяет помогите(
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
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
#include <iostream>
 
using namespace std;
 
struct elem
{
    int num;
    char *str;
 
 
    elem();
    elem(elem &e);
    elem& operator=(elem & e);
 
    friend istream & operator>>(istream&is,elem& e);
    friend ostream & operator<<(ostream&os,elem& e);
 
};
    class queue
    {
    private:
        int len;
        elem *mas;
        
    public:
        queue();
        queue(int n);
        queue(int n, elem *m);
 
        queue(queue &q);
        queue& operator=(queue &e);
        ~queue();
        
        queue& operator+=(elem e);
        void operator()(int pos, elem e);
        void ochered(queue & q);
 
        friend istream & operator>>(istream&is,queue& q);
        friend ostream & operator<<(ostream&os,queue& q);
    };
 
 
#include <iostream>
#include "classs.h"
using namespace std;
 
 
elem::elem()
{
    num=0;
    str=new char[80];
}
 
elem::elem(elem &e)
{
    num=e.num;
    str=new char[num];
    for(int i=0; i<num; i++)
        str[i]=e.str[i];
}
 
elem & elem::operator=(elem &e)
{
    if(this==&e)
        return *this;
    delete[] str;
    num=e.num;
    str=new char[num];
    for(int i=0;i<num;i++)
        str[i]=e.str[i];
    return *this;
}
 
 
istream & operator>>(istream&is,elem& e)
{
    cout<<"Ââåäèòå Г*îìåð: ";
    is>>e.num;
    cout<<"Ââåäèòå ïîëå ГЁГ*ГґГ®: ";
    is>>e.str;
    return is;
}
 
ostream & operator<<(ostream&os,elem& e)
{
    os<<e.num<<' '<<e.str<<endl;
    return os;
}
 
 
//ГЄГ«Г*Г±Г±
 
queue::queue()
{
    len=0;
    mas=0;
}
 
queue::queue(int n)
{
    len=n;
    mas=new elem[len];
}
 
queue::queue(int n, elem * m)
{
    len=n;
    mas=new elem[len];
    for(int i=0;i<len; i++)
        mas[i]=m[i];
 
}
 
queue::queue(queue &q)
{
    len=q.len;
    mas= new elem[len];
    for(int i=0; i<len; i++)
        mas[i]=q.mas[i];
}
 
queue & queue::operator=(queue &q)
{
    if(this==&q)
        return *this;
    delete []mas;
    len=q.len;
    mas=new elem[len];
    for(int i=0; i<len; i++)
        mas[i]=q.mas[i];
    return *this;
}
queue::~queue()
{
    delete[] mas;
}
 
 
istream & operator>>(istream&is,queue& q)
{
    for(int i=0;i<q.len;i++)
        is>>q.mas[i];
    return is;
 
}
 
ostream & operator<<(ostream&os,queue& q)
{
    for ( int i=0; i<q.len;i++)
        os<<q.mas[i];
return os;
};
 
queue & queue::operator+=(elem e)
{
    queue q(len+1,mas);
    mas[len]=e;
    delete[]mas;
    len=q.len;
    mas=new elem[len];
    for(int i=0;i<len; i++)
        mas[i]=q.mas[i];
    return *this;
};
 
 
void queue::operator()(int pos, elem e)
{queue q(len-1);
    for(int i=0;i<pos;i++)
        q.mas[i]=mas[i];
    e=mas[pos];
    for(int i=0;i<len;i++)
        q.mas[i]=mas[i];
    delete[] mas;
    len=q.len;
    mas=new elem[len];
    for(int i=0; i<len; i++)
        mas[i]=q.mas[i];
}
 
void queue::ochered(queue & q)
{
    int n=5;
    if(q.len=0)
      cout<<"Î÷åðåäü ГЇГіГ±ГІГ*"<<endl;
    else if(q.len=n)
        cout<<"Î÷åðåäü Г§Г*ïîëГ*ГҐГ*Г*"<<endl;
    else 
        cout<<"Г…Г±ГІГј ìåñòî"<<endl;
 
}
 
 
 
 
 
 
int main()//самая печалька
{   
    setlocale(LC_ALL, "Russian");
    elem *m=new elem[2];
    for(int i=0; i<2; i++)
        cin>>m[i];
    queue q(2,m);
    cout<<q;
    system("pause");
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru