Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 80 additions & 0 deletions Task Manager Application(homework)
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
tasks = []
next_sequence_number = 1

def add_task():
global next_sequence_number
task_name = input("Enter task name: ")

# Find the next available sequence number
sequence_number = next_sequence_number
next_sequence_number +=1

task = {
"sequence_number": sequence_number,
"task_name": task_name,
"status": "Pending"
}
tasks.append(task)
print(f"Task '{task_name}' added with sequence number {sequence_number}.")

def complete_task():
sequence_number = int(input("Enter sequence number of task to complete: "))
for task in tasks:
if task["sequence_number"] == sequence_number:
task["status"] = "Completed"
print(f"Task '{task['task_name']}' marked as completed.")
return
print(f"Task with sequence number {sequence_number} not found.")

def delete_task():
sequence_number = int(input("Enter sequence number of task to delete: "))
for task in tasks:
if task["sequence_number"] == sequence_number:
task["status"] = "Deleted"
print(f"Task '{task['task_name']}' deleted.")
return
print(f"Task with sequence number {sequence_number} not found.")

def list_completed_tasks():
completed_tasks = [task for task in tasks if task["status"] == "Completed"]
if completed_tasks:
print("Completed Tasks:")
for task in sorted(completed_tasks, key=lambda x: x["sequence_number"]):
print(f"- {task['sequence_number']}: {task['task_name']}")
else:
print("No completed tasks found.")

def list_all_tasks():
if tasks:
print("All Tasks:")
for task in sorted(tasks, key=lambda x: x["sequence_number"]):
print(f"- {task['sequence_number']}: {task['task_name']} ({task['status']})")
else:
print("No tasks found.")

while True:
print("\nTask Manager")
print("1. Add Task")
print("2. Complete Task")
print("3. Delete Task")
print("4. List Completed Tasks")
print("5. List All Tasks")
print("6. Exit")

choice = input("Enter your choice: ")

if choice == '1':
add_task()
elif choice == '2':
complete_task()
elif choice == '3':
delete_task()
elif choice == '4':
list_completed_tasks()
elif choice == '5':
list_all_tasks()
elif choice == '6':
print("Exiting...")
break
else:
print("Invalid choice. Please try again.")
Binary file added __pycache__/base_class.cpython-312.pyc
Binary file not shown.
106 changes: 106 additions & 0 deletions base_class.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
import json,sys
class base_class:

def __init__(self):
self.__status = ['completed','Pending']

def menu_list(self):
create_menu_list = [
{
"text":"Add a new task Press 1",
"type":"int"
},
{
"text":"Complete a task Press 2",
"type":"int"
},
{
"text":"Delete a task Press 3",
"type":"int"
},
{
"text":"List completed tasks Press 4",
"type":"int"
},
{
"text":"List all tasks with their status Press 5",
"type":"int"
}]
return create_menu_list

def add_new_task(self):
try:
task = input("Please Enter Task")
status = input("Please Enter status")
data = self.__read_json_data()
id = self.__create_sequence_id()
data.append({"id":id,"task":task,"status":status})
self.__write_data_in_file(data)
return "New customer added"
except Exception as e:
print(e)

def complete_task(self):
try:
id = int(input("Please Enter the task id which you want to update "))
rows = self.__read_json_data()
for i in rows:
i["status"] = "completed"
self.__write_data_in_file(rows)
return "Successfully updated"
except Exception as e:
print(e)

def delete_task(self):
try:
id = int(input("Please Enter the task id which you want to delete "))
data = self.__read_json_data()
filtered_data = [item for item in data if item["id"] != id]
self.__write_data_in_file(filtered_data)
return "Successfully deleted"
except:
print("There is some Error")
def view_list_task(self):
try:
data = self.__read_json_data()
text = ''
for i in data:
text += "SR.NO: "+str(i['id'])+" Task: "+i['task']+" Status: "+i["status"]+"\n"
return text
except Exception as e:
print("There is some error to read data")

def __find_missing_numbers(self,seq):
if not seq:
return 1
full_range = set(range(min(seq), max(seq) + 1))
missing = sorted(full_range - set(seq))
if not missing:
return max(seq) + 1
else:
return missing[0]

def __create_sequence_id(self):
data = self.__read_json_data()
list_id = []
for ids in data:
list_id.append(ids["id"])
return self.__find_missing_numbers(list_id)

def __read_json_data(self):
try:
f = open('data.json')
data = json.load(f)
f.close()
return data
except Exception as e:
print("There is some error to reada data")

def __write_data_in_file(self,data):
try:
data = sorted(data, key=lambda x: x["id"])
with open("data.json",'w') as file:
file.seek(0)
return json.dump(data, file, indent = 4)
except:
return "There is some error to data write in file"
12 changes: 12 additions & 0 deletions data.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[
{
"id": 1,
"task": "dad",
"status": "completed"
},
{
"id": 2,
"task": "Athis is test",
"status": "completed"
}
]
48 changes: 48 additions & 0 deletions week 3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
list_tasks = {}
available_nums = []
task_counter = 1

def get_task_num():
global task_counter
return available_nums.pop(0) if available_nums else task_counter

while True:
action = input("\n[A]dd [D]elete [Q]uit: ").strip().lower()

if action == 'a':
name = input("Task name: ")
status = input("Status [C]ompleted / [P]ending: ").strip().lower()

if status not in ['c', 'p']:
print(" Enter C or P only.")
continue

stat = ("Completed", "Not pending") if status == 'c' else ("Not completed", "Pending")
num = get_task_num()
list_tasks[num] = {"Task Name": name, "Statuse is ": stat}
if not available_nums: task_counter += 1
print(f" Task {num} added.")

elif action == 'd':
try:
num = int(input("Task number to delete: "))
if num in list_tasks:
del list_tasks[num]
available_nums.append(num)
available_nums.sort()
print(f" Task {num} deleted.")
else:
print(" Task not found.")
except:
print(" Invalid number.")

elif action == 'q':
print(" Goodbye!")
break

else:
print(" Invalid choice.")

print("\n Task list:")
for n in sorted(list_tasks):
print(f"Task {n}: {list_tasks[n]}")
21 changes: 21 additions & 0 deletions zahid-team-leader-question1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
from base_class import base_class
base_function = base_class()

try:
menu_list = base_function.menu_list()
for menu in menu_list:
print(f"{menu["text"]}\n")
except Exception as e:
print(e)
try:
menu_choice = int(input("Please Select from above menu "))
if(menu_choice == 1):
print(base_function.add_new_task())
elif(menu_choice == 2):
print(base_function.complete_task())
elif(menu_choice == 3):
print(base_function.delete_task())
elif(menu_choice == 4):
print(base_function.view_list_task())
except Exception as e:
print("You selected Wrong option")