Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
679 changes: 679 additions & 0 deletions .idea/caches/deviceStreaming.xml

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

22 changes: 22 additions & 0 deletions src/main/kotlin/Archive.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@

data class Archive (val name:String){

private val notesList = mutableListOf<Note>()

fun createNote() {
println("Укажите название заметки:")
val nameNote = CheckingDataEntry().inputStringName()
println("Укажите содержание заметки:")
val contentNote = CheckingDataEntry().inputStringName()
notesList.add(Note(nameNote, contentNote))
println("Заметка '$nameNote' добавлена.")
}

fun displayNotes() {
if (CheckingDataEntry().checkingCollection(notesList)) {
notesList.forEachIndexed {index, note -> println("${index + 1} - ${note.name}: ${note.content}") }
}
}

}

40 changes: 40 additions & 0 deletions src/main/kotlin/CheckingDataEntry.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import java.util.Scanner

class CheckingDataEntry {

val scanner : Scanner = Scanner(System.`in`)

fun readInput():String{
return scanner.nextLine().trim()
}

fun resultInputInt(result:String?) : Int{
var intInput = result?.toIntOrNull()
while (intInput == null){
print("Введенное значение не число. Повторите ввод:")
intInput = readLine()?.toIntOrNull()
}
return intInput
}

fun inputStringName() :String{
var stringInput = readlnOrNull()?: ""

while (stringInput.length == 0){
print("Текст не может быть пустым. Повторите ввод:")
stringInput = readlnOrNull()?: ""
}
return stringInput
}

fun <T> checkingCollection(list: MutableList<T>):Boolean{
if (list.isEmpty()) {
println("---Список данных пуст---")
return false}
return true
}

fun checking():Int{
return resultInputInt(readInput())
}
}
8 changes: 5 additions & 3 deletions src/main/kotlin/Main.kt
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
fun main(args: Array<String>) {
println("Hello World!")
}


fun main() {
Menu().viewMenu()
}
82 changes: 82 additions & 0 deletions src/main/kotlin/Menu.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
import kotlin.system.exitProcess

class Menu () {

private val listArchive = mutableListOf<Archive>()

private val textItemMenu:String = "Укажите пункт меню: "
private val textErrorItemMenu:String = "Данный пункт меню отсутствует. Попробуйте еще раз:"

fun viewMenu() {
while (true) {
println("*** ГЛАВНОЕ МЕНЮ ***")
println("1. Создать архив")
println("2. Просмотреть архивы")
println("0. Выход")

print(textItemMenu)

while (true){
when (CheckingDataEntry().checking()) {
0 -> exitProcess(0)
1 -> createArchive()
2 -> showArchive()
else -> print(textErrorItemMenu)
}
}
}
}

private fun createArchive() {
println("Укажите название архива:")
val nameArchive = CheckingDataEntry().inputStringName()

listArchive.add(Archive(nameArchive))
println("Создан архив '$nameArchive'.")
}

private fun showArchive() {
if (CheckingDataEntry().checkingCollection(listArchive)) {
listArchive.forEachIndexed{ index, archive ->
println("${index + 1}. ${archive.name}")
}
selectArchive()
}
}

private fun selectArchive() {
print("Выберите 'элемент' для просмотра (или 0 - для возврата):")
val res = CheckingDataEntry().checking()

when(res) {
0 -> viewMenu()
else ->
if (res >= 1) {
val numberArchive = res - 1
if (listArchive.elementAtOrNull(numberArchive) != null) {
val archive = listArchive[numberArchive]
menuArchive(archive)
}
else println("Указанный элемент отсутствует")
}
}
}

private fun menuArchive(archive: Archive) {
while (true) {
println("Архив '${archive.name}':")
println("1. Добавить заметку")
println("2. Просмотреть заметки")
println("0. Возврат")

print(textItemMenu)
when (CheckingDataEntry().checking()) {
0 -> showArchive()
1 -> archive.createNote()
2 -> archive.displayNotes()
else -> print(textErrorItemMenu)
}
}
}

}
2 changes: 2 additions & 0 deletions src/main/kotlin/Note.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

data class Note(val name:String, val content:String) {}