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); }/* 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 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.