Compare commits
2 Commits
Author | SHA1 | Date | |
---|---|---|---|
a28a6c9250 | |||
d56a0f5ee5 |
@ -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
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