Learn to track your expenses and plan your budget with Python
Answered
Tracking expenses is an essential component of developing healthy financial skills, especially when budgets are limited! Many students do not track expenses because it is time consuming. They may end up spending too much money on unnecessary purchases.For this assignment, you will use Python to solve this problem. You will build a tool that can help you plan your budget.
Devise an algorithm that takes your monthly budget, the amount of money you wish to save, and a list of the prices of all the items you might need to buy during themonth with a priority value (for example, from 1 to 10, with 10 being the highest priority item) to describe how much you need that item. The algorithm then should give you a plan of what to buy and what not to buy based on your priority. The algorithm can divide the items list intosections to make prioritizing more efficient. For example, the algorithm can have a list of needs and a list of wants, and the list of needs can be divided into more sections (education, food, medicine, etc) and the same for the list of wants (trips, desserts, parties, etc).
- Describe the input(s), output(s) and the process of the algorithm.
- Draw a flowchart to show the process of the algorithm.
- Explain how this process is an “algorithm”.
You will be graded on algorithmicstrategies and computationaltools
Using an appropriate data structure (Lists or any other data structure that you are familiar with) build a user-friendly Python program that practically implements your algorithm. The program should at minimum ask the user to input:
- The monthly budget
- The amount of money to be saved
- A list of the “needs” for the month (including the price of each item)
- A list of the “wants” for the month (including the price of each item)
- A priority value for each item to help the program understands the priorities of the user Using sorting, the program should return an ordered list of the items that you should buy to fit your budget and have the required savings. Provide a well-commented Python code that follows the above instructions. Make sure to include few test-cases to make sure your code works
- Be sure to comment thoroughly so that it is clear that you understand what every line of the code is intended to accomplish.
- This application uses a data-structure to save data and then a sorting algorithm to sort the data. A very good data structure that can do both functions is called “Binary Tree Data Structure”. You can read more about it in this resource. Save the data that the user inputs in one or more trees and then use a tree in order traversal to sort the data.
- The greedy algorithm is a well-known algorithm in computer science. Research greedy algorithms (this might be a helpful resource, but there are many others you can choose from) and then describe how they can be used to make the budget planning application more efficient (Hint: Read about the knapsack problem, how is it similar to the budget planner application?)
- Attempting the challenge problems can never cause you to receive a low mark (0, or 1), but high marks will only be given for exceptional work.