Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Моделирование в C, консольное приложение

71K
04 июня 2011 года
KBoduck
1 / / 03.06.2011
У меня "есть" 10 автомобилей и 4 операции, которые не могут выполняться одновременно(каждая операция по очереди обрабатывает машину за машиной). Необходимо нарисовать на экране таблицу, в которую писать текущее состояние по каждой операции(с номером машины и состоянием "работы над ней"). Хочу разбить задачу на функции, но не могу понять как выводить их на экран одновременно, и стоит ли использовать time.h.
394
04 июня 2011 года
MegaMozg
317 / / 18.03.2006
Насколько я понимаю, о многопоточности здесь речи не идет.
Вот псевдокод:
Код:
struct car
{
    // ...

};

void Action1(car& x)
{
    // вывод на экран: в процессе (операция , номер машины)
    //printf("act1 %d \t", x.number);
    // выполяем действие
    // вывод на экран: завершено (операция , номер машины)
}

void Action2(car& x)
{
        // вывод на экран: в процессе (операция , номер машины)
    //printf("act2  %d \t", x.number);
    // выполяем действие
    // вывод на экран: завершено (операция , номер машины)
}

void Action3(car& x)
{
    // вывод на экран: в процессе (операция , номер машины)
    //printf("act3 %d \t", x.number);
    // выполяем действие
    // вывод на экран: завершено (операция , номер машины)
}

void Action4(car& x)
{
        // вывод на экран: в процессе (операция , номер машины)
    //printf("act4 %d \n", x.number);
    // выполяем действие
    // вывод на экран: завершено (операция , номер машины)
}

int tmain()
{
    car cars[10];
   
    // заполнение массива
    // ...
    ///
// рабочий цикл
    for(int i = 0; i < 10; i++)
    {
        Action1(cars[i % 10]);
        Action2(cars[(i + 1) % 10]);
        Action3(cars[(i + 2) % 10]);
        Action4(cars[(i + 3) % 10]);
    }

}


Вывод информации в соответствующие области консольного окна, думаю сделаешь сам

вывод (в каком порядке будут обрабатываться машины):

 
Код:
act1 0     act2  1         act3 2     act4 3
act1 1     act2  2         act3 3     act4 4
act1 2     act2  3         act3 4     act4 5
act1 3     act2  4         act3 5     act4 6
act1 4     act2  5         act3 6     act4 7
act1 5     act2  6         act3 7     act4 8
act1 6     act2  7         act3 8     act4 9
act1 7     act2  8         act3 9     act4 0
act1 8     act2  9         act3 0     act4 1
act1 9     act2  0         act3 1     act4 2


строка - один проход рабочего цикла
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог