Note: This lab assumes that you have completed lab 1, and that you know how to login to your account, and how to open, edit, save your files, as well as compile and run your programs. If you have forgotten any of these techniques, refer back to the lab 1 handout. Be sure to follow the directions very carefully. If you have any problems or questions, be sure to ask your instructor as soon as possible. Points will be deducted if the submitted programs do not have the appropriate comments included.
Start Eclipse, create a new project, Lab7, and create a new Lab7 class (the corresponding file name will be Lab7.java) in the project. Import into your Lab7 project the following files from K:\CSE201\Lab7 (see Lab 1 for instructions on how to import files in Eclipse):
The medical research group is interested in a program that will read a
file containing heart rate measurements for several anonymous individuals,
and will create from it an HTML file that looks like this when viewed in a
browser:
| Fitness Quotient | Minimum Heart Rate | Maximum Heart Rate | Heart Rate Series |
|---|---|---|---|
| 0.919 | 68 | 80 | 68, 69, 76, 78, 77, 77, 78, 80 |
| 0.887 | 67 | 84 | 67, 69, 78, 83, 83, 84, 79, 82, 79, 84, 83, 82, 83, 84, 79, 83, 80, 78, 84, 84 |
| 0.894 | 63 | 78 | 63, 71, 73, 78, 76 |
The program will perform the following actions:
Make sure you handle all possible IOException exceptions generated by the file I/O calls.
Note: If you have any problems or questions make sure you ask your instructor as soon as possible.
<number of heart rate series>
<number of heart rate measurements for first individual>
<heart rate 1>
<heart rate 2>
<heart rate 3>
...
<number of heart rate measurements for second individual>
<heart rate 1>
<heart rate 2>
<heart rate 3>
...
...
where the first line <number of heart rate series> is
the number of heart rate series in the input file; after that,
<number of heart rate measurements for first individual> is
the length of the first heart rate series, which is followed by the
corresponding number of heart rate measurements, one per line of the input
file. Each following heart rate series follows the same format.
See sample-input.txt and
many-heart-rates.txt for sample input
files in this format. Note that your solution must work with an input file
following this format but with an arbitrary number of heart rate series.
HTML is composed of tags. HTML tags are always enclosed in angle-brackets ( < > ). Tags typically occur in begin-end (or open-close) pairs. These pairs are in the form
<tag> ... </tag>where the <tag> indicates the beginning (opening) of a tag-pair, and the </tag> indicates the end (close). The three dots indicate an arbitrary amount of content between the tags.
Specifically, an HTML document starts with the <html> tag and ends with the </html> tag. Inside these tags, you usually find a <body> ... </body> pair of tags that define the body of the HTML document.
So the general structure of your program's output will be the following:
<html> <body> ... </body> </html>
The body of the HTML output file will contain a table. A table is enclosed in a <table> ... </table> pair of tags. Between these tags you need to list the rows of the table. Each row is enclosed in a <tr> ... </tr> pair of tags. Between these tags you need to list the elements in the row of the table. Each element is enclosed in a <th> ... </th> pair of tags, for header elements, or in a <td> ... </td> pair of tags, for normal data elements.
That's all you need to know to generate the output in this lab assignment. Of course, HTML has a lot more tags, and you should explore the language if you are interested. Here is a skeleton of an HTML file in the format expected to be produced by your program, where the ... represent other elements in a row or other rows:
<html> <body> <table border="1"> <tr> <th> header 1 </th> <th> header 2 </th> ... </tr> <tr> <td> data 1 </td> <td> data 2 </td> ... </tr> ... </table> </body> </html>
See sample-output.html for a sample output corresponding to the sample-input.txt input. You may want to open this HTML file in a text editor (e.g., Eclipse) to see the source HTML instead of the rendered version shown by a browser. This sample shows how you can force the table to be displayed with a border by using the border attribute of the <table> tag, i.e., <table border="1">, or how you can force all the elements or selected elements of a row to be centered.
Make sure your program compiles and runs correctly before submitting. To submit, create a single zip file (lab7.zip) containing the Lab7.java file from the Lab7 project (the location of the project in the file system will be z:\eclipse\workspace\Lab7) and then upload that zip file to the Carmen dropbox for Lab 7. If you don't remember how to create a zip file see Lab 1 for instructions.