Лабораторная работа №3_1. Исходный код
Исходный код класса Main
import java.text.DecimalFormat;
import java.util.Random;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
String info =
"Лабораторная работа№3.1\n"+
"Вариант3\n"+
"Соколов Евгений Александрович\n"+
"Условие:Предметная область «Начисление заработной платы».\n"+
"Есть предприятие в нём несколько групп сотрудников, инженеры, рабочие, менеджеры по продажам.\n"+
"Программа должна отражать начисление зарплат для всех выше перечисленных категорий сотрудников, следующим образом:\n"+
"для инженеров зарплата начисляется как оклад плюс премия если она есть, для рабочих в зависимости от отработанных часов,\n"+
"сверхурочные часы оплачиваются в двойном размере, для менеджеров по продажам, оклад плюс бонусы за каждую совершённую сделку.";
System.out.println(info);
DecimalFormat f = new DecimalFormat("0.00");
Random r = new Random();
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("==================");
int startEngineerSalary = r.nextInt(100000);
Engineer engineer = new Engineer(startEngineerSalary);
int startWorkerSalaryPerHour = r.nextInt(1000);
int startWorkerGeneralHour = r.nextInt(100);
Worker worker = new Worker(startWorkerSalaryPerHour, startWorkerGeneralHour);
int startManagerSalary = r.nextInt(50000);
int startManagerBonusPerSale = r.nextInt(1000);
Manager manager = new Manager(startManagerSalary, startManagerBonusPerSale);
int inputEngineerBonus = r.nextInt(10000);
double engineerSalary = engineer.payroll(inputEngineerBonus);
int inputWorkerHour = r.nextInt(100);
double workerSalary = worker.payroll(51);
|
|
int inputManagerSales = r.nextInt(20);
double managerSalary = manager.payroll(4);
System.out.println("Зарплата инженера с бонусом 2500: " + f.format(inputEngineerBonus) + " is " + f.format(engineerSalary) + " руб.");
System.out.println("Зарплата для работника с 3 дополнительными часами: " + f.format(workerSalary) + " руб.");
System.out.println("Зарплата менеджера с 4 продажами: " + inputManagerSales + " продажи " + f.format(managerSalary) + " руб.");
System.out.println("Повторить? да/нет");
if (scanner.nextLine().equals("нет")) {
return;
}
}
}
}
Исходный код класса Employee
public abstract class Employee {
double salary;
abstract double payroll(double value);
}
Исходный код класса Engineer
public class Engineer extends Employee {
public Engineer(double salary) {
this.salary = salary;
}
@Override
double payroll(double bonus) {
return salary + bonus;
}
}
Исходный код класса Manager
public class Manager extends Employee {
double bonusPerSale;
public Manager(double salary, double bonusPerSale) {
this.salary = salary;
this.bonusPerSale = bonusPerSale;
}
@Override
double payroll(double saleCount) {
return salary + saleCount * bonusPerSale;
}
}
Исходный код класса Worker
public class Worker extends Employee {
private double generalHours;
public Worker(double salaryPerHour, double generalHours) {
salary = salaryPerHour;
this.generalHours = generalHours;
}
@Override
double payroll(double hours) {
if (hours > generalHours) {
return (hours - generalHours) * salary * 2 + generalHours * salary;
} else {
return hours * salary;
}
}
}
Приложение А4
Лабораторная работа №3_2. Исходный код
|
|
Исходный код класса Main
import javafx.geometry.Point2D;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
String info=
"Лабораторная работа№3.2\n"+
"вариант3\n"+
"Соколов Евгений Александрович\n"+
"Условие:Создать класс окружность, член класса - R.\n"+
"Предусмотреть в классе методы вычисления и вывода сведений о фигуре – площади, длины окружности.\n"+
"Создать производный класс – круглый прямой цилиндр с высотой h, добавить в класс метод определения объема фигуры,\n"+
"перегрузить методы расчета площади и вывода сведений о фигуре.\n"+
"Написать программу, демонстрирующую работу с классом: дано N окружностей и M цилиндров,\n"+
"найти окружность максимальной площади и средний объем цилиндров.";
System.out.println(info);
DecimalFormat f = new DecimalFormat("0.00");
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.print("Введите число четырехугольников: ");
int N = scanner.nextInt();
List<Quadrangle> quadrangles = new ArrayList<>();
for (int i = 0; i < N; i++) { //ввод 4угольнтков
System.out.println((i + 1) + " четырехугольник");
System.out.print("Левая верхняя точка: ");
Point2D leftTop = getPoint();
|
|
System.out.print("Левая нижняя точка: ");
Point2D leftBottom = getPoint();
System.out.print("Правая верхняя точка: ");
Point2D rightTop = getPoint();
System.out.print("Правая нижняя точка: ");
Point2D rightBottom = getPoint();
Quadrangle quadrangle = new Quadrangle(leftTop, leftBottom, rightTop, rightBottom);
quadrangles.add(quadrangle);
}
System.out.print("Введите колличество квадратов: ");
int M = scanner.nextInt();
scanner.nextLine();
List<Square> squares = new ArrayList<>();
for (int i = 0; i < M; i++) { //ввод квадратов
System.out.println((i + 1) + " квадрат");
System.out.print("Левая верхняя точка: ");
Point2D leftTop = getPoint();
System.out.print("Левая нижняя точка: ");
Point2D leftBottom = getPoint();
System.out.print("Правая верхняя точка: ");
Point2D rightTop = getPoint();
System.out.print("Правая нижняя точка: ");
Point2D rightBottom = getPoint();
Square square = new Square(leftTop, leftBottom, rightTop, rightBottom);
squares.add(square);
}
if (!quadrangles.isEmpty()) {
double perimeters = 0;
double areas = 0;
for (Quadrangle quadrangle : quadrangles) { // общие периметр и площадь
perimeters += quadrangle.getPerimeter();
areas += quadrangle.getArea();
}
double averagePerimeter = perimeters / quadrangles.size(); // средний перимтр
double averageArea = areas / quadrangles.size(); // средняя площадь
|
|
System.out.println("Средний периметр " + f.format(averagePerimeter));
System.out.println("Средняя площадь " + f.format(averageArea));
} else {
System.out.println("Список четырехугольников пуст");
}
if (!squares.isEmpty()) {
// поиск наименьшего квадрата[по площади]
Square minSquare = squares.get(0);// первый элемент в списке
for (Square square : squares) {
if (minSquare.getArea() > square.getArea()) {
minSquare = square;
}
}
System.out.println("Минимальный квадрат1");
minSquare.info();
} else {
System.out.println("Список квадратов пуст");
}
System.out.println("Повторить? да/нет");
if (scanner.nextLine().equals("нет")) {
return;
}
}
}
public static Point2D getPoint() { // вынес в функцию получения координат с консоли, т.к. дуюлировать код для каждой точки перебор
Scanner scanner = new Scanner(System.in); // создает сканер
System.out.print("x = ");
double x = scanner.nextDouble(); // ввод координаты x
System.out.print("y = ");
double y = scanner.nextDouble(); // ввод координаты y
return new Point2D(x, y); // создает точку по полученным координатам и возвращает ее.
}
}
Исходный код класса Quadrangle
import javafx.geometry.Point2D;
import java.text.DecimalFormat;
public class Quadrangle { // четырех угольник
private Point2D leftTop; //левая верхняя точка
private Point2D leftBottom; // правая нижняя
private Point2D rightTop;
private Point2D rightBottom;
public Quadrangle(Point2D leftTop, Point2D leftBottom, Point2D rightTop, Point2D rightBottom) { // получает координаты
this.leftTop = leftTop;
this.leftBottom = leftBottom;
this.rightTop = rightTop;
this.rightBottom = rightBottom;
}
public double getWidth() {
return Math.abs(leftTop.getX() - rightTop.getX());
} // ширина
public double getHeight() {
return Math.abs(leftTop.getY() - leftBottom.getY());
} // высота
public double getPerimeter() {
return 2 * getWidth() + 2 * getHeight();
} // периметр
public double getArea() {
return getHeight() * getWidth();
} // площадь
public double getFirstDiagonal() { // длина 1 диагонали
double x = rightBottom.getX() - leftTop.getX();
double y = rightBottom.getY() - leftTop.getY();
return Math.sqrt(x * x + y * y);
}
public double getSecondDiagonal() { // длина 2 диагонали
double x = leftBottom.getX() - rightTop.getX();
double y = leftBottom.getY() - rightTop.getY();
return Math.sqrt(x * x + y * y);
}
public void info() {
DecimalFormat f = new DecimalFormat("0.00");
System.out.println("Ширина " + f.format(getWidth()));
System.out.println("Высота " + f.format(getHeight()));
System.out.println("Периметр " + f.format(getPerimeter()));
System.out.println("Площадь " + f.format(getArea()));
}
}
Исходный код класса Square
import javafx.geometry.Point2D;
public class Square extends Quadrangle {
public Square(Point2D leftTop, Point2D leftBottom, Point2D rightTop, Point2D rightBottom) {
super(leftTop, leftBottom, rightTop, rightBottom);
}
public boolean isSquare() {
return getWidth() == getHeight() && getFirstDiagonal() == getSecondDiagonal();
}
}
Приложение А5
Дата добавления: 2018-11-24; просмотров: 354; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!