Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > Надеюсь среди программистов есть настоящие мужчины


Автор: Галинка 19.12.2005, 11:53
Всем привет!!!
Помогите пожалуйста решить!

Составить программу, которая содержит динамическую информацию о наличии автобусов в автобусном парке. Сведения о каждом автобусе включают:

номер автобуса;
фамилию и инициалы водителя
номер маршрута;

Программа должна обеспечивать:

начальное формирование данных обо всех автобусах в парке в виде списка;

при выезде каждого автобуса из парка вводится номер автобуса, и программа удаляет данные об этом автобусе из списка атобусов, находящихся в парке, и записывает данные в список автобусов, находящиеся на маршруте;

при въезде каждого автобуса в парк вводится номер автобуса, и программа удаляет данные об этом автобусе из списка автобусов, находящихся на маршруте, и записывает эти данные в список автобусов, находящихся в парке;

по запросу выдаются сведения об автобусах, находящихся в парке, или об автобусах, находящихся на маршруте.

C уважением, Галина. smile

Автор: Snowy 19.12.2005, 12:12
Модератор: Название темы должно отражать ее суть!
Модератор: не указана среда программирования.

Программа уровня курсовой. Требует значительных затрат времени.
Думаю, бесплатно Вам решения не найти.

Автор: byNet 19.12.2005, 12:28
Надо время

Автор: Галинка 19.12.2005, 12:28

Программа должна быть написана на С++.....
Добавлено @ 12:31

byNet - помоги пожалуйста! smile

Автор: Галинка 20.12.2005, 12:00

Неужели никто не поможет?

Автор: Zero 20.12.2005, 12:39
Цитата
Неужели никто не поможет?

Только советами, на конкретные вопросы....
Цитата(Snowy @ 19.12.2005, 13:12)
Программа уровня курсовой. Требует значительных затрат времени.
Думаю, бесплатно Вам решения не найти.

Присоединяюсь.

Автор: Галинка 20.12.2005, 14:26

А что можно где-то и за деньги решить? Не подскажите где?

Автор: Snowy 20.12.2005, 16:23
Пока специальный раздел у нас не создан.
Поэтому такие объявления пока публикуются сдесь:
http://forum.vingrad.ru/index.php?showforum=146

Автор: Галинка 21.12.2005, 01:27

Спасибо за совет! Но дайте мне пожалуйста хотя бы начало.....

Автор: FigNaName 21.12.2005, 22:19
Могу помочь бесплатно, если не сильно срочно.(примерно 1 день).
Если тема ещё актуальна - напиши!

for ALL: а почему КРУТЫЕ программеры не помогут ???
Времени нет, или это опять курсувуху писать за других с нуля ???
( за тех кому её здать только надо а само ПРОГРАММИРОВАНИЕ не интерисует ) ???

PS. Если кодинг и правда не интересен - помогать не имею никагого желания .

Автор: Бегемот 21.12.2005, 23:49
Код

#include<iostream.h>
#include<conio.h>
#include<stdio.h>
struct DataAutobus
{
  int number_bus;
  char FamyliName[20];
  int number_marsrut;
};
struct ListAutobus
{
  ListAutobus *next;
  ListAutobus *prev;
  DataAutobus Autobus;
};
//---------------------------------------------------------------------------
ListAutobus *First(DataAutobus *DataA);
void Add(ListAutobus **pAutobusXEnd, DataAutobus *DataAutobus);
ListAutobus *Find(ListAutobus *const pAutobusParkBegin, int i);
bool Move(ListAutobus **pAutobusXBegin, ListAutobus **pAutobusXEnd,
            ListAutobus **pAutobusYBegin, ListAutobus **pAutobusYEnd,
            int *col_autobus_x, int *col_autobus_y);
void Display(ListAutobus *pAutobusXBegin, int *col_autobus);
DataAutobus* InputData();
//---------------------------------------------------------------------------
void main()
{
   int ColAutobus;
   cout << "Введите количествол автобусов в парке : ";
   cin >> ColAutobus;
   int col_autobus_park = ColAutobus;
   int col_autobus_marschrut = 0;
   ListAutobus *pAutobusParkBegin = First(InputData());
   ListAutobus *pAutobusParkEnd = pAutobusParkBegin;
   ListAutobus *pAutobusMarschrutBegin;
   ListAutobus *pAutobusMarschrutEnd;
   for(int i=1; i<ColAutobus; i++)
      Add(&pAutobusParkEnd,InputData());
   int Key;
   while(true)
   {
      cout << endl <<"Выберите действие:" << endl;
      cout << "1:   Выезд автобуса из парка" << endl;
      cout << "2:   Въезд автобуса в парк" << endl;
      cout << "3:   Сведения об автобусах в парке" << endl;
      cout << "4:   Сведения об автобусах на маршруте" << endl;
      cout << "5:   Выход" << endl;
      cin >> Key;
      switch(Key)
      {
         case 1:
            clrscr();
            if(!Move(&pAutobusParkBegin, &pAutobusParkEnd,&pAutobusMarschrutBegin,
               &pAutobusMarschrutEnd,&col_autobus_park, &col_autobus_marschrut))
               cout << "Автобус с введённым номером не найден" << endl;
         break;
         case 2:
            clrscr();
            if(!Move(&pAutobusMarschrutBegin, &pAutobusMarschrutEnd, &pAutobusParkBegin,
               &pAutobusParkEnd, &col_autobus_marschrut, &col_autobus_park))
               cout << "Автобус с введённым номером не найден" << endl;
            break;
         case 3:
            clrscr();
            Display(pAutobusParkBegin, &col_autobus_park);
            break;
         case 4:
            clrscr();
            Display(pAutobusMarschrutBegin, &col_autobus_marschrut);
            break;
         case 5: return;
      }
   }
}
//---------------------------------------------------------------------------
ListAutobus *First(DataAutobus *DataAutobus)
{
   ListAutobus *pv = new ListAutobus;
   pv->Autobus = *DataAutobus;
   pv->next = 0;
   pv->prev = 0;
   return pv;
}
//---------------------------------------------------------------------------
void Add(ListAutobus **pAutobusParkEnd, DataAutobus *DataAutobus)
{
   ListAutobus *pv = new ListAutobus;
   pv->Autobus = *DataAutobus;
   pv->next = 0;
   pv->prev = *pAutobusParkEnd;
   (*pAutobusParkEnd)->next = pv;
   *pAutobusParkEnd = pv;
}
//---------------------------------------------------------------------------
ListAutobus *Find(ListAutobus *const pAutobusParkBegin, int number_autobus)
{
   ListAutobus *pv = pAutobusParkBegin;
   while(pv)
   {
      if(pv->Autobus.number_bus == number_autobus)
         break;
      pv = pv->next;
   }
   return pv;
}
//---------------------------------------------------------------------------
bool Move(ListAutobus **pAutobusXBegin, ListAutobus **pAutobusXEnd,
  ListAutobus **pAutobusYBegin, ListAutobus **pAutobusYEnd, int *col_autobus_x, int *col_autobus_y)
{
   static bool FlagViezd=false;
   int key;
   cout << "Введите номер автобуса : ";
   cin >> key;
   
   if(ListAutobus *pkey = Find(*pAutobusXBegin, key))
   {
      if(*col_autobus_y == 0)
         FlagViezd = false;
      if(!FlagViezd)
      {
         *pAutobusYBegin = First(&pkey->Autobus);
         *pAutobusYEnd = *pAutobusYBegin;
         FlagViezd = !FlagViezd;
      }
      else
         Add(pAutobusYEnd,&pkey->Autobus);
      (*col_autobus_y)++;
      (*col_autobus_x)--;
      if((pkey == *pAutobusXBegin) && (*col_autobus_x!=0))
      {
         *pAutobusXBegin = (*pAutobusXBegin)->next;
         (*pAutobusXBegin)->prev = 0;
      }
      else if((pkey == *pAutobusXEnd) && (*col_autobus_x!=0))
      {
         *pAutobusXEnd = (*pAutobusXEnd)->prev;
         (*pAutobusXEnd)->next = 0;
      }
      else if(*col_autobus_x!=0)
      {
         (pkey->prev)->next = pkey->next;
         (pkey->next)->prev = pkey->prev;
      }
      delete pkey;
      return true;
   }
   return false;
}
//---------------------------------------------------------------------------
void Display(ListAutobus *pAutobusXBegin, int *col_autobus)
{
   if(*col_autobus == 0)
   {
      cout << endl << "Автобусов нет!" <<endl;
      return;
   }
   ListAutobus *pv = pAutobusXBegin;
   while(pv)
   {
      cout << endl;
      cout << "Номер автобуса :\t\t\t" << pv->Autobus.number_bus << endl;
      cout << "Фамилия и инициалы водителя :\t\t" << pv->Autobus.FamyliName << endl;
      cout << "Номер маршрута :\t\t\t" << pv->Autobus.number_marsrut << endl;
      pv = pv->next;
   }
   cout << endl;
}
//---------------------------------------------------------------------------
DataAutobus* InputData()
{
   static number = 1;
   DataAutobus *tempData = new DataAutobus;
   cout << endl <<"Autobus N" << number << endl;
   cout << "Фамилия и инициалы водителя : ";
   gets(tempData->FamyliName);
   gets(tempData->FamyliName);
   cout << "Номер автобуса : ";
   scanf("%i",&tempData->number_bus);
   cout << "Номер маршрута : ";
   scanf("%i",&tempData->number_marsrut);
   number++;
   return tempData;
}
//---------------------------------------------------------------------------

Галинка, на счёт того, насколько грамотно написана программа, говорить не берусь! Протестируй её как следует. Если вылезут какие-нибудь ошибки, пиши!
P.S:Галинка, какого курса эта задача?!

Автор: FigNaName 22.12.2005, 00:12
Сана!!! Это задача первого курса.
Что за соперничество????
sorry за офтопик !!!

Автор: Галинка 22.12.2005, 12:35

FigNaName

Привет! Да тема ещё актуальна, если есть соображения, поожалуйста напиши!
Заранее благодарю!
Добавлено @ 12:37

Бегемот - Спасибо Тебе Большое!!!

Автор: Галинка 22.12.2005, 14:44


Задача второго курса!

Автор: St. Andrew 22.12.2005, 17:24
Нет, я может чего и не понимаю, но писать курсовую "с нуля" могут позволить себе люди либо постоянно занимающиеся программированием и , соответственно, для которых это - развлечение, либо же люди, которым просто делать нечего. Приходилось мне писать некотое количество похожих программ на асме, где были разные операции с файлами. В принципе, после пятой проги я уже полностью запомнил основные функции и приемы для подобных прог. Но браться за подобное "развлечение" ради удовольствия почему-то не хотелось - процесс разработки алгоритма+кодирование+отладка - это ВРЕМЯ! Одно дело, когда ты помогаешь кому-то, а вот когда ДЕЛАЕШЬ за кого-то - это совсем другая кухня. smile

Автор: FigNaName 22.12.2005, 17:52
To St. Andrew: согласен с тобой частично. Т.к. кодинг для меня это развлечение ( читай удовольствие непомерное ).
To Галинка : чем тебя не устраивает исходник Бегемота ?
Есть ошибки - ноэто уже второе дело - главное есть с чего начать.
А Бегемот дал вполне работающий исходник.
Работай с ним (с исходником).
Если будут конкретные вопросы - поможем ( мы с Бегемотом ).

Автор: Guest 22.12.2005, 19:53


А как же альтруизм....... помочь младшей боевой подруге..... smile

Автор: Zero 22.12.2005, 21:14
Цитата(Guest @ 22.12.2005, 20:53)
А как же альтруизм....... помочь младшей боевой подруге...

Сейчас время политики. Всё за деньги.

PS: если помочь советом, то без проблем... Сам раньше ни чего не знал, но имел желание учить... Соответственно, тем кто хочет но из-за каких то вопросов не может, то тем и помогают бесплатно, а остальным только за деньги.

Но находятся также и исключения... (Бегемот ─ forever smile )

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)