Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.Scanner;
- public class Main {
- static Scanner scan = new Scanner(System.in);
- public static void main(String[] args) throws IOException {
- TVList tvlist1 = new TVList();
- String a;
- do{
- System.out.println("Choose one of the following options:");
- System.out.println(" 1. ADD new TV to file");
- System.out.println(" 2. SHOW information about all recorded TVs");
- System.out.println(" 3. SHOW information about all recorded TVs produced after year 2019");
- System.out.println(" 4. WRITE information about all recorded TVs to binary file");
- System.out.println(" 5. LOAD TV records from file");
- System.out.println(" 0. EXIT");
- a = scan.nextLine();
- switch (a){
- case "1":
- /*При избор на опция 1:
- Поребителят въвежда от клавиатурата данни за атрибутите на телевизор
- Създава се нов обект телевизор, който се добавя към списъка с телевизори*/
- String id = inputID();
- String model = inputModel();
- String company = inputCompany();
- double price = inputPrice();
- int year = inputYear();
- TV tv1 = new TV (id, model, company, price, year);
- tvlist1.addTV(tv1);
- System.out.println("NEW RECORD ADDED SUCCESSFULLY!");
- break;
- case "2":
- /*При избор на опция 2:
- Извеждат се на екрана на данни за всички телевизори от списъка*/
- tvlist1.printAll();
- break;
- case "3":
- /*При избор на опция 3:
- Извеждат се на екрана на данни за телевизорите от списъка, произведени от 2019г. нататък*/
- tvlist1.printAllAfter2019();
- break;
- case "4":
- /*При избор на опция 3:
- Потребителят е подканен да въведе име на файл.
- Списъка с телевизори се сериализира и записва в посочения файл.
- */
- System.out.print("Enter file name: ");
- String filename = scan.nextLine();
- TVSerializer tv_ser = new TVSerializer();
- tv_ser.serialize(tvlist1, filename);
- break;
- case "5":
- /*При избор на опция 3:
- Потребителят е подканен да въведе име на файл.
- Данните от файла се десериализират и записват като обект списък
- */
- System.out.print("Enter file name: ");
- String filename2 = scan.nextLine();
- TVDeserializer tv_deser = new TVDeserializer();
- tvlist1 = tv_deser.deserialize(filename2);
- break;
- default:
- break;
- }
- System.out.print("\033[H\033[2J"); //Екранът се изчиства
- System.out.flush();
- }
- while(!a.equals("0"));
- }
- //Метод за въвеждане на номенклатурен номер на телевизор, който подканва потребителя да въведе подходяща стойност, след което валидира въведената стойност.
- //При неуспешна валидация, потребителят е принуден да нова стойност.
- //При успешна валидация методът връща валидираната стойност.
- static String inputID (){
- String id="";
- do{
- System.out.print("ID: ");
- id = scan.nextLine();
- }while(!TVValidator.ValidateID(id));
- return id;
- }
- //Метод за въвеждане на модел на телевизор, който подканва потребителя да въведе подходяща стойност, след което валидира въведената стойност.
- //При неуспешна валидация, потребителят е принуден да нова стойност.
- //При успешна валидация методът връща валидираната стойност.
- static String inputModel (){
- String model="";
- do{
- System.out.print("Model: ");
- model = scan.nextLine();
- }while(!TVValidator.ValidateModel(model));
- return model;
- }
- //Метод за въвеждане на производител на телевизор, който подканва потребителя да въведе подходяща стойност, след което валидира въведената стойност.
- //При неуспешна валидация, потребителят е принуден да нова стойност.
- //При успешна валидация методът връща валидираната стойност.
- static String inputCompany (){
- String company="";
- do{
- System.out.print("Company: ");
- company = scan.nextLine();
- }while(!TVValidator.ValidateCompany(company));
- return company;
- }
- //Метод за въвеждане на цена на телевизор, който подканва потребителя да въведе подходяща стойност, след което валидира въведената стойност.
- //При неуспешна валидация, потребителят е принуден да нова стойност.
- //При успешна валидация методът връща валидираната стойност.
- static double inputPrice (){
- double price=0.0;
- do{
- System.out.print("Price: ");
- try {
- price = Double.parseDouble(scan.nextLine());
- }
- catch (NumberFormatException e)
- {
- System.out.println("Price must be a numeric value");
- }
- }while(!TVValidator.ValidatePrice(price));
- return price;
- }
- //Метод за въвеждане на година на производство на телевизор, който подканва потребителя да въведе подходяща стойност, след което валидира въведената стойност.
- //При неуспешна валидация, потребителят е принуден да нова стойност.
- //При успешна валидация методът връща валидираната стойност.
- static int inputYear (){
- int year=0;
- do{
- System.out.print("Year: ");
- try {
- year = Integer.parseInt(scan.nextLine());
- }
- catch (NumberFormatException e)
- {
- System.out.println("Year must be a numeric value");
- }
- }while(!TVValidator.ValidateYear(year));
- return year;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment