bori4ko

Untitled

Jun 19th, 2022
1,342
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.93 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.util.Scanner;
  5.  
  6. public class Main {
  7.     static Scanner scan = new Scanner(System.in);
  8.     public static void main(String[] args) throws IOException {
  9.         TVList tvlist1 = new TVList();
  10.         String a;
  11.         do{
  12.             System.out.println("Choose one of the following options:");
  13.             System.out.println("    1. ADD new TV to file");
  14.             System.out.println("    2. SHOW information about all recorded TVs");
  15.             System.out.println("    3. SHOW information about all recorded TVs produced after year 2019");
  16.             System.out.println("    4. WRITE information about all recorded TVs to binary file");
  17.             System.out.println("    5. LOAD TV records from file");
  18.             System.out.println("    0. EXIT");
  19.             a = scan.nextLine();
  20.             switch (a){
  21.                 case "1":
  22.                     /*При избор на опция 1:
  23.                     Поребителят въвежда от клавиатурата данни за атрибутите на телевизор
  24.                     Създава се нов обект телевизор, който се добавя към списъка с телевизори*/
  25.                     String id = inputID();
  26.                     String model = inputModel();
  27.                     String company = inputCompany();
  28.                     double price = inputPrice();
  29.                     int year = inputYear();
  30.                     TV tv1 = new TV (id, model, company, price, year);
  31.                     tvlist1.addTV(tv1);
  32.                     System.out.println("NEW RECORD ADDED SUCCESSFULLY!");
  33.                     break;
  34.                 case "2":
  35.                     /*При избор на опция 2:
  36.                      Извеждат се на екрана на данни за всички телевизори от списъка*/
  37.                     tvlist1.printAll();
  38.                     break;
  39.                 case "3":
  40.                     /*При избор на опция 3:
  41.                      Извеждат се на екрана на данни за телевизорите от списъка, произведени от 2019г. нататък*/
  42.                     tvlist1.printAllAfter2019();
  43.                     break;
  44.                 case "4":
  45.                     /*При избор на опция 3:
  46.                     Потребителят е подканен да въведе име на файл.
  47.                     Списъка с телевизори се сериализира и записва в посочения файл.
  48.                      */
  49.                     System.out.print("Enter file name: ");
  50.                     String filename = scan.nextLine();
  51.                     TVSerializer tv_ser = new TVSerializer();
  52.                     tv_ser.serialize(tvlist1, filename);
  53.                     break;
  54.                 case "5":
  55.                     /*При избор на опция 3:
  56.                     Потребителят е подканен да въведе име на файл.
  57.                     Данните от файла се десериализират и записват като обект списък
  58.                      */
  59.                     System.out.print("Enter file name: ");
  60.                     String filename2 = scan.nextLine();
  61.                     TVDeserializer tv_deser = new TVDeserializer();
  62.                     tvlist1 = tv_deser.deserialize(filename2);
  63.                     break;
  64.                 default:
  65.                     break;
  66.             }
  67.             System.out.print("\033[H\033[2J"); //Екранът се изчиства
  68.             System.out.flush();
  69.         }
  70.         while(!a.equals("0"));
  71.     }
  72.     //Метод за въвеждане на номенклатурен номер на телевизор, който подканва потребителя да въведе подходяща стойност, след което валидира въведената стойност.
  73.     //При неуспешна валидация, потребителят е принуден да нова стойност.
  74.     //При успешна валидация методът връща валидираната стойност.
  75.     static String inputID (){
  76.         String id="";
  77.         do{
  78.             System.out.print("ID: ");
  79.             id = scan.nextLine();
  80.         }while(!TVValidator.ValidateID(id));
  81.         return id;
  82.     }
  83.     //Метод за въвеждане на модел на телевизор, който подканва потребителя да въведе подходяща стойност, след което валидира въведената стойност.
  84.     //При неуспешна валидация, потребителят е принуден да нова стойност.
  85.     //При успешна валидация методът връща валидираната стойност.
  86.     static String inputModel (){
  87.         String model="";
  88.         do{
  89.             System.out.print("Model: ");
  90.             model = scan.nextLine();
  91.         }while(!TVValidator.ValidateModel(model));
  92.         return model;
  93.     }
  94.     //Метод за въвеждане на производител на телевизор, който подканва потребителя да въведе подходяща стойност, след което валидира въведената стойност.
  95.     //При неуспешна валидация, потребителят е принуден да нова стойност.
  96.     //При успешна валидация методът връща валидираната стойност.
  97.     static String inputCompany (){
  98.         String company="";
  99.         do{
  100.             System.out.print("Company: ");
  101.             company = scan.nextLine();
  102.         }while(!TVValidator.ValidateCompany(company));
  103.         return company;
  104.     }
  105.     //Метод за въвеждане на цена на телевизор, който подканва потребителя да въведе подходяща стойност, след което валидира въведената стойност.
  106.     //При неуспешна валидация, потребителят е принуден да нова стойност.
  107.     //При успешна валидация методът връща валидираната стойност.
  108.     static double inputPrice (){
  109.         double price=0.0;
  110.         do{
  111.             System.out.print("Price: ");
  112.             try {
  113.                 price = Double.parseDouble(scan.nextLine());
  114.             }
  115.             catch (NumberFormatException e)
  116.             {
  117.                 System.out.println("Price must be a numeric value");
  118.             }
  119.         }while(!TVValidator.ValidatePrice(price));
  120.         return price;
  121.     }
  122.     //Метод за въвеждане на година на производство на телевизор, който подканва потребителя да въведе подходяща стойност, след което валидира въведената стойност.
  123.     //При неуспешна валидация, потребителят е принуден да нова стойност.
  124.     //При успешна валидация методът връща валидираната стойност.
  125.     static int inputYear (){
  126.         int year=0;
  127.         do{
  128.             System.out.print("Year: ");
  129.             try {
  130.                 year = Integer.parseInt(scan.nextLine());
  131.             }
  132.             catch (NumberFormatException e)
  133.             {
  134.                 System.out.println("Year must be a numeric value");
  135.             }
  136.         }while(!TVValidator.ValidateYear(year));
  137.         return year;
  138.     }
  139. }
  140.  
  141.  
Advertisement
Add Comment
Please, Sign In to add comment