Project Overview

This project will be a Lawn Service management application. The user runs a summer lawn mowing service and the application helps manage clients and predict revenue.

Application Goal

The goal of this application is to enter a series of new clients for a summer lawn mowing service. When all clients and their data have been entered the application will output a report.

Application Setup

When the application is launched it will ask the user for information on a new client one item at a time. Once a client’s data has been entered it will ask if you would like to add a new client. The user will continue adding clients until they indicate they are done.

After all clients have been entered the application will output a report on each client and then a summary report about the summer’s work.

Application Inputs

The application will ask for the following from each client:

  • The name of the client
  • The length of the client’s lawn
  • The width of the client’s lawn
  • The number of payments that the client will be making
    • One payment
    • Two payments
    • Twenty payments, which is once a week for the whole mowing season.

After all these have been entered the application will ask the user if they want to enter a new client. If the user enters a “Y” or a “y” then the application starts over again with the above list.

Client Report

After all the clients have been entered the application will output a report for each client. Here is an example of what the report could look like, the actual design of the report is up to the author of the application. (Caution: These numbers are just made up!)

Client: Bill Smith
Lawn Size: 375 sq. ft.
Number of Payments: 2
Amount of each payment: $255.00
Total of all payments: $510.00

Summary Report

After all the Client Reports have been output to the terminal the application will generate and output a summary report on all the clients. Here is an example of what the report could look like, the actual design is up to the author. (Caution: These numbers are just made up!)

Total Number of clients: 5
Total Square Feet of Mowing: 5,000
Total Revenue for the summer: $2,500.00

Charge Calculation

  • The amount that a client is charged has 2 portions, a season charge based on the size of their lawn and a service charge based on how many payments they choose to make.
  • The season will last 20 weeks.
  • The season charge depends on the size of the lawn. If the lawn area is:
    • Less than 400 sq. ft. then the season charge is $25 per week times the number of weeks.
    • Greater than or equal to 400 sq.ft. and less than 600 sq. ft. then the season charge is $35 per week times the number of weeks.
    • Greater than or equal to 600 sq. ft. then the season charge is $50 per week times the number of weeks.
  • The service charge is based on how many payments the client chooses to make.
    • If the customer is going to make one payment then there is no service charge.
    • If the customer is going to make two payments then the service charge is $5 per payment.
    • If the customer is going to make twenty payments then the service charge is $3 per payment.

Provided Class

  • You will use a helper class to get input from the user. Download and add this file to your project3 directory. You will need to instantiate an object from this class to use it.
  • InputHelper.java

High-Level Design

  • Create a simple text file and write a high-level design for your application. This will be like the labs and the example in chapter 5. This file should be saved in the project3 directory.
  • Show your instructor your high-level design and get it approved.

Class Identification

  • Create a simple text file where you identify the classes for the application. This file should just contain quick descriptions of each class. Include what objects from the classes will know and what they will do. This file should be saved in the project3 directory.
  • Show your instructor your classes and get them approved.

Prepcode

  • For every class except for the provided helper class you will need to create a simple text file that holds prepcode for the class. The prepcode needs to describe all the variables and methods. Each method will need to be documented with good prepcode like the labs and in-class demos.
  • Show your instructor your prepcode and get it approved.

Test Code

  • You will need to create a class that tests the method where you do your payment calculation. This class will instantiate an instance of the class you are testing. It will then call the calculation method with hard-coded values. It will output the string “success” or “failure” depending on the return value of the calculation.
  • Run your test code for your instructor.

Real Code

  • Now code up the actual application! Use all the work you have done so far and write all the classes. First write the class that you have test code for. Once this class passes your test move on to the other classes.

Project Requirements

The following list of requirements must be satisfied for all projects:

  • All .java files in your project or labs directory must be compilable. I will test this with the command “javac *.java”. There can be no errors after that command finishes its operation.
  • All lab and project files must work properly. No partial credit will be given for projects that only implement part of the specifications.
  • All directories must be spelled exactly as specified. No variations, including case, will be accepted.
Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.