Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.FileInputStream;
- import java.io.InputStreamReader;
- import java.io.*;
- //PRIMA CLASA
- class Curs{
- private String denumire;
- private int id ;
- private int cod;
- private int credite;
- public Curs(String d , int id , int cod , int credite) {
- this.denumire=d;//Se poate scrie si fara this
- this.id=id;
- this.cod=cod;
- this.credite=credite;
- }
- public boolean equals(Object o) {
- if(o instanceof Curs) {
- // aici se verifica daca "o" este obiect de tip Curs
- Curs c=(Curs)o; //!!
- return this.cod==c.cod;
- }
- else return false;
- }
- public int getId() {
- return id;
- }
- public int getCredite() {
- return credite;
- }
- public String toString() { //Grija la semnatura
- return "Id:" +id +"Denumire:" + denumire +"Credite:" + credite;
- }
- }
- // A DOUA CLASA
- class Curicula{
- public Curicula() {
- }
- private Curs[] continut=new Curs[10]; // ne permitem sa spunem cate elemente va avea tabloul
- private int count=0; // contor care se modifica odata cu crearea unui obiect de tip Curs
- // pentru fiecare obiect creat intrarea este null
- public void add(Curs c) {
- if(count ==continut.length)
- { // facem realocare
- //daca ajungem la limita tabloului facem realocare pentru noi elemente
- Curs[] aux=continut;
- continut=new Curs[count*2];
- //sa nu realocam memorie doar pentru un element, optim este sa facem *2
- for(int i=0;i<count;i++)
- continut[i]=aux[i];
- }
- continut[count]=c;
- count++;
- /*DE CE NU SE PUNE STATIC LA COUNT ???
- PENTRU CA IN CURICULA AVEM UN TABLOU ,ACESTA CONTINE MAI MULTE CURSURI
- CAND AM UN PRIVATE COUNT POT CREA ORICATE VREAU
- DACA COUNT AR FI STATIC SI TABLOUL REFEREA UN SINGUR CURS, ATUNCI COUNT AR FI 1, DAR DACA AM MAI AVEA O CURICULA,
- ATUNCI NR DE CURSURI DIN NOUA CURICULA AR FI ECHIVALENT CU CEL DIN PRIMUL PENTRU CA
- STATIC SE MODIFICA PENTRU TOATE OBIECTELE DIN CLASA
- */
- }
- public String toString() {
- String res="";
- for(int i=0;i<count;i++) {
- res=res+continut[i] +"\n";
- }
- return res;
- }
- public Curs cauta(int id) {
- for(int i=0;i<count;i++) {
- if(continut[i].getId()==id)
- return continut[i];
- }
- return null;
- }
- public static Curicula load(String path) {
- Curicula res=new Curicula();
- try {
- BufferedReader br= new BufferedReader(new InputStreamReader(new FileInputStream(path)));
- String line;
- while((line=br.readLine())!=null) {
- int id=Integer.parseInt(line);
- line=br.readLine();
- if(line==null) {
- System.out.println("Denumire lipsa pt cursul cu id-ul" +id);
- break;
- }
- String denumire=line;
- line=br.readLine();
- if(line==null) break;
- int cod=Integer.parseInt(line);
- line=br.readLine();
- if(line==null) break;
- int credite=Integer.parseInt(line);
- res.add(new Curs(denumire,id,cod,credite));
- }
- }
- catch(Exception e) {
- System.out.println(e);
- }
- return res;
- }
- }
- //A TREIA CLASA
- class Student{
- private Curs[] cursuri = new Curs[10];
- private String nume;
- private int count;
- private int[] note =new int[10];
- public Student(String n) {
- this.nume=n;
- }
- public String toString() {
- String res=nume;
- for(int i=0;i<count;i++) {
- res+=cursuri[i].toString() + " "+ note[i] + "\n";
- res+="Credite:" + this.getCredite() + "\n";
- return res;
- }
- }
- public int getCredite(){
- int sum=0;
- for(int i=0;i<count;i++) {
- sum+=cursuri[i].getCredite();
- }
- return sum;
- }
- public void inregistreaza(Curs c , int n ) {
- //se verifica
- if(n <= 4 || n>10)
- return; // de ce nu
- for(int i=0;i<count;i++) {
- if(cursuri[i].equals(c)) {
- if(note[i]<n)
- note[i]=n;
- return ;
- }
- }
- if(count==cursuri.length) {
- Curs[] aux=cursuri;
- cursuri=new Curs[count*2];
- int[] aux1 =note;
- note=new int[count *2];
- for(int i=0; i<count; i++) {
- cursuri[i]=aux[i];
- note[i]=aux1[i];
- }
- }
- cursuri[count]=c;
- note[count]=n;
- count++;
- }
- }
- // A PATRA CLASA
- public class Studenti {
- public static void main(String[] args) {
- Curs c1=new Curs("POO", 1 , 13 , 5);
- Curs c2=new Curs("POO-En",2 , 13 , 6 );
- System.out.println(c1);
- System.out.println(c2);
- Curicula c=new Curicula();
- c.add(c1);
- c.add(c2);
- System.out.println(c);
- System.out.println(c.cauta(2));
- Curicula x= Curicula.load("curicula.txt");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement