Compare commits

...

2 Commits

Author SHA1 Message Date
a28a6c9250 second labs 2024-10-02 19:34:37 +04:00
d56a0f5ee5 second lab 2024-10-02 19:32:43 +04:00
2 changed files with 129 additions and 1 deletions

View File

@ -17,7 +17,7 @@ class MyApp extends StatelessWidget {
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple), colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true, useMaterial3: true,
), ),
home: const MyHomePage(title: 'Козлова Анастасия Александровна'), home: const MyHomePage(title: 'настя'),
); );
} }
} }
@ -75,3 +75,5 @@ class _MyHomePageState extends State<MyHomePage> {
); );
} }
} }

126
lib/main1.dart Normal file
View File

@ -0,0 +1,126 @@
import 'dart:async';
import 'dart:io';
void main() {
runApp();
}
Future<void> runApp() async {
final TaskManager taskManager = TaskManager();
while (true) {
print('\nВыберите действие:');
print('1. Добавить задачу');
print('2. Показать все задачи');
print('3. Удалить задачу');
print('4. Выполнить задачу');
print('5. Выйти');
String? choice = stdin.readLineSync();
switch (choice) {
case '1':
print('Введите описание задачи:');
String? description = stdin.readLineSync();
if (description != null && description.isNotEmpty) {
await Future.delayed(Duration(seconds: 1));
taskManager.addTask(Task(
description: description,
timestamp: DateTime.now(),
));
}
break;
case '2':
taskManager.showTasks();
break;
case '3':
print('Введите номер задачи для удаления: ');
String? indexInput = stdin.readLineSync();
if (indexInput != null) {
int index = int.tryParse(indexInput) ?? -1;
taskManager.removeTask(index);
}
break;
case '4':
print('Введите номер задачи для выполнения:');
String? completeIndexInput = stdin.readLineSync();
if (completeIndexInput != null) {
int index = int.tryParse(completeIndexInput) ?? -1;
taskManager.completeTask(index);
}
break;
case '5':
print('Выход из программы.');
return;
default:
print('Неверный выбор, попробуйте снова.');
}
}
}
enum TaskStatus { pending, completed }
class Task {
String description;
DateTime timestamp;
TaskStatus status;
Task({
required this.description,
required this.timestamp,
this.status = TaskStatus.pending,
});
String getStatusString() {
switch (status) {
case TaskStatus.pending:
return 'В ожидании';
case TaskStatus.completed:
return 'Завершена';
}
}
}
class TaskManager {
final List<Task> _tasks = [];
void addTask(Task task) {
_tasks.add(task);
print('Задача добавлена: "${task.description}"');
}
void showTasks() {
if (_tasks.isEmpty) {
print('Список задач пуст.');
return;
}
_tasks.asMap().forEach((i, task) {
print('${i + 1}. ${task.description} (${task.getStatusString()}) (${task.timestamp.format()})');
});
}
void removeTask(int index) {
if (index < 1 || index > _tasks.length) {
print('Неверный номер задачи.');
return;
}
String removedTask = _tasks[index - 1].description;
_tasks.removeAt(index - 1);
print('Задача удалена: "$removedTask"');
}
void completeTask(int index) {
if (index < 1 || index > _tasks.length) {
print('Неверный номер задачи.');
return;
}
_tasks[index - 1].status = TaskStatus.completed;
print('Задача "${_tasks[index - 1].description}" выполнена.');
}
}
extension DateTimeFormatter on DateTime {
String format() {
return '${this.day}-${this.month}-${this.year} ${this.hour}:${this.minute}';
}
}