Difference between revisions of "CISC181 F2017 Lab0"

From class_wiki
Jump to: navigation, search
(Created page with "* [http://developer.android.com/sdk/index.html Download Android Studio] and install it on your machine <!-- ** [http://www.oracle.com/technetwork/java/javase/downloads/jdk7-do...")
 
Line 5: Line 5:
 
-->
 
-->
 
* Either on your machine or on an eCalc machine in lab:
 
* Either on your machine or on an eCalc machine in lab:
** Make a new project following [[CISC181_S2017_NewAndroidStudioProject | these ]] instructions
+
** Make a new project following [[CISC181_F2017_NewAndroidStudioProject | these ]] instructions
 
** Confirm that you can build and run it (by pressing the green triangle button or choosing "Run" from the Run menu)
 
** Confirm that you can build and run it (by pressing the green triangle button or choosing "Run" from the Run menu)
 
** Add your name and section number in a comment before the class declaration
 
** Add your name and section number in a comment before the class declaration
 
** As explained in the subsections below, modify <tt>static void main()</tt>  and create '''two''' other methods: <tt>static void heronsFormula() { ... }</tt> and <tt>static void convertSeconds() { ... }</tt>  
 
** As explained in the subsections below, modify <tt>static void main()</tt>  and create '''two''' other methods: <tt>static void heronsFormula() { ... }</tt> and <tt>static void convertSeconds() { ... }</tt>  
* Submit your <tt>MyClass.java</tt> on Sakai by '''Friday, February 17'''
+
* Submit your <tt>MyClass.java</tt> on Sakai by '''Monday, September 11'''
  
 
Use proper [https://google.github.io/styleguide/javaguide.html naming and formatting style] throughout your code.
 
Use proper [https://google.github.io/styleguide/javaguide.html naming and formatting style] throughout your code.

Revision as of 07:38, 4 September 2017

  • Download Android Studio and install it on your machine
  • Either on your machine or on an eCalc machine in lab:
    • Make a new project following these instructions
    • Confirm that you can build and run it (by pressing the green triangle button or choosing "Run" from the Run menu)
    • Add your name and section number in a comment before the class declaration
    • As explained in the subsections below, modify static void main() and create two other methods: static void heronsFormula() { ... } and static void convertSeconds() { ... }
  • Submit your MyClass.java on Sakai by Monday, September 11

Use proper naming and formatting style throughout your code.

static void main(String[] args)

Your main() should do the following:

  • Tell the user (using println()) that they can choose either of the two functions above
  • Prompt the user to enter a number to choose one of the options (1 for Heron's, 2 for convert seconds) and use the Scanner class to read it
  • If a valid choice is made, call the corresponding function immediately. Otherwise print an error message
  • Let the program end (no loop -- just print prompt, read response, and execute one time)

static void heronsFormula()

You will compute several geometric identities involving a general triangle with sidelengths a, b, and c as shown below.

Triangle with notations 2.svg.png

Your function should:

  • Declare these sidelength variables as double, prompt the user to enter them, and read each in using the Scanner class.
  • Heron's Formula gives a method to compute the area A of the triangle (ignore the fact that A is also the name of one of the triangle vertices). Follow the link and use the first formula to:
    • Derive the semi-perimeter s and area A from a, b, and c using Java math expressions and/or functions
    • Report both s and A with System.out.println().
  • The Law of Cosines can be used to calculate the angle γ (gamma) between a and b (second formula in Applications section of link). Math.acos() will give the angle in radians; please convert it to degrees and report it with System.out.println()
  • You might notice a lot of decimal places printed in your answers. Change your println() to format as necessary to only print 2 digits after the decimal for s, A, and γ.

static void convertSeconds()

This method should ask the user to enter an integer which represents a length of time t in seconds, and then compute and print out the number of d days, h hours, m minutes, and s seconds corresponding to t on separate lines.

When you are satisfied that you can calculate d, h, m, and s correctly, use branching to modify your printing so that you:

  • Start with the first non-zero time unit (i.e. do not print leading zero values)
  • Print "1 day" instead of "1 days", "1 hour" instead of "1 hours", etc. where appropriate (i.e., do not use plural for a value of 1). Some example outputs are below:

If the user inputs "67", the output should be

1 minute
7 seconds

and if they input "8880" the output should be

2 hours
28 minutes
0 seconds

For this function you may assume that t is positive, and you do not have to use a long