Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.text.DateFormat;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import java.util.Scanner;
- import static java.lang.Math.*;
- class CaseMenuTest {
- public static void main(String[] args) throws ParseException {
- System.out.println("Реализация меню на языке джава");
- new CaseMenu (new Scanner(System.in)).start();
- }
- }
- //////////////////////////////////
- class CaseMenu {
- private final Scanner scanner;
- public CaseMenu(Scanner scanner) {
- this.scanner = scanner;
- }
- private void printMenu() {
- System.out.println("1. Вывод Hello world ;");
- System.out.println("2. Подсчет формулы (y-(sqrt(x)/z);");
- System.out.println("3. Функция Аккермана;");
- }
- public void start() throws ParseException {
- double dFirst_number = 0.0;
- double dSecond_number = 0.0;
- double dThird_number = 0.0;
- if (this.scanner != null) {
- do {
- printMenu();
- System.out.print("Введите номер меню: ");
- while (!this.scanner.hasNextInt()) {
- System.out.println("Введите число 0, 1, 2, 3");
- this.scanner.next();
- }
- int key = this.scanner.nextInt();
- switch (key) {
- case 0:
- return;
- case 1:
- print_hello();
- break;
- case 2:
- formula(this.scanner, dFirst_number, dSecond_number, dThird_number);
- break;
- case 3:
- recursion_date();
- break;
- default:
- System.out.println("Вы ввели неверное значение меню...\n");
- }
- } while (true);
- }
- }
- private void print_hello() {
- System.out.println("Hello world");
- }
- private void formula(Scanner in, double x, double y, double z) {
- System.out.print("Введите x: ");
- double k;
- while (in.hasNext()) {
- if (in.hasNextDouble()) {
- if ((k = in.nextDouble()) > 0) {
- x = k;
- break;
- } else
- System.out.println("Введите положительное число, отличное от нуля число");
- } else {
- System.out.println("Введите число типа double");
- }
- in.nextLine();
- }
- System.out.print("Введите y: ");
- while (in.hasNext()) {
- if (in.hasNextDouble()) {
- if ((k = in.nextDouble()) >= 0) {
- y = k;
- break;
- } else
- System.out.println("Введите положительное число");
- } else {
- System.out.println("Введите число типа double");
- }
- in.nextLine();
- }
- System.out.print("Введите z: ");
- while (in.hasNext()) {
- if (in.hasNextDouble()) {
- if ((k = in.nextDouble()) != 0) {
- z = k;
- break;
- } else
- System.out.println("Введите число, отличное от нуля");
- } else {
- System.out.println("Введите число типа double");
- }
- in.nextLine();
- }
- double F = (y - (sqrt(x) / z));
- System.out.printf("Ответ: %.3f %n", F);
- }
- private static final DateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yyyy");
- static {
- DATE_FORMAT.setLenient(true);
- }
- private static boolean isValid(String date) {
- try {
- return DATE_FORMAT.format(DATE_FORMAT.parse(date)).equals(date);
- } catch (ParseException ex) {
- return false;
- }
- }
- private static Date print_date() throws ParseException {
- String k;
- Scanner in = new Scanner(System.in);
- System.out.println("Введите дату: ");
- String date = in.next();
- while (!isValid(date)) {
- System.out.println("Введите дату правильно: ");
- k = in.next();
- date = k;
- }
- return DATE_FORMAT.parse(date);
- }
- private static long segment_search (Date data1, Date data2, Date data3, Date data4) {
- long a1 = data1.getTime();
- long a2 = data2.getTime();
- long a3 = data3.getTime();
- long a4 = data4.getTime();
- long l = Math.min(a2, a4) - Math.max(a1, a3);
- if ((a1 < a3) && (a2 < a4) || ((a1 < a3) && (a2 > a4))) {
- if (a2 < a3 || a1 > a4) {
- return 0;
- } else {
- return l;
- }
- } else {
- return 0;
- }
- }
- private static long Akkerman_function(int n, long m) {
- if (n == 0)
- return m + 1;
- else if ((n!=0)&&(m==0))
- return Akkerman_function(n - 1, 1);
- else
- return Akkerman_function(n - 1, Akkerman_function(n, m - 1));
- }
- private static void print_Akkerman(long segment) {
- System.out.println("Результат отрезка в днях: " + segment / (24 * 60 * 60 * 1000));
- System.out.println("Значение функции Аккермана: " + Akkerman_function(5, segment / (24 * 60 * 60 * 1000)));
- }
- private static void recursion_date () throws ParseException {
- Date data1;
- Date data2;
- Date data3;
- Date data4;
- long segment;
- data1 = print_date();
- data2 = print_date();
- data3 = print_date();
- data4 = print_date();
- segment = segment_search(data1, data2, data3, data4);
- print_Akkerman(segment);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement