yoga1290

Assignment#1,2

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