diff --git a/.idea/caches/deviceStreaming.xml b/.idea/caches/deviceStreaming.xml
new file mode 100644
index 00000000..9e9ba092
--- /dev/null
+++ b/.idea/caches/deviceStreaming.xml
@@ -0,0 +1,607 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 9c8e7400..3afe60ba 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,5 @@
-
-
+
\ No newline at end of file
diff --git a/Readme.md b/Readme.md
index 996ac25e..38498c51 100644
--- a/Readme.md
+++ b/Readme.md
@@ -1 +1 @@
-# Пустой репозиторий для работы с Kotlin кодом в Android Studio
+# Проектная работа №3 ЯП
diff --git a/src/main/kotlin/Archive.kt b/src/main/kotlin/Archive.kt
new file mode 100644
index 00000000..e8119093
--- /dev/null
+++ b/src/main/kotlin/Archive.kt
@@ -0,0 +1,39 @@
+class Archive(private val name: String) : Menu() {
+override val menuTitle: String = "Архив $name"
+override val menuItemName: String = "Заметка"
+
+ override fun toString(): String {
+ return name
+ }
+ override fun add() {
+ println("Введите название заметки.")
+ getText()
+ ?.let { title ->
+ addItem(Note(title))
+ println("Добавлена заметка \"$title\".")
+ }
+ ?: println("Нечитаемое название заметки.")
+ }
+
+ override fun remove() {
+ println("Введите индекс заметки.")
+ getIndex()
+ ?.let { index ->
+ removeItem(index)
+ println("Заметка удалена.")
+ }
+ ?: println("Неверный индекс заметки.")
+ }
+
+ override fun select() {
+ println("Введите индекс заметки.")
+ getIndex()
+ ?.let { index -> selectItem(index) }
+ ?: println("Неверный индекс заметки.")
+ }
+
+ override fun show() {
+ println("Заметки:")
+ showItem()
+ }
+}
\ No newline at end of file
diff --git a/src/main/kotlin/ArchiveList.kt b/src/main/kotlin/ArchiveList.kt
new file mode 100644
index 00000000..f792a546
--- /dev/null
+++ b/src/main/kotlin/ArchiveList.kt
@@ -0,0 +1,39 @@
+class ArchiveList : Menu() {
+ override val menuTitle: String = "Архивный список"
+ override val menuItemName: String = "Архив"
+
+ override fun toString(): String {
+ return "Архивный список"
+ }
+
+ override fun add() {
+ println("Введите название архива.")
+ getText()
+ ?.let { title ->
+ addItem(Archive(title))
+ println("Добавлен архив \"$title\".")
+ }
+ ?: println("Нечитаемое название архива.")
+ }
+
+ override fun remove() {
+ println("Введите индекс архива.")
+ getIndex()
+ ?.let { index ->
+ removeItem(index)
+ println("Архив удален.")
+ }
+ ?: println("Неверный индекс архива.")
+ }
+
+ override fun select() {
+ println("Введите индекс архива.")
+ getIndex()
+ ?.let { index -> selectItem(index) }
+ ?: println("Неверный индекс архива.")
+ }
+ override fun show() {
+ println("Архивы:")
+ showItem()
+ }
+}
\ No newline at end of file
diff --git a/src/main/kotlin/Main.kt b/src/main/kotlin/Main.kt
index aade54c5..264ee3f3 100644
--- a/src/main/kotlin/Main.kt
+++ b/src/main/kotlin/Main.kt
@@ -1,3 +1,7 @@
-fun main(args: Array) {
- println("Hello World!")
+import java.util.Scanner
+
+fun main() {
+ ArchiveList().start()
+ println("Спасибо что воспользовались приложением 'Заметки' :)")
+
}
\ No newline at end of file
diff --git a/src/main/kotlin/Menu.kt b/src/main/kotlin/Menu.kt
new file mode 100644
index 00000000..4c1d6670
--- /dev/null
+++ b/src/main/kotlin/Menu.kt
@@ -0,0 +1,87 @@
+import java.util.Scanner
+
+abstract class Menu {
+ private var list: MutableList