Difference between revisions of "CSC212 Homework 3 2014"
(→Your Assignment) |
|||
(20 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
---- | ---- | ||
<bluebox> | <bluebox> | ||
− | This homework is due on Oct. 2nd, 2014, at 11:55 p.m. | + | This homework is due on <strike>Oct. 2nd</strike> Oct. 5, 2014, at 11:55 p.m. |
</bluebox> | </bluebox> | ||
Line 52: | Line 52: | ||
==Submission== | ==Submission== | ||
<br /> | <br /> | ||
− | * Submit your program to Moodle, Homework 3, Problem 1 | + | * Submit your program to Moodle, Homework 3, Problem 1. |
<br /> | <br /> | ||
+ | |||
+ | =Problem #2= | ||
+ | <br /> | ||
+ | * Create a new version of your program and call it '''Hw3_2.java'''. | ||
+ | * Create a new text file called '''temperatures.dat''', with the contents found below: | ||
+ | <br /> | ||
+ | <code><pre> | ||
+ | Cardiff Bute Park | ||
+ | Location 3176E 1773N, 9 metres amsl | ||
+ | Estimated data is marked with a * after the value. | ||
+ | |||
+ | yyyy mm tmax tmin af rain sun | ||
+ | degC degC days mm hours | ||
+ | 1977 9 18.3 8.1 0 48.6 117.9 | ||
+ | 1977 10 15.4 9.0 0 76.0 80.4 | ||
+ | 1977 11 10.3 4.7 4 147.9 76.4 | ||
+ | 1977 12 9.6 4.6 2 88.0 25.6 | ||
+ | 1978 1 7.5 2.0 6 134.1 64.7 | ||
+ | 1978 2 6.2 0.9 13 134.1 56.9 | ||
+ | ... | ||
+ | 2009 7 20.2 13.1 0 194.1 --- | ||
+ | 2009 8 20.7 --- 0 76.0 120.5 | ||
+ | 2009 9 19.1 10.6 0 34.7 --- | ||
+ | 2009 10 16.3 8.6 0 73.6 --- | ||
+ | 2009 11 12.6 6.5 0 220.4 --- | ||
+ | 2009 12 7.2 0.0 15 114.9 --- | ||
+ | 2010 1 6.0 -1.2 16 73.5 --- | ||
+ | 2010 2 7.3 0.8 7 72.1 --- | ||
+ | </pre></code> | ||
+ | <br /> | ||
+ | * You will notice that the new file will contain lines other than data lines (like the header), and that some data are missing, and replaced by "---". Your program has to be able to skip these non-data without problems. In particular, without generating ''exceptions'' to the operating system! | ||
+ | * Using the program you wrote for [[CSC212 Lab 5 2014|Lab #5]], build Hw3_2.java so that it will look for the max rain and sun recordings, and output 2 lines with the years and the max numbers found. | ||
+ | <br /> | ||
+ | ==Requirements== | ||
+ | <br /> | ||
+ | * The output format should be the same as for Problem 1. | ||
+ | * You must declare and use your own exception class. | ||
+ | * You must use a method to open the file, | ||
+ | * You must use another method that reads only 1 line at a time from the input file and returns the year, rain and sun data found on that line. You can use an ''array'' or a ''triplet'' to pass these numbers back to the main program. | ||
+ | <br /> | ||
+ | |||
+ | ==Submission== | ||
+ | <br /> | ||
+ | * Submit your program to Moodle, Problem 2 Section. | ||
+ | <br /> | ||
+ | |||
+ | |||
+ | =Problem #3= | ||
+ | <br /> | ||
+ | * Below is a the main method of a class that implemented our Python-List. It was our excursion in the world of data structures, looking at a way to implement a "clever" array that would grow as we needed. | ||
+ | <br /> | ||
+ | <br /> | ||
+ | :::<source lang="java"> | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | // --- Test List --- | ||
+ | PythonList2 dwarves = new PythonList2(5); | ||
+ | |||
+ | dwarves.append("Blick"); | ||
+ | dwarves.append("Flick"); | ||
+ | dwarves.append("Glick"); | ||
+ | dwarves.append("Plick"); | ||
+ | dwarves.append("Quee"); | ||
+ | dwarves.append("Snick"); | ||
+ | dwarves.append("Whick"); | ||
+ | |||
+ | System.out.println("Snow White's friends:"); | ||
+ | for (int i = 0; i < dwarves.length(); i++) | ||
+ | System.out.println(dwarves.at(i)); | ||
+ | |||
+ | String dwarf; | ||
+ | dwarf = dwarves.at(-1); | ||
+ | if (dwarf != null) | ||
+ | System.out.println(dwarf); | ||
+ | dwarf = dwarves.at(20); | ||
+ | if (dwarf != null) | ||
+ | System.out.println(dwarf); | ||
+ | |||
+ | int n = dwarves.index( "Quee" ); | ||
+ | if ( n != -1 ) | ||
+ | System.out.println( "Quee found at Index: " + n ); | ||
+ | else | ||
+ | System.out.println( "Quee not found" ); | ||
+ | |||
+ | n = dwarves.rindex( "Quee" ); | ||
+ | if ( n != -1 ) | ||
+ | System.out.println( "Quee found at Index: " + n ); | ||
+ | else | ||
+ | System.out.println( "Quee not found" ); | ||
+ | |||
+ | n = dwarves.index( "Queen" ); | ||
+ | if ( n != -1 ) | ||
+ | System.out.println( "Queen found at Index: " + n ); | ||
+ | else | ||
+ | System.out.println( "Queen not found" ); | ||
+ | |||
+ | } | ||
− | < | + | </source> |
+ | <br /> | ||
+ | :Your assignment is to create a new class called '''Hw3_3.java''' with a '''main()''' function '''as similar to the one shown below as possible''', but that uses a Java '''Vector''' data structure to implement the list of dwarves. The new main() function should basically do everything the same as the main() shown here: | ||
+ | :# declare dwarves as a vector | ||
+ | :# add all the names to the vector | ||
+ | :# use a loop to print all the names in the vector | ||
+ | :# attempt to display the names at Indexes -1 and 20. | ||
+ | :# look for "Quee", starting at the front of the vector | ||
+ | :# look for "Quee", starting at the end of the vector | ||
+ | :# look for "Queen", starting at the front of the vector. | ||
+ | <br /> | ||
+ | * The output of your new main() method, that now uses '''Vector''', is shown below: | ||
+ | <br /> | ||
+ | ::<source lang="text"> | ||
+ | Snow White's friends: | ||
+ | Blick | ||
+ | Flick | ||
+ | Glick | ||
+ | Plick | ||
+ | Quee | ||
+ | Snick | ||
+ | Whick | ||
+ | invalid index | ||
+ | invalid index | ||
+ | Quee found at Index: 4 | ||
+ | Quee found at Index: 4 | ||
+ | Queen not found | ||
+ | </source> | ||
+ | <br /> | ||
+ | * Note that the output is slightly different (showing ''invalid'' indexes, for example) from that of the original program. | ||
− | + | <br /> | |
+ | ==Submission== | ||
+ | <br /> | ||
+ | * Submit your program to Moodle, Homework 3, Problem 3. | ||
+ | |||
+ | <br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /> | ||
+ | [[Category:Java]][[Category:CSC212]] |
Latest revision as of 10:22, 3 October 2014
--D. Thiebaut (talk) 16:21, 24 September 2014 (EDT)
This homework is due on Oct. 2nd Oct. 5, 2014, at 11:55 p.m.
Contents
Problem #1
- Create a text file in your directory with the following lines. Call it temperatures0.dat:
1977 9 18.3 8.1 0 48.6 117.9
1977 10 15.4 9.0 0 76.0 80.4
1977 11 10.3 4.7 4 147.9 76.4
1977 12 9.6 4.6 2 88.0 25.6
1978 1 7.5 2.0 6 134.1 64.7
1978 2 6.2 0.9 13 134.1 56.9
1978 3 10.6 3.9 3 121.3 122.4
1978 4 10.9 3.7 4 63.6 118.6
1978 5 17.3 7.5 0 30.6 188.1
1978 6 18.5 9.5 0 29.6 177.3
1978 7 18.7 11.8 0 110.1 115.8
1978 8 19.6 11.4 0 40.5 164.9
1978 9 18.4 10.2 0 34.1 182.2
1978 10 16.6 9.0 0 12.0 81.1
These numbers are weather numbers for Cardiff Bute Park, in the U.K. The 7 numbers on each line represent the following quantities, shown here with their standard abbreviation:
- the year of the recording (yyyy)
- the month of the recording (mm)
- the max daily temperature in degrees Celcius (tmax)
- the min daily temperature in degrees Celcius (tmin)
- the number of days of frost (af)
- the total rainfall (rain)
- the sunshine duration (sun)
Your Assignment
- Write a program called Hw3_1.java that will
- read the temperature file,
- record the year when the rain was maximum,
- record the year when the sun was maximum,
- output this information on two lines of text:
javac Hw3_1.java java Hw3_1 temperatures0.dat rain 1977 147.90 sun 1978 188.10
Submission
- Submit your program to Moodle, Homework 3, Problem 1.
Problem #2
- Create a new version of your program and call it Hw3_2.java.
- Create a new text file called temperatures.dat, with the contents found below:
Cardiff Bute Park
Location 3176E 1773N, 9 metres amsl
Estimated data is marked with a * after the value.
yyyy mm tmax tmin af rain sun
degC degC days mm hours
1977 9 18.3 8.1 0 48.6 117.9
1977 10 15.4 9.0 0 76.0 80.4
1977 11 10.3 4.7 4 147.9 76.4
1977 12 9.6 4.6 2 88.0 25.6
1978 1 7.5 2.0 6 134.1 64.7
1978 2 6.2 0.9 13 134.1 56.9
...
2009 7 20.2 13.1 0 194.1 ---
2009 8 20.7 --- 0 76.0 120.5
2009 9 19.1 10.6 0 34.7 ---
2009 10 16.3 8.6 0 73.6 ---
2009 11 12.6 6.5 0 220.4 ---
2009 12 7.2 0.0 15 114.9 ---
2010 1 6.0 -1.2 16 73.5 ---
2010 2 7.3 0.8 7 72.1 ---
- You will notice that the new file will contain lines other than data lines (like the header), and that some data are missing, and replaced by "---". Your program has to be able to skip these non-data without problems. In particular, without generating exceptions to the operating system!
- Using the program you wrote for Lab #5, build Hw3_2.java so that it will look for the max rain and sun recordings, and output 2 lines with the years and the max numbers found.
Requirements
- The output format should be the same as for Problem 1.
- You must declare and use your own exception class.
- You must use a method to open the file,
- You must use another method that reads only 1 line at a time from the input file and returns the year, rain and sun data found on that line. You can use an array or a triplet to pass these numbers back to the main program.
Submission
- Submit your program to Moodle, Problem 2 Section.
Problem #3
- Below is a the main method of a class that implemented our Python-List. It was our excursion in the world of data structures, looking at a way to implement a "clever" array that would grow as we needed.
public static void main(String[] args) { // --- Test List --- PythonList2 dwarves = new PythonList2(5); dwarves.append("Blick"); dwarves.append("Flick"); dwarves.append("Glick"); dwarves.append("Plick"); dwarves.append("Quee"); dwarves.append("Snick"); dwarves.append("Whick"); System.out.println("Snow White's friends:"); for (int i = 0; i < dwarves.length(); i++) System.out.println(dwarves.at(i)); String dwarf; dwarf = dwarves.at(-1); if (dwarf != null) System.out.println(dwarf); dwarf = dwarves.at(20); if (dwarf != null) System.out.println(dwarf); int n = dwarves.index( "Quee" ); if ( n != -1 ) System.out.println( "Quee found at Index: " + n ); else System.out.println( "Quee not found" ); n = dwarves.rindex( "Quee" ); if ( n != -1 ) System.out.println( "Quee found at Index: " + n ); else System.out.println( "Quee not found" ); n = dwarves.index( "Queen" ); if ( n != -1 ) System.out.println( "Queen found at Index: " + n ); else System.out.println( "Queen not found" ); }
- Your assignment is to create a new class called Hw3_3.java with a main() function as similar to the one shown below as possible, but that uses a Java Vector data structure to implement the list of dwarves. The new main() function should basically do everything the same as the main() shown here:
- declare dwarves as a vector
- add all the names to the vector
- use a loop to print all the names in the vector
- attempt to display the names at Indexes -1 and 20.
- look for "Quee", starting at the front of the vector
- look for "Quee", starting at the end of the vector
- look for "Queen", starting at the front of the vector.
- The output of your new main() method, that now uses Vector, is shown below:
Snow White's friends: Blick Flick Glick Plick Quee Snick Whick invalid index invalid index Quee found at Index: 4 Quee found at Index: 4 Queen not found
- Note that the output is slightly different (showing invalid indexes, for example) from that of the original program.
Submission
- Submit your program to Moodle, Homework 3, Problem 3.