Zajęcia 1. Programowanie zaawansowane
Temat: Tworzenie klas i obiektów. Dziedziczenie
Zad. 1 - Zapoznanie ze środowiskiem pracy, tryb konsolowy
Uruchom konsolę - Start->Uruchom->cmd. W nowym katalogu zapisz w pliku poniższy program, który wypisze komunikat powitalny: Hej:
import java.io.*;
class hej
{
public static void main(String args[])
{
System.out.println("Hej");
}
}
Skompiluj program za pomocą polecenia:
javac hej.java
i uruchom program za pomocą:
java hej
Zad.1.a. Napisz program, który wypisze Twoje imię i nazwisko na środku ekranu.
Zad.1.b. J.w. ale otoczone gwiazdkami.
Zad.2 - Praca z prostymi obiektami. To zadanie ilustruje kompozycję, czyli wykorzystanie jednego obiektu w innym.
Napisz program, który wprowadzi i wypisze podstawowe dane o wczytanej osobie.
Co potrzebne z teorii: budowa klasy: właściwości, metody, konstruktory, tworzenie obiektów, wywoływanie metod.
import java.io.*;
class osoba
{
String nazwisko;
int wiek;
float brutto;
osoba (String nazwisko, int wiek, float brutto)
{
this.nazwisko=nazwisko;
this.wiek=wiek;
this.brutto=brutto;
}
void wypisz()
{
System.out.println(nazwisko+wiek+brutto);
}
}
public class ludzie
{
public static String czytaj_wiersz()
{
byte [] cbuf=new byte[50];
String x=new String("");
try
{ /* proba czytania */
int m= System.in.read( cbuf) ;
for (int j=0;j<m;j=j+1)
if ((char)cbuf[j]!='\r' && (char)cbuf[j]!='\n')
x=x+(char)cbuf[j];
}
catch (IOException e) {} ;
return x;
};
public static void main(String args[])
{
System.out.println("Podaj nazwisko");
String nazwisko=czytaj_wiersz();
System.out.println("Podaj wiek");
int wiek=Integer.valueOf(czytaj_wiersz()).intValue();
System.out.println("Podaj brutto");
float brutto=new Float(czytaj_wiersz()).floatValue();
osoba x=new osoba(nazwisko, wiek, brutto);
x.wypisz();
}
}
Zad.2a. Popraw interfejs programu
Zad.2b. Wczytaj dane dwu osób i wypisz tej, która jest starsza
Zad.3. Praca z prostymi obiektami.
Napisz program, który umożliwi wprowadzenie wybranych danych dla studenta w dziekanacie.
To zadanie ilustruje dziedziczenie (Uwaga: konstruktory nie są dziedziczone). Uwaga na metody wypisz() i wypisz1().
import java.io.*;
class ludzie
{
String nazwisko;
int wiek;
ludzie()
{
this.nazwisko="";
this.wiek=-1;
}
ludzie(String nazwisko, int wiek)
{
this.nazwisko=nazwisko;
this.wiek=wiek;
}
void wypisz()
{
//kod samodzielnie
System.out.println("dane ????");
}
void wypisz1()
{
//kod samodzielnie
System.out.println("dane $$$$$");
}
}
class student extends ludzie
{
String kierunek;
int rok;
student()
{
super();
this.kierunek="";
this.rok=-1;
}
student(String nazwisko, int wiek, String kierunek, int rok)
{
super(nazwisko,wiek);
this.kierunek=kierunek;
this.rok=rok;
}
void wypisz()
{
//kod samodzielnie
System.out.println("dane *****");
}
}
class dziekanat
{
public static void main(String args[])
{
student a=new student("Abacki",20,"informatyka",3);
student b=new student();
System.out.println(a.nazwisko+a.wiek+a.kierunek+a.rok);
System.out.println();
System.out.println(b.nazwisko+b.wiek+b.kierunek+b.rok);
a.wypisz();
a.wypisz1();
}
}
Zad.3a. do klasy ludzie dodaj adres, a do klasy student oceny z programowania, baz danych i grafiki. Dodaj także metodę obliczania średniej. Wprowadź dane z klawiatury i policz średnią.
Zad. 4. Tablice obiektów. Napisz program, który umożliwia wprowadzenie informacji o nazwisku i wieku dla kilku osób.
class osoba
{
String nazwisko;
int wiek;
osoba()
{
this.nazwisko="";
this.wiek=-1;
}
osoba(String nazwisko, int wiek)
{
this.nazwisko=nazwisko;
this.wiek=wiek;
}
void wypisz()
{
System.out.println(nazwisko+wiek);
}
}
class tablice
{
public static void main(String args[])
{
osoba [] a=new osoba[10];
a[0]=new osoba("Abacki", 12);
a[1]=new osoba("Babacki",13);
for (int i=0;i<2;i++)
System.out.println(a[i].nazwisko+a[i].wiek);
}
}
Zad. 4a. Dana jest lista studentów (nazwisko, rok, oceny z grafiki, programwania, baz, sieci.. Napisz program, który umożliwi wprowadzenie danych, znajdzie studenta o największej średniej, wypisze studentów mających średnią powyżej średniej, najlepszych z programownaia.