# CISC181 S2017 Lab1

- 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**Friday, February 17**

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.

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()`.

- Derive the
- 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`