С нуля до джуна #13

Изменил программу для подсчета веса на других планетах. класс calculatePlanet, программа спрашивает хотите ли вы узнать свой вес на планете? Если да, то программа говорит введите свой вес, потом введите название планеты и предлагает планеты. Потом спрашивает хотите ли вы повторить, если да, то запускается программа заново. проверять введенные значения без учета регистра.

fun main() { println("Вы хотите узнать свой вес на планете?") var choice = readln().lowercase() do { print("Введите свой вес в кг: ") val weight: Double = readln().toDouble() val human1 = CalculatePlanet(weight) println("Введите название планеты:") human1.planetInfo() val choicePlanet = readln().lowercase() human1.calculate(choicePlanet) println("Хотите ли вы повторить?") choice = readln().lowercase() }while (choice == "да") }
class CalculatePlanet(val weight: Double) { companion object { const val MOON = 0.165 const val MARS = 0.378 const val SUN = 27.85 } val planetList = listOf<String>("Луна", "Марс", "Солнце") fun planetInfo() { for(i in planetList) { println(i) } } fun calculate(choisePlanet: String) { when(choisePlanet) { "луна" -> println("Ваш вес ${weight}кг на Луне = ${weight * MOON}кг") "марс" -> println("Ваш вес ${weight}кг на Марсе = ${weight * MARS}кг") "солнце" -> println("Ваш вес ${weight}кг на Солнце = ${weight * SUN}кг") } } }
Вывод: (где стоит * это что пользователь вводит с клавиатуры) Вы хотите узнать свой вес на планете? *Да Введите свой вес в кг: *60 Введите название планеты: Луна Марс Солнце *Луна Ваш вес 60.0кг на Луне = 9.9кг Хотите ли вы повторить? *дА Введите свой вес в кг: *36 Введите название планеты: Луна Марс Солнце *соЛнцЕ Ваш вес 36.0кг на Солнце = 1002.6кг Хотите ли вы повторить? *нет

Делал программу которая выводит инфо о доставке. У товара есть название, стоимость, вес, высота. Сервис(класс доставка) категории доставки малая(до 10кг, 100 руб за кг), средняя(от 10 до 15, 150 руб за кг, от 1 до 10) и большая(от 20кг по 400 за кг, срок от 10 до 15). Вывод: Стоимость доставки для пылесоса при весе 900 рублей + основная стоимость и время доставки.

Делал с помощью 2х классов(для продукта и доставки) и 2х интерфейсов(для получения категории и для получения времени доставки)

fun main() { val vacuum = Product("Пылесос", 10000.00, 10.2, 1.2) val vacuumDelivery = Delivering("Пылесос", 10000.00, 10.2, 1.2) val iphone13 = Product("iPhone 13", 59999.99, 1.3, 0.5) val iphone13Delivery = Delivering("iPhone 13", 59999.99, 1.3, 0.5) vacuumDelivery.priceDelivery() vacuumDelivery.timeDel() iphone13Delivery.priceDelivery() iphone13Delivery.timeDel() }
import kotlin.random.Random open class Product(open val name: String, open val price: Double, open val weight: Double, open val height: Double): GetCategory, DeliveryTime { override fun getCategory(): String { var category = "" when { weight < 10 -> category = "small" weight < 15 -> category = "average" else -> category = "big" } return category } override fun deliveryTime(): Int { var delTime = 0 when(getCategory()) { "small" -> delTime = Random.nextInt(1, 3) "average" -> delTime = Random.nextInt(1, 11) "big" -> delTime = Random.nextInt(10, 16) } return delTime } }
import kotlin.random.Random class Delivering(override val name: String, override val price: Double, override val weight: Double, override val height: Double): Product(name, price, weight, height), GetCategory, DeliveryTime { companion object { const val SMALL_DELIVERY = 10.0 const val AVERAGE_DELIVERY = 15.0 const val BIG_DELIVERY = 20.0 const val SMALL_DELIVERY_PRICE = 100 const val AVERAGE_DELIVERY_PRICE = 150 const val BIG_DELIVERY_PRICE = 400 } //val category = "большая".lowercase() var priceDel: Double = 0.0 var delTime = 0 fun priceDelivery() { when(getCategory()) { "small" -> priceDel = SMALL_DELIVERY_PRICE * weight "average" -> priceDel = AVERAGE_DELIVERY_PRICE * weight "big" -> priceDel = BIG_DELIVERY_PRICE * weight } println("Цена доставки для $name при весе ${weight}кг без цены товара: ${priceDel}руб") println("Цена доставки для $name при весе ${weight}кг с ценой товара ${price}руб: ${priceDel+price}руб") } fun timeDel() { val delTime = deliveryTime() println("Время доставки для $name при весе ${weight}кг с ценой товара ${price}руб: $delTime дня") } }
interface DeliveryTime { fun deliveryTime(): Int }
interface GetCategory { fun getCategory(): String }
Вывод: Цена доставки для Пылесос при весе 10.2кг без цены товара: 1530.0руб Цена доставки для Пылесос при весе 10.2кг с ценой товара 10000.0руб: 11530.0руб Время доставки для Пылесос при весе 10.2кг с ценой товара 10000.0руб: 4 дня Цена доставки для iPhone 13 при весе 1.3кг без цены товара: 130.0руб Цена доставки для iPhone 13 при весе 1.3кг с ценой товара 59999.99руб: 60129.99руб Время доставки для iPhone 13 при весе 1.3кг с ценой товара 59999.99руб: 2 дня

Собственно на сегодня всё, спасибо за внимание!

мой тг канал:

1 комментарий

Ох уж эти описания

1