From 6a4af426ea7214cb100b3fdeb397bbe65f1b747a Mon Sep 17 00:00:00 2001 From: Aelita4 Date: Tue, 8 Nov 2022 09:28:59 +0100 Subject: [PATCH] Lab 4 --- .idea/workspace.xml | 60 ++++++++++++++++++++- src/Building.java | 20 +++++++ src/Genre.java | 44 ++++++++++++++++ src/GetStudentData.java | 31 +++++++++++ src/Main.java | 93 ++++++++++++++++++++++++++++++++- src/Person.java | 26 +++++++++ src/PersonData.java | 11 ++++ src/Rectangle1.java | 21 ++++++++ src/Student.java | 38 ++++++++++++++ src/geometry/Circle.java | 18 +++++++ src/geometry/Cone.java | 20 +++++++ src/geometry/Cube.java | 18 +++++++ src/geometry/Cuboid.java | 22 ++++++++ src/geometry/GeoCalculator.java | 28 ++++++++++ src/geometry/Rectangle.java | 19 +++++++ src/geometry/Sphere.java | 18 +++++++ src/geometry/Square.java | 18 +++++++ 17 files changed, 502 insertions(+), 3 deletions(-) create mode 100644 src/Building.java create mode 100644 src/Genre.java create mode 100644 src/GetStudentData.java create mode 100644 src/Person.java create mode 100644 src/PersonData.java create mode 100644 src/Rectangle1.java create mode 100644 src/Student.java create mode 100644 src/geometry/Circle.java create mode 100644 src/geometry/Cone.java create mode 100644 src/geometry/Cube.java create mode 100644 src/geometry/Cuboid.java create mode 100644 src/geometry/GeoCalculator.java create mode 100644 src/geometry/Rectangle.java create mode 100644 src/geometry/Sphere.java create mode 100644 src/geometry/Square.java diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 1d9caeb..bbbc306 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -1,17 +1,47 @@ - + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + 1667890605459 + + + \ No newline at end of file diff --git a/src/Building.java b/src/Building.java new file mode 100644 index 0000000..c8ee8d4 --- /dev/null +++ b/src/Building.java @@ -0,0 +1,20 @@ +import java.time.LocalDate; +import java.time.Period; + +public class Building { + LocalDate date; + String name; + int floors; + + public Building(LocalDate date, String name, int floors) { + this.date = date; + this.name = name; + this.floors = floors; + } + + public void displayBuildingData() { + System.out.println("Building " + name); + System.out.println("with " + floors + " floors"); + System.out.println("Built " + Math.abs(Period.between(LocalDate.now(), date).getYears()) + " years ago"); + } +} diff --git a/src/Genre.java b/src/Genre.java new file mode 100644 index 0000000..ea192a5 --- /dev/null +++ b/src/Genre.java @@ -0,0 +1,44 @@ +public class Genre { + String typeName; + String genreName; + int chromosomes; + int baseXchromosomes; + String desc; + + public Genre(String typeName, String genreName, int chromosomes, int baseXchromosomes, String desc) { + this.typeName = typeName; + this.genreName = genreName; + this.chromosomes = chromosomes; + this.baseXchromosomes = baseXchromosomes; + this.desc = desc; + } + + public Genre(Genre g) { + this.typeName = g.typeName; + this.genreName = g.genreName; + this.chromosomes = g.chromosomes; + this.baseXchromosomes = g.baseXchromosomes; + this.desc = g.desc; + } + + public String getAll() { + return "Type name: " + typeName + + "\nGenre name: " + genreName + + "\nChromosomes number: " + chromosomes + + "\nBase X chromosomes number: " + baseXchromosomes + + "\nDescription: " + desc; + } + + public String getFullName() { + return typeName + ", " + genreName + " genre"; + } + + public String getChromosomes() { + return 2 * chromosomes + " chromosomes, of which " + baseXchromosomes + " are X"; + } + + public Genre clone() { + Genre g = new Genre(this); + return g; + } +} diff --git a/src/GetStudentData.java b/src/GetStudentData.java new file mode 100644 index 0000000..f9ffab0 --- /dev/null +++ b/src/GetStudentData.java @@ -0,0 +1,31 @@ +import java.util.Scanner; + +public class GetStudentData { + public static void getStudentData() { + String name, surname, specialty; + int age, indexNumber, collegeYear; + + Scanner scanner = new Scanner(System.in); + + System.out.print("Name: "); + name = scanner.next(); + + System.out.print("Surname: "); + surname = scanner.next(); + + System.out.print("Age: "); + age = scanner.nextInt(); + + System.out.print("Index number: "); + indexNumber = scanner.nextInt(); + + System.out.print("Specialty: "); + specialty = scanner.next(); + + System.out.print("College year: "); + collegeYear = scanner.nextInt(); + + Student s = new Student(name, surname, age, indexNumber, specialty, collegeYear); + s.getStudentData(); + } +} diff --git a/src/Main.java b/src/Main.java index 3e59c38..8bd5328 100644 --- a/src/Main.java +++ b/src/Main.java @@ -1,5 +1,96 @@ +import geometry.*; + +import java.time.LocalDate; + public class Main { public static void main(String[] args) { - System.out.println("Hello world!"); + System.out.println("=== Zadanie L.1 (prostokąt) ==="); + Rectangle1 rect1 = new Rectangle1(3, 4); + System.out.println("Rectangle W:" + rect1.width + " H:" + rect1.height); + System.out.println("Area: " + rect1.getArea()); + System.out.println("Circumference: " + rect1.getCircumference()); + System.out.println("Axis: " + rect1.getAxis()); + + + System.out.println("=== Zadanie L.2 (budynek) ==="); + Building b1 = new Building(LocalDate.of(1991, 4, 1), "wsiz", 3); + b1.displayBuildingData(); + + + System.out.println("=== Zadanie L.3 (gatunki) ==="); + Genre cat = new Genre("cat", "felis domestic", 20, 10, "Garfield"); + System.out.println(cat.getAll()); + System.out.println(cat.getFullName()); + System.out.println(cat.getChromosomes()); + + Genre notDog = cat.clone(); + System.out.println(notDog.getAll()); + System.out.println(notDog.getFullName()); + System.out.println(notDog.getChromosomes()); + notDog.typeName = "dog"; + notDog.genreName = "dogus domesticus"; + notDog.desc = "Pluto"; + System.out.println(notDog.getAll()); + System.out.println(notDog.getFullName()); + System.out.println(notDog.getChromosomes()); + + + System.out.println("=== Zadanie K.1 (osoba) ==="); + PersonData.getPersonData(); + + + System.out.println("=== Zadanie K.2 (student) ==="); + Student s1 = new Student("Zdzichu", "Zdzichowski", 19, 12345, "IT", 2021); + Student s2 = new Student("Eustachy", 21, 54321, "Cosmetics", 2019); + Student s3 = new Student(11223, "Management", 2018); + Student s4 = new Student("Andrzej", "Kula", 22, 32213, "Networking"); + + s1.getStudentData(); + s2.getStudentData(); + s3.getStudentData(); + s4.getStudentData(); + + + System.out.println("=== Zadanie K.3 (wprowadź studenta) ==="); + GetStudentData.getStudentData(); + + + System.out.println("=== Zadanie K.4 (figury) ==="); + System.out.println("Circle"); + Circle circle = new Circle(4); + System.out.println(circle.getArea()); + System.out.println(circle.getCircumference()); + + System.out.println("Cone"); + Cone cone = new Cone(4, 2); + System.out.println(cone.getArea()); + System.out.println(cone.getVolume()); + + System.out.println("Cube"); + Cube cube = new Cube(4); + System.out.println(cube.getArea()); + System.out.println(cube.getCircumference()); + + System.out.println("Cuboid"); + Cuboid cuboid = new Cuboid(4, 5, 6); + System.out.println(cuboid.getArea()); + System.out.println(cuboid.getVolume()); + + System.out.println("Rectangle"); + Rectangle rectangle = new Rectangle(3, 4); + System.out.println(rectangle.getArea()); + System.out.println(rectangle.getCircumference()); + + System.out.println("Sphere"); + Sphere sphere = new Sphere(4); + System.out.println(sphere.getArea()); + System.out.println(sphere.getVolume()); + + System.out.println("Square"); + Square square = new Square(4); + System.out.println(square.getArea()); + System.out.println(square.getCircumference()); + + } } \ No newline at end of file diff --git a/src/Person.java b/src/Person.java new file mode 100644 index 0000000..d66eed3 --- /dev/null +++ b/src/Person.java @@ -0,0 +1,26 @@ +public class Person { + String name, surname; + int age; + + public Person(String name, String surname, int age) { + this.name = name; + this.surname = surname; + this.age = age; + } + + public Person(String name, int age) { + this.name = name; + this.surname = "Kowalski"; + this.age = age; + } + + public Person() { + this.name = "Jan"; + this.surname = "Kowalski"; + this.age = 20; + } + + public void getPersonData() { + System.out.println(name + " " + surname + ", age " + age); + } +} diff --git a/src/PersonData.java b/src/PersonData.java new file mode 100644 index 0000000..21d15f0 --- /dev/null +++ b/src/PersonData.java @@ -0,0 +1,11 @@ +public class PersonData { + public static void getPersonData() { + Person p1 = new Person("Zdzichu", "Zdzichowski", 19); + Person p2 = new Person("Eustachy", 21); + Person p3 = new Person(); + + p1.getPersonData(); + p2.getPersonData(); + p3.getPersonData(); + } +} diff --git a/src/Rectangle1.java b/src/Rectangle1.java new file mode 100644 index 0000000..a74c9dd --- /dev/null +++ b/src/Rectangle1.java @@ -0,0 +1,21 @@ +public class Rectangle1 { + int width, height; + + public Rectangle1(int width, int height) { + if(width <= 0 || height <= 0) throw new IllegalArgumentException("Width/height must be greater than zero"); + this.width = width; + this.height = height; + } + + public int getArea() { + return width * height; + } + + public int getCircumference() { + return (2 * width) + (2 * height); + } + + public double getAxis() { + return Math.sqrt(Math.pow(width, 2) + Math.pow(height, 2)); + } +} diff --git a/src/Student.java b/src/Student.java new file mode 100644 index 0000000..594b3f2 --- /dev/null +++ b/src/Student.java @@ -0,0 +1,38 @@ +public class Student extends Person { + int indexNumber; + String specialty; + int collegeYear; + + public Student(String name, String surname, int age, int indexNumber, String specialty, int collegeYear) { + super(name, surname, age); + this.indexNumber = indexNumber; + this.specialty = specialty; + this.collegeYear = collegeYear; + } + + public Student(String name, int age, int indexNumber, String specialty, int collegeYear) { + super(name, age); + this.indexNumber = indexNumber; + this.specialty = specialty; + this.collegeYear = collegeYear; + } + + public Student(int indexNumber, String specialty, int collegeYear) { + super(); + this.indexNumber = indexNumber; + this.specialty = specialty; + this.collegeYear = collegeYear; + } + + public Student(String name, String surname, int age, int indexNumber, String specialty) { + super(name, surname, age); + this.indexNumber = indexNumber; + this.specialty = specialty; + this.collegeYear = 2022; + } + + public void getStudentData() { + this.getPersonData(); + System.out.println("Student at " + specialty + ", index no. " + indexNumber + ", studying since " + collegeYear); + } +} diff --git a/src/geometry/Circle.java b/src/geometry/Circle.java new file mode 100644 index 0000000..ce144e9 --- /dev/null +++ b/src/geometry/Circle.java @@ -0,0 +1,18 @@ +package geometry; + +public class Circle { + int radius; + + public Circle(int radius) { + if(radius <= 0) throw new IllegalArgumentException("Radius must be greater than 0"); + this.radius = radius; + } + + public double getArea() { + return Math.PI * Math.pow(radius, 2); + } + + public double getCircumference() { + return 2 * Math.PI * radius; + } +} diff --git a/src/geometry/Cone.java b/src/geometry/Cone.java new file mode 100644 index 0000000..07452c6 --- /dev/null +++ b/src/geometry/Cone.java @@ -0,0 +1,20 @@ +package geometry; + +public class Cone { + double height, radius, slant; + + public Cone(double height, double radius) { + if(height <= 0 || radius <= 0) throw new IllegalArgumentException("Height/radius must be greater than zero"); + this.height = height; + this.radius = radius; + this.slant = Math.sqrt(Math.pow(height, 2) + Math.pow(radius, 2)); + } + + public double getArea() { + return Math.PI * radius * slant + Math.PI * Math.pow(radius, 2); + } + + public double getVolume() { + return (Math.PI * Math.pow(radius, 2) * height) / 3; + } +} diff --git a/src/geometry/Cube.java b/src/geometry/Cube.java new file mode 100644 index 0000000..9d5e8e1 --- /dev/null +++ b/src/geometry/Cube.java @@ -0,0 +1,18 @@ +package geometry; + +public class Cube { + int edge; + + public Cube(int edge) { + if(edge <= 0) throw new IllegalArgumentException("Edge must be greater than 0"); + this.edge = edge; + } + + public double getArea() { + return 6 * Math.pow(edge, 2); + } + + public double getCircumference() { + return Math.pow(edge, 3); + } +} diff --git a/src/geometry/Cuboid.java b/src/geometry/Cuboid.java new file mode 100644 index 0000000..a994bb8 --- /dev/null +++ b/src/geometry/Cuboid.java @@ -0,0 +1,22 @@ +package geometry; + +public class Cuboid { + int a, b, c; + + public Cuboid(int a, int b, int c) { + if(a <= 0 || b <= 0 || c <= 0) throw new IllegalArgumentException("Edge must be greater than 0"); + this.a = a; + this.b = b; + this.c = c; + } + + public double getArea() { + return 2 * (a * b) + + 2 * (b * c) + + 2 * (a * c); + } + + public double getVolume() { + return a * b * c; + } +} diff --git a/src/geometry/GeoCalculator.java b/src/geometry/GeoCalculator.java new file mode 100644 index 0000000..3d8b10e --- /dev/null +++ b/src/geometry/GeoCalculator.java @@ -0,0 +1,28 @@ +package geometry; + +import java.util.Scanner; + +public class GeoCalculator { + public static void start() { + int choice; + Scanner scanner = new Scanner(System.in); + + System.out.println("1. Circle"); + System.out.println("2. Cone"); + System.out.println("3. Cube"); + System.out.println("4. Cuboid"); + System.out.println("5. Rectangle"); + System.out.println("6. Sphere"); + System.out.println("7. Square"); + + while(true) { + choice = scanner.nextInt(); + if(choice >= 1 && choice <= 7) break; + } + + switch(choice) { + case 1: + + } + } +} diff --git a/src/geometry/Rectangle.java b/src/geometry/Rectangle.java new file mode 100644 index 0000000..20b2325 --- /dev/null +++ b/src/geometry/Rectangle.java @@ -0,0 +1,19 @@ +package geometry; + +public class Rectangle { + int width, height; + + public Rectangle(int width, int height) { + if(width <= 0 || height <= 0) throw new IllegalArgumentException("Width/height must be greater than zero"); + this.width = width; + this.height = height; + } + + public int getArea() { + return width * height; + } + + public int getCircumference() { + return (2 * width) + (2 * height); + } +} diff --git a/src/geometry/Sphere.java b/src/geometry/Sphere.java new file mode 100644 index 0000000..e8a7172 --- /dev/null +++ b/src/geometry/Sphere.java @@ -0,0 +1,18 @@ +package geometry; + +public class Sphere { + int radius; + + public Sphere(int radius) { + if(radius <= 0) throw new IllegalArgumentException("Radius must be greater than 0"); + this.radius = radius; + } + + public double getArea() { + return 4 * Math.PI * Math.pow(radius, 2); + } + + public double getVolume() { + return (4 / 3) * Math.PI * Math.pow(radius, 3); + } +} diff --git a/src/geometry/Square.java b/src/geometry/Square.java new file mode 100644 index 0000000..240fd0d --- /dev/null +++ b/src/geometry/Square.java @@ -0,0 +1,18 @@ +package geometry; + +public class Square { + int edge; + + public Square(int edge) { + if(edge <= 0) throw new IllegalArgumentException("Edge must be greater than zero"); + this.edge = edge; + } + + public double getArea() { + return Math.pow(edge, 2); + } + + public double getCircumference() { + return 4 * edge; + } +}