Advertisement
Demetra4

Untitled

Oct 20th, 2019
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.72 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.FileInputStream;
  3. import java.io.InputStreamReader;
  4. import java.io.*;
  5.  
  6.  
  7. //PRIMA CLASA
  8. class Curs{
  9.  
  10.     private String denumire;
  11.     private int id ;
  12.     private int cod;
  13.     private int credite;
  14.    
  15.    
  16.     public Curs(String d , int id , int cod , int credite) {
  17.         this.denumire=d;//Se poate scrie si fara this
  18.         this.id=id;
  19.         this.cod=cod;
  20.         this.credite=credite;
  21.     }
  22.    
  23.    
  24.     public boolean equals(Object o) {
  25.         if(o instanceof Curs) {
  26.              // aici se verifica daca "o" este obiect de tip Curs
  27.             Curs c=(Curs)o; //!!
  28.             return this.cod==c.cod;
  29.         }
  30.         else return false;
  31.     }
  32.    
  33.     public int getId() {
  34.         return id;
  35.     }
  36.    
  37.     public int getCredite() {
  38.        
  39.     return credite;
  40.     }
  41.    
  42.     public String toString() { //Grija la semnatura
  43.         return "Id:" +id +"Denumire:" + denumire +"Credite:" + credite;
  44.        
  45.     }
  46. }
  47.  
  48. // A DOUA CLASA
  49.     class Curicula{
  50.        
  51.         public Curicula() {
  52.        
  53.         }
  54.        
  55.         private  Curs[] continut=new Curs[10]; // ne permitem sa spunem cate elemente va avea tabloul
  56.         private int count=0; // contor care se modifica odata cu crearea unui obiect de tip Curs
  57.         // pentru fiecare obiect creat intrarea este null
  58.        
  59.        
  60.        
  61.         public void add(Curs c) {
  62.            
  63.             if(count ==continut.length)
  64.             {  // facem realocare
  65.                
  66.                 //daca ajungem la limita tabloului facem realocare pentru noi elemente
  67.                
  68.                 Curs[] aux=continut;
  69.                 continut=new Curs[count*2];
  70.                 //sa nu realocam  memorie doar pentru un element, optim este sa facem *2
  71.                
  72.                 for(int i=0;i<count;i++)
  73.                     continut[i]=aux[i];
  74.             }
  75.        
  76.             continut[count]=c;
  77.             count++;
  78.        /*DE CE NU SE PUNE STATIC LA COUNT ???
  79.         PENTRU CA IN CURICULA AVEM UN TABLOU ,ACESTA CONTINE MAI MULTE CURSURI
  80.          CAND AM UN PRIVATE COUNT POT CREA ORICATE VREAU
  81.          DACA  COUNT AR FI STATIC SI TABLOUL REFEREA UN SINGUR CURS, ATUNCI COUNT AR FI 1, DAR DACA AM MAI AVEA O CURICULA,
  82.           ATUNCI NR DE CURSURI DIN NOUA CURICULA AR FI ECHIVALENT  CU CEL DIN PRIMUL PENTRU CA  
  83.          STATIC SE MODIFICA PENTRU TOATE OBIECTELE DIN CLASA
  84.         */
  85.         }
  86.         public String toString() {
  87.                 String res="";
  88.                 for(int i=0;i<count;i++) {
  89.                     res=res+continut[i] +"\n";
  90.                 }
  91.                     return res;
  92.                    
  93.             }
  94.        
  95.         public Curs cauta(int id) {
  96.             for(int i=0;i<count;i++) {
  97.                 if(continut[i].getId()==id)
  98.                     return continut[i];    
  99.          
  100.             }
  101.             return null;
  102.         }
  103.    
  104.    
  105.         public static Curicula load(String path) {
  106.         Curicula res=new Curicula();
  107.        
  108.         try {
  109.        
  110.             BufferedReader br= new BufferedReader(new InputStreamReader(new FileInputStream(path)));
  111.             String line;
  112.             while((line=br.readLine())!=null) {
  113.                 int id=Integer.parseInt(line);
  114.                 line=br.readLine();
  115.                 if(line==null) {
  116.                     System.out.println("Denumire lipsa pt cursul cu id-ul" +id);
  117.                     break;
  118.                 }
  119.                 String denumire=line;
  120.                 line=br.readLine();
  121.                 if(line==null) break;
  122.                 int cod=Integer.parseInt(line);
  123.                 line=br.readLine();
  124.                 if(line==null) break;
  125.                 int credite=Integer.parseInt(line);
  126.                 res.add(new Curs(denumire,id,cod,credite));
  127.                     }
  128.             }
  129.             catch(Exception e) {
  130.             System.out.println(e);
  131.             }
  132.             return res;
  133.        
  134.     }
  135.    
  136.     }
  137.    
  138.     //A TREIA CLASA
  139.     class Student{
  140.        
  141.         private Curs[] cursuri = new Curs[10];
  142.         private String nume;
  143.         private int count;
  144.         private int[] note =new int[10];
  145.        
  146.        
  147.         public Student(String n) {
  148.            
  149.             this.nume=n;
  150.             }
  151.  
  152.         public String toString() {
  153.            
  154.             String res=nume;
  155.             for(int i=0;i<count;i++) {
  156.            
  157.             res+=cursuri[i].toString() + " "+ note[i] + "\n";
  158.             res+="Credite:" + this.getCredite() + "\n";
  159.            
  160.             return res;
  161.             }
  162.            
  163.         }
  164.        
  165.         public int getCredite(){
  166.             int sum=0;
  167.             for(int i=0;i<count;i++) {
  168.                 sum+=cursuri[i].getCredite();
  169.             }
  170.              return sum;
  171.         }
  172.         public void inregistreaza(Curs c , int n ) {
  173.             //se verifica
  174.             if(n <= 4 || n>10)
  175.                 return;  // de ce nu  
  176.             for(int i=0;i<count;i++) {
  177.                 if(cursuri[i].equals(c)) {
  178.                     if(note[i]<n)
  179.                         note[i]=n;
  180.                     return ;
  181.                 }
  182.             }
  183.             if(count==cursuri.length) {
  184.                 Curs[] aux=cursuri;
  185.                 cursuri=new Curs[count*2];
  186.                 int[] aux1 =note;
  187.                 note=new int[count *2];
  188.                 for(int i=0; i<count; i++) {
  189.                     cursuri[i]=aux[i];
  190.                     note[i]=aux1[i];
  191.                 }
  192.             }
  193.             cursuri[count]=c;
  194.             note[count]=n;
  195.             count++;
  196.         }
  197.     }
  198.    
  199.     // A PATRA CLASA
  200.     public class Studenti {
  201.  
  202.         public static void main(String[] args) {
  203.            
  204.            
  205.             Curs c1=new Curs("POO", 1 , 13 , 5);
  206.             Curs c2=new Curs("POO-En",2 , 13 , 6 );
  207.             System.out.println(c1);
  208.             System.out.println(c2);
  209.             Curicula c=new Curicula();
  210.             c.add(c1);
  211.             c.add(c2);
  212.             System.out.println(c);
  213.             System.out.println(c.cauta(2));
  214.             Curicula x= Curicula.load("curicula.txt");
  215.            
  216.  
  217.         }
  218.  
  219.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement