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

5.2 Реализовать представление очереди. Работу со структурами организовать в виде текстового меню - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычислить z = ab + cb, используя рекурсивную функцию http://www.cyberforum.ru/cpp-beginners/thread883952.html
Ввести с клавиатуры любое целое число "b" и действительные числа "a" и "с". вычислить z = ab + cb, используя рекурсивную функцию: x^n = 1, если n = 0; x^n = 1 / (x(-n)), если n <0; x^n = x ⋅ (x^(n-1)), если n> 0. n - это степень
C++ 5.1. Реализовать представление стека. Работу со структурами организовать в виде текстового меню #include <stdio.h> #include <stdlib.h> typedef struct Item* pItem; struct Item { int data; pItem next; }; http://www.cyberforum.ru/cpp-beginners/thread883948.html
C++ 11(4) напишите программу определения кода вводимого символа
Пример 4. С помощью директивы #define и оператора препроцессора # напишите программу определения кода вводимого символа. Программный код решения примера: #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <conio.h> #include <locale.h> #define CHAR_COD(c) ""#c"" int main (void) {
11(3) напишите программу ввода слов с клавиатуры с проверкой возможности к C++
Пример 3. С помощью директив условной компиляции и символической константы _DEBUG напишите программу ввода слов с клавиатуры с проверкой возможности компиляции программного кода. Программный код решения примера: #include <stdio.h> #include <conio.h> int main (void) { char str; // Начало проверки компилируемого кода #ifdef _DEBUG
C++ Выяснить, сколько из двух матриц являются симметричными http://www.cyberforum.ru/cpp-beginners/thread883927.html
Заданы две матрицы А(3,3) и В(4,4). Выяснить и напечатать, сколько из них являются симметричными (0.1 и 2). Матрица называется симметричной, если транспонированная матрица равна исходной. Транспонирование матриц оформить в виде функции
C++ Вывести фамилии студентов, которые не получают стипендию и их перечень дисциплин (переделать под объединение и перечисление) Дан список студентов. Общие поля: Ф.И.О., дата рождения, группа, средний балл. Если средний балл 4 и выше, то указать размер стипендии. Если средний балл ниже, то указать перечень дисциплин с оценками. Вывести фамилии студентов, которые не получают стипендию и их перечень дисциплин. #include <stdio.h> #include <string.h> #include <clocale> int main() { setlocale(0,"Rus"); static... подробнее

Показать сообщение отдельно
DRUNY195
2 / 2 / 0
Регистрация: 04.04.2013
Сообщений: 247
03.06.2013, 21:56  [ТС]     5.2 Реализовать представление очереди. Работу со структурами организовать в виде текстового меню
АААА, СПАСИБО БОЛЬШОЕ, чет забыл поставить двойной указатель)))

Добавлено через 11 минут
Что-то тут не так, теперь во время того, как я выбираю какое нибудь значение меня выносит из проги

Добавлено через 40 секунд
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
#include <conio.h>
#include <iostream>
#include <locale.h>
 using namespace std;
struct QUEUE //структура очередь
{
    int info;
    QUEUE *next;
};
 
int EmptyQ(QUEUE *first) //проверка пустоты очереди
{
    if ((first)==NULL)
    return 1;
    else
    return 0;
}
 
void AddQ(QUEUE ** last) //добавление элемента 
{
    QUEUE *tmp = new QUEUE;
    tmp->info=rand()%100;
    tmp->next=NULL;
    (*last)->next=tmp;
    *last=tmp;
}
 
void DelQ(QUEUE *first, QUEUE ** last) //удаление из очереди 
{
    QUEUE *tmp=first->next;
    if(first->next==NULL)
    *last=first;
    delete tmp;
}
 
void ShowQ(QUEUE *first) //просмотр очереди
{
    QUEUE *tmp=first->next;
    while(tmp!=NULL)
    {
        cin>>tmp->info;
        tmp=tmp->next;
    }
}
 
void ClearQ(QUEUE *first, QUEUE ** last) //очистка очереди 
{
    QUEUE *tmp;
    while(first->next!=NULL)
    {
        tmp=first->next;
        first->next = tmp;
        delete tmp;
    }
   * last=first;
}
 
int main()
{
    setlocale(LC_ALL, "rus");
    QUEUE *first, *last;
    int n;
    char d;
    do
    {
        cout<<"1. Добавление элементов в конец очереди \n";
        cout<<"2. Удаление элемента из начала очереди \n";
        cout<<"3. Вывод элементов \n";
        cout<<"0. Выход \n";
        cout<<"Выбранное действие: ";
        cin>> d;
        switch(d)
        {
            case '1':
            AddQ(&last);
            cout<<"\nЭлемент добавлен в конец очереди \n";
            break;
 
            case '2':
            if (EmptyQ(first)==1)
            cout<<"\nОчередь пустая \n";
            else
            {
                DelQ(first,&last);
                cout<<"\nЭлемент удален из очереди \n";
            }
            break;
 
            case '3':
            if (EmptyQ(first)==1)
            cout<<"\nОчередь пустая \n";
            else
            {
               cout<<"\nЭлементы очереди: ";
                ShowQ(first);
                cout<<"\n";
            }
            break;
 
            case '0':
            ClearQ(first,&last);
            break;
            default: cout<<"\nОшибка!\n"; break;
          }
       }while(d!='0');
    _getch();
}
Вот если че под с++

Добавлено через 16 минут
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
#include <conio.h>
#include <iostream>
#include <locale.h>
 using namespace std;
struct QUEUE //структура очередь
{
    int info;
    QUEUE *next;
};
 
int EmptyQ(QUEUE *first) //проверка пустоты очереди
{
    if ((first)==NULL)
    return 1;
    else
    return 0;
}
 
void AddQ(QUEUE ** last) //добавление элемента 
{
    QUEUE *tmp = new QUEUE;
    tmp->info=rand()%100;
    tmp->next=NULL;
    (*last)->next=tmp;
    *last=tmp;
}
 
void DelQ(QUEUE *first, QUEUE ** last) //удаление из очереди 
{
    QUEUE *tmp=first->next;
    if(first->next==NULL)
    *last=first;
    delete tmp;
}
 
void ShowQ(QUEUE *first) //просмотр очереди
{
    QUEUE *tmp=first->next;
    while(tmp!=NULL)
    {
        cin>>tmp->info;
        tmp=tmp->next;
    }
}
 
void ClearQ(QUEUE *first, QUEUE ** last) //очистка очереди 
{
    QUEUE *tmp;
    while(first->next!=NULL)
    {
        tmp=first->next;
        first->next = tmp;
        delete tmp;
    }
   * last=first;
}
 
int main()
{
    setlocale(0, "rus");
    QUEUE *first, *last;
    int n;
    char d;
    do
    {
        cout<<"1. Добавление элементов в конец очереди \n"<<endl;
        cout<<"2. Удаление элемента из начала очереди \n"<<endl;
        cout<<"3. Вывод элементов \n"<<endl;
        cout<<"0. Выход \n"<<endl;
        cout<<"Выбранное действие: "<<endl;
        cin>> d;
        switch(d)
        {
            case 1:
            AddQ(&last);
            cout<<"\nЭлемент добавлен в конец очереди \n"<<endl;
            break;
 
            case 2:
            if (EmptyQ(first)==1)
            cout<<"\nОчередь пустая \n";
            else
            {
                DelQ(first,&last);
                cout<<"\nЭлемент удален из очереди \n"<<endl;
            }
            break;
 
            case 3:
            if (EmptyQ(first)==1)
            cout<<"\nОчередь пустая \n"<<endl;
            else
            {
               cout<<"\nЭлементы очереди: "<<endl;
                ShowQ(first);
                cout<<"\n";
            }
            break;
 
            case 0:
            ClearQ(first,&last);
            break;
            default: cout<<"\nОшибка!\n"<<endl; break;
          }
       }while(d!=0);
    _getch();
}
Вот кейсы изменил, при любом выборе выдает Ошибка!т.е кидает сразу на нулевой кейс, что не так?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru