Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.06.2016, 23:53   #1
volchara78
Новичок
Джуниор
 
Регистрация: 18.06.2016
Сообщений: 2
По умолчанию помогите исправить код

Здравствуйте!помогите пожалуйста! Составить программу, которая содержит динамическую информацию о наличии автобусов в автобусном парке. Сведения о каждом автобусе содержат: • номер автобуса; • фамилию и инициалы водителя; • номер маршрута. Программа должна обеспечивать: • начальное формирование данных обо всех автобусах в парке в виде списка; • при выезде каждого автобуса из парка вводится номер автобуса, и программа удаляет данные об этом автобусе из списка автобусов, находящихся в парке, и записывает эти данные в список автобусов, находящихся на маршруте; • при въезде каждого автобуса в парк вводится номер автобуса, и программа удаляет данные об этом автобусе из списка автобусов, находящихся на маршруте, и записывает эти данные в список автобусов, находящихся в парке; • по запросу выдаются сведения об автобусах, находящихся в парке, или об автобусах, находящихся на маршруте. Проблема в том, что не получается "отправить автобус из парка на маршрут" и наоборот. Помогите, пожалуйста, исправить код.
PHP код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
 
#define FIO 64
#define IN 0
#define OUT 1
 
struct node 
{
    
int busnumbbusmarshrutis_in_park;
    
char driver[FIO];
    
struct nodenext;
};
struct node *n;
 
// добавление элемента в список
struct node *list_add(struct node **p, const int busnumb, const int busmarshrut, const chardriver )
{
    
struct node *= (struct node*)malloc(sizeof(struct node));
    if (
== NULL)
    {
        
puts"Can't add new item. Something with memory." );
        return 
NULL;
    }
    
n->next = *p;
    *
n;
    
n->busnumb busnumb;
    
n->busmarshrut busmarshrut;
    
n->is_in_park 0;
    
strcpy(n->driverdriver );
    return *
p;
}
// удаление элемента из списка
void list_remove(struct node **p)
{
    if (*
!= NULL)
    {
        
struct node *= *p;
        *
= (*p)->next;
        
free(n);
    }
}
// поиск автобуса по номеру
struct node** list_search_number(struct node **n, const int busnumb)
{
    while (*
!= NULL)
    {
        if ((*
n)->busnumb == busnumb)
        return 
n;
        
= &(*n)->next;
    }
    return 
NULL;
}
// вывод списка на экран
void list_print(struct node *n, const int inout)
{
    
puts("");
    if (
== NULL)
        
printf("Ваш список пока пуст!\n");
    while (
!= NULL)
    {
        if (
inout == IN && n->is_in_park == OUT )
            ;
        else 
            if (
inout == OUT && n->is_in_park == IN )
                ;
            else
                
printf"№: %d, \tМаршрут: %d, \tВодитель: %s, \tIN/OUT: %d\n",n->busnumb,n->busmarshrut,n->driver,n->is_in_park );
        
n->next;
    }
}
 
void list_inout(struct node *n, const int inout)
{
    
int busnumb;
    
struct node *n;
    
printf("Введите номер автобуса: ");
    
scanf("%d", &busnumb);
    if (
list_search_number(&nbusnumb) == NULL )
        
puts("Нет автобуса с таким номером!");
    return;
    
= *(list_search_number(&nbusnumb));
    
p->is_in_park inout;
}
 
void menu (void)
{
    
int c 0;
    
char s[80];
    
puts"\n\tМеню:" );
    
puts" 1) Вывод списка." );
    
puts" 2) Список автобусов, находящихся на маршруте." );
    
puts" 3) Список автобусов, находящихся в парке." );
    
puts" 4) Отправить автобус на маршрут" );
    
puts" 5) Отправить автобус в парк" );
    
puts" 6) Выход из меню" );
    for ( ; ; )
    {
        do
        {
            
printf ("\nВыберите пункт: ");
            
gets(s);
            
atoi(s);
        }
        while (
<= || 6);
        
        switch (
c
        {
            case 
1list_print(n);
                    break;
            case 
2list_print(nOUT );
                    break;
            case 
3list_print(nIN );
                    break;
            case 
4list_inout(nIN );
                    break;
            case 
5list_inout(nOUT );
                    break;
            case 
6: exit(0);
        }
    }
}
 
int main(void)
{
    
setlocale (LC_ALL"rus");
    
printf ("Лабораторная работа №10\nЧасть 2\nВариант 1\nЗадание:\nСоставить программу, которая содержит динамическую информацию о наличии автобусов в автобусном парке.");
    
list_add(&n12"Петров И. И." ); // заполнение списка
    
list_add(&n21"Иванов М. С." );
    
list_add(&n31"Колёскин И. М." );
    
list_add(&n43"Сидоров С. С." );
    
menu ();
return 
0;

volchara78 вне форума Ответить с цитированием
Старый 19.06.2016, 02:38   #2
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Код:
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
#include <locale.h> 

#define FIO 64 
#define IN 0 
#define OUT 1 

struct node
{
	int busnumb, busmarshrut, is_in_park;
	char driver[FIO];
	struct node* next;
};
struct node *n;
// добавление элемента в список 
struct node *list_add(struct node **p, const int busnumb, const int busmarshrut, const char* driver)
{
	struct node *n = (struct node*)malloc(sizeof(struct node));
	if (n == NULL)
	{
		puts("Can't add new item. Something with memory.");
		return NULL;
	}
	n->next = *p;
	*p = n;
	n->busnumb = busnumb;
	n->busmarshrut = busmarshrut;
	n->is_in_park = 0;
	strcpy(n->driver, driver);
	return *p;
}
// удаление элемента из списка 
void list_remove(struct node **p)
{
	if (*p != NULL)
	{
		struct node *n = *p;
		*p = (*p)->next;
		free(n);
	}
}
// поиск автобуса по номеру 
struct node** list_search_number(struct node **n, const int busnumb)
{
	while (*n != NULL)
	{
		if ((*n)->busnumb == busnumb)
			return n;
		n = &(*n)->next;
	}
	return NULL;
}
// вывод списка на экран 
void list_print(struct node *n, const int inout)
{
	puts("");
	if (n == NULL)
		printf("Ваш список пока пуст!\n");
	while (n != NULL)
	{
		if (inout == IN && n->is_in_park == OUT)
			;
		else
		if (inout == OUT && n->is_in_park == IN)
			;
		else
			printf("№: %d, \tМаршрут: %d, \tВодитель: %s, \tIN/OUT: %d\n", n->busnumb, n->busmarshrut, n->driver, n->is_in_park);
		n = n->next;
	}
}

void list_inout(struct node *n, const int inout)
{
	int busnumb;
	struct node *p = n;
	printf("Введите номер автобуса: ");
	scanf("%d", &busnumb);
	/////////////////////////////////////////////////////////////
	if (list_search_number(&n, busnumb) == NULL)
		puts("Нет автобуса с таким номером!");
	else
	{
		p = *(list_search_number(&n, busnumb));
		p->is_in_park = inout;
	}		
	return;
}

void menu(void)
{
	int c = 0;
	char s[80];
	puts("\n\tМеню:");
	puts(" 1) Вывод списка.");
	puts(" 2) Список автобусов, находящихся на маршруте.");
	puts(" 3) Список автобусов, находящихся в парке.");
	puts(" 4) Отправить автобус на маршрут");
	puts(" 5) Отправить автобус в парк");
	puts(" 6) Выход из меню");
	for (;;)
	{
		do
		{
			printf("\nВыберите пункт: ");
			gets(s);
			c = atoi(s);
		} while (c <= 0 || c > 6);

		switch (c)
		{
		case 1: list_print(n, 2);
			break;
		case 2: list_print(n, OUT);
			break;
		case 3: list_print(n, IN);
			break;
		case 4: list_inout(n, OUT);
			break;
		case 5: list_inout(n, IN);
			break;
		case 6: exit(0);
		}
	}
}

int main(void)
{
	setlocale(LC_ALL, "rus");
	printf("Лабораторная работа №10\nЧасть 2\nВариант 1\nЗадание:\nСоставить программу, которая содержит динамическую информацию о наличии автобусов в автобусном парке.");
	list_add(&n, 1, 2, "Петров И. И."); // заполнение списка 
	list_add(&n, 2, 1, "Иванов М. С.");
	list_add(&n, 3, 1, "Колёскин И. М.");
	list_add(&n, 4, 3, "Сидоров С. С.");
	menu();
	return 0;
}


ura_111 вне форума Ответить с цитированием
Старый 20.06.2016, 15:05   #3
volchara78
Новичок
Джуниор
 
Регистрация: 18.06.2016
Сообщений: 2
По умолчанию

ura_111 Дружище спасибо тебе большое!!!!!! очень сильно выручил!
volchara78 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите исправить код als208 Общие вопросы C/C++ 0 05.06.2016 18:29
C++ помогите исправить код. lebronjenya Общие вопросы C/C++ 6 30.03.2015 15:28
Помогите исправить код. djon_limit Общие вопросы C/C++ 3 13.12.2009 15:43
помогите исправить код Карол Помощь студентам 2 29.10.2009 16:47
Помогите исправить код lider24816 Помощь студентам 2 24.05.2009 18:12