Code Monkey home page Code Monkey logo

hwfinal's Introduction

Итоговая контрольная работа

Информация о проекте

Необходимо организовать систему учета для питомника в котором живут домашние и вьючные животные.

Как сдавать проект

Для сдачи проекта необходимо создать отдельный общедоступный репозиторий(Github, gitlub, или Bitbucket). Разработку вести в этом репозитории, использовать пул реквесты на изменения. Программа должна запускаться и работать, ошибок при выполнении программы быть не должно. Программа, может использоваться в различных системах, поэтому необходимо разработать класс в виде конструктора

Задание

  1. Используя команду cat в терминале операционной системы Linux, создать два файла Домашние животные (заполнив файл собаками, кошками, хомяками) и Вьючные животными заполнив файл Лошадьми, верблюдами и ослы), а затем объединить их. Просмотреть содержимое созданного файла. Переименовать файл, дав ему новое имя (Друзья человека).

cat > 'pets'

указываем Собаки Кошки Хомяки

cat > 'animal'

указываем Лошади Верблюды Ослы

cat 'pets' 'packanimal' > animal

mv animal frendsOfHuman

  1. Создать директорию, переместить файл туда.

mkdir newFolder

mv frendsOfHuman newFolder

  1. Подключить дополнительный репозиторий MySQL. Установить любой пакет из этого репозитория.

sudo docker run -h systemHostName --name some-mysql -e MYSQL_ROOT_PASSWORD=my123 -d mysql

sudo apt-get install mysql-server

  1. Установить и удалить deb-пакет с помощью dpkg.

sudo apt-get install apache2 sudo apt-get remove apache2

  1. Выложить историю команд в терминале ubuntu

см выше

  1. Нарисовать диаграмму, в которой есть класс родительский класс, домашние животные и вьючные животные, в составы которых в случае домашних животных войдут классы: собаки, кошки, хомяки, а в класс вьючные животные войдут: Лошади, верблюды и ослы).

image

  1. В подключенном MySQL репозитории создать базу данных “Друзья человека

вхожу в контейнер sudo docker exec -it some-mysql bash mysql -u root -p ввожу пароль 12345

создаем БД CREATE DATABASE Human_friends;

  1. Создать таблицы с иерархией из диаграммы в БД

USE Human_friends; CREATE TABLE all_animal_class ( Id INT AUTO_INCREMENT PRIMARY KEY, Class_name VARCHAR(40) );

INSERT INTO all_animal_class (Class_name) VALUES ('вьючные'), ('домашние');

CREATE TABLE packed_animals ( Id INT AUTO_INCREMENT PRIMARY KEY, Genus_name VARCHAR (20), Class_id INT, FOREIGN KEY (Class_id) REFERENCES animal_classes (Id) ON DELETE CASCADE ON UPDATE CASCADE );

INSERT INTO packed_animals (Genus_name, Class_id) VALUES ('Лошади', 1), ('Ослы', 1),
('Верблюды', 1);

CREATE TABLE home_animals ( Id INT AUTO_INCREMENT PRIMARY KEY, Genus_name VARCHAR (20), Class_id INT, FOREIGN KEY (Class_id) REFERENCES animal_classes (Id) ON DELETE CASCADE ON UPDATE CASCADE );

INSERT INTO home_animals (Genus_name, Class_id) VALUES ('Кошки', 2), ('Собаки', 2),
('Хомяки', 2);

  1. Заполнить низкоуровневые таблицы именами(животных), командами которые они выполняют и датами рождения

CREATE TABLE cats (
Id INT AUTO_INCREMENT PRIMARY KEY, Name VARCHAR(20), Birthday DATE, Commands VARCHAR(50), Genus_id int, Foreign KEY (Genus_id) REFERENCES home_animals (Id) ON DELETE CASCADE ON UPDATE CASCADE );

INSERT INTO cats (Name, Birthday, Commands, Genus_id) VALUES ('Мурка', '2019-05-01', 'кис-кис', 1), ('Яшка', '2018-03-02', "мур-мур", 1),
('Рыжик', '2020-02-01', "вперед", 1);

CREATE TABLE dogs (
Id INT AUTO_INCREMENT PRIMARY KEY, Name VARCHAR(20), Birthday DATE, Commands VARCHAR(50), Genus_id int, Foreign KEY (Genus_id) REFERENCES home_animals (Id) ON DELETE CASCADE ON UPDATE CASCADE ); INSERT INTO dogs (Name, Birthday, Commands, Genus_id) VALUES ('Шарик', '2021-03-03', 'лежать', 2), ('Бобик', '2020-02-02', "лапу", 2),

CREATE TABLE hamsters (
Id INT AUTO_INCREMENT PRIMARY KEY, Name VARCHAR(20), Birthday DATE, Commands VARCHAR(50), Genus_id int, Foreign KEY (Genus_id) REFERENCES home_animals (Id) ON DELETE CASCADE ON UPDATE CASCADE ); INSERT INTO hamsters (Name, Birthday, Commands, Genus_id) VALUES ('Хомо', '2022-12-11', 'вверх', 3), ('Бурс', '2021-02-10', "вниз", 3),

CREATE TABLE horses (
Id INT AUTO_INCREMENT PRIMARY KEY, Name VARCHAR(20), Birthday DATE, Commands VARCHAR(50), Genus_id int, Foreign KEY (Genus_id) REFERENCES packed_animals (Id) ON DELETE CASCADE ON UPDATE CASCADE ); INSERT INTO horses (Name, Birthday, Commands, Genus_id) VALUES ('Первый', '2000-01-12', 'шагом', 1), ('Мощьный', '2012-03-12', "хоп", 1),

CREATE TABLE donkeys (
Id INT AUTO_INCREMENT PRIMARY KEY, Name VARCHAR(20), Birthday DATE, Commands VARCHAR(50), Genus_id int, Foreign KEY (Genus_id) REFERENCES packed_animals (Id) ON DELETE CASCADE ON UPDATE CASCADE ); INSERT INTO donkeys (Name, Birthday, Commands, Genus_id) VALUES ('ИА', '2012-03-10', "ииии", 2), ('ИАИА', '2010-03-12', "коко", 2),

CREATE TABLE camels (
Id INT AUTO_INCREMENT PRIMARY KEY, Name VARCHAR(20), Birthday DATE, Commands VARCHAR(50), Genus_id int, Foreign KEY (Genus_id) REFERENCES packed_animals (Id) ON DELETE CASCADE ON UPDATE CASCADE ); INSERT INTO camels (Name, Birthday, Commands, Genus_id) VALUES ('Грифон', '2012-05-11', 'за мной', 3), ('Карл', '2015-04-02', "стой", 3),
('Мудрый', '2012-07-10', "вперед", 3),

  1. Удалив из таблицы верблюдов, т.к. верблюдов решили перевезти в другой питомник на зимовку. Объединить таблицы лошади, и ослы в одну таблицу.

DELETE FROM camels;

SELECT Name, Birthday, Commands FROM horses UNION SELECT Name, Birthday, Commands FROM donkeys;

11.Создать новую таблицу “молодые животные” в которую попадут все животные старше 1 года, но младше 3 лет и в отдельном столбце с точностью до месяца подсчитать возраст животных в новой таблице

CREATE TEMPORARY TABLE animals AS SELECT *, 'Лошади' as genus FROM horses UNION SELECT *, 'Ослы' AS genus FROM donkeys UNION SELECT *, 'Собаки' AS genus FROM dogs UNION SELECT *, 'Кошки' AS genus FROM cats UNION SELECT *, 'Хомяки' AS genus FROM hamsters;

CREATE TABLE yang_animal AS SELECT Name, Birthday, Commands, genus, TIMESTAMPDIFF(MONTH, Birthday, CURDATE()) AS Age_in_month FROM animals WHERE Birthday BETWEEN ADDDATE(curdate(), INTERVAL -3 YEAR) AND ADDDATE(CURDATE(), INTERVAL -1 YEAR);

SELECT * FROM yang_animal;

  1. Объединить все таблицы в одну, при этом сохраняя поля, указывающие на прошлую принадлежность к старым таблицам.

SELECT h.Name, h.Birthday, h.Commands, pa.Genus_name, ya.Age_in_month FROM horses h LEFT JOIN yang_animal ya ON ya.Name = h.Name LEFT JOIN packed_animals pa ON pa.Id = h.Genus_id UNION SELECT d.Name, d.Birthday, d.Commands, pa.Genus_name, ya.Age_in_month FROM donkeys d LEFT JOIN yang_animal ya ON ya.Name = d.Name LEFT JOIN packed_animals pa ON pa.Id = d.Genus_id UNION SELECT c.Name, c.Birthday, c.Commands, ha.Genus_name, ya.Age_in_month FROM cats c LEFT JOIN yang_animal ya ON ya.Name = c.Name LEFT JOIN home_animals ha ON ha.Id = c.Genus_id UNION SELECT d.Name, d.Birthday, d.Commands, ha.Genus_name, ya.Age_in_month FROM dogs d LEFT JOIN yang_animal ya ON ya.Name = d.Name LEFT JOIN home_animals ha ON ha.Id = d.Genus_id UNION SELECT hm.Name, hm.Birthday, hm.Commands, ha.Genus_name, ya.Age_in_month FROM hamsters hm LEFT JOIN yang_animal ya ON ya.Name = hm.Name LEFT JOIN home_animals ha ON ha.Id = hm.Genus_id;

13.Создать класс с Инкапсуляцией методов и наследованием по диаграмме.

13 - 15 - https://github.com/Ivan123451/hwFinalPart2

  1. Написать программу, имитирующую работу реестра домашних животных. В программе должен быть реализован следующий функционал:

13 - 15 - https://github.com/Ivan123451/hwFinalPart2

14.1 Завести новое животное

14.2 определять животное в правильный класс

14.3 увидеть список команд, которое выполняет животное

14.4 обучить животное новым командам

14.5 Реализовать навигацию по меню

15.Создайте класс Счетчик, у которого есть метод add(), увеличивающий̆ значение внутренней̆int переменной̆на 1 при нажатие “Завести новое животное” Сделайте так, чтобы с объектом такого типа можно было работать в блоке try-with-resources. Нужно бросить исключение, если работа с объектом типа счетчик была не в ресурсном try и/или ресурс остался открыт. Значение считать в ресурсе try, если при заведения животного заполнены все поля.

13 - 15 - https://github.com/Ivan123451/hwFinalPart2

hwfinal's People

Contributors

ivan123451 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.