Pie Chart Applet (Version#2)


	File: PieChart.java
	Purpose: Given the number of students in class that will major in
			 each discipline, depict the data as a pie chart.
			 
	Notes: Version 2
	
	The applet is a second version of a Java program that performs some simple
	computations uses the paint method to display the data visually. 
	
	In this version, we have created methods to separate out various tasks.
	We took the Version 1 and modified it into this version.


	NOTE: In the process of modifying from version 1, we have inadvertently
	introduced an error in the program! Can you tell what it is?
	HINT: Scroll down this page until the applet above is no longer visible.
		  Then scroll back up again. Do you see the problem? Do you know how
		  to correct the situation? Send me an e-mail with your correction.
		  If your solution is correct, you will get 1 Home Work equivalent
		  of EXTRA CREDIT! [All answers should be due by Tue 2/12 2:00 pm]
*/

import java.awt.*;
import java.applet.Applet;

public class PieChart extends Applet {

		// variables to store the number of students in each discipline
		int Sci, Soc, Hum;
		
		// variables to store percentages should be float
		float PercSci, PercSoc, PercHum;
		
		// the coordinates and size of the pie is fixed below
		int x = 50, y = 50, w = 100, h = 100;
		
		// these quantities will need to be computed for each slice
		int startAngle = 0, degrees;
		
	public void init() {
	
		// Set # of students in each discipline
		Sci = 5;
		Soc = 6;
		Hum = 7;
		
		compute();
	
	} // end of init
	
	private float perc(int x, int t) {	// computes the percentage of x over t
	
		return x * 100.0f/t;
		
	} // end of perc
	
	public void compute() {	// does the required computations
		// the total number of students
		int Total;
		
		// Computer percentages
		Total = Sci + Soc + Hum;
		
		PercSci = perc(Sci, Total);
		PercSoc = perc(Soc, Total);
		PercHum = perc(Hum, Total);
		
		//PercSci = Sci * 100.0f / Total;
		//PercSoc = Soc * 100.0f / Total;
		//PercHum = Hum * 100.0f / Total;
	
		// Print out results for checking
		System.out.println("Total = " + Total);
		System.out.println("%Sci = " + PercSci);
		System.out.println("%Soc = " + PercSoc);
		System.out.println("%Hum = " + PercHum);
		
	} // end of compute
	
	
	public void paint(Graphics g) {
		
		// Display the Pie Chart
		// Display the Pie for Sciences
		degrees = (int) (PercSci*360/100);
		g.setColor(Color.red);
		g.fillArc(x, y, w, h, startAngle, degrees);
		
		// Pie for Soc
		startAngle = degrees;
		degrees = (int) (PercSoc*360/100);
		g.setColor(Color.yellow);
		g.fillArc(x, y, w, h, startAngle, degrees);
		
		// Pie for Hum
		startAngle = startAngle + degrees;
		degrees = (int) (PercHum*360/100);
		g.setColor(Color.green);
		g.fillArc(x, y, w, h, startAngle, degrees);
		
	} // end of paint
} // end of applet