First Java Program and My Side Project

8 min read

\"Console\"

My First Java Program

I breezed through my first Java project with relative ease and little help. I can thank the year of struggling with things like Python and JavaScript for that level of comfort. I did need help with Operator Precedence and I probably will still need help with it in the interim. I also reached out to Stack Overflow for an answer: how do you escape and % sign in a format string? I knew plus a letter escapes a lot of line breaks and characters but it doesn’t escape a % sign in a format string. So how do you escape a % sign? With 2 % signs. Interesting.

I got to experience the thrill of debugging something myself. That feeling was satisfying. I am learning.

So what does my first Java program look like? Well, because of the requirements, the code is really verbose. I don’t think I could use a method call at all to sort of DRY it out. I may be able to do that down the road.

/* Author name: Tiffany White
This is a budget calculator
Created date: September 22, 2015
Last modified date: September 24, 2015
*/

// This line imports the Scanner class to the document
import java.util.Scanner;

public class P1A5_White
{
 public static void main(String[] args)
 {
    // This line declares a scanner variable that will be used to get user input
    Scanner keyboard = new Scanner(System.in);

    // This line prints text to the screen
    System.out.println("Welcome to Budget Calculator by Tiffany White. It will calculate your income and expenses.");

    // The lines like these print instructions to the screen and then get user input
    System.out.print("Enter your name.");
    String name = keyboard.nextLine();

    System.out.print("Enter your hourly rate.");
    double hourlyRate = keyboard.nextDouble();

    System.out.print("Enter your regular hours worked.");
    int regularHoursWorked = keyboard.nextInt();

    System.out.print("Enter your overtime hours worked.");
    double overtimeHoursWorked = keyboard.nextDouble();

    // Clears keyboard buffer
    keyboard.nextLine();

    System.out.print("Enter your rent.");
    double rent = keyboard.nextDouble();

    System.out.print("Enter your electric bill amount.");
    double elecBill = keyboard.nextDouble();

    System.out.print("Enter the amount of your water bill.");
    double waterBill = keyboard.nextDouble();

    // Clears keyboard buffer
    keyboard.nextLine();

    System.out.print("Enter the amount of your sewage bill.");
    double sewBill = keyboard.nextDouble();

    System.out.print("Enter the amount of your gas bill.");
    double gasBill = keyboard.nextDouble();

    System.out.print("Enter the amount of your food budget.");
    double foodBudget = keyboard.nextDouble();

    // Clears keyboard buffer
    keyboard.nextLine();

    System.out.print("Enter the amount of your entertainment expenses.");
    double entertainment = keyboard.nextDouble();

    System.out.print("Enter the amount of your car expenses.");
    double carExpenses = keyboard.nextDouble();

    // Clears keyboard buffer
    keyboard.nextLine();

    // This line calculates the user\'s gross pay
    double grossPay = (regularHoursWorked + overtimeHoursWorked) * hourlyRate;

    //This format string prints out the reults of the grossPay calculation and returns a new line
    System.out.printf("Your gross pay is " + "%.2f%%, grossPay);

    // This line calculates expenses/deductions
    double deductions = (rent + elecBill + waterBill + sewBill + gasBill
    + foodBudget + entertainment + carExpenses);

    // This line declares variables in the double primitive data type
    double rentPercentage, elecBillPercentage, waterBillPercentage, sewBillPercentage,
    gasBillPercentage, foodBudgetPercentage, entertainmentPercentage, carExpensesPercentage;

    /* The following lines of code calculate the percentages of each deduction against
    the user\'s gross pay and prints out the results to the console, returning a new line
    */
    rentPercentage = (rent * 100) / grossPay;
System.out.printf("The amount of your gross pay that goes to rent is %.2f%%.n", rentPercentage);

elecBillPercentage = (elecBill * 100) / grossPay;
    System.out.printf("The amount of your gross pay that goes to your electric bill is %.2f%%.n", elecBillPercentage);

    waterBillPercentage = (waterBill * 100) / grossPay;
    System.out.printf("The amount of your gross pay that goes to your water bill is %.2f%%.n", waterBillPercentage);

    sewBillPercentage = (sewBill * 100) / grossPay;
    System.out.printf("The amount of your gross pay that goes to sewage is %.2f%%.n", sewBillPercentage);

    gasBillPercentage = (gasBill * 100) / grossPay;
    System.out.printf("The amount of your gross pay that goes to gas is %.2f%%.n", gasBillPercentage);

    foodBudgetPercentage = (foodBudget * 100) / grossPay;
    System.out.printf("The amount of your gross pay that goes to food is %.2f%%.n", foodBudgetPercentage);

    entertainmentPercentage = (entertainment * 100) / grossPay;
    System.out.printf("The amount of your gross pay that goes to entertainment is %.2f%%.n", entertainmentPercentage);

    carExpensesPercentage = (carExpenses * 100) / grossPay;
    System.out.printf("The amount of your gross pay that goes to your car is %.2f%%.n", carExpensesPercentage);

    // This line calculates net pay after deductions are subtracted from the gross pay
    double netPay = (grossPay - deductions);

    // This format string prints out the net pay to the console and returns a new line
    System.out.printf("Your net pay after deductions is $" + "%.2f.n", netPay);


  }
}

See what I mean by verbose? But we’re beginners so I guess she wants to make sure we know what we’re doing. ¯_(ツ)_/¯

My Side Project

So I had the chance this week to work on my address book. I am looking for ways to use Google’s Contacts API and am in the process of looking for API courses or videos. I also want to write my own RESTful APIs eventually so I need to get cracking on the learning of that.

I am only taking 6 credits so I have some in between time. It won’t be that way next fall as I try to get scholarships and with most scholarships, you have to be 12 credits to get them. It doesn’t bother me– mostly all my gen eds are completed so I can focus on Computer Science for the next two or three years.

Anyway, I’ve used some simple Bootstrap to set up a few of the pages. Here’s the static html code for the index page:

<html lang="en">
<head>
    <meta charset="UTF-8">
    <!-- Latest compiled and minified CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">

    <!-- Optional theme -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-theme.min.css">

    <!-- Latest compiled and minified JavaScript -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
    <link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>
<body>

<div class="navbar-header">

<ul class="nav nav-tabs">

<li role="presentation" class="active"><a href="index.html">Contacts</a></li>


<li role="presentation"><a href="addContacts.html">Add Contacts</a></li>


<li role="presentation"><a href="Phone.html">Phone</a></li>


<li role="presentation"><a href="Email.html">Email</a> </li>

      </ul>

  </div>


<div class="col-sm-3 col-md-3 pull-right">

<form class="navbar-form" role="search">

<div class="input-group">
              <input type="text" class="form-control" placeholder="Search" name="srch-term" id="srch-term">

<div class="input-group-btn">
                  <button class="btn btn-default" type="submit"><i class="glyphicon glyphicon-search"></i></button>
              </div>

          </div>

      </form>

  </div>


<div class="jumbotron">

<h1>My Contacts</h1>



Add your contacts to keep up with potential sales leads, anniversaries, birthdays, etc. You can add it all right here.

  </div>


</body>
<script type="text/javascript" src="main.js"></script>
</html>

It’s going to be a Node app hosted on Heroku. I can’t wait to get it finished.

CC BY-SA 4.0 First Java Program and My Side Project by Tiffany White is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.