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

по контрольной вопрос по поводу вывода списка - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Граф в С http://www.cyberforum.ru/cpp-beginners/thread374066.html
Не могли бы помочь.. как можно построить граф в С ? или где модно прочесть про то как создать файл в который этот граф нарисуется?
C++ Создайте вектор, хранящий десять строковых значений "zero", "one", ..., "nine" не могу понять как это можно сделать: "Создайте вектор, хранящий десять строковых значений "zero", "one", ..., "nine". Введите их в программу, преобразующую цифру в соответствующее строковое представление; например, при вводе цифры 7 на экран должна быть выведена строка seven. С помощью этой же программы, используя тот же са¬мый цикл ввода, преобразуйте строковое представление цифры в числовое;... http://www.cyberforum.ru/cpp-beginners/thread374057.html
Вопрос про Спецификаторы доступа Public и Private C++
Читаю Дейтлов... Дошел до объяснения спецификаторов и не могу понять 2 предложения: Доступ по умолчанию к элементам класса-закрытый(private),поэтому все элементы между заголовком класса и первым спецификатором доступа являются закрытыми .Спецификаторы public и private могут повторяться,хотя в этом нет необходимости и может приводить к путанице Еще: class GradeBook { public: void...
Строки, Функции C++
Всем доброго времени суток. Нужна помощь в решении. Строки 1. Символьная строка заканчивается восклицательным знаком (!). Слова в ней отделены друг от друга точкой с запятой ( ; ). Найти те слова, которые начинаются и оканчиваются одной и той же буквой. Функции 1. Часовая стрелка образует угол "Фи" с лучом, проходящим через центр циферблата и через точку, соответствующую 12 часам,...
C++ тупняк с virtual :) http://www.cyberforum.ru/cpp-beginners/thread374039.html
Здравствуйте. пытаюсь прикрутить икслючения к своему "модулю", и натыкаюсь на ругань компилятора: error: expected unqualified-id before ‘virtual’ А дело делается так: class cfg_exception: public exception { public: cfg_exception(const char *message_string); virtual ~cfg_exception() throw();
C++ Метод скальзящего среднего дан двумерный массив (300 строк и 3 столбца: ФИО, порядковый номер получки, величина выплат) - значения зарлаты вариируются винтервале от 1000 до 25000 равновероятно. Написать программу, осуществляющую сглажтвагние временного ряда методом скользящего среднего. Прогнозирование реализовать в виде функции. подробнее

Показать сообщение отдельно
lexflax
10 / 10 / 1
Регистрация: 03.04.2011
Сообщений: 627
28.10.2011, 16:13     по контрольной вопрос по поводу вывода списка
Люди помогите плиз задача такая хочу добавить в список выбора ну так где вводу с текстового файла типизированного и так далее еще один пункт чтоб после формирования списка из файла или с экрана по выбору меню выводился этот список и программа не переставала работать, внизу если функция вывод списка, но когда я ее в case добавлял то при нажатие номера в котором я ее приисывал допустим пункт 10 это вынести список на экран она не выводила а закрывала программу, можно сделать так чтоб выводила и не закрывала при этом?
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
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
# include <iostream>              // класс для работы с вводом-выводом
# include <windows.h>             // для функции    CharToOem();
# include <fstream>           // класс для работы с файлом
# include <string>                // класс для работы со строками
using namespace std;
    char bufRus[256];
    char* Rus(const char* text)
    {
        CharToOem(text, bufRus);
    return bufRus;
    }
 
struct lfile{
    char name[15];
    char data[10];
    int upd;
};
struct sp{
    lfile elfile;   // поле данных
    sp *next;   // указатель
};
 
void print_list(sp *list);
void fb_output(sp *list);
sp* fromtipf();
sp* ft_enter();
sp* fb_enter();
sp* fs_enter();
sp* sort(sp *list);
void search(sp *list);
void fsearch(sp *list);
sp* ddf(sp *list);
sp* pind(sp *list);
sp* del(sp *list,sp *adr);
sp * vst(sp *list,sp *adr);
void zmn(sp *list);
 
void main()
{
   int v;
   sp *k;
    while(1){
      cout<<Rus("  0: формирование списка из текстового файла")<<endl;
      cout<<Rus("  1: формирование списка из типизированного файла")<<endl;
      cout<<Rus("  2: формирование списка с экрана")<<endl;
      cout<<Rus("  3: сортировка")<<endl;
      cout<<Rus("  4: поиск по заданному полю с сохранением результатов в файле")<<endl;
      cout<<Rus("  5: выборка файла с наибольшим количеством обращений")<<endl;
      cout<<Rus("  6: замена записи")<<endl;
      cout<<Rus("  7: удаление записи после указанного адреса")<<endl;
      cout<<Rus("  8: вставка записи после указанного адреса")<<endl;
      cout<<Rus("  9: выход")<<endl;
      cout<<Rus("вариант ")<<endl;
      cin>>v;
      switch(v){
        case 0: k = ft_enter(); break;
        case 1: k = fb_enter(); break;
        case 2: k = fs_enter(); break;
        case 3: k = sort(k); print_list(k); break;
        case 4: search(k);break;
        case 5: fsearch(k); break;
        case 6: zmn(k); print_list(k); break;
        case 7: k = del(k,pind(k)); print_list(k); break;
        case 8: k = vst(k,pind(k)); print_list(k); break;
        case 9:return; break;
        }
    }
}
 
//ввод списка из текстового файла
sp* ft_enter(){
    char name[10];
    cout<<Rus("введи имя входн тип.файла")<<endl;
    cin>>name;
    char f[20];
    sp* list = new sp; //создаем указатель на голову списка
    sp *ptr;  //указатель на элемент списка
    bool on=true; //флажок, который определяет, читаем ли мы первый элемент списка или последующие
    ifstream inf(name);
    while (!inf.eof()){
        if(on){ //если до этого список был пуст, то
            ptr=list; //записываем в него первый элемент
            on=false;
        }else{//если список не пуст, то записываем в него текущий элемент (настраиваем указатель на след. элемент)
            ptr->next=new sp;
            ptr=ptr->next;
        }
        inf>> ptr->elfile.name; //читаем конкретные данные в текущий элемент списка
        inf>> ptr->elfile.data;
        inf>> ptr->elfile.upd;
        inf.ignore();
    }
    ptr->next=NULL; //для последнего элемента списка указатель на следующий элемент не определен/пуст (установлен в NULL)
    inf.close();
    return list; //  возвращаем полученный список
}
 
//ввод списка из типизированного файла
sp* fb_enter(){
    sp* list =new sp; //создаем указатель на голову списка
    sp *ptr,*q;
    int ok=1;
    char name[15];
    cout<<Rus("введи имя входн тип.файла")<<endl;
    cin>>name;
    ifstream intf(name, ios::binary);
    ptr=list;
    while (!intf.eof()){
        intf.read(reinterpret_cast<char *>(&ptr->elfile),sizeof(lfile));
            if(ptr->elfile.upd != NULL){
                q=ptr;
                ptr->next=new sp;
                ptr=ptr->next;
            }
    }
    q->next=NULL;
    intf.close();
    return list;
}
 
//ввод списка с экрана
sp* fs_enter(){
    sp* list =new sp; //создаем указатель на голову списка
 
    sp *ptr;
    char name;
    cout<< Rus("Введиде имя, дату создания, кольчество обращений к файлу")<<endl;
    ptr=list;
    while (true){
        cin>>ptr->elfile.name;
        cin>>ptr->elfile.data;
        cin>>ptr->elfile.upd;
        cout<<Rus("ещё (y/n)")<<endl;
        cin>>name;
        if(name=='n') break;
        ptr->next=new sp;
        ptr=ptr->next;
    }
    return list;
}
 
//вывод списка на экран
void print_list(sp *list){
    sp *prt = list;
    int i=0;
    while (true){
        cout<<++i<<"  ";
        cout<<prt->elfile.name<<"      ";
        cout<<prt->elfile.data<<"      ";
        cout<<prt->elfile.upd<<endl;
        prt=prt->next;
        if(prt == NULL) break;
    }
}
 
//сортировка списка
sp* sort(sp *list){
    sp *pt=list, *ptr, *pred=list, *q;
    int ok,ok1;
    do{
        ok=0, ok1=1; ptr=pt;
        while (ptr->next){
            if(ptr->elfile.upd > ptr->next->elfile.upd){
                if(ok1) { // первый элемент
                    ok1=0;
                    q=pt;
                    pt=pt->next;
                    q->next=pt->next;
                    pt->next=q;
                    ptr=pt;
                    ok=1;
                }
                else {
                    q=pred->next;
                    pred->next=pred->next->next;
                    q->next=pred->next->next;
                    pred->next->next=q;
                    ptr=pt->next;
                    ok=1;
                }
            }
                pred=ptr;
                ptr=ptr->next;
        }
    } while(ok);
    return pt;
}
 
//поиск
void search(sp *list){
    sp *prt = list;
    char f[15],r[15];
    cout<<Rus("введите текст")<<endl;
    cin>>f;
    cout<<Rus("введите выходной файл")<<endl;
    cin>>r;
    ofstream inf(r);
    while (true){
        if(strstr(prt->elfile.name,f)){
          inf<<prt->elfile.name<<"  ";
          inf<<prt->elfile.data<<"  ";
          inf<<prt->elfile.upd<<endl;
        }
        prt=prt->next;
        if(prt == NULL) break;
    }
}
 
//Файл с наиольшим кольчеством обращений
void fsearch(sp *list){
     sp *prt = list;
     int p=-1;
     sp *r;
     while (true){
        if(prt->elfile.upd > p){
            p = prt->elfile.upd;
            r = prt;
        }
        prt=prt->next;
        if(prt == NULL) break;
     }
     cout<<Rus("Файл с наиольшим кольчеством обращений")<<endl;
     cout<<r->elfile.name<<" ";
     cout<<r->elfile.data<<" ";
     cout<<r->elfile.upd<<endl;
}
 
//получить адрес
sp* pind(sp *list){
    sp *prt = list;
    int i=1,j=0;
    cout<<Rus("Введите номер")<<endl;
    cin>>j;
    while (true){
        if(i==j){
            return prt;
            break;
        }
        prt=prt->next;
        if(prt == NULL) break;
        i++;
    }
}
 
//удаление элемента с адресом adr
sp* del(sp *list,sp *adr){
    sp *pt=list, *q;
    if(adr==list){
        pt=adr->next;
        q=adr;
    }else{
        q = adr->next;
        adr->next = adr->next->next;
    }
    delete(q);
    return pt;
}
 
//вставка нового элемента после элемента с адресом adr
sp * vst(sp *list,sp *adr){
    lfile rab;
    sp *pt=list,*q=new sp;
    cout<<"name=";
    cin>>rab.name;
    cout<<"data=";
    cin>>rab.data;
    cout<<"up=";
    cin>>rab.upd;
    q->elfile=rab;
    if(adr==list){
        pt=q;
        q->next=adr;
    }else{
        q->next= adr->next;
        adr->next=q;
    }
    return pt;
}
 
//заменить поле
void zmn(sp *list){
    sp *prt = list;
    int i=1,j=0;
    cout<<Rus("Введите номер")<<endl;
    cin>>j;
    while (true){
        if(i==j){
    cin>>prt->elfile.name;
    cin>>prt->elfile.data;
    cin>>prt->elfile.upd;
            break;
        }   
        prt=prt->next;
        if(prt == NULL) break;
        i++;
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru