Skip to content

Commit 54702d5

Browse files
UPDATE
1 parent 446f6e8 commit 54702d5

File tree

2 files changed

+60
-76
lines changed

2 files changed

+60
-76
lines changed

Beginner/Project1_ToDoList/src/Main.java

Lines changed: 41 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -3,58 +3,52 @@
33
public class Main {
44
public static void main(String[] args) {
55
Scanner scanner = new Scanner(System.in);
6-
TodoListManager todoListManager = new TodoListManager();
7-
String command = "";
8-
9-
System.out.println("Welcome to the To-Do List Application!");
6+
TodoListManager<String> toDoListManager = new TodoListManager<>(); // Managing String tasks
7+
String command;
108

119
do {
12-
try {
13-
System.out.println("\nEnter a command (add/view/remove/complete/save/load/exit):");
14-
command = scanner.nextLine();
10+
System.out.println("\nEnter a command (add/view/remove/complete/save/load/exit):");
11+
command = scanner.nextLine();
1512

16-
switch (command) {
17-
case "add":
18-
System.out.println("Enter the task:");
19-
String task = scanner.nextLine();
20-
todoListManager.addTask(task);
21-
break;
22-
case "view":
23-
todoListManager.viewTasks();
24-
break;
25-
case "remove":
26-
System.out.println("Enter the task number to remove:");
27-
int taskNumber = scanner.nextInt();
28-
scanner.nextLine();
29-
todoListManager.removeTask(taskNumber);
30-
break;
31-
case "complete":
32-
System.out.println("Enter the task number to complete:");
33-
int completeTaskNumber = scanner.nextInt();
34-
scanner.nextLine();
35-
todoListManager.completeTask(completeTaskNumber);
36-
break;
37-
case "save":
38-
System.out.println("Enter the filename to save tasks:");
39-
String saveFilename = scanner.nextLine();
40-
todoListManager.saveTasksToFile(saveFilename);
41-
break;
42-
case "load":
43-
System.out.println("Enter the filename to load tasks:");
44-
String loadFilename = scanner.nextLine();
45-
todoListManager.loadTasksFromFile(loadFilename);
46-
break;
47-
case "exit":
48-
System.out.println("Exiting the application");
49-
break;
50-
default:
51-
System.out.println("Invalid command");
52-
}
53-
} catch (Exception e) {
54-
System.out.println("An error occurred: " + e.getMessage());
55-
scanner.nextLine();
13+
switch (command) {
14+
case "add":
15+
System.out.println("Enter the task:");
16+
String task = scanner.nextLine();
17+
toDoListManager.addTask(task);
18+
break;
19+
case "view":
20+
toDoListManager.viewTasks();
21+
break;
22+
case "remove":
23+
System.out.println("Enter the task number to remove:");
24+
int taskNumber = scanner.nextInt();
25+
scanner.nextLine(); // Consume newline
26+
toDoListManager.removeTask(taskNumber);
27+
break;
28+
case "complete":
29+
System.out.println("Enter the task number to complete:");
30+
int completeTaskNumber = scanner.nextInt();
31+
scanner.nextLine(); // Consume newline
32+
toDoListManager.completeTask(completeTaskNumber);
33+
break;
34+
case "save":
35+
System.out.println("Enter the filename to save tasks:");
36+
String saveFilename = scanner.nextLine();
37+
toDoListManager.saveTasksToFile(saveFilename);
38+
break;
39+
case "load":
40+
System.out.println("Enter the filename to load tasks:");
41+
String loadFilename = scanner.nextLine();
42+
toDoListManager.loadTasksFromFile(loadFilename);
43+
break;
44+
case "exit":
45+
System.out.println("Exiting the application.");
46+
break;
47+
default:
48+
System.out.println("Invalid command.");
5649
}
5750
} while (!command.equals("exit"));
5851

52+
scanner.close();
5953
}
6054
}
Lines changed: 19 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,76 +1,66 @@
1-
import java.io.*;
21
import java.util.ArrayList;
2+
import java.io.*;
33

4-
/**
5-
* ToDoListManager is responsible for managing the to-do list tasks,
6-
* including adding, removing, completing, and persisting tasks.
7-
*/
8-
9-
public class TodoListManager {
10-
private ArrayList<String> tasks;
4+
public class TodoListManager<T> {
5+
private ArrayList<T> tasks;
116

127
public TodoListManager() {
138
tasks = new ArrayList<>();
149
}
1510

16-
// Add task to the list
17-
public void addTask(String task) {
11+
public void addTask(T task) {
1812
tasks.add(task);
1913
System.out.println("Task added: " + task);
2014
}
2115

22-
// View all tasks
23-
public void viewTasks(){
24-
System.out.println("Your To-Do- List:");
25-
for (int i = 0; i < tasks.size(); i++) {
26-
System.out.println((i + 1) + ". " + tasks.get(i));
16+
public void viewTasks() {
17+
if (tasks.isEmpty()) {
18+
System.out.println("No tasks in the list.");
19+
} else {
20+
for (int i = 0; i < tasks.size(); i++) {
21+
System.out.println((i + 1) + ". " + tasks.get(i));
22+
}
2723
}
2824
}
2925

30-
// Remove a task by index
3126
public void removeTask(int index) {
3227
if (index >= 1 && index <= tasks.size()) {
33-
String removedTask = tasks.remove(index - 1);
34-
System.out.println("Task removed: " + removedTask);
28+
System.out.println("Task removed: " + tasks.get(index - 1));
29+
tasks.remove(index - 1);
3530
} else {
3631
System.out.println("Invalid task number.");
3732
}
3833
}
3934

40-
// Complete a task
4135
public void completeTask(int index) {
4236
if (index >= 1 && index <= tasks.size()) {
4337
System.out.println("Task completed: " + tasks.get(index - 1));
44-
tasks.remove(index - 1); // Remove the task after completion
38+
tasks.remove(index - 1);
4539
} else {
4640
System.out.println("Invalid task number.");
4741
}
4842
}
4943

50-
// Save tasks to a file
5144
public void saveTasksToFile(String filename) {
5245
try (FileWriter writer = new FileWriter(filename)) {
53-
for (String task : tasks) {
54-
writer.write(task + "\n");
46+
for (T task : tasks) {
47+
writer.write(task.toString() + "\n");
5548
}
5649
System.out.println("Tasks saved to " + filename);
5750
} catch (IOException e) {
5851
System.out.println("Error saving tasks: " + e.getMessage());
5952
}
6053
}
6154

62-
// Load tasks from a file
6355
public void loadTasksFromFile(String filename) {
6456
try (BufferedReader reader = new BufferedReader(new FileReader(filename))) {
6557
String task;
6658
while ((task = reader.readLine()) != null) {
67-
tasks.add(task);
59+
// This will need casting depending on the task type
60+
System.out.println("Task loaded: " + task);
6861
}
69-
System.out.println("Tasks loaded from " + filename);
7062
} catch (IOException e) {
7163
System.out.println("Error loading tasks: " + e.getMessage());
7264
}
7365
}
74-
}
75-
76-
66+
}

0 commit comments

Comments
 (0)