Add OOP/Java/Assignments/FISAC/Q2.java
This commit is contained in:
		
							parent
							
								
									adb5985077
								
							
						
					
					
						commit
						1f8964b3fd
					
				
					 1 changed files with 123 additions and 0 deletions
				
			
		
							
								
								
									
										123
									
								
								OOP/Java/Assignments/FISAC/Q2.java
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										123
									
								
								OOP/Java/Assignments/FISAC/Q2.java
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,123 @@
 | 
			
		|||
import java.text.*;
 | 
			
		||||
import java.util.*;
 | 
			
		||||
 | 
			
		||||
interface F {
 | 
			
		||||
    void srt(int n);
 | 
			
		||||
    void srt_d(String d);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class InvEx extends Exception {
 | 
			
		||||
    public InvEx(String m) {
 | 
			
		||||
        super(m);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class S implements Comparable<S> {
 | 
			
		||||
    String n;
 | 
			
		||||
    int r;
 | 
			
		||||
    String reg;
 | 
			
		||||
    String br;
 | 
			
		||||
 | 
			
		||||
    public S(String n, int r, String br) {
 | 
			
		||||
        this.n = n;
 | 
			
		||||
        this.r = r;
 | 
			
		||||
        this.br = br;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public int compareTo(S o) {
 | 
			
		||||
        return Integer.compare(this.r, o.r);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public String toString() {
 | 
			
		||||
        return "S{n='" + n + "', r=" + r + ", reg='" + reg + "', br='" + br + "'}";
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class Fcl implements Comparable<Fcl> {
 | 
			
		||||
    String n;
 | 
			
		||||
    String d;
 | 
			
		||||
    String dept;
 | 
			
		||||
    String emp;
 | 
			
		||||
 | 
			
		||||
    public Fcl(String n, String d, String dept) throws InvEx {
 | 
			
		||||
        if (!d.matches("\\d{2}-[a-zA-Z]{3}-\\d{4}") && !d.matches("\\d{2}-\\d{2}-\\d{4}")) {
 | 
			
		||||
            throw new InvEx("Invalid date format");
 | 
			
		||||
        }
 | 
			
		||||
        this.n = n;
 | 
			
		||||
        this.d = d;
 | 
			
		||||
        this.dept = dept;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public int compareTo(Fcl o) {
 | 
			
		||||
        try {
 | 
			
		||||
            SimpleDateFormat f = new SimpleDateFormat("dd-MM-yyyy");
 | 
			
		||||
            return f.parse(this.d).compareTo(f.parse(o.d));
 | 
			
		||||
        } catch (ParseException e) {
 | 
			
		||||
            throw new RuntimeException(e);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public String toString() {
 | 
			
		||||
        return "Fcl{n='" + n + "', d='" + d + "', dept='" + dept + "', emp='" + emp + "'}";
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
public class M implements F {
 | 
			
		||||
    List<S> sts = new ArrayList<>();
 | 
			
		||||
    List<Fcl> fcls = new ArrayList<>();
 | 
			
		||||
 | 
			
		||||
    public static void main(String[] a) {
 | 
			
		||||
        M m = new M();
 | 
			
		||||
 | 
			
		||||
        m.sts.add(new S("A", 2, "CCE"));
 | 
			
		||||
        m.sts.add(new S("B", 1, "IT"));
 | 
			
		||||
        m.sts.add(new S("C", 3, "CCE"));
 | 
			
		||||
 | 
			
		||||
        try {
 | 
			
		||||
            m.fcls.add(new Fcl("S", "15-Mar-2002", "ICT"));
 | 
			
		||||
            m.fcls.add(new Fcl("J", "20-03-2002", "ECE"));
 | 
			
		||||
            m.fcls.add(new Fcl("J2", "10-Feb-2002", "ICT"));
 | 
			
		||||
        } catch (InvEx e) {
 | 
			
		||||
            System.out.println(e.getMessage());
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        m.srt(0);
 | 
			
		||||
        m.srt_d("");
 | 
			
		||||
 | 
			
		||||
        for (S s : m.sts) {
 | 
			
		||||
            System.out.println(s);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        for (Fcl f : m.fcls) {
 | 
			
		||||
            System.out.println(f);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void srt(int n) {
 | 
			
		||||
        Collections.sort(sts);
 | 
			
		||||
        Map<String, Integer> brCnt = new HashMap<>();
 | 
			
		||||
 | 
			
		||||
        for (S s : sts) {
 | 
			
		||||
            brCnt.putIfAbsent(s.br, 1);
 | 
			
		||||
            s.reg = "2022" + s.br + String.format("%03d", brCnt.get(s.br));
 | 
			
		||||
            brCnt.put(s.br, brCnt.get(s.br) + 1);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void srt_d(String d) {
 | 
			
		||||
        Collections.sort(fcls);
 | 
			
		||||
        Map<String, Integer> deptCnt = new HashMap<>();
 | 
			
		||||
 | 
			
		||||
        for (Fcl f : fcls) {
 | 
			
		||||
            deptCnt.putIfAbsent(f.dept, 1);
 | 
			
		||||
            f.emp = "MAHE" + f.dept + String.format("%03d", deptCnt.get(f.dept));
 | 
			
		||||
            deptCnt.put(f.dept, deptCnt.get(f.dept) + 1);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue