/* Program name: ProgramOne.java Author: Lewis Reilly Course: Foundation Degree in Software Engineering Date created: 4th April 2007 Date last amended: - - - - - - - ------------------------------------------------------------------------------------- This program displays a menu for a golfing club allowing the user to view or amend the details of a golfer. It displays the annual subscription fee that golfer owes and if they are a senior golfer it gives them a 20% reduction. ------------------------------------------------------------------------------------- */ import java.applet.* ; import java.awt.* ; import java.awt.event.* ; public class ProgramTwo extends Applet implements ActionListener { // Declare constants final double REDUCTION = 0.8 ; final double FULLMEMBERSHIPFEE = 240.0 ; final double TEMPORARYMEMBERSHIPFEE = 120.0 ; final int FULLMEMBERRANGE = 599; final int TEMPMEMBERRANGE = 999; // Declare components Label titleLabel, golferNameLabel, membershipCodeLabel, insurancePremiumLabel; Label membershipTypeLabel, membershipFeeLabel ; TextField golferNameText, membershipCodeText, insurancePremiumText, membershipTypeText ; TextField membershipFeeText, statusBoxText, runningTotalText ; Button acceptButton, clearButton ; // Declare variables double membershipCode; String membershipCodeString; double insurancePremium; String insurancePremiumString; double membershipFee; String membershipFeeString; int noOfFullMembers, noOfTempMembers ; String runningTotal; private void createComponents() { // Labels titleLabel = new Label("Golf Club membership System"); golferNameLabel = new Label(" Name"); membershipCodeLabel = new Label("Membership Code"); insurancePremiumLabel = new Label("Insurance Premium £ "); membershipTypeLabel = new Label("Membership Type"); membershipFeeLabel = new Label("Membership Fee £ "); // TextFields golferNameText = new TextField(15); membershipCodeText = new TextField(10); insurancePremiumText = new TextField(10); membershipTypeText = new TextField(10); membershipFeeText = new TextField(10); statusBoxText = new TextField(20); runningTotalText = new TextField(20); // Set-up TextFields that cannot be edited membershipTypeText.setEditable(false); membershipFeeText.setEditable(false); statusBoxText.setEditable(false); runningTotalText.setEditable(false); // Set default value for statusBoxText statusBoxText.setText("Enter details >> Click Accept."); // Buttons acceptButton = new Button("Accept"); clearButton = new Button("Clear"); acceptButton.addActionListener(this); // Set-up default runningTotalText noOfFullMembers = 0; noOfTempMembers = 0; runningTotal = noOfFullMembers + " full-time, " + noOfTempMembers + " part-time"; runningTotalText.setText(runningTotal); } // End of createComponents method private void addComponents() { add(titleLabel); add(golferNameLabel); add(golferNameText); add(membershipCodeLabel); add(membershipCodeText); add(insurancePremiumLabel); add(insurancePremiumText); add(membershipTypeLabel); add(membershipTypeText); add(membershipFeeLabel); add(membershipFeeText); add(statusBoxText); add(acceptButton); add(clearButton); add(runningTotalText); } // End of addComponents method public void processGolfersDetails() { // membershipCodeString = membershipCodeText.getText(); membershipCode = Double.valueOf(membershipCodeString).doubleValue(); insurancePremiumString = insurancePremiumText.getText(); insurancePremium = Double.valueOf(insurancePremiumString).doubleValue(); // Check if member is a senior member and if so give them a 20% reduction // Otherwise determine their membership type and fee as normal if ( membershipCode >= 100 && membershipCode <= 200 ) { membershipTypeText.setText("Full-time"); membershipFee = insurancePremium + FULLMEMBERSHIPFEE; membershipFee = ( membershipFee * REDUCTION ) ; noOfFullMembers++; } else if ( membershipCode >= 201 && membershipCode <= FULLMEMBERRANGE ) { membershipTypeText.setText("Full-time"); membershipFee = insurancePremium + FULLMEMBERSHIPFEE; noOfFullMembers++; } else if ( membershipCode > FULLMEMBERRANGE && membershipCode <= TEMPMEMBERRANGE ) { membershipTypeText.setText("Part-time"); membershipFee = insurancePremium + TEMPORARYMEMBERSHIPFEE; noOfTempMembers++; } membershipFeeString = Double.toString(membershipFee); membershipFeeText.setText(membershipFeeString); acceptButton.removeActionListener(this); clearButton.addActionListener(this); runningTotal = noOfFullMembers + " full-time, " + noOfTempMembers + " part-time"; runningTotalText.setText(runningTotal); statusBoxText.setText("Press clear to continue."); } // End of processGolferDetails method private void dealWithInputError() { statusBoxText.setText("Re-check the numeric values."); membershipCodeText.setText(""); insurancePremiumText.setText(""); } // End of dealWithInputError method private void clearTextComponents() { golferNameText.setText(""); membershipCodeText.setText(""); insurancePremiumText.setText(""); membershipTypeText.setText(""); membershipFeeText.setText(""); clearButton.removeActionListener(this); acceptButton.addActionListener(this); statusBoxText.setText("Enter details. Click Accept."); } // End of clearTextComponents method public void init() { createComponents(); addComponents(); showStatus("Enter member Details"); } public void actionPerformed(ActionEvent event) { String commandCaption = event.getActionCommand(); if ( commandCaption.equals("Accept") ) { try { processGolfersDetails(); } catch ( NumberFormatException exception ) { dealWithInputError(); } } // End of if statement if ( commandCaption.equals("Clear") ) { clearTextComponents(); } } } // End of program