Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 31.03.2018
Сообщений: 32

Можете проверить код

31.03.2018, 18:16. Показов 1924. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот задание:
Транспортное агентство
Разработайте программу, имитирующую работу трансагентства. Трансагентство имеет сеть филиалов в нескольких городах. Транспортировка грузов осуществляется между этими городами тремя видами транспорта: автомобильным, железнодорожным и воздушным. Любой вид транспортировки имеет стоимость единицы веса на единицу пути и скорость доставки. Воздушный транспорт можно использовать только между крупными городами, этот вид самый скоростной и самый дорогой. Кроме того, воздушный транспорт зависит от погоды. Доставить груз воздушным путем можно только при условии хорошей погоды одновременно в городах отправки и назначения. Хорошая или плохая погода задается случайным образом. Железнодорожный транспорт можно использовать между крупными и средними городами, этот вид самый дешевый. Автомобильный транспорт можно использовать между любыми городами. Заказчики через случайные промежутки времени обращаются в один из филиалов трансагентства с заказом на перевозку определенной массы груза и возможным пожеланием о скорости/цене доставки. Трансагентство организует отправку грузов одним из видов транспорта с учетом пожеланий клиента. Оплату трансагенство получает только после успешной доставки груза. Между некоторыми городами для железнодорожного и/или автомобильного транспорта имеются скоростные магистрали, на которых скорость соответствующего вида транспорта увеличивается с заданным коэффициентом. При перевозке грузов могут происходить аварии, при этом вероятность аварии на автотранспорте больше, чем на железнодорожном транспорте, а авиатранспорт имеет аварийность очень низкую. На скоростных магистралях вероятность аварии меньше, чем на обычных дорогах. При аварии трансагентство возвращает заказчику двойную стоимость перевозки.

Я ее написал. Можете проверить какие недостатки.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
package AgencyTwo;
public class Citys {
    String[] yourCitys =  {"Москва", "Минск", "Питер", "Брест", "Гомель", "Киев"};
 
    String[] deliveryCity =  {"Москва", "Минск", "Питер", "Брест", "Гомель", "Киев"};
 
    int[][] distanceBetweenCitys = {{0,675,634,995,914,750},{675,0,750,327,216,433},{634,675,0,995,914,750},{995,327,995,0,200,995},{914,246,914,200,0,914},{914,625,634,995,914,0}};
}
 
 
package AgencyTwo;
 
import java.util.Random;
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
 
        Citys city = new Citys();
        Transport transport = new Transport();
 
        Scanner scannerString = new Scanner(System.in);
        Scanner scannerInt = new Scanner(System.in);
        Random random = new Random();
 
        System.out.println("Введите ваша имя");
        String name = scannerString.nextLine();
 
        System.out.println("Введите вашу фамилию");
        String surname = scannerString.nextLine();
 
        System.out.println("Введите массу груза");
        int width = scannerInt.nextInt();
 
        System.out.println("Введите ваш город:\n1 - " + city.yourCitys[0] +"\n2 - "+city.yourCitys[1]+" \n3 - "+city.yourCitys[2]+" \n4 - "+city.yourCitys[3]+ " \n5 - "+ city.yourCitys[4]+"\n6 - "+city.yourCitys[5]);
        int numberYourCity = scannerInt.nextInt();
 
        System.out.println("Введите город доставки:\n1 - " + city.deliveryCity[0] +"\n2 - "+city.deliveryCity[1]+" \n3 - "+city.deliveryCity[2]+" \n4 - "+city.deliveryCity[3]+ " \n5 - "+ city.deliveryCity[4]+"\n6 - "+city.deliveryCity[5]);
        int numberDeliveryCity = scannerInt.nextInt();
 
        int distanceBetweenCitys = city.distanceBetweenCitys[numberYourCity - 1][numberDeliveryCity - 1];
 
        System.out.println("Выберете какой вам транспорт нужен:\n1 - "+transport.transport[0] +".\n2 - "+transport.transport[1]+".\n3 - " + transport.transport[2]);
        int numberTransport = scannerInt.nextInt();
        if(numberTransport == 1) {
            System.out.println("Ваш транспорт - самолет.");
            int randomDiggitForWeather = random.nextInt(5);
            if (randomDiggitForWeather != 3) {
                System.out.println("Погода хорошая, авиятранспорт доступен.");
                int randomDiggitForAccidentPlane = random.nextInt(10);
                if (randomDiggitForAccidentPlane != 3) {
                    System.out.println("Ваш груз доставлен\nВремя доставки состовляет "+ distanceBetweenCitys/transport.getSpeedPlane() +" часов." + "\nВаша сумма состовляет "+ distanceBetweenCitys*width/transport.getSpeedPlane() + " рублей.");
                }
                if (randomDiggitForAccidentPlane == 3) {
                    System.out.println("К сожалению ваш груз попал в аварию");
                }
            }
            if (randomDiggitForWeather == 3) {
                System.out.println("К сожелению авиатранспорт не доступен.");
            }
        }
        if (numberTransport <= 0 || numberTransport > 4) {
            System.out.println("Вы ввели не то число");
            System.exit(0);
        }
        if (numberTransport == 2) {
            System.out.println("Ваш транспорт - поезд");
            int randomDiggitForAccidentTrain = random.nextInt(7);
            if (randomDiggitForAccidentTrain != 3) {
                System.out.println("Ваш груз доставлен\nВремя доставки состовляет " + distanceBetweenCitys / transport.getSpeedTrain() + " часов." + "\nВаша сумма состовляет " + distanceBetweenCitys * width / transport.getSpeedTrain() + " рублей.");
            }
            if (randomDiggitForAccidentTrain == 3) {
                System.out.println("К сожелению авиатранспорт не доступен.");
            }
        }
        if (numberTransport <= 0 || numberTransport > 4) {
            System.out.println("Вы ввели не то число");
            System.exit(0);
        }
        if (numberTransport == 3) {
            System.out.println("Ваш транспорт - машина\nВыберете тип дороги:\n1 - манистраль\n2 - обычная дорога");
            int numberRoad = scannerInt.nextInt();
            if(numberRoad == 1){
                int randomDiggitForAccidentСarHighway = random.nextInt(7);
                System.out.println("Ваша дорога - магистраль");
                if(randomDiggitForAccidentСarHighway != 3){
                    System.out.println("Ваш груз доставлен\nВремя доставки состовляет "+ distanceBetweenCitys/transport.getSpeedCarOnHighway() +" часов." + "\nВаша сумма состовляет "+ distanceBetweenCitys*width/transport.getSpeedCarOnHighway() + " рублей.");
                }
                if(randomDiggitForAccidentСarHighway == 3){
                    System.out.println("К сожелению ваш груз попал в аварию");
                }
            }
            if (numberRoad <= 0 || numberRoad > 3) {
                System.out.println("Вы ввели не то число");
                System.exit(0);
            }
            if(numberRoad == 2) {
                int randomDiggitForAccidentСarRoad = random.nextInt(7);
                System.out.println("Ваша дорога - обычная дорога");
                if (randomDiggitForAccidentСarRoad != 3) {
                    System.out.println("Ваш груз доставлен\nВремя доставки состовляет " + distanceBetweenCitys / transport.getSpeedCarOnRoad() + " часов." + "\nВаша сумма состовляет " + distanceBetweenCitys * width / transport.getSpeedCarOnRoad() + " рублей.");
                }
                if (randomDiggitForAccidentСarRoad == 3) {
                    System.out.println("К сожелению ваш груз попал в аварию");
                }
            }
            if (numberRoad <= 0 || numberRoad > 3) {
                System.out.println("Вы ввели не то число");
                System.exit(0);
            }
        }
        if (numberTransport <= 0 || numberTransport > 4) {
            System.out.println("Вы ввели не то число");
            System.exit(0);
        }
 
 
        Assistenc assistenc = new Assistenc(name, surname, width, numberYourCity, numberDeliveryCity, numberTransport);
    }
}
 
 
package AgencyTwo;
 
public class Transport {
    String[] transport = {"Авиатранспорт", "Железнодорожный транспорт", "Машинный  транспорт"};
 
    private int speedCarOnHighway = 100;
    private int speedCarOnRoad = 60;
 
    private int speedPlane = 300;
 
    private int speedTrain = 100;
 
    public int getSpeedCarOnHighway() {
        return speedCarOnHighway;
    }
 
    public int getSpeedCarOnRoad() {
        return speedCarOnRoad;
    }
 
    public int getSpeedPlane() {
        return speedPlane;
    }
 
    public int getSpeedTrain() {
        return speedTrain;
    }
}
 
 
package AgencyTwo;
 
public class Assistenc {
    private String name;
    private String surname;
    private int idCity;
    private int width;
    private int idDeliveryCity;
    private int idTransport;
 
    public Assistenc(String name, String surname,int width, int idCity, int deliveryCity, int idTransport) {
        this.name = name;
        this.surname = surname;
        this.width = width;
        this.idCity = idCity;
        this.idDeliveryCity = idDeliveryCity;
        this.idTransport = idTransport;
    }
 
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.03.2018, 18:16
Ответы с готовыми решениями:

Калькулятор для рациональных дробей, можете проверить?
Всех с наступающим Новым Годом... Всем привет. Вообще вроде то что я написал должно работать но вот проверить нет возможности idea тупит...

Можете оценить мой код?
package com.zar; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import...

Можете проверить код авторизации на сайте?
Доброго времени суток, если не трудно кто нибудь проверьте вот этот код у меня почему то все время выдает сообщение ошибка, есть...

6
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
31.03.2018, 18:48
Зачем два сканера?
Что делает класс Assistenc? Зачем он вообще?
Некоторые слова убивают... Citys, Diggit, Assistenc...
Если это задание на сдачу, то, скорее всего, тебя завалят. ООП тут припадает на обе ноги, сорь.
1
0 / 0 / 0
Регистрация: 31.03.2018
Сообщений: 32
31.03.2018, 20:40  [ТС]
Добавлено через 1 минуту
Ну два сканнера это ладно, класс ассисент содержить констуктор, для информации о пользователи. Это не на здачу, а для себя) Мб еще есть какие нибудь ошибки?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
31.03.2018, 20:51
Цитата Сообщение от Eddiesti Посмотреть сообщение
какие нибудь ошибки
Да я ошибки и не искал, так... недочетики.
А так... Много не реализовано из задачи. Код, конечно, реорганизовать надобно. Почитай про паттерны.
1
0 / 0 / 0
Регистрация: 31.03.2018
Сообщений: 32
31.03.2018, 21:01  [ТС]
Еще можно маленький вопросик. Вот я хочу написать метод, который высчитывает время. Он должен принимать расстояние между городами и скорость транспорта. Но эти все поля в Main'е. Мне чтобы создать этот метод, надо переместить с мейна эти переменные в другой класс. Или как то обойтись по другому?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
31.03.2018, 21:10
Лучший ответ Сообщение было отмечено Eddiesti как решение

Решение

Eddiesti, вот почему я и сказал про реорганизацию...
У тебя есть класс Города. Вот по идее, там и нужен метод вычисления расстояний между ними. Например - на входе в метод (параметры) - два города, на выходе - расстояние между ними.
1
 Аватар для Aviz__
2759 / 2066 / 509
Регистрация: 17.02.2014
Сообщений: 9,492
02.04.2018, 12:09
Цитата Сообщение от iSmokeJC Посмотреть сообщение
по идее
класс страна, на мой взгляд, должен отвечать за расстояния между своими городами...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.04.2018, 12:09
Помогаю со студенческими работами здесь

Можете проверить...
Можете переделать задачу с темы файлы на тему строки,чтобы она была написанна на строки.... Напишите программу шифрования текстового...

можете проверить запускается ли?
сделала в 5ти формах и запустить и нормально открыть не могу

Можете проверить сборку?
Знакомый хочет собрать пк за 30-35к. Хочет игровой, цитирую &quot;Как минимум возможность играть и стримить без потери кадров и т.д.&quot; Пока...

Определители - можете проверить?
Если в определителе элементы какой-либо строки или столбца умножить или разделить на любое, отличное от нуля, число k, то определитель...

можете проверить программу?
Можете проверить программу ?хочу быть в ней уверена... Даны натуральные числа n, a1,…,an, где n≤12. Найти члены ak...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru