Skip to content

lab1 #16

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 101 commits into
base: master
Choose a base branch
from
Draft

lab1 #16

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
101 commits
Select commit Hold shift + click to select a range
bfaa575
Create bvadim
VadimBykov2001 Nov 30, 2021
ce00505
Update and rename bvadim to vbykov
VadimBykov2001 Nov 30, 2021
8feb2f6
Delete vbykov
VadimBykov2001 Nov 30, 2021
3ec9a5c
Create subtask1.java
VadimBykov2001 Nov 30, 2021
ece6773
Create subtask2.java
VadimBykov2001 Nov 30, 2021
b0284ab
Create subtask3.java
VadimBykov2001 Nov 30, 2021
ea7b963
Update subtask3.java
VadimBykov2001 Nov 30, 2021
856e6da
Update subtask2.java
VadimBykov2001 Nov 30, 2021
c7cc791
Update subtask3.java
VadimBykov2001 Nov 30, 2021
f47c21a
Create OnlineStore.java
VadimBykov2001 Dec 1, 2021
c484cdd
Create subtask.java
VadimBykov2001 Dec 1, 2021
08052a0
Create OnlineStore.java
VadimBykov2001 Dec 1, 2021
d5fc0c0
Create BrandEnum.java
VadimBykov2001 Dec 1, 2021
b1e52ee
Create Car.java
VadimBykov2001 Dec 1, 2021
b676ef9
Update BrandEnum.java
VadimBykov2001 Dec 1, 2021
1394c45
Update and rename src/главный/Джава/RU/tn/курсы/vbykov/v1/задача2/enu…
VadimBykov2001 Dec 1, 2021
6d330da
Delete subtask.java
VadimBykov2001 Dec 1, 2021
58fea12
Delete OnlineStore.java
VadimBykov2001 Dec 1, 2021
54c70cf
Delete BrandEnum.java
VadimBykov2001 Dec 1, 2021
ffc7494
Delete Car.java
VadimBykov2001 Dec 1, 2021
46aa655
Delete OnlineStore.java
VadimBykov2001 Dec 1, 2021
7565e82
Create subtask.java
VadimBykov2001 Dec 1, 2021
6311521
Create InternetShop.java
VadimBykov2001 Dec 1, 2021
f5200a4
Create MyShop.java
VadimBykov2001 Dec 1, 2021
3fca711
Create BrandEnum.java
VadimBykov2001 Dec 1, 2021
71c0047
Create ColorEnum
VadimBykov2001 Dec 1, 2021
6bd3b16
Create DriveEnum.java
VadimBykov2001 Dec 1, 2021
884fae4
Create OrderDescriptionEnum.java
VadimBykov2001 Dec 1, 2021
a9ac4dc
Create TransmissionEnum.java
VadimBykov2001 Dec 1, 2021
3175ff9
Delete TransmissionEnum.java
VadimBykov2001 Dec 1, 2021
3cfa528
Create TransmissionEnum.java
VadimBykov2001 Dec 1, 2021
60dc417
Create Car.java
VadimBykov2001 Dec 1, 2021
b1a7d79
Create Customer.java
VadimBykov2001 Dec 1, 2021
4216d81
Create Model.java
VadimBykov2001 Dec 1, 2021
2b59b01
Create Order.java
VadimBykov2001 Dec 1, 2021
1591763
Create Product.java
VadimBykov2001 Dec 1, 2021
a9cdb4d
Create CustomerRepository.java
VadimBykov2001 Dec 1, 2021
b22df40
Create OrderRepository.java
VadimBykov2001 Dec 1, 2021
2853e95
Create ProductRepository.java
VadimBykov2001 Dec 1, 2021
ad59623
Create Repository.java
VadimBykov2001 Dec 1, 2021
d4a4c68
Create RepositoryImpl.java
VadimBykov2001 Dec 1, 2021
8f8ebaf
Delete src/main/java/ru/tn/courses/vbykov/v1/task2 directory
VadimBykov2001 Dec 7, 2021
8b8b1b3
Create Subtask.java
VadimBykov2001 Dec 7, 2021
17a01e7
Create InternetShop.java
VadimBykov2001 Dec 7, 2021
a1852a0
Create MyShop.java
VadimBykov2001 Dec 7, 2021
e6ec9db
Create BrandEnum.java
VadimBykov2001 Dec 7, 2021
0498ffc
Create ColorEnum.java
VadimBykov2001 Dec 7, 2021
a9c8129
Create DriveEnum.java
VadimBykov2001 Dec 7, 2021
d1600b9
Create OrderDescriptionEnum.java
VadimBykov2001 Dec 7, 2021
240ac56
Create TransmissionEnum.java
VadimBykov2001 Dec 7, 2021
0d7c04a
Create Car.java
VadimBykov2001 Dec 7, 2021
ea0c6b3
Create Customer.java
VadimBykov2001 Dec 7, 2021
3d20532
Create Model.java
VadimBykov2001 Dec 7, 2021
8429d40
Create Order.java
VadimBykov2001 Dec 7, 2021
77bf3af
Create Product.java
VadimBykov2001 Dec 7, 2021
d7c5921
Create Repository.java
VadimBykov2001 Dec 7, 2021
35fbb91
Create RepositoryImpl.java
VadimBykov2001 Dec 7, 2021
d0a21c3
Create ProductRepository.java
VadimBykov2001 Dec 7, 2021
1417cec
Create OrderRepository.java
VadimBykov2001 Dec 7, 2021
ed6c458
Create CustomerRepository.java
VadimBykov2001 Dec 7, 2021
a4b8e50
Update subtask1.java
VadimBykov2001 Mar 21, 2022
223966e
Update subtask2.java
VadimBykov2001 Mar 21, 2022
0f77f56
Update subtask2.java
VadimBykov2001 Mar 21, 2022
d48c226
Update subtask3.java
VadimBykov2001 Mar 21, 2022
8670316
Update Subtask.java
VadimBykov2001 Mar 21, 2022
0f51180
Update InternetShop.java
VadimBykov2001 Mar 21, 2022
90311ea
Update MyShop.java
VadimBykov2001 Mar 21, 2022
337fc6b
Update BrandEnum.java
VadimBykov2001 Mar 21, 2022
54eab52
Update ColorEnum.java
VadimBykov2001 Mar 21, 2022
28fbb51
Update BrandEnum.java
VadimBykov2001 Mar 21, 2022
b7489ce
Update and rename DriveEnum.java to OperatingSystemEnum.java
VadimBykov2001 Mar 21, 2022
528196d
Update ProductRepository.java
VadimBykov2001 Mar 21, 2022
8e230b3
Update OrderDescriptionEnum.java
VadimBykov2001 Mar 21, 2022
37733fb
Update and rename TransmissionEnum.java to DisplayResolutionEnum.java
VadimBykov2001 Mar 21, 2022
906da84
Update DisplayResolutionEnum.java
VadimBykov2001 Mar 21, 2022
ced1495
Update OperatingSystemEnum.java
VadimBykov2001 Mar 21, 2022
8dc6713
Update OperatingSystemEnum.java
VadimBykov2001 Mar 21, 2022
7f81ef8
Update and rename Car.java to Smartphone.java
VadimBykov2001 Mar 21, 2022
a8b4da4
Update Customer.java
VadimBykov2001 Mar 21, 2022
04fa994
Update Model.java
VadimBykov2001 Mar 21, 2022
b79d4af
Update Order.java
VadimBykov2001 Mar 21, 2022
efa3a0b
Update Product.java
VadimBykov2001 Mar 21, 2022
2e85cb7
Update CustomerRepository.java
VadimBykov2001 Mar 21, 2022
bb31dba
Update OrderRepository.java
VadimBykov2001 Mar 21, 2022
136d6dc
Update DisplayResolutionEnum.java
VadimBykov2001 Mar 21, 2022
9f3afe3
Update ProductRepository.java
VadimBykov2001 Mar 21, 2022
85cbfaa
Update ProductRepository.java
VadimBykov2001 Mar 21, 2022
cba262f
Update Repository.java
VadimBykov2001 Mar 21, 2022
fe12beb
Update RepositoryImpl.java
VadimBykov2001 Mar 21, 2022
f5ef582
Update Smartphone.java
VadimBykov2001 Mar 21, 2022
2c455e3
Create Integer.java
VadimBykov2001 Mar 23, 2022
5e63a1c
Create ListContainer.java
VadimBykov2001 Mar 23, 2022
c6cdc8b
Create Subtask_1.java
VadimBykov2001 Mar 23, 2022
08699e8
Create Subtask_2.java
VadimBykov2001 Mar 23, 2022
987e4e7
Update Integer.java
VadimBykov2001 Mar 23, 2022
64df47e
Update Integer.java
VadimBykov2001 Mar 23, 2022
79d23ec
Update ListContainer.java
VadimBykov2001 Mar 23, 2022
2838147
Update ListContainer.java
VadimBykov2001 Mar 23, 2022
e53da91
Update Subtask_1.java
VadimBykov2001 Mar 23, 2022
37fce5a
Update Subtask_1.java
VadimBykov2001 Mar 23, 2022
1c008d7
Update Subtask_2.java
VadimBykov2001 Mar 23, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions src/main/java/ru/tn/courses/vbykov/v1/task1/subtask1.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package ru.tn.courses.vbykov.v1.task1;
import java.util.Scanner;

public class subtask1 {
/**
* (Задание 1 варианта) Дан массив натуральных чисел. Найти сумму элементов, кратных данному k.
**/

public static void main(String[] args) {
int[] array = new int[5];
Scanner scanner = new Scanner(System.in);
System.out.println("введите k:");
int k = scanner.nextInt();
int sum = 0;
System.out.println("введите массив размера 5:");
for (int i : array) {
array[i] = scanner.nextInt();
if (array[i] % k == 0) {
sum += array[i];
}
}
System.out.println("Сумма элементов массива кратных числу k = " + sum);
}
}
30 changes: 30 additions & 0 deletions src/main/java/ru/tn/courses/vbykov/v1/task1/subtask2.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package ru.tn.courses.vbykov.v1.task1;
import java.util.Scanner;

public class subtask2 {
/**
* (Задание 1 варианта) У прилавка магазина выстроилась очередь из n покупателей. Время обслуживания i-того покупателя равно tj (i = 1, …, n). Определить время Ci пребывания i-гo покупателя в очереди.
**/

public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Введите длину очереди n:");
int n = scanner.nextInt();
double[] t = new double[n];
double[] c = new double[n];
System.out.println("Введите время обслуживания i покупателя:");
for (int i = 0; i < n; i++) {
t[i] = scanner.nextDouble();
if (i == 0) {
c[i] = 0;
}
else {
c[i] = c[i - 1] + t[i - 1];
}
}
System.out.println("Введите пребывания i покупателя в очереди:");
for (int i = 0; i < n; i++) {
System.out.println(i + 1 + " покупатель : " + c[i] + " единиц времени в очереди");
}
}
}
32 changes: 32 additions & 0 deletions src/main/java/ru/tn/courses/vbykov/v1/task1/subtask3.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package ru.tn.courses.vbykov.v1.task1;
import java.util.Scanner;

public class subtask3 {
/**
* (Задание 1 варианта) Даны две последовательности a1 ≤ a2 ≤ ... ≤ аn и b1 ≤ b2 ≤ ... ≤ bn. Образовать из них новую последовательность чисел так, чтобы она тоже была неубывающей (дополнительный массив не использовать).
**/

public static void main(String[] args) {
int[] a, b;
Scanner scanner = new Scanner(System.in);
System.out.println("Введите длину последовательностей n:");
int n = scanner.nextInt();
a = new int[n];
b = new int[n];
System.out.println("Введите последовательность a:");
for (int i = 0; i < n; i++) {
a[i] = scanner.nextInt();
}
System.out.println("Введите последовательность b:");
for (int i = 0; i < n; i++) {
b[i] = scanner.nextInt();
}
System.out.println("Новая последовательность без нового массива:");
for (int i = 0, j = 0; i < n && j < n; j++) {
while (i < n && a[i] <= b[j]) {
System.out.println(a[i++]);
}
System.out.println(b[j]);
}
}
}
86 changes: 86 additions & 0 deletions src/main/java/ru/tn/courses/vbykov/v1/task2/Subtask.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
package ru.tn.courses.vbykov.v1.task2;
import ru.tn.courses.vbykov.v1.task2.business.InternetShop;
import ru.tn.courses.vbykov.v1.task2.business.MyShop;
import ru.tn.courses.vbykov.v1.task2.models.Customer;
import ru.tn.courses.vbykov.v1.task2.repositories.CustomerRepository;
import ru.tn.courses.vbykov.v1.task2.repositories.OrderRepository;
import java.util.Scanner;

public class Subtask {

/**
* (Задание 1 варианта)
* - Необходимо разработать модель (класс) описывающий товар из интернет магазина (можно взять на свой выбор: телефоны, машины).
* - Необходимо разработать интерфейс для обработки заказов интернет магазина.
* - Реализовать классы обработки событий: создание заказа, изменения по заказу, возврат заказа.
* - Необходимо оформить все перечисления через enum
* - Вынести общую логику в абстракцию
**/

public static void main(String[] args) {
OrderRepository orderRepository = OrderRepository.getInstance();
CustomerRepository customerRepository = CustomerRepository.getInstance();
InternetShop shop = new MyShop();
Scanner scanner = new Scanner(System.in);
System.out.println("введите команду: \n" + "exit: выйти\n" + "help: справка\n" + "create: создать заказ\n" + "return: вернуть товар\n" + "modif: изменить заказ\n" + "payment: оплатить\n" + "catalog: вывести католог товаров\n" + "orders: вывести список заказов\n");
while (true) {
try {
switch (scanner.nextLine()) {
case "help":
System.out.println("exit: выйти\n" + "help: справка\n" + "create: создать заказ\n" + "return: вернуть товар\n" + "modif: изменить заказ\n" + "payment: оплатить\n" + "catalog: вывести католог товаров\n" + "orders: вывести список заказов\n" + "reg: регистрация пользователя\n" + "users: список пользователей");
break;
case "exit":
System.exit(1);
break;
case "create":
System.out.println("Введите ваше имя: ");
String customerName = scanner.nextLine();
System.out.println("Выберите товар который хотите купить: (введите id товара для покупки)");
System.out.println(shop.catalog());
shop.createOrder(Integer.valueOf(scanner.nextLine()), customerName);
System.out.println("Заказ был успешно создан");
break;
case "orders":
System.out.println(orderRepository.findAll());
break;
case "catalog":
System.out.println(shop.catalog());
break;
case "modif":
System.out.println("Введите id заказа");
Integer orderId = Integer.valueOf(scanner.nextLine());
System.out.println("Выберите товар который хотите купить:");
System.out.println(shop.catalog());
shop.modifOrder(orderId, Integer.valueOf(scanner.nextLine()));
System.out.println("Заказ успешно изменен");
break;
case "payment":
System.out.println("Введите id заказа");
orderId = Integer.valueOf(scanner.nextLine());
shop.payment(orderId);
System.out.println("Оплата успешно произведена");
break;
case "return":
System.out.println("Введите id заказа:");
shop.returnProduct(Integer.valueOf(scanner.nextLine()));
System.out.println("Возврат успешно выполнен");
break;
case "reg":
System.out.println("Введите имя");
String name = scanner.nextLine();
System.out.println("Введите скок денег на счету XD");
customerRepository.save(new Customer(customerRepository.getSize(), name, Double.valueOf(scanner.nextLine())));
System.out.println("Пользователь успешно создан");
break;
case "users":
System.out.println(customerRepository.findAll());
break;
default:
System.out.println("Команда не понятна, help - справка");
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package ru.tn.courses.vbykov.v1.task2.business;
import ru.tn.courses.vbykov.v1.task2.models.Order;
import ru.tn.courses.vbykov.v1.task2.models.Product;
import java.util.List;

public interface InternetShop {
Order createOrder(Integer productId, String customer) throws Exception;
Order payment(Integer orderId) throws Exception;
Order returnProduct(Integer orderId) throws Exception;
Order modifOrder(Integer orderId, Integer productId) throws Exception;
List<Product> catalog();
}
81 changes: 81 additions & 0 deletions src/main/java/ru/tn/courses/vbykov/v1/task2/businees/MyShop.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
package ru.tn.courses.vbykov.v1.task2.business;
import ru.tn.courses.vbykov.v1.task2.enums.OrderDescriptionEnum;
import ru.tn.courses.vbykov.v1.task2.models.Customer;
import ru.tn.courses.vbykov.v1.task2.models.Order;
import ru.tn.courses.vbykov.v1.task2.models.Product;
import ru.tn.courses.vbykov.v1.task2.repositories.CustomerRepository;
import ru.tn.courses.vbykov.v1.task2.repositories.OrderRepository;
import ru.tn.courses.vbykov.v1.task2.repositories.ProductRepository;
import java.time.LocalDate;
import java.util.List;

public class MyShop implements InternetShop {
OrderRepository orderRepository = OrderRepository.getInstance();
ProductRepository productRepository = ProductRepository.getInstance();
CustomerRepository customerRepository = CustomerRepository.getInstance();
@Override
public Order createOrder(Integer productId, String customerName) throws Exception {
Customer customer = customerRepository.findByName(customerName);
try {
Product product = productRepository.findById(productId);
Order order =
new Order(orderRepository.getSize(), customer, product, OrderDescriptionEnum.CREATE.getValue());
orderRepository.save(order);
return order;
} catch (Exception e) {
throw new Exception("Товар с таким id не найден");
}
}
@Override
public Order payment(Integer orderId) throws Exception {
try {
Order order = orderRepository.findById(orderId);
order.setDescription(OrderDescriptionEnum.BUY.getValue());
Customer customer = customerRepository.findById(order.getCustomer().getId());
Product product = productRepository.findById(order.getProduct().getId());
if (product.getCount() > 0) {
product.setCount(product.getCount() - 1);
} else {
throw new Exception("Товара больше нет");
}
if (order.getProduct().getPrice() > customer.getMoney()) {
throw new Exception("На вашем счете недосаточного денег");
}
productRepository.update(product, product.getId());
order.setPayment(order.getProduct().getPrice());
customer.setMoney(customer.getMoney() - order.getProduct().getPrice());
customerRepository.update(customer, customer.getId());
return order;
} catch (IndexOutOfBoundsException e) {
throw new Exception("Заказ с таким id не найден");
}
}
@Override
public Order returnProduct(Integer orderId) throws Exception {
try {
Order order = orderRepository.findById(orderId);
order.setDescription(OrderDescriptionEnum.RETURN.getValue());
orderRepository.update(order, orderId);
return order;
} catch (Exception e) {
throw new Exception("Заказа с таким id не найдено.");
}
}
@Override
public Order modifOrder(Integer orderId, Integer newProductId) throws Exception {
try {
Product newProduct = productRepository.findById(newProductId);
Order order = orderRepository.findById(orderId);
order.setModified(LocalDate.now());
order.setProduct(newProduct);
order.setDescription(OrderDescriptionEnum.MODIF.getValue());
return order;
} catch (Exception e) {
throw new Exception("Товар или заказ с таким id не найдено");
}
}
@Override
public List<Product> catalog() {
return productRepository.findAll();
}
}
12 changes: 12 additions & 0 deletions src/main/java/ru/tn/courses/vbykov/v1/task2/enums/BrandEnum.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package ru.tn.courses.vbykov.v1.task2.enums;

public enum BrandEnum {
Samsung("Самсунг"), Huawei("Хуавэй"), Xiaomi("Ксяоми");
private final String value;
BrandEnum(String value) {
this.value = value;
}
public String getValue() {
return value;
}
}
12 changes: 12 additions & 0 deletions src/main/java/ru/tn/courses/vbykov/v1/task2/enums/ColorEnum.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package ru.tn.courses.vbykov.v1.task2.enums;

public enum ColorEnum{
BLACK("Черный"), WHITE("Белый"), BLUE("Синий");
private final String value;
ColorEnum(String value) {
this.value = value;
}
public String getValue() {
return value;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package ru.tn.courses.vbykov.v1.task2.enums;

public enum DisplayResolutionEnum {
STANDART("1080×1920"), PLUS("1440 x 2960");
private final String value;
DisplayResolutionEnum(String value) {
this.value = value;
}
public String getValue() {
return value;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package ru.tn.courses.vbykov.v1.task2.enums;

public enum OperatingSystemEnum {
Android("Андроид"), Ubuntu_Touch("Убунту Тоуч"), SIRIN_OS("СИРИН ОС");
private final String value;
OperatingSystemEnum(String value) {
this.value = value;
}
public String getValue() {
return value;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package ru.tn.courses.vbykov.v1.task2.enums;

public enum OrderDescriptionEnum {
CREATE("Создание заказа"), RETURN("Возврат продукта"), MODIF("Изменение заказа"), BUY("Произведение покупки");
private final String value;
OrderDescriptionEnum(String value) {
this.value = value;
}
public String getValue() {
return value;
}
}
27 changes: 27 additions & 0 deletions src/main/java/ru/tn/courses/vbykov/v1/task2/models/Customer.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package ru.tn.courses.vbykov.v1.task2.models;

public class Customer extends Model{
String name;
Double money;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Double getMoney() {
return money;
}
public void setMoney(Double money) {
this.money = money;
}
public Customer(Integer id, String name, Double money) {
super(id);
this.name = name;
this.money = money;
}
@Override
public String toString() {
return super.toString() + "; name: " + name + "; money: " + money + "\n";
}
}
15 changes: 15 additions & 0 deletions src/main/java/ru/tn/courses/vbykov/v1/task2/models/Model.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package ru.tn.courses.vbykov.v1.task2.models;

public class Model {
private Integer id;
public Integer getId() {
return id;
}
public Model(Integer id) {
this.id = id;
}
@Override
public String toString() {
return "id: " + id;
}
}
Loading