Вход

Моделирование автостоянки

Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код 109305
Дата создания 2011
Страниц 22
Источников 4
Мы сможем обработать ваш заказ (!) 18 апреля в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
2 100руб.
КУПИТЬ

Содержание

Содержание
1. Математическая постановка задачи
2. Описание метода решения
3. Программная реализация
Список литературы

Фрагмент работы для ознакомления

horizontalAlignment = GridData.CENTER;
label9.setLayoutData(grD);
slider5.setMinimum(1);
slider5.setMaximum(110);
slider5.setIncrement(1);
slider5.setPageIncrement(20);
slider5.setSelection(Tend/100);
grD = new GridData();
grD.horizontalAlignment = GridData.CENTER;
grD.heightHint=10;
grD.widthHint=100;
slider5.setLayoutData(grD);
label9.setText(String.format("%d шагов",Tend));
slider5.addListener(SWT.Selection, new Listener(){
public void handleEvent(Event e) {
Tend=slider5.getSelection()*100;
label9.setText(String.format("%d шагов",Tend));
}
});
label10.setText("Период моделирования");
grD = new GridData();
grD.horizontalAlignment = GridData.CENTER;
label10.setLayoutData(grD);
grD = new GridData();
grD.widthHint=50;
grD.horizontalAlignment = GridData.CENTER;
label11.setLayoutData(grD);
slider1.setMinimum(10);
slider1.setMaximum(510);
slider1.setIncrement(10);
slider1.setPageIncrement(50);
slider1.setSelection(timerInterval);
grD = new GridData();
grD.horizontalAlignment = GridData.CENTER;
grD.heightHint=10;
grD.widthHint=100;
slider1.setLayoutData(grD);
label11.setText(String.format("%d мс",timerInterval));
slider1.addListener(SWT.Selection, new Listener(){
public void handleEvent(Event e) {
timerInterval=slider1.getSelection();
label11.setText(String.format("%d мс",timerInterval));
}
});
label12.setText("Интервал таймера");
grD = new GridData();
grD.horizontalAlignment = GridData.CENTER;
label12.setLayoutData(grD);
grD = new GridData();
grD.horizontalAlignment = GridData.CENTER;
exec.setLayoutData(grD); // устанавливаем параметры кнопки
exec.setText("Выполнить");
exec.addSelectionListener(new SelectionAdapter(){ // заводим слушателя для нажатия кнопки "Выполнить"
public void widgetSelected(SelectionEvent e) {
slider2.setEnabled(false); // запрещаем все слайдеры, кроме интервала таймера
slider3.setEnabled(false);
slider4.setEnabled(false);
slider5.setEnabled(false);
exec.setEnabled(false); // запрещаем саму кнопку
T=0; // устанавливаем время на начало периода
SQ=0; // обнуляем накопительную переменную по длине очереди
mainstream.clear(); // очищаем массив стоянки и очереди
laterparking.clear(); // очищаем массив вспомогательной стоянки
average.clear(); // очищаем массив средних длин очередей
disp.timerExec(timerInterval, runnable); // запускаем таймер первый раз
}
});
sh.pack();
sh.open(); // открываем главное окно
runnable = new Runnable() { // создаем объект вычисления шага модели
public void run() {
if(animate())
disp.timerExec(timerInterval, this); // устанавливаем следующий интервал
else{
slider2.setEnabled(true); // разрешаем элементы управления
slider3.setEnabled(true);
slider4.setEnabled(true);
slider5.setEnabled(true);
exec.setEnabled(true);
}
}
};

sh.addListener(SWT.Close, new Listener(){ // заводим слушателя для закрытия главного окна
public void handleEvent(Event event){
disp.timerExec(-1, runnable); // снимаем событие таймера
}
});
while(!sh.isDisposed()){ // цикл обработки событий
if(!disp.readAndDispatch()) // окно не закрыто
disp.sleep(); // продолжаем ждать
}
sh.dispose(); // освобождаем ресурсы
disp.dispose();
}
public static boolean animate() {
if(Math.random() < P){ // прибытие нового автомобиля
// задаем для него цвет и вероятность выезда
Car car=new Car(colors[(int)(Math.random()*(colors.length-1))],Qi);
mainstream.add(car);
}
int cl=mainstream.size();
for(int i=0; i < n && i < cl; i++){ // устанавливаем признаки у готовых для выезда
double Q=Math.random();
Car car=mainstream.get(i);
if(car != null){
if(Q < car.getProbab())
car.setTodep();
}
}
int k; // определяем ближайший к выезду готовый автомобиль
boolean depart=false;
for(k=0; k < n && k < cl; k++){
Car car=mainstream.get(k);
if(car != null){
if(car.getTodep()){
depart=true;
break;
}
}
}
if(depart){ // имеется автомобиль, отмеченный для выезда
int l;
for(l=0; l < k; l++){
Car car=mainstream.get(l);
if(car != null)
break;
}
l--;
if(l == k-1) // дорога свободна, автомобиль выехал
mainstream.set(k,null);
else{ // перемещаем мешающий проезду автомобиль на временную стоянку
Car car=mainstream.get(l+1);
mainstream.set(l+1,null);
laterparking.add(car);
}
}
else{ // нет автомобилей, отмеченных для выезда
int lp=laterparking.size();
if(lp != 0){ // на временной стоянке есть автомобили
Car car=laterparking.get(lp-1); // перемещаем последний автомобиль на основную стоянку
laterparking.remove(lp-1);
mainstream.set(lp-1,car);
}
}
int lp=laterparking.size();
for(int i=lp; i < mainstream.size(); i++){ // если появилось свободное место, перемещаем один автомобиль
Car car=mainstream.get(i);
if(car == null){
if(i == cl-1)
mainstream.remove(i);
else{
car=mainstream.get(i+1);
if(car == null) // если есть несколько пустых мест подряд - прогоняем очередное
mainstream.remove(i);
else{
mainstream.set(i,car);
mainstream.set(i+1,null);
}
}
break;
}
}
synchronized (monitor) { // сообщаем рисовальщику о готовности данных
ready = true;
}
canvas.redraw(); // даем команду на перерисовку
cl=mainstream.size();
SQ += cl <= n ? 0 : cl-n; // накапливаем длину очереди
average.add((double)SQ/(double)T); // сохраняем текущее среднее
T += dt; // продвигаем время
if(T > Tend) // диапазон моделирования закончился
return false;
disp.asyncExec(new Runnable() {
public void run() {
label1.setText(String.format("%d",T)); // прописываем текущее модельное время в интерфейс
}
});
return true;
}
}
Список литературы
1. Советов Б.Я., Яковлев С.А. Моделирование систем: Учеб. для вузов – 3-е изд., перераб. и доп. – М.: Высш. шк., 2001. – 343 с., ил.
2. Бусленко Н.П. Метод статистического моделирования: Математическая статистика для экономистов – М.: Статистика, 1970. – 112 с.
3. Scarpino M., Holder S., Ng S., Mihalkovic L. SWT/JFace in Action Greenwich, CT, USA: Manning Publications Co., 2005. – 496 pp. ISBN 1-932394-27-3
4. Standard Widget Toolkit http://ru.wikipedia.org/wiki/SWT
7
3
размещение
автомобиля из очереди
2
размещение
автомобиля из очереди
наращиваем модельное время
1
размещение
автомобиля из очереди
да
нет
обнаружен выезжающий
проходим по местам стоянки
удаляем своб.место
нет
прибытие
автомобиля
да
фиксируем позицию выезжающего
нет
есть готовый к выезду
добавляем автомобиль в очередь
следующ. место своб.
да
проходим по местам стоянки
да
уст.признак ожидания выезда
да
нет
пора выезжать
нет
нет
послед. место в очереди
перемещаем следующего на своб.место
нет
есть свободное место
проходим по стоянке и очереди
да
да
автомобиль покидает стоянку
начало
обнаружен мешающий
да
фиксируем позицию мешающего
нет
есть не готовый к выезду
проходим по местам стоянки
да
1
размещение
автомобиля из очереди
нет
перемещаем мешающий на вспом.стоянку
нет
да
есть автомобили на вспом.
2
размещение
автомобиля из очереди
перемещаем последний на осн.стоянку
3
размещение
автомобиля из очереди

Список литературы [ всего 4]

Список литературы
1. Советов Б.Я., Яковлев С.А. Моделирование систем: Учеб. для вузов – 3-е изд., перераб. и доп. – М.: Высш. шк., 2001. – 343 с., ил.
2. Бусленко Н.П. Метод статистического моделирования: Математическая статистика для экономистов – М.: Статистика, 1970. – 112 с.
3. Scarpino M., Holder S., Ng S., Mihalkovic L. SWT/JFace in Action Greenwich, CT, USA: Manning Publications Co., 2005. – 496 pp. ISBN 1-932394-27-3
4. Standard Widget Toolkit http://ru.wikipedia.org/wiki/SWT
Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00485
© Рефератбанк, 2002 - 2024