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

Как вывести на дисплей всю очередь? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Данная строка, состоящая из групп нулей и единиц. Найти и вывести на экран группы, состоящие только из нулей http://www.cyberforum.ru/cpp-beginners/thread785169.html
Данная строка, состоящая из групп нулей и единиц. Каждая группа отделяется друг от друга одним или несколькими пробелами. Найти и вывести на экран группы, состоящие только из нулей.
C++ Сделать функцию, которая по порядковому номеру числа Фибоначчи возвращает его значение Сделать функцию, которая по порядковому номеру числа Фибоначчи возвращает его значение С++ http://www.cyberforum.ru/cpp-beginners/thread785168.html
В матрице n -го порядка переставить строки так, чтобы на главной диагонали матрицы были расположены элементы, наибольшие по абсолютной величине C++
В матрице n -го порядка переставить строки так, чтобы на главной диагонали матрицы были расположены элементы, наибольшие по абсолютной величине.
C++ Обработка данных во время ввода
Известны результаты двух спортсменов-пятиборцев в каждом из пяти видов спорта в баллах.Определить, какой спортсмен набрал наибольшую сумму баллов.
C++ Удалить элемент из списка! http://www.cyberforum.ru/cpp-beginners/thread785160.html
Почему когда подходит к удалению элемента из списка выбивает сообщение: Необработанное исключение в "0x004119ba" в "List_.exe": 0xC0000005: Нарушение прав доступа при чтении "0xfeeefeee". Вот весь код: #include <iostream> #include <locale> using namespace std;
C++ Факториал числа Помогите пожалуйста мне надо найти (5!)! подробнее

Показать сообщение отдельно
SummerRain
 Аватар для SummerRain
325 / 324 / 17
Регистрация: 16.12.2012
Сообщений: 544
18.02.2013, 04:58     Как вывести на дисплей всю очередь?
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
#include <Windows.h>
#include <conio.h>
#include <iostream>
#include <stdlib.h>
using namespace std;
struct queue
{
    char name[30];         
    char gender[10];      
    char spec[20];         
    int exam[3];
    struct queue *next;
};
typedef struct queue QUEUE;
typedef QUEUE * QUEUES;
void Enter();
void head();
void line();
void Show(QUEUES);
void Add();
void Del();
int l=1;
QUEUES headPtr = NULL, endPtr = NULL;
int main()
{
    //setlocale(0, "");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int t;
    char end='1';
    while(end!='0')
    {
    printf("\n1 - Создать очередь"
    "\n2 - Добавить студента в очередь"
    "\n3 - Удалить студента из очереди"
    "\n4 - Показать всю очередь"
    "\n5 - Очистить екран"
    "\n0 - Выход"
    "\nНужная операция ");
    scanf("%d",&t);
    switch(t)
    {
    case 1:
        Enter();
        break;
    case 2:
        Add();
        break;
    case 3:
        Del();
        break;
    case 4:
        head();
        Show(headPtr);
        line();
        break;
    case 5:
        system("cls");
        break;
    case 0:
        exit(0);
    default:
        printf("Неизвестная операция, попробуйте еще раз! ");
        break;
    }
    }
 
    getch();
    return 0;
}
void Enter()
{
    fflush(stdin);
    QUEUES newPtr;
    newPtr =(QUEUES)calloc(1,sizeof (QUEUE));
    int a;
    if(newPtr!=NULL)
    {
        printf("\nФамилия студента: ");
        gets(newPtr->name);
        printf("\nСтать:1-Мужчина,2-Женщина ");
        scanf("%d",&a);
        switch(a)
        {
        case 1:
            strcpy(newPtr->gender,"Мужчина");
            break;
        case 2:
            strcpy(newPtr->gender,"Женщина");
            break;
        default:
        printf("\nОшибка!");
        }
        printf("Специальность: ");
        scanf("%s",&newPtr->spec);
        printf("Екзамены: ");
        for(int j=0;j<3;j++)
        {
           printf("\n%d. ",j+1);
           scanf("%d",&newPtr->exam[j]);
        }
        newPtr->next==NULL;
        if(l){headPtr=newPtr;l=0;}
        endPtr=newPtr;
  }
    
}
void head() 
{
  printf("                            СПИСОК СТУДЕНТОВ                           \n");
  printf("|----------------------------------------------------------------------|\n");
  printf("|     Фамилия       |   Пол     |   Специальность  |     Екзамены      |\n");
  printf("|                   |           |                  |                   |\n");
  printf("|-------------------|-----------|------------------|-------------------|\n");
}
void line() 
{
  printf("\n|----------------------------------------------------------------------|\n");
}
void Show(QUEUES currentPtr)
{
    if(currentPtr==NULL)printf("\n\t\t\t\tОчередь пуста!\n");
    else
    {
    printf("|Очередь:\t\t\t\t\t\t\t\t       |");
    while(currentPtr)
    {
        printf("\n| %13s     | %9s | %12s     |%5d, %5d, %5d|",
            currentPtr->name,currentPtr->gender,currentPtr->spec,currentPtr->exam[0],currentPtr->exam[1],currentPtr->exam[2]);
        currentPtr=currentPtr->next;
    }
    
    }
    
}
void Add()
{
    fflush(stdin);
    QUEUES newPtr;
    newPtr =(QUEUES)calloc(1,sizeof (QUEUE));
    int a;
    if(newPtr!=NULL)
    {
        printf("\nФамилия студента: ");
        gets(newPtr->name);
        printf("\nПол:1-Мужчина,2-Женщина ");
        scanf("%d",&a);
        switch(a)
        {
        case 1:
            strcpy(newPtr->gender,"Мужчина");
            break;
        case 2:
            strcpy(newPtr->gender,"Женщина");
            break;
        default:
        printf("\nОшибка!");
        }
        printf("Специальность: ");
        scanf("%s",&newPtr->spec);
        printf("Екзамены: ");
        for(int j=0;j<3;j++)
        {
           printf("\n%d. ",j+1);
           scanf("%d",&newPtr->exam[j]);
        }    
    }
    if (headPtr == endPtr)
    {
        newPtr->next = NULL;
        endPtr = newPtr;
        headPtr->next = endPtr;
    }
    else {
        QUEUES currentPtr = endPtr;
        newPtr->next = NULL;
        endPtr = newPtr;
        currentPtr->next = endPtr;
    }
}
void Del()
{
    QUEUES temp=headPtr->next;
    QUEUES newPtr=headPtr;
    headPtr=headPtr->next;
    free(newPtr);
}
 
Текущее время: 20:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru