Difference between revisions of "CISC181 F2017 Lab1"
(Created page with " ** Make a new project (but now ''n'' = 1) following these instructions * Name your class "Lab1". This happens when you are creat...") |
|||
Line 12: | Line 12: | ||
Your <tt>main()</tt> should do the following: | Your <tt>main()</tt> should do the following: | ||
− | * | + | * Ask the user (using <tt>println()</tt> or <tt>printf()</tt>) to input the first year and last year of a range to check. Read the values with a <tt>Scanner</tt> object. Pass these values to leapYearsInRange(). |
− | |||
* If a valid choice is made, call the corresponding function immediately. Otherwise print an error message | * 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) | * Let the program end (no loop -- just print prompt, read response, and execute ''one'' time) |
Revision as of 21:16, 11 September 2017
- Make a new project (but now n = 1) following these instructions
- Name your class "Lab1". This happens when you are creating a new module, in the Java class name field
- 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 leapYearsInRange() { ... } and static void xxx() { ... }
- 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:
- Ask the user (using println() or printf()) to input the first year and last year of a range to check. Read the values with a Scanner object. Pass these values to leapYearsInRange().
- 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 on a single line, separated by spaces, 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 γ.
- To summarize: take in 3 space-separated numbers on a single line, do calculations, and print out 3 numbers on their own lines with nothing else. If illegal values are given (negative sidelengths, or three sidelengths that cannot possibly form a triangle), then print out a one-line error message without doing any calculations.
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