Zadacii
Zadacii
Zadacii
UNIVERZITETA U KRAGUJEVCU
Zadatak 1
Napisati klasu koja reprezentuje odobu. Podatke o svakoj osobi sačinjavaju ime, datum rođenja i
adresa stanovanja.
Napisati klasu koja reprezentuje đaka. Djak je osoba čiji su dodatni podaci škola koju pohađa i razred.
Napisati klasu za radnika. Radnik je osoba za koju se zna naziv firme u kojoj radi i naziv odeljenja.
Klase treba da obezbede metode za učitavanje podataka za svaki objekat klase, a takođe i metodu
toString, za štampanje podataka o objektu.
package persons;
import java.util.Scanner;
@Override
public String toString() {
return ("Name, surname : " + name + " " + surname + "\n" +
"Address : " + address + "\n" +
"Date of Birth : " + dateOfBirth + "\n");
}
}
Nasleđivanje Velibor Isailović
package persons;
import java.util.Scanner;
@Override
public String toString() {
return super.toString() +
"School : " + school + "\n" +
"Class : " + schoolClass + "\n";
}
}
package persons;
import java.util.Scanner;
@Override
public String toString() {
return super.toString() +
"Company : " + company + "\n" +
"Sector : " + sector + "\n";
}
}
Nasleđivanje Velibor Isailović
Glavna klasa
import persons.Employee;
import persons.Person;
import persons.Pupil;
import java.util.Scanner;
switch (str.charAt(0)) {
case 'O' : case 'o':
persons[i] = new Person();
persons[i].read();
break;
case 'D' : case 'd':
persons[i] = new Pupil();
persons[i].read();
break;
case 'R' : case 'r':
persons[i] = new Employee();
persons[i].read();
break;
default:
System.out.println("Greska! Ponovi unos.");
i--;
break;
}
}
Zadatak 2
Napisati apstraktnu klasu koja reprezentuje vozilo. Vozilo sadrži podatak o sopstvenoj težini. Iz klase
Vozilo izvesti klasu Teretno vozilo, koje sadrži podatak o teretu kojim je natovareno. Takođe, iz klase
vozilo izvesti klasu putničko vozilo koje sadrži podatak o prosečnoj težini putnika i ukupnom broju
putnika.
Klase treba da obezbede metode za unificiranu obradu podataka o različitim tipovima vozila.
Predvideti: inicijalizaciju, izračunavanje ukupne težine vozila, metodu za tekstualni opis vozila, metodu
koja vraća tip vozila (jednoslovnu oznaku).
Napisati program koji sa glavnog ulaza učitava podatke o određenom broju vozila a zatim štampa
podatke o vozilima koja mogu da pređu preko mosta čija se nosivost takođe učitava.
package vehicles;
package vehicles;
package vehicles;
@Override
public char type() {
return 'P';
}
@Override
public double weight() {
return super.weight() + aweragePassengerWeight * numberOfPassengers;
}
@Override
public String toString() {
return super.toString() + aweragePassengerWeight + "," + numberOfPassengers
+ ")";
}
}
Nasleđivanje Velibor Isailović
Glavna klasa
import zadatak2.Vehicle;
import zadatak2.PassengerVehicle;
import zadatak2.Truck;
import java.util.Scanner;
Zadatak 3
Napisati apstraktnu klasu koja reprezentuje predmet. Klasa Predmet sadrži podatak o specifičnoj težini
i jednoslovnu oznaku vrste predmeta.
Sfera je predmet definisan poluprečnikom (r) i jednoslovnom oznakom.
Kvadar je predmet definisan dužinama stranica (a, b, c) i jednoslovnom oznakom.
Napisati klase koje omogućavaju unificiranu obradu podataka prethodno opisanih klasa. Predvideti
inicijalizaciju zadatim parametrima, izračunavanje zapremine i težine, učitavanje podataka o
predmetima s glavnog ulaza, štampanje podataka o predmetima na glavnom izlazu. Odštampati
podatke o masama predmeta koji imaju masu veću od prosečne mase svih predmeta.
package zadatak3;
import java.util.Scanner;
package zadatak3;
import java.util.Scanner;
package zadatak3;
import java.util.Scanner;
@Override
public void read() {
super.read();
Scanner scanner = new Scanner(System.in);
System.out.println("Ucitaj stranice prizme:");
sideA = scanner.nextDouble();
sideB = scanner.nextDouble();
sideC = scanner.nextDouble();
}
@Override
public String toString() {
return super.toString() + sideA + "," + sideB + "," + sideC + "]";
}
}
Nasleđivanje Velibor Isailović
Glavna klasa
import zadatak3.Article;
import zadatak3.Prism;
import zadatak3.Sphere;
import java.util.Scanner;
switch (str.charAt(0)) {
case 'S' : case 's':
articles[i] = new Sphere();
break;
case 'P' : case 'p':
articles[i] = new Prism();
break;
default:
System.out.println("Greska! Ponovi unos.");
i--;
continue;
}
Zadatak 4
Napisati apstraktnu klasu za geometrijsku figuru u ravni. Klasa treba da obezbedi sledeće
funkcionalnosti :
• Stvaranje fugure sa težištem u zadatoj tački.
• Premeštanje figure u novu tačku i pomeranje figure za određeni pomak.
• Izračunavanje obima i površine figure.
• Učitavanje figure s glavnog ulaza.
• Štampanje figure pomoću redefinisane metode toString.
Napisati klase za trougao, kvadrat i krug koje nasleđuju apstraktnu klasu figura.
package zadatak4;
import java.util.Scanner;
public Point(){}
public Point(double x) {
this.x = x;
}
public Point(double x, double y) {
this.x = x;
this.y = y;
}
public void read() {
Scanner scanner = new Scanner(System.in);
System.out.println("Unesi koordinate (x,y):");
x = scanner.nextDouble();
y = scanner.nextDouble();
}
@Override
public String toString() {
return "(" + x + ", " + y + ")";
}
package zadatak4;
import java.util.Scanner;
public Figure() {
centerOfGravity = new Point();
}
public Figure(Point centerOfGravity) {
this.centerOfGravity = centerOfGravity;
}
public final void setCenterOfGravity(double x, double y) {
centerOfGravity.setX(x);
centerOfGravity.setY(y);
}
public final void move(double x, double y) {
centerOfGravity.setX(centerOfGravity.getX() + x);
centerOfGravity.setY(centerOfGravity.getY() + y);
}
public abstract double circumference();
public abstract double area();
public void read() {
System.out.println("Teziste: ");
centerOfGravity.read();
}
@Override
public String toString() {
return "Center of gravity: " + centerOfGravity;
}
}
package zadatak4;
import java.util.Scanner;
package zadatak4;
import java.util.Scanner;
public Triangle() {}
public Triangle(double sidesABC) {
sideA = sideB = sideC = sidesABC;
}
public Triangle(double sideA, double sidesBC) {
this.sideA = sideA;
sideB = sideC = sidesBC;
}
public Triangle(double sideA, double sideB, double sideC) {
this.sideA = sideA;
this.sideB = sideB;
this.sideC = sideC;
}
@Override
public double circumference() {
return sideA + sideB + sideC;
}
@Override
public double area() {
double s = (sideA + sideB + sideC) / 3;
return Math.sqrt(s * (s - sideA) * (s - sideB) * (s - sideC));
}
@Override
public void read() {
super.read();
Scanner scanner = new Scanner(System.in);
System.out.println("Stranice trougla (a,b,c)? :");
sideA = scanner.nextDouble();
sideB = scanner.nextDouble();
sideC = scanner.nextDouble();
}
@Override
public String toString() {
return "Trougao [" + super.toString() + ", stranica a = " + sideA +
", stranica b = " + sideB + ", stranica c = " + sideC +
", obim = " + circumference() + ", povrsina = " + area() + "]";
}
}
Nasleđivanje Velibor Isailović
package zadatak4;
import java.util.Scanner;
public Circle() {}
public Circle(double radius) { this.radius = radius; }
public Circle(double radius, Point centerOfGravity) {
super(centerOfGravity);
this.radius = radius;
}
@Override
public double circumference() {
return 2.0 * radius * Math.PI;
}
@Override
public double area() {
return radius * radius * Math.PI;
}
@Override
public void read() {
super.read();
Scanner scanner = new Scanner(System.in);
System.out.println("Poluprecnik kruga? :");
radius = scanner.nextDouble();
}
@Override
public String toString() {
return "Krug [" + super.toString() + ", radius = " + radius +
", obim = " + circumference() + ", povrsina = " + area() + "]";
}
}
Nasleđivanje Velibor Isailović
Glavna klasa
import zadatak4.*;
import java.util.Scanner;
switch (str.charAt(0)) {
case 'T' : case 't':
figures[i] = new Triangle();
break;
case 'K' : case 'k':
figures[i] = new Square();
break;
case 'C' : case 'c':
figures[i] = new Circle();
break;
default:
System.out.println("Greska! Ponovi unos.");
i--;
continue;
}
Zadatak 5
Napisati klasu Vektor u programskom jeziku Java.
Klasa Vektor je predstavljena komponentama x, y, z koje predstavljaju projekcije vektora na ose
Dekartovog koordinatnog sistema. Klasa treba da obezbedi inicijalizaciju komponenata, izračunavanje
intenziteta vektora, zbir dva vektora, proizvod vektora i skalara, i tekstualni opis klase.
Klasa Brzina je izvedena iz klase Vektor. U klasi Brzina treba redefinisati metodu toString, koja će
štampati tekstualni opis klase u formatu V(x,y,z).
Klasa Materijalna tačka predstavlja pokretnu tačku u prostoru. Sadrži podatke vektor položaja, brzina
i ubrzanje. Tačke se mogu kretati u prostoru pravolinijski, zadatom konstantnom brzinom i
konstantnim ubrzanjem. Materijalna tačka sadrži automatski generisan identifikacioni broj.
U glavnoj klasi napraviti glavnu metodu i u njoj učitati podatke o nekoliko tačaka, zajedno sa podacima
o njihovoj pojedinačnoj brzini i ubrzanju. Štampati podatke o položaju tačke najbliže koordinatnom
početku posle intervala od 1, 2, 3 , 4 i 5 sekundi.
package zadatak5;
public Vector() {}
public Vector(double x, double y, double z) {
this.x = x;
this.y = y;
this.z = z;
}
public double intensity() {
return Math.sqrt(Math.pow(x,2) + Math.pow(y,2) + Math.pow(z,2));
}
Vector add(Vector other) {
return new Vector(x + other.x, y + other.y, z + other.z);
}
Vector multiply(double coefficient) {
return new Vector(x * coefficient, y * coefficient, z * coefficient);
}
public double distance(Vector other) {
double dist = Math.sqrt(Math.pow(this.x - other.x, 2) + Math.pow(this.y -
other.y, 2) + Math.pow(this.z - other.z, 2));
return dist;
}
@Override
public String toString() {
return "(" + x + ", "+ y + ", "+ z + ")";
}
}
Nasleđivanje Velibor Isailović
package zadatak5;
package zadatak5;
package zadatak5;
public MaterialPoint() {
radiusVector = new Vector();
velocity = new Velocity();
acceleration = new Acceleration();
@Override
public String toString() {
return "Materijalna tacka " + ID + radiusVector;
}
}
Nasleđivanje Velibor Isailović
Glavna klasa
import zadatak5.*;
import java.util.Scanner;