Palautettava tehtävä 1
Tee ohjelma, joka kysyy työntekijän tuntipalkan ja työtunnit ma-pe. Sitten ohjelma laskee työviikon palkan. Lisää ohjelmaan ylityökorvaus: 9. ja 10. tunti 50%, siitä eteenpäin 100%. Yläraja 16 h.
Viikonpäivien työtunnit, palkka ja viikon kokonaispalkka kirjoitetaan tekstitiedostoon palkkalaskelma.html.
Html-tiedostossa tulee olla standardin mukaiset aloitus- ja lopetustagit (<html><head></head><body>, loppuun </body></html>). Otsikoksi tulee Palkkalaskelma. Seuraavalla riville tulostetaan tuntipalkka. Seuraavalle riville tulostetaan tekstit Viikonpäivä, tunnit ja palkka. Seuraaville riveille tulostetaan päivät, tunnit ja palkat. Viimeiselle riville tulostetaan teksti Yhteensä ja tunnit ja palkka yhteensä. Esimerkki.
Pisteet: toimiva ohjelma 1, silmukoiden ja taulukoiden käyttö 2, ylityöt 3. Tiedoston kirjoitus 6.
import java.io.*;
public class TiedostonKirjoitus {
public static void main(String[] args) {
int luku = 42;
System.out.print("Luon tiedoston");
FileWriter filew = null;
try {
filew = new FileWriter("tiedosto.txt"); // luodaan tiedosto
} catch ( IOException ex ) {
System.out.println("Virhe tiedoston luonnissa");
}
BufferedWriter buffw = new BufferedWriter(filew); // luodaan kirjoitusolio
try {
buffw.write("Moi siellä!"); // kirjoitetaan tiedostoon
buffw.newLine(); //rivinvaihto
buffw.write("Luku on "+ luku ); // kirjoitetaan tiedostoon
buffw.close(); // suljetaan tiedosto
} catch ( IOException ex ) {
System.out.print("Virhe tiedostoon kirjoitettaessa");
}
}
}
Palautettava tehtävä 2
Tee ohjelma, joka kysyy tekstitiedoston nimen ja tulostaa sen näytölle. Jos tiedostoa ei löydy, tulostuu virheilmoitus. Etsi esimerkki verkosta hakusanalla FileReader.
Kurssin sisältö
Java-kielen määrittelyt, lauseet, lausekkeet, luokat, periytyminen, pakkaukset, rajapintaluokat, appletit, tapahtumankäsittely, komponentit, poikkeustenkäsittely sekä käyttöliittymän ja tietokantaliittymän ohjelmointi.
D09 Harjoitusprojektit
Lisää syöttötiedon tarkistus.
1) Tee appletti, joka kysyy suorakulmion pituuden ja leveyden ja piirtää sen piirtoalueen keskelle.
2) Tee appletti, joka kysyy painon ja pituuden, laskee ja tulostaa painoindeksin ja piirtää sen pylväänä normaaliviivaan nähden. Painoindeksi lasketaan kaavalla massa / pituus /pituus. Pituus ilmoitetaan metreinä, desimaalimerkki on piste. Muuttujat x, y, ja z täytyy muuttaa double-tyyppisiksi. Tulosta painoindeksi nimiöön (label). Toteuta if-rakeenteella toiseen nimiöön, onko esimerkkihenkilö yli-, ali-, vai normaalipainoinen.
3) Tee appletti, joka vastaa toiminnaltaan katetuottotaulukkoa. Aiheeseen liittyvät kaavat. Toteuta laskenta ja grafiikka omilla luokilla.
4) Tee appletti, joka vastaa toiminnaltaan lainataulukkoa. Aiheeseen liittyvät kaavat. Toteuta laskenta, tulostus ja grafiikka omilla luokilla. Tee eri painikkeet annuiteetille ja tasalyhenteiselle lainalle
5) Tee editori. Lisää runkoon Leikkaa, Kopioi ja Liitä-painikkeet. Katso mallia esimerkistä 36.. Lisää tekstikenttä tiedostonimeä varten ja lisää painikkeet Avaa ja Tallenna. Katso mallia esimerkistä.
6) Lisää tai muuta editorin komennot valikkoon.
7) Muuta ohjelma niin, että se käyttää tiedoston avaamiseen ja tallentamiseen FileDialog -luokkaa.
8) Tee editori, joka käyttää Swing -luokkaa. Käytä painikkeiden tilalla valikkokomentoja. Aloita luomalla uusi JFC-sovellus. Swing -luokasta löytyy tietoa.
9) Tee ohjelma, joka käyttää tietokantaa ODBC-JDBC -rajapinnan kautta. Ohjelma voi olla konsolipohjainen ja SQL-komennoksi riittää "SELECT * FROM TAULU".
Kirjoitus tiedostoon
Itsenäisen ohjelman runko
import java.awt.*;import java.awt.event.*;
import java.io.*;
public class Sovellusrunko {
public static void main(String[] args) {
Lomake Sovellus = new Lomake("Lomake"); }
}
class Lomake extends Frame implements ActionListener, WindowListener {
TextArea alue;
Button uusi;
Lomake(String otsikko) { super(otsikko); setSize(400,300); setLayout(new FlowLayout());
add(uusi = new Button("Uusi"));
add(alue = new TextArea(10,40));
uusi.addActionListener(this); addWindowListener(this);
setVisible(true);
}
public void windowClosing(WindowEvent e) { System.exit(0); }
public void windowClosed(WindowEvent e) {}
public void windowDeiconified(WindowEvent e) {}
public void windowIconified(WindowEvent e) {}
public void windowActivated(WindowEvent e) {}
public void windowDeactivated(WindowEvent e) {}
public void windowOpened(WindowEvent e) {}
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("Uusi")) {
alue.selectAll(); alue.replaceText("",alue.getSelectionStart(),alue.getSelectionEnd());
}
}
}
Yksinkertainen käyttöliittymäesimerkki
import java.applet.*; // Applettiluokat
import java.awt.*; // Painikkeet, tekstikentät ym.
import java.awt.event.*; // Tapahtumien käsittely
public class Kayttoliittyma extends Applet implements ActionListener {
TextField tx, ty; // Määritellään oliot ja muuttujat
Label lz;
Button blaske;
int x, y, z;
public void init () { // Appletin alustus
add(tx = new TextField()); // Olioiden luonti
add(ty = new TextField());
add(lz = new Label(""));
add(blaske = new Button("Laske"));
x = 0; y = 0; z = 0; // Muuttujien alustus
blaske.addActionListener(this); // Kuuntelija painikkeelle laske
}
public void paint(Graphics g) { // Piirtoalusta
tx.reshape(20, 20, 100, 20); // Olioiden paikka ja koko
ty.reshape(20, 40, 100, 20);
lz.reshape(20, 60, 100, 20);
blaske.reshape(20, 100, 60, 40);
g.setColor(Color.red); // Suorakulmioiden väri ja piirto
g.fillRect(200, 300-x, 50, x);
g.setColor(Color.green);
g.fillRect(300, 300-y, 50, y);
g.setColor(Color.blue);
g.fillRect(400, 300-z, 50, z);
}
public void actionPerformed(ActionEvent e) { // Tapahtumankäsittelijä
if (e.getActionCommand().equals("Laske")){ // Jos painiketta laske painettu:
x=Integer.valueOf(tx.getText()); // Tekstien muunnos ja sijoitus
y=Integer.valueOf(ty.getText()); // muuttujiin x ja y
z=x+y; // Summa
lz.setText(String.valueOf(z)); // Summan muunnos ja sijoitus nimiöön tz
repaint(); // Piirtoalustan päivitys
}
}
}
D06 rästitehtävät
1) Tee appletti, joka kysyy painon ja pituuden, laskee ja tulostaa painoindeksin ja piirtää sen pylväänä.
Muutettu 20.4.09: Painoindeksi lasketaan kaavalla massa / pituus /pituus. Pituus ilmoitetaan metreinä, desimaalimerkki on piste. Muuttujat x, y, ja z täytyy muuttaa double-tyyppisiksi. Katso mallia alla olevasta yksinkertaisesta käyttöliittymäesimerkistä. Ota mukaan vain tarvittavat koodirivit. Lue paino ja pituus tekstikenttiin ja lisää kaava tapahtumankäsittelijään. Tulosta painoindeksi nimiöön (label). Pylvään piirron sijasta toteuta if-rakeenteella toiseen nimiöön, onko esimerkkihenkilö yli-, ali-, vai normaalipainoinen.
Tehtävä 1 on pakollinen.
1) Tee appletti, joka vastaa toiminnaltaan katetuottotaulukkoa. Aiheeseen liittyvät kaavat.
2) Tee appletti, joka vastaa toiminnaltaan lainataulukkoa. Aiheeseen liittyvät kaavat.
3) Tee appletti, joka käyttää säikeitä. Aihe esimerkiksi liikennevalojen simulointi. Käytä ulkoisia luokkia.
4) Dokumentoi harjoitukset 1-3.