Question: The Problem ABC Company hired you to write a software to help them managing their projects.They want to keep track of the planned values and
The Problem
ABC Company hired you to write a software to help them managing their projects.They want to keep track of the planned values and the actual values which at the end of the project will be the final values
Their projects usually have up to five main milestones. For each milestone, they need to store:
Id must be unique
Name
Planned cost $
Actual cost $
Planned duration hours
Actual duration hours
Number of employees assigned to the milestone. Note that this value will not change throughout
the project execution
If the milestone is already completed or not
For the project, you need to store:
Name
Planned cost $
Actual cost $
Planned duration days
Actual duration days
If the project is already completed or not
Detailed explanation of the flow chart
Welcome message.
o There should be a welcome message when you start the application.
Enter the projects name and number of milestones.
o Prompt the user to enter the two values mentioned above.
o You can assume that the project name contains no spaces.
o Note: The number of milestones must be a positive value between one and five. If the user enters an invalid value, ask them to enter another value.
Initialize all milestones.
o Id: Prompt the user to enter the value. You can assume that the user will enter unique values. The id must be positive.
o Name: Prompt the user to enter the value.
o Planned cost $: Calculated as follows:
times times
In the company, each employee works hoursday and their salary is $hour
o Actual cost $: Initialized to zero.
o Planned duration days: Prompt the user to enter the value. If the user enters an invalid value,
inform the user and ask for a new value.
o Actual duration days: Initialized to zero.
o Number of employees assigned to the milestone: Prompt the user to enter the value. If the
user enters an invalid value, inform the user and ask for a new value.
o If the milestone is already completed or not: Initialized as not completed.
Initialize the project.
o Name: Use the value entered by the user in point
o Planned cost $: Sum of the planned cost from all milestones.
o Actual cost $: Initialized to zero.
o Planned duration days: Sum of the planned duration from all milestones.
o Actual duration days: Initialized to zero.
o If the project is already completed or not: Initialized as not completed.
Print the main menu.
Please select one of the following options:
Update milestone
Print stats
Exit
Get user choice.
Ask the user for a choice and check if the user input is between and
o If not between and output an error message and ask the user to enter a new choice.
o If the input is end the program.
o If the input is print the project stats and return to the main menu.
You should display:
Project name
If the project is completed or not
If the project is completed:
How much the project was over budget or underbudget.
How early or delayed the project was.
If the project is not completed:
For the milestones that have been completed:
o The name of the milestone
SYSC : Foundations of Imperative Programming
Page of
o How much the milestone was over budget or underbudget.
o How early or delayed the milestone was.
For the milestones that have not been completed:
o The name of the milestone.
o Planned duration.
o Planned cost.
o If the input is print the submenu.
The submenu will list the IDs and names of the milestones and whether they are completed or
not.
Get user choice.
If the use choice is not one of the IDs of the milestones listed as not completed, output
an error message and ask the user to enter a new choice.
If the use choice is one of the IDs of the milestones listed as not completed:
o Update the milestone details as follows:
Prompt the user to update the actual duration.
Prompt the user to update is the milestone is completed or not.
Calculate the actual cost.
o Update the project as follows:
Recalculate the actual cost and duration.
Update if the project is now completed or if it is still in progress.
o Go back to the main menu
adatastructures.h
Student Name
Student Number
#include
DON'T MODIFY START
typedef struct milestone
unsigned short int id;
char name;
float plannedcost actualcost plannedduration, actualduration;
unsigned short int numemployees;
Bool completed;
milestonet;
typedef struct project
char name;
float plannedcost actualcost plannedduration, actualduration;
Bool completed;
projectt;
DON'T MODIFY END
afunctions.c
Student Name
Student Number
#
afunctions.h
Student Name
Student NumberDesigned Solution
A Senior Software Dev
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
