yoga1290

Assignment#2

May 8th, 2011
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.69 KB | None | 0 0
  1.  
  2. import java.io.FileInputStream;
  3. import java.io.PrintWriter;
  4. import java.util.Arrays;
  5. import java.util.Comparator;
  6. import java.util.Scanner;
  7. import javax.swing.JOptionPane;
  8.  
  9. /**
  10.  *
  11.  * @author yoga1290
  12.  */
  13. class Course
  14. {
  15.     private int credit;
  16.     private String name,id;
  17.     public int getCredit()
  18.     {
  19.         return credit;
  20.     }
  21.     public String getName()
  22.     {
  23.         return name;
  24.     }
  25.     public String getId()
  26.     {
  27.         return id;
  28.     }
  29.     public void setName(String p){name=p;}
  30.     public void setId(String p){id=p;}
  31.     public void setCredit(int p){credit=p;}
  32.     public Course(){}
  33.     public Course(String name,String id,int cr)
  34.     {
  35.         this.name=name;
  36.         this.id=id;
  37.         this.credit=cr;
  38.     }
  39.     public void setCourselnfo(String name,String id,int cr)
  40.     {
  41.         this.name=name;
  42.         this.id=id;
  43.         this.credit=cr;
  44.     }
  45.     public void setlnfo(String name,String id,int cr)
  46.     {
  47.         this.name=name;
  48.         this.id=id;
  49.         this.credit=cr;
  50.     }
  51.    
  52.     @Override
  53.     public String toString()
  54.     {
  55.         System.out.println("Course Name: "+name+
  56.                             "\nCourse ID: "+id+
  57.                             "\nCredit Hours: "+credit);
  58.         return this.toString();
  59.     }
  60. }
  61. class CourseComparator implements Comparator<Course>
  62. {
  63.     @Override
  64.     public int compare(Course o1, Course o2) {
  65.      return o1.getName().compareTo(o2.getName());  
  66.     }
  67. }
  68. class Person
  69. {
  70.     String firstName,lastName,id;
  71. }
  72. class Student extends Person
  73. {
  74. //    private String firstName,lastName,id;
  75.     private int numberOfCourses;
  76.     private static double tuitionRate;
  77.     private boolean isTuitionPaid=false;
  78.     private Course Courses[]=new Course[6];
  79.     private char   grades[]=new char[6];
  80.     //firstName,LastName,id,isTuitionPaid,courses,grades as in the given example testcase
  81.     public void setInfo(String firstName,String lastName,String id ,int numberOfCourses,boolean isTuitionPaid,Course[] c,char[] grades)
  82.     {
  83.         super.firstName=firstName;
  84.         super.lastName=lastName;
  85.         this.id=id;
  86.         this.isTuitionPaid=isTuitionPaid;
  87.         this.Courses=c;
  88.         this.numberOfCourses=numberOfCourses;
  89.         this.grades=grades;
  90.         this.tuitionRate=tuitionRate;
  91.     }
  92.         public void setInfo(String firstName,String lastName,int id,int numberOfCourses ,boolean isTuitionPaid,Course[] c,char[] grades)
  93.     {
  94.         super.firstName=firstName;
  95.         super.lastName=lastName;
  96.         this.id=id+"";
  97.         this.isTuitionPaid=isTuitionPaid;
  98.         this.Courses=c;
  99.         this.numberOfCourses=numberOfCourses;
  100.         this.grades=grades;
  101.         this.tuitionRate=tuitionRate;
  102.     }
  103.     public String getName()
  104.     {
  105.         return super.firstName+" "+super.lastName;
  106.     }
  107.     public String getID()
  108.     {
  109.         return id;
  110.     }
  111.     public boolean isTuitionPaid()
  112.     {
  113.         return isTuitionPaid;
  114.     }
  115.     public double getTuitionRate()
  116.     {
  117.         return tuitionRate;
  118.     }
  119.     public int getNumberOfCourses()
  120.     {
  121.         return numberOfCourses;
  122.     }
  123.    
  124.     public void setFirstName(String p)
  125.     {
  126.         super.firstName=p;
  127.     }
  128.     public void setLastName(String p)
  129.     {
  130.         super.lastName=p;
  131.     }
  132.     public static void setTuitionRate(double p)
  133.     {
  134.         tuitionRate=p;
  135.     }
  136.     public void setID(String p)
  137.     {
  138.         id=p;
  139.     }
  140.     public void setTuitionPaid(boolean p)
  141.     {
  142.         isTuitionPaid=p;
  143.     }
  144.     public void setNumberOfCourses(int N)
  145.     {
  146.         numberOfCourses=N;
  147.     }
  148.    
  149.     public void setCoursesEnrolled(Course c[],char grades[])
  150.     {
  151.         Courses=c;
  152.         this.grades=grades;
  153.     }
  154.     public char getGrade(int i)
  155.     {
  156.         if(i>=6 || i<0) return '?';
  157.         return grades[i];
  158.     }
  159.     public Course getCourse(int i)
  160.     {
  161.         if(i>=6 || i<0) return new Course("??", "??", -1);
  162.         return Courses[i];
  163.     }
  164.     public int getHoursEnrolled()
  165.     {
  166.         int res=0;
  167.         for (Course i:Courses)
  168.             res+=(  i!=null ? i.getCredit():0    );
  169.         return res;
  170.     }
  171.     public double getGPA()
  172.     {
  173.         //TODO: calculate GPA
  174.         String g="ABCDF";
  175.         int gp[]=new int[]{4,3,2,1,0};
  176.         double res=0;
  177.         for(int i=0;i<numberOfCourses;i++)
  178.             if(g.indexOf(   grades[i]    +"")>-1)
  179.             {
  180. //                System.out.println(gp[g.indexOf(grades[i]+"")]+"/"+(Courses[i].getCredit()+0.0));
  181.                 res+=(gp[g.indexOf(grades[i]+"")] );
  182.             }
  183.         res/=(0.0+getHoursEnrolled());
  184.         return res;
  185.     }
  186.     public void sortCourses()
  187.     {
  188.         Arrays.sort(Courses,new CourseComparator());
  189.     }
  190.     @Override
  191.     public String toString()
  192.     {
  193.         String res=String.format("%1$-10s \t%2$-20s \t%3$-10s \t%4$-10s \n", "Course No","Course Name","Credit","Grade");;
  194.         for(int i=0;i<numberOfCourses;i++)
  195.             res+=String.format("%1$-10s \t%2$-20s \t%3$-10s \t%4$-10s \n", Courses[i].getId(),Courses[i].getName(),Courses[i].getCredit(),(isTuitionPaid ? grades[i]:"***"));
  196.         return "Student Name:"+super.firstName+" "+super.lastName+"\n"+
  197.                "Student ID:"+id+"\n"+
  198.                 "Number Of Courses:"+numberOfCourses+"\n\n"+res+"\n"+
  199.                 "Total number of credit hours:"+this.getHoursEnrolled()+"\n"+
  200.                 "Midsemester GPA:"+getGPA()+"\n"+(isTuitionPaid ? "":"Grades are Being held for not paying the tuition Amount Due:$5865.0\n");
  201.        
  202.     }
  203. }
  204.  
  205. class GradeRepotProgram
  206. {
  207.     public static void getStudentData(Scanner inpFile, Student studentList[],double tuitionRate) throws Exception
  208.     {
  209.        int M;
  210.        inpFile.nextLine();
  211.        String tmp[],tmp2[];
  212.        for(int i=0;i<studentList.length;i++)
  213.        {
  214.            tmp=inpFile.nextLine().split(" ");
  215.            M=Integer.parseInt(tmp[4]);
  216.            Course c[]=new Course[M];
  217.            char g[]=new char[M];
  218.            for(int j=0;j<M;j++)
  219.            {
  220.                tmp2=inpFile.nextLine().split(" ");
  221.                c[j]=new Course(tmp2[0],tmp2[1], Integer.parseInt(tmp2[2]));
  222.                g[j]=tmp2[3].charAt(0); //grade
  223.            }
  224.            
  225.            studentList[i].setInfo(tmp[0], tmp[1],tmp[2], M,  tmp[3].indexOf("Y")>-1 , c, g);
  226.        }
  227.     }
  228.     public static void printGradeReport(PrintWriter outpFile, Student studentList[])
  229.     {
  230.         for(Student i:studentList)
  231.             outpFile.println(i+"\n*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-");
  232.         outpFile.close();
  233.     }
  234. }
  235. public class JavaS6Project1 {
  236.     private Student[] studentList;
  237.     private int noOfStudents;
  238.     private double tuitionRate;
  239.     Scanner inFile;
  240.     PrintWriter outFile;
  241.    
  242.    
  243.     public static void main(String[] args) throws Exception {
  244.        
  245.         Scanner inFile=new Scanner(new FileInputStream("sData.txt")) ;      
  246.         PrintWriter outFile=new PrintWriter("sDataOut.txt");
  247.         int noOfStudents=inFile.nextInt();
  248.         double tuitionRate=inFile.nextDouble();
  249.         Student[] studentList=new Student[noOfStudents];
  250.        
  251.         for(int i=0;i<noOfStudents;i++)
  252.             studentList[i]=new Student();
  253.        
  254.         GradeRepotProgram.getStudentData(inFile, studentList, tuitionRate);
  255.         GradeRepotProgram.printGradeReport(outFile, studentList);
  256.        
  257.         /* Example Test in Assignment#1:
  258. Course course1= new Course();
  259. Course course2= new Course();
  260. Course course3= new Course();
  261. Course course4= new Course();
  262. course1.setCourselnfo("ComputerSci", "CSC478", 3);
  263. course2.setCourselnfo("History", "H1S356", 3);
  264. course3.setCourselnfo("Mathematics", "MTH345",  4);
  265. course4.setCourselnfo("Physics", "PHY357 ", 3);
  266.  
  267.  
  268. Student student1=new Student();
  269. Student.setTuitionRate(70);
  270. Course [] courses={course1,course2,course3,course4};
  271. char [] cGrades={'B','A','A','B'};
  272. student1.setInfo("Ahmed", "Aly", 890238, 4, true, courses, cGrades);
  273. System.out.println(student1);
  274. // */
  275.     }
  276.  
  277. }
Advertisement
Add Comment
Please, Sign In to add comment