In this lab, and in the labs that follow, there will be references to your two textbooks:
I'll use the abbreviations HFH and JSA6 to refer to these two books. Please make a note of it.
In this activity, you'll be given a sample problem, and a solution to that problem.
You'll then be given a similar problem, you'll asked to come up with your own solution.
The solved problem is similar to one covered in lecture: namely a version of the price-per-square inch calculation (just like the one in activity03), but using fields in an XHTML form
element for input and output instead of using the window.prompt()
method.
Note: window.prompt()
is the full name of the method prompt();
—the method prompt()
is a method of the window
object, and the dot syntax window.prompt()
shows this. (See p. 12-13 in JSA6 under the heading "Putting the Pieces Together" for more information.)
The problem where you will come up with your own solution will be the same as last week: is to determine the gas mileage of a car, given the starting odometer reading, the ending odometer reading, and the number of gallons of gas consumed in between the two odometer readings. However, this week you'll solve it using an HTML form for input and output.
By the time you complete this activity, you should know how to do the following in JavaScript:
Other skills you'll also need that comes from lab06
parseInt()
and parseFloat()
Here is the assignment for the file pizzaForm.html. Read over this assignment, then look at the solved problem in the file pizzaForm.html (located in the folder lab08 under the activities link on the course web page.)
Write out the contents of an XHTML file pizza.html that contains a form like the following. The form has fields for the size of a pizza (the diameter) and the price of a pizza, and the price per square inch, and a calculate button. Include a JavaScript function called "calculatePricePerSquareInch" that will calculate the price per square inch by reading the diameter and price out of the table, and storing the result back into the price per square inch field in the table. Make an event handler so that when you click the calculate button, the function is called. Use Math.PI as the constant π The formula for radius is: radius = diameter / 2; The formula for area of a pizza (um, I mean circle), is: area = πr2 You can calculate radius squared in JavaScript with radius * radius Include an XHTML comment near the top of the file that includes the file name, your name, the date, and the assignment (activity 3 for CISC103). Be sure all your tags follow the XHTML standard: i.e. they should be all closed, properly nested, and written with lowercase letters. Your file should pass validation at http://validator.w3.org |
Try reloading the page several times. Also do a "view source" and read through and try to understand the XHTML and JavaScript source. Finally, note that if you run this through validator.w3.org, it will pass validation as XHTML 1.0 Transitional.
Your next step is to put this pizzaForm.html file on your web site on copland, so that if you click on the link below (where your userid is in place of "userid"), the file comes up.
http://copland.udel.edu/~userid/cisc103/lab08/pizzaForm.html
Here's what you need to do:
http://copland.udel.edu/~userid/cisc103/lab08/pizzaForm.html
links to the pizza.html page.
Note:
If you have trouble with errors such as "403 forbidden", then you need to right click on the file in the SSH File transfer program, and set the permissions of the file to the octal number "755". You may need to do this on the folders public_html, cisc103, and lab08 as well, if it was not already done.
Now write a page similar to pizza.html called gas.html that solves the following problem. Save the file under a folder called lab08 under your personal folder on the H drive.
Write out the contents of an XHTML file gas.html that would run a JavaScript script containing a form with fields that allow the user to enter a starting odometer reading, and ending odometer reading, and the number of gallons of gas consumed during that trip. Include a button that is labelled "calculate gas mileage". That button should invoke a JavaScript function that performs the calculation. The formula is:
Include an XHTML comment near the top of the file that includes the file name, your name, the date, and the assignment (activity 3 for CISC103). Be sure all your tags follow the XHTML standard: i.e. they should be all closed, properly nested, and written with lowercase letters. Your file should pass validation at http://validator.w3.org |
Note that in order for the JavaScript section to pass validation, you need to enclose it in an XHTML comment, as shown in the example pizzaForm.html.
Now, to submit the file, use the same process you used in step 2 to upload this file to the following URL:
http://copland.udel.edu/~userid/cisc103/lab08/gasForm.html
This activity counts as a regular lab grade out of 100 pts, broken down as follows:
20 pts | Validation | Validate gasForm.html page against validator.w3.org and against http://jigsaw.w3.org/css-validator There should be no XHTML or CSS errors (10 points each) |
20 pts | Style | XHTML, CSS and JavaScript code should be clean and neat, with tags aligned and indented properly to make the code readable. JavaScript code should contain comments to explain what is happening in the code (10 points each) |
40 pts | Correctness | The web page should behave as described in the assignment description (20 points each) |
20 pts | Following directions | The web page should be submitted according to the directions in the assignment. (For example, having pizzaForm.html and gasForm.html at the correct web addresses, under your http://copland.udel.edu/~username/cisc103/lab08 directory, with the correct filenames. ) |
Copyright 2005, Phillip T. Conrad, CIS Dept., University of Delaware. Permission to copy for non-commercial, non-profit, educational purposes granted, provided appropriate credit is given; all other rights reserved.