/
ylts
/
chatBotTravel
Обзор
Документация
Войти
/
ylts
/
chatBotTravel
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/main/java/org/itcube/Main.java
99 строк
6 KB
javamain
Add project
05 дек 2024, 22:26
05 дек 2024, 22:26
1a2a6fc
Код
Авторство
О чём код?
package org.itcube; import java.sql.SQLException; import java.util.ArrayList; import java.util.Scanner; public class Main { public static void main(String[] args) throws SQLException { /* Этот класс используется для демонстрации работы чат-бота. Его вполне можно заменить на GUI интерфейс или оптимизировать для WEB основным классом является класс WorkDB В нем расположены основные методы работы с базой данных и получения информации */ String reset = "\u001B[0m"; String blue = "\u001B[34m"; String question = ""; int userID; int visitID = 1; Scanner scanner= new Scanner(System.in); System.out.println("Привет, я чат-бот - помощник туриста"); System.out.println("Представьтесь, пожалуйста!"); System.out.println("Введите ваше имя"); String name= scanner.nextLine(); System.out.println("Введите ваш возраст"); int age= scanner.nextInt(); System.out.println("Введите ваш пол-(мужской/женский)"); String gender= scanner.nextLine(); if (gender.isEmpty()) {gender= scanner.nextLine();} System.out.println("Введите ваш email"); String email= scanner.nextLine(); System.out.println("Введите город, из которого вы приехали"); String city= scanner.nextLine(); User user= new User(name, age, gender, email, city); userID = WorkDB.insertUser(user); System.out.println(userID); System.out.println(user.getName()+", добро пожаловать в Елец!\nЧто бы вы хотели узнать о городе.\n" + "Введите одну из следующих категорий (Или \"выход\" для завершения)" + "\nДля просмотра своего маршрута напишите \"мой маршрут\"" + "\nВ людое время вы можете выбрать любую категорию или название объекта"); question = "Покажи все категории"; if (WorkDB.getVisitNumber(user.getEmail()) == 0){ // если пользователь с таким email еще не был, visitID=1; // то количество визитов устанавливается равным 1 } else { // иначе количество визитов увеличивается на 1 больше тех что найдены в БД visitID = WorkDB.getVisitNumber(user.getEmail()) + 1; } WorkDB.addVisit(userID, visitID, 0); while (true) { ArrayList<String> listAnswer = WorkDB.getQuestions(question); if (!question.equals("Покажи все категории") && listAnswer.get(0).equals("2")) { System.out.println("Введите одну из следующих категорий (Или \"выход\" для завершения)"); } if (listAnswer.get(0).equals("2")) { System.out.println("Введите \"сохранить\" для добавления в ваш маршрут или \"далее\" для выбора категории (Или \"выход\" для завершения)"); } if (listAnswer.get(0).equals("0") && listAnswer.get(1).equals("1")) System.out.println("Для уточнения информации вы можете использовать теги\nформат записи: #парковка, тег1, тег2,..\nЕсли объект содержит данную услугу, то он будет выделен зеленым, иначе - красным"); for (int i = 2; i < listAnswer.size(); i++) { // в наборе объектов listAnswer два первых элемента являются управляющими if (listAnswer.get(0).equals("0")) { // 0 - если выбран коневой набор данных (где поесть, что посмотреть...) System.out.println(blue+listAnswer.get(i)+reset); } else if (listAnswer.get(0).equals("1")) { // 1 - если выбран дочерний элемент (рестораны, кафе...) if (!listAnswer.get(1).isEmpty()) { System.out.println(listAnswer.get(i)); } } else if (listAnswer.get(0).equals("2")){ // 2 - если выбран конкретный объект (ресторан "Старый город") System.out.println(blue + listAnswer.get(i) + reset); } } if(listAnswer.get(0).equals("2")) { String add = scanner.nextLine(); if (add.equals("сохранить") || add.equals("сохрани")) { // добавление в маршрут WorkDB.addVisit(userID, visitID, Integer.valueOf(listAnswer.get(1))); System.out.println("Объект добавлен в маршрут"); } question = "Покажи все категории"; System.out.println("Введите одну из следующих категорий (Или \"выход\" для завершения)"); continue; } question = scanner.nextLine(); if (question.equals("выход")) { break; } if (question.isEmpty()) { continue; } if (question.equals("мой маршрут")) { // вывод маршрута for (String s : WorkDB.getVisit(userID, visitID)) { System.out.println(s); } question = "Покажи все категории"; System.out.println("Введите одну из следующих категорий (Или \"выход\" для завершения)"); continue; } } } }