Untitled
unknown
plain_text
a year ago
5.7 kB
19
Indexable
import java.util.PriorityQueue;
import java.util.Scanner;
class Task implements Comparable<Task> {
String name;
int priority;
String status;
// Constructor
public Task(String name, int priority) {
this.name = name;
this.priority = priority;
this.status = "Pending";
}
// Compare tasks based on priority (lower number means higher priority)
@Override
public int compareTo(Task other) {
return Integer.compare(this.priority, other.priority);
}
@Override
public String toString() {
return "Task: " + name + ", Priority: " + priority + ", Status: " + status;
}
}
public class TaskManager {
private static PriorityQueue<Task> taskQueue = new PriorityQueue<>();
private static int totalTasks = 0; // Total tasks added to the queue
private static int completedTasks = 0; // Count of completed tasks
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int option;
// Menu for user interaction
do {
System.out.println("\n=== Priority-Based Task Tracker ===");
System.out.println("1. Add a new task");
System.out.println("2. View all tasks");
System.out.println("3. Update task priority");
System.out.println("4. Mark task as completed");
System.out.println("5. View scoring and progress");
System.out.println("6. Exit");
System.out.print("Enter your choice: ");
option = scanner.nextInt();
scanner.nextLine(); // Consume newline
switch (option) {
case 1:
addTask(scanner);
break;
case 2:
viewTasks();
break;
case 3:
updateTaskPriority(scanner);
break;
case 4:
markTaskAsCompleted(scanner);
break;
case 5:
viewProgress();
break;
case 6:
System.out.println("Exiting...");
break;
default:
System.out.println("Invalid choice. Please try again.");
}
} while (option != 6);
scanner.close();
}
// Add a new task
private static void addTask(Scanner scanner) {
System.out.print("Enter task name: ");
String name = scanner.nextLine();
System.out.print("Enter task priority (lower number means higher priority): ");
int priority = scanner.nextInt();
taskQueue.offer(new Task(name, priority));
totalTasks++; // Increment total tasks
System.out.println("Task added successfully.");
}
// View all tasks in order of priority
private static void viewTasks() {
if (taskQueue.isEmpty()) {
System.out.println("No tasks available.");
} else {
System.out.println("\nCurrent Task List:");
PriorityQueue<Task> tempQueue = new PriorityQueue<>(taskQueue); // Copy the queue for displaying
while (!tempQueue.isEmpty()) {
System.out.println(tempQueue.poll());
}
}
}
// Update task priority
private static void updateTaskPriority(Scanner scanner) {
System.out.print("Enter the name of the task to update: ");
String taskName = scanner.nextLine();
System.out.print("Enter new priority: ");
int newPriority = scanner.nextInt();
boolean found = false;
PriorityQueue<Task> tempQueue = new PriorityQueue<>();
// Update priority
while (!taskQueue.isEmpty()) {
Task task = taskQueue.poll();
if (task.name.equalsIgnoreCase(taskName)) {
task.priority = newPriority;
found = true;
}
tempQueue.offer(task);
}
taskQueue = tempQueue; // Update the original queue
if (found) {
System.out.println("Task priority updated successfully.");
} else {
System.out.println("Task not found.");
}
}
// Mark a task as completed
private static void markTaskAsCompleted(Scanner scanner) {
System.out.print("Enter the name of the task to mark as completed: ");
String taskName = scanner.nextLine();
boolean found = false;
PriorityQueue<Task> tempQueue = new PriorityQueue<>();
// Mark task as completed
while (!taskQueue.isEmpty()) {
Task task = taskQueue.poll();
if (task.name.equalsIgnoreCase(taskName)) {
if (!task.status.equals("Completed")) {
task.status = "Completed";
completedTasks++; // Increment completed tasks
}
found = true;
}
tempQueue.offer(task);
}
taskQueue = tempQueue; // Update the original queue
if (found) {
System.out.println("Task marked as completed.");
} else {
System.out.println("Task not found.");
}
}
// View scoring and progress
private static void viewProgress() {
if (totalTasks == 0) {
System.out.println("No tasks have been added yet.");
} else {
double progress = (double) completedTasks / totalTasks * 100;
System.out.println("Total tasks: " + totalTasks);
System.out.println("Completed tasks: " + completedTasks);
System.out.printf("Progress: %.2f%% completed\n", progress);
}
}
}
Editor is loading...
Leave a Comment