Compare commits
2 Commits
Author | SHA1 | Date | |
---|---|---|---|
a28a6c9250 | |||
d56a0f5ee5 |
@ -17,7 +17,7 @@ class MyApp extends StatelessWidget {
|
||||
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
|
||||
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
126
lib/main1.dart
Normal 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}';
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user