restrictedmain

restrictedmain

import java.util.regex.*; //Use of regular expressions import java.io.*; //Use of InputStreamReader and BufferedReader import java.util.*; //Use of ArrayList

//Class CDAManufacturersSystem: //Static variable: flag //Methods: main(String[]):void

public class CDAManufacturersSystem { private static int flag=0;//Dictionary should be invoked only once

//Contract: main(String[]):void //Static function hence can be directly called using class name. The program execution starts from this function. public static void main(String args[]) { MainClerkUI mainclerkUiOb=new MainClerkUI(); //Creates MainClerkUI //All the initial products are fed into the system if(flag==0) { CDAManufacturers.createProductDictionary(); flag++; } String cont="Y"; while(cont.equalsIgnoreCase("Y")) { MainClerkSystem mainClerkOb=new MainClerkSystem(); mainClerkOb.initiateClerkView(); cont=mainclerkUiOb.getContinueSignal("Main Module"); //Will prompt user if he wants to continue } mainclerkUiOb.displayErrorMessage("Thank you for using the IT Solution!!!"); //If user selects 'N' } } //---------------------------------------------------------------------------------------------------------------------------------------------- //Class MainClerkUI: //Methods: getOption():int ; displayMenu():void ; displayErrorMessage(String):void ; getContinueSignal(String):String class MainClerkUI { //Contract: getOption():int //Method displays the menu and validates the input. It return option value selected. public int getOption() { try { InputStreamReader input=new InputStreamReader(System.in); BufferedReader br=new BufferedReader(input); int option=-1; boolean flag=false; displayMenu(); //Displays menu options String temp; while(flag==false) //User is asked for option until a valid input is entered { temp=br.readLine(); Pattern p=Pattern.compile("[0-9][0-9]*"); //Input must be a positive integer Matcher m=p.matcher(temp); if(m.matches()) { option=Integer.parseInt(temp); flag=true; } else { System.out.println("A positive integer expected... Please select again:"); //Prompt if an invalid input is entered } } return(option); } catch(IOException e) { //System.out.println("IO Exception"+e); return(-1); } }

//Contract: displayMenu():void //Displays clerk's menu private void displayMenu() { System.out.println(""); System.out.println("Clerk's Menu"); System.out.println("1. Customer Registration"); System.out.println("2. Update Customer Details"); System.out.println("3. View Customer Details"); System.out.println("4. Make an Order"); System.out.println("5. View existing Order Details"); System.out.println("6. View Bill"); System.out.println("7. Report on Products manufactured"); System.out.println("8. Report on Taxes collected"); System.out.println("9. Report on revenue earned"); System.out.println("10. Report on Products returned"); System.out.println("11. Exit"); System.out.println(""); System.out.println("Select option:"); }

//Contract: displayErrorMessage(String):void //It displays the error message passed public void displayErrorMessage(String errorMessage) { System.err.println(errorMessage); } public String getContinueSignal(String str) { try { InputStreamReader input=new InputStreamReader(System.in); BufferedReader br=new BufferedReader(input); boolean flag=false; String response=""; while(flag==false) //Repeat until a valid input is entered { System.out.print("Do you wish to continue in the "+str+"?(Y/N): "); response=br.readLine(); if(response.equalsIgnoreCase("Y")||response.equalsIgnoreCase("N")) //check if the input is y/n flag=true; else System.out.println("Input can only be Y/N..."); } return(response); } catch(IOException e) { //System.out.println("IO Exception"+e); return(""); } } }

//----------------------------------------------------------------------------------------------------------- //Class MainClerkSystem: //Methods: initiateClerkView():void class MainClerkSystem {

public void initiateClerkView() { String temp[]={"a","b","c"}; MainClerkUI mainclerkUiOb= new MainClerkUI(); //Create MainClerkUI int option=mainclerkUiOb.getOption(); //Displays the Clerk menu and return the option selected CustomerController customerControllerOb=new CustomerController(); OrderController orderControllerOb=new OrderController(); ProductController productControllerOb=new ProductController(); switch(option) { case 1: customerControllerOb.initiateCustomerRegistration(); //UC1(a):Add customer details break; case 2: customerControllerOb.initiateCustomerDetailsUpdation(); //UC1(b):Update customer details break; case 3: customerControllerOb.initiateCustomerDetailsView(); //UC1(c):View customer details break; case 4: orderControllerOb.initiateOrderDetailsAddition(); //UC2(a):Add order details break; case 5: orderControllerOb.initiateOrderDetailsView(); //UC2(b):View Order Details break; case 6: orderControllerOb.initiateViewBills(); //UC4:View bills break; case 7: productControllerOb.initiateReportOnProductsManufactured(); break; case 8: productControllerOb.initiateReportOnTaxCollected(); break; case 9: productControllerOb.initiateReportOnRevenueEarned(); break; case 10: productControllerOb.initiateReportOnProductsReturned(); break; case 11: { mainclerkUiOb.displayErrorMessage("Thank you for using IT Solution!!!"); System.exit(0); //Execution terminates } default: //Invalid integral input { mainclerkUiOb.displayErrorMessage("Invalid option selected in Clerk's Menu!!!"); MainClerkSystem mainclerkSystemOb=new MainClerkSystem(); mainclerkSystemOb.initiateClerkView(); } } } }

View Answers









Related Tutorials/Questions & Answers:
restrictedmain

Ads