CP Mini Project
CP Mini Project
A MINI PROJECT
ON
60CS001- C PROGRAMMING
Submitted by:
SRIJA T - 73772222119
KAMAL RAJ S - 73772222107
SIGNATURE OF SIGNATURE OF
SUBJECT HANDLER HEAD OF THE
DEPARTMENT
DATE :
TABLE OF CONTENTS
2
1. ABSTRACT:
Task Management system is a project which aims to develop a
computerized system to efficiently manage tasks for individuals or
teams. This project has features such as creating tasks with specific
details such as title, description, deadline, priority, and assignee. It
also allows for editing, deleting, and marking tasks as completed. The
system can display all tasks, including their details and completion
status. This project is being developed to help individuals or teams
manage their tasks more effectively and reduce the human effort
required for tracking and managing tasks.
2. OBJECTIVE:
The objective of the Task Management system is to streamline the
process of task tracking and management, enabling individuals and
teams to prioritize, assign, and complete tasks efficiently. The system
will provide a user-friendly interface for users to manage their tasks,
track deadlines, and collaborate with team members. It will also
include features such as automated reminders, real-time updates,
and task performance analytics to increase productivity, reduce
errors, and minimize the need for manual oversight. The system aims
to simplify task management and enhance productivity for individuals
and teams.
3. INTRODUCTION:
Task Management is a critical aspect of project management, helping
individuals and teams to stay organized, focused, and productive.
Managing tasks effectively can be challenging, especially when
dealing with large projects or teams. The Task Management system
is a web-based platform that enables users to streamline their task
management process, track deadlines, and collaborate with team
members in real-time. The system provides a user-friendly interface
for managing tasks, assigning priorities, tracking progress, and
generating performance reports. The system's automated reminders,
3
analytics, and reporting capabilities help increase productivity, reduce
errors, and minimize the need for manual oversight. The Task
Management system simplifies the task management process,
empowering individuals and teams to achieve their goals efficiently.
4. PROBLEM STATEMENT:
The traditional approach to task management is time-consuming,
error-prone, and often leads to missed deadlines and decreased
productivity. Teams and individuals often use manual processes such
as spreadsheets, emails, or sticky notes to track their tasks, which
can result in confusion, miscommunication, and duplication of effort.
Moreover, manual tracking makes it difficult to prioritize tasks, assign
responsibilities, and monitor progress effectively. The lack of a
centralized platform for task management also makes it challenging
for teams to collaborate and share information efficiently. The Task
Management system aims to address these challenges by
providing a web-based platform that simplifies task management,
enhances productivity, and streamlines collaboration.
5. MODULE DESCRIPTION:
Task Manager is a software module that allows users to manage their
tasks efficiently. The module provides an interface that enables users
to create, edit, delete, display, and mark tasks as completed. It is a
simple, easy-to-use module that can help users keep track of their
daily, weekly, or monthly tasks.
4
● description: A brief description of the task.
● deadline: The deadline for completing the task.
● priority: The priority level of the task (1-5).
● completed: A flag indicating whether the task is completed or
not.
● assignee: The person or team responsible for completing the
task.
5
→ markAsCompleted(Task *tasks, int taskCount)
This function allows users to mark a task as completed. The user is
prompted to enter the ID of the task they want to mark as completed.
Once the task is found, the function updates the task's completion
status to "completed."
The main function of the Task Manager module displays a menu with
the following options: create task, edit task, delete task, display tasks,
mark task as completed, and exit. The user is prompted to select an
option, and the appropriate function is called based on the user's
selection. The program continues to display the menu until the user
chooses to exit.
Overall, the Task Manager module is a useful tool for anyone looking
to organize their tasks and improve their productivity. The module is
flexible and easy to use, making it a great choice for both personal
and professional use.
6. CODE:
#include <stdio.h>
#include <string.h>
6
void deleteTask(Task * tasks, int * taskCount); void
displayTasks(Task * tasks, int taskCount); void
markAsCompleted(Task * tasks, int taskCount);
int main() {
Task tasks[100]; int
taskCount = 0;int choice;
do {
printf("\nTask Manager\n"); printf("1.
Create Task\n"); printf("2. Edit
Task\n"); printf("3. Delete Task\n");
printf("4. Display Tasks\n");
printf("5. Mark Task as Completed\n");printf("6.
Exit\n");
printf("Enter your choice: ");scanf("%d",
& choice);
7
}
} while (choice != 6);
return 0;
}
Task newTask;
newTask.id = * taskCount + 1; printf("Enter
task title: "); scanf(" %[^\n]s", newTask.title);
printf("Enter task description: ");
scanf(" %[^\n]s", newTask.description); printf("Enter task
deadline (dd/mm/yyyy): ");scanf("%s", newTask.deadline);
printf("Enter task priority (1-5): ");scanf("%d", &
newTask.priority); newTask.completed = 0;
printf("Enter task assignee: "); scanf(" %[^\n]s",
newTask.assignee);
8
for (i = 0; i < taskCount; i++) {if (tasks[i].id
== id) {
printf("\nTask #%d\n", id); printf("1. Edit
Title\n"); printf("2. Edit Description\n"); printf("3.
Edit Deadline\n"); printf("4. Edit Priority\n");
printf("5. Edit Assignee\n"); printf("6. Go Back
to Main Menu\n");printf("Enter your choice: ");
scanf("%d", & choice);
9
break;
case 6:
printf("Going back to Main Menu...\n");return;
default:
printf("Invalid choice. Try again.\n");
}
10
}
printf("---------------------------------------------------
-------------------------------------------------------\n")
;
for (int i = 0; i < taskCount; i++) {
printf("%-4d%-20s%-37s%-11s%-10d%-10s%-20s\n",tasks[i].id,
tasks[i].title, tasks[i].description,
tasks[i].deadline, tasks[i].priority,
tasks[i].completed ? "Yes" : "No",
tasks[i].assignee);
}
}
11
7. OUTPUT:
12
8. CONCLUSION:
The code above is a program for a simple task manager that allows
users to create, edit, delete, display and mark tasks as completed.
The tasks are stored in an array of structs named "Task". The
program starts by presenting a menu of options for the user to
choose from. The user can create a new task, edit an existing task,
delete a task, display all tasks, mark a task as completed, or exit the
program.
If the user selects to create a new task, they are prompted to input
details such as the task title, description, deadline, priority, and
assignee. The task is then added to the array of tasks. If the user
selects to edit a task, they are prompted to input the ID of the task
they wish to edit. The program then presents a menu of options for
the user to choose from, such as editing the task's title, description,
deadline, priority, or assignee. Once the user makes their selection,
the corresponding attribute of the task is updated. If the user selectsto
delete a task, they are prompted to input the ID of the task they wish
to delete. The program then deletes the task from the array oftasks.
If the user selects to display all tasks, the program prints out a table
of all the tasks, including their ID, title, description, deadline, priority,
completion status, and assignee. If the user selects to mark a task as
completed, they are prompted to input the ID of the task they wish to
mark as completed. The program then updates the completion status
of the task. The program continues to present the menu of options
until the user chooses to exit the program.
13