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

Помощ в программке - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Копирование дека в обратном порядке http://www.cyberforum.ru/cpp-beginners/thread1072.html
Помогите пожалуйста с копированием дека в обратном порядке. Программа полностью работает, даже правильно! предрались к тому, что копирование надо сделать через новый дек. То есть данные из одного дека перенести в другой в обратном порядке, и тут же вывести на экран. (фрагмент выделен ниже) #pragma hdrstop #include <iostream.h> #include <conio.h> #include <string.h> #include <stdlib.h> ...
C++ В каком модуле описаны TWaveFormatEx, HWaveOut, WaveHdr? Подскажите, пожалуйста, какой необходимо подключить модуль, чтобы при компиляции определялись классы: TWaveFormatEx HWaveOut WaveHdr http://www.cyberforum.ru/cpp-beginners/thread1037.html
C++ Программа для проверки ошибок
Нужна такая программа. Работает в консольном приложении. Описываю её работу: вводим любой код на С++ в консольном окне и программа выдаёт есть ошибки или нет(yes/no). Заранее Спасибо!!!
Как бы вы написали кусок программы, Вариант 1 или Вариант 2? C++
Как бы вы написали кусок программы Вариант 1 или Вариант 2 ? Вариант 1. double Value0 = value0 / 100; switch (i){ case 1: Value0 = Value0 / 10; break; case 2: Value0 = Value0 / 100;
C++ Как организовать ввод данных? http://www.cyberforum.ru/cpp-beginners/thread987.html
пишу программу, использующую класс множество, елементы которого надо вводить с клавиатуры. Надо использовать динамический список. Как организовать ввод данных? Вернее как обозначить конец ввода? Проблема в том, что в одном случае будуь числа, в другом - символы, те разные типы.(шаблон класса будет)
C++ Указатель на функцию член Вот урезаный донельзя код: class Window { public: ... bool registerClassEx() подробнее

Показать сообщение отдельно
hadriel
Сообщений: n/a
04.06.2009, 19:28     Помощ в программке
помогите пожалуйста доделать программу:
реализующую список пассажиров в виде динамического списка структур вида:
struct pass {
int time; //время отправления в целом формате(1,2или3)
int place[30]; //номер места
struct pass*nextPtr; //пункт назначения (ВилиС)
};
Каждому времени отправления соответствует один автобус с числом мест, равном 5. А-пункт отправления, В-промежуточная станция, С-конечная станция.
Программа должна выполнять следующие функции:
-Вставка нового элемента в список, поля time и dest которого заполняются пользователем, поле place заполняется автоматически с увеличением на единицу с каждым новым пассажиром на данное время отправления. Если на запрашиваемое время отправления все места заняты, программа должна предложить ближайший по времени следующий рейс со свободными местами.
При добавлениии структуры она располагается в начале или конце списка.
-Вывод на экран всех элементов списка.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
struct pass
{
int time;
int place;
char dest[30];
struct pass *nextPtr;
};
int exitt=0;
typedef struct pass Pass;
typedef Pass *passptr;
void insert(passptr *,int , int , char*);
int isempty (passptr);
void printlist (passptr);
void instructions(void);
int main()
{
clrscr();
passptr startptr = NULL;
int t;
int p;
int choice;
char item[30];
int Time1;
int Time2;
int Time3;
passptr currentptr;
instructions();
printf ("Choice?");
scanf ("%d",&choice);
while(choice !=3)
{
switch (choice)
{
case 1:
printf ("Enter a time:");
scanf ("\n%i", &t);
printf ("Enter a dest:");
scanf ("\n%s", item);
insert(&startptr, t, p, item);
printlist(startptr);
break;
case 2:
Time1=5;
Time2=5;
Time3=5;
currentptr=startptr;
while (currentptr !=NULL)
{
if (currentptr->time==1)
{
Time1--;
}
if (currentptr->time==2)
{
Time2--;
}
if (currentptr->time==3)
{
Time3--;
}
currentptr=currentptr->nextPtr;
}
printf ("Free place on time 1: %i\n", Time1);
printf ("Free place on time 2: %i\n", Time2);
printf ("Free place on time 3: %i\n", Time3);
break;
case 3:
break;
default:
printf("invalid choice. \n\n");
instructions() ;
break;
}
printf("Choice?");
scanf("%d", &choice);
}
printf("End of run. \n");
getch();
return 0;
}
void instructions (void)
{
printf ("enter your chioce: \n"
"1 to insert an element into the list. \n"
"2 Print free place. \n"
"3 to end. \n" );
}
void insert (passptr *sptr, int t, int p, char* value)
{
passptr newptr, previousptr, currentptr, timeptr;
newptr=new Pass;
if (newptr != NULL)
{
exitt=0;
strcpy(newptr->dest , value);
newptr->time = t;
newptr->place = p=1;
newptr->nextPtr = NULL;
previousptr = NULL;
currentptr = *sptr;
timeptr = NULL;
while (currentptr !=NULL)
{
if (currentptr->time==t && strcmp(currentptr->dest, value)==0 && currentptr->place==5)
{
exitt=1;
printf ("Error. Place is not available! \n");
break;
}
if (currentptr-> time==t)
{
timeptr=currentptr;
}


previousptr=currentptr;
currentptr=currentptr ->nextPtr;
}
if (exitt==0)
{
if (previousptr==NULL)
{
newptr->nextPtr = *sptr;
*sptr=newptr;
}
else
{
previousptr->nextPtr=newptr;
newptr->nextPtr = currentptr;
newptr->place= timeptr->place+1;
}
}
}
else
printf("%c not inserted. no memory available. value");
}
int isempty(passptr sptr)
{
return sptr==NULL;
}
void printlist(passptr sptr)
{
passptr currentptr;
currentptr=sptr;
while (currentptr !=NULL)
{
printf ("Time: %i\n",currentptr->time);
printf ("Place: %i\n",currentptr->place);
printf ("Dest: %s\n\n",currentptr->dest);
currentptr=currentptr->nextPtr;
}
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru