diff --git a/.idea/caches/deviceStreaming.xml b/.idea/caches/deviceStreaming.xml
new file mode 100644
index 00000000..22baa420
--- /dev/null
+++ b/.idea/caches/deviceStreaming.xml
@@ -0,0 +1,619 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 9c8e7400..1945ce5f 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/src/main/kotlin/Archive.kt b/src/main/kotlin/Archive.kt
new file mode 100644
index 00000000..7ae3d5c5
--- /dev/null
+++ b/src/main/kotlin/Archive.kt
@@ -0,0 +1,3 @@
+class Archive(title: String) : Lst(title){
+ val notes: MutableList = mutableListOf()
+}
\ No newline at end of file
diff --git a/src/main/kotlin/ArchiveScreen.kt b/src/main/kotlin/ArchiveScreen.kt
new file mode 100644
index 00000000..ee269f35
--- /dev/null
+++ b/src/main/kotlin/ArchiveScreen.kt
@@ -0,0 +1,23 @@
+import java.util.Scanner
+
+class ArchiveScreen(val archives: MutableList, var createArchiveScreen: CreateArchiveScreen? = null, var notesScreen: NotesScreen? =null): ScreenPrototype() {
+ override fun display() {
+ val size = archives.size
+ println("Список архивов:\n")
+ putMenu(archives)
+ val choise = Scanner(System.`in`).nextLine()
+ when(choise?.toIntOrNull()){
+ 1->createArchiveScreen?.display()
+ in 2..archives.size+1-> {
+ notesScreen!!.archive = archives[choise!!.toIntOrNull()!!-2]
+ notesScreen?.display()
+ }
+ archives.size+2-> return
+ else -> {
+ println("Некорректный ввод")
+ this.display()
+ }
+ }
+ }
+
+}
diff --git a/src/main/kotlin/CreateArchiveScreen.kt b/src/main/kotlin/CreateArchiveScreen.kt
new file mode 100644
index 00000000..7f10d73e
--- /dev/null
+++ b/src/main/kotlin/CreateArchiveScreen.kt
@@ -0,0 +1,15 @@
+class CreateArchiveScreen(val archives: MutableList, val archiveScreen: ArchiveScreen): ScreenPrototype() {
+ override fun display() {
+ println("\nВведите название архива:")
+ putExit()
+ val title = getText()
+ when (title.toIntOrNull()) {
+ 1 -> archiveScreen.display()
+ else -> {
+ if (archives.add(Archive(title))) println("Архив $title успешно добавлен")
+ else println("Что то пошло не так")
+ archiveScreen.display()
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/main/kotlin/CreateNoteScreen.kt b/src/main/kotlin/CreateNoteScreen.kt
new file mode 100644
index 00000000..fd28d081
--- /dev/null
+++ b/src/main/kotlin/CreateNoteScreen.kt
@@ -0,0 +1,23 @@
+import java.util.Scanner
+
+class CreateNoteScreen(val notesScreen: NotesScreen): ScreenPrototype(){
+ var notes: MutableList? = null
+ set(value){
+ field = value
+ }
+ override fun display() {
+ println("\nВведите имя заметки")
+ putExit()
+ var title = getText()
+ when(title.toIntOrNull()){
+ 1->notesScreen.display()
+ else -> {
+ println("Введите текст для заметки")
+ var text = getText()
+ if(notes!!.add(Note(title,text))) println("Заметка $title успешно добавлен")
+ else println("Что то пошло не так")
+ notesScreen.display()
+ }
+ }
+ }
+}
diff --git a/src/main/kotlin/Lst.kt b/src/main/kotlin/Lst.kt
new file mode 100644
index 00000000..d51d3427
--- /dev/null
+++ b/src/main/kotlin/Lst.kt
@@ -0,0 +1,2 @@
+open class Lst(val title: String) {
+}
\ No newline at end of file
diff --git a/src/main/kotlin/Main.kt b/src/main/kotlin/Main.kt
index aade54c5..ccafc74a 100644
--- a/src/main/kotlin/Main.kt
+++ b/src/main/kotlin/Main.kt
@@ -1,3 +1,6 @@
+import com.sun.source.tree.WhileLoopTree
+
fun main(args: Array) {
- println("Hello World!")
+ val screen: Screen = Screen()
+ screen.archiveScreen.display()
}
\ No newline at end of file
diff --git a/src/main/kotlin/Note.kt b/src/main/kotlin/Note.kt
new file mode 100644
index 00000000..6c649a32
--- /dev/null
+++ b/src/main/kotlin/Note.kt
@@ -0,0 +1,2 @@
+class Note (title: String, val text: String): Lst(title){
+}
\ No newline at end of file
diff --git a/src/main/kotlin/NotesScreen.kt b/src/main/kotlin/NotesScreen.kt
new file mode 100644
index 00000000..8f0b5b17
--- /dev/null
+++ b/src/main/kotlin/NotesScreen.kt
@@ -0,0 +1,20 @@
+class NotesScreen(private val archiveScreen: ArchiveScreen,var createNoteScreen: CreateNoteScreen? =null,var note: ScreenOfNote? =null): ScreenPrototype(){
+ var archive: Archive? = null
+ override fun display() {
+ val notes = archive!!.notes
+ createNoteScreen!!.notes = notes
+ val size = notes.size
+ println("\nЗаметки архива ${archive!!.title}:\n")
+ putMenu(notes)
+ val choise = readLine()
+ when(choise?.toIntOrNull()){
+ 1->createNoteScreen?.display()
+ in 2..size+1-> note?.display(notes[choise?.toIntOrNull()!!-2])
+ size+2-> archiveScreen.display()
+ else -> {
+ println("Некорректный ввод")
+ this.display()
+ }
+ }
+ }
+}
diff --git a/src/main/kotlin/Screen.kt b/src/main/kotlin/Screen.kt
new file mode 100644
index 00000000..5a8cc898
--- /dev/null
+++ b/src/main/kotlin/Screen.kt
@@ -0,0 +1,17 @@
+class Screen {
+ private val notes: MutableList = mutableListOf()
+ private val archives: MutableList = mutableListOf()
+ val archiveScreen: ArchiveScreen = ArchiveScreen(archives)
+ val createArchiveScreen: CreateArchiveScreen = CreateArchiveScreen(archives,archiveScreen)
+ val notesScreen: NotesScreen = NotesScreen(archiveScreen)
+ val createNoteScreen: CreateNoteScreen = CreateNoteScreen(notesScreen)
+ val note: ScreenOfNote = ScreenOfNote(notesScreen)
+ init {
+ archiveScreen.createArchiveScreen = createArchiveScreen
+ archiveScreen.notesScreen = notesScreen
+ notesScreen.createNoteScreen = createNoteScreen
+ notesScreen.note = note
+ }
+ //val archivePair: PairScreens = PairScreens(archiveScreen,createArchiveScreen)
+ //val notePair: PairScreens = PairScreens(notesScreen,createNoteScreen)
+}
\ No newline at end of file
diff --git a/src/main/kotlin/ScreenOfNote.kt b/src/main/kotlin/ScreenOfNote.kt
new file mode 100644
index 00000000..cdc96a16
--- /dev/null
+++ b/src/main/kotlin/ScreenOfNote.kt
@@ -0,0 +1,11 @@
+class ScreenOfNote(private val notesScreen: NotesScreen) : ScreenPrototype(){
+ fun display(note: Note) {
+ println("\n${note.title}\n${note.text}")
+ println("\n1. Выход")
+ when(readLine()?.toIntOrNull()){
+ 1->notesScreen.display()
+ else -> println("Некорректный ввод")
+ }
+ }
+
+}
diff --git a/src/main/kotlin/ScreenPrototype.kt b/src/main/kotlin/ScreenPrototype.kt
new file mode 100644
index 00000000..984b7050
--- /dev/null
+++ b/src/main/kotlin/ScreenPrototype.kt
@@ -0,0 +1,3 @@
+abstract class ScreenPrototype {
+ open fun display(){}
+}
diff --git a/src/main/kotlin/fun.kt b/src/main/kotlin/fun.kt
new file mode 100644
index 00000000..d81c73ef
--- /dev/null
+++ b/src/main/kotlin/fun.kt
@@ -0,0 +1,25 @@
+import java.util.Scanner
+
+fun putList(archives: MutableList){
+ val size = archives.size
+ for (i in 2 until size+2){
+ println("$i. ${archives[i-2].title}")
+ }
+}
+fun getText(): String{
+ var title = Scanner(System.`in`).nextLine()
+ while (title.isBlank()) {
+ println("Данное поле не может быть пустым")
+ title = Scanner(System.`in`).nextLine()
+ }
+ return title
+}
+
+fun putMenu(list: MutableList){
+ println("1. Создать")
+ putList(list)
+ println("${list.size+2}. Выход")
+}
+fun putExit(){
+ println("Выход")
+}
\ No newline at end of file