Eksamens spørgsmål i Java HTML - DataBase 3. Semester (i)



Relaterede dokumenter
Databaseadgang fra Java

PHP Snippets. De små korte. Skrevet af Daniel Pedersen

Eksempel på en database: studenter, kurser, eksamener

Kursus i OOP og Java. Kursus i Objektorienteret programmering i Java

Grundlæggende Programmering ITU, Efterår Skriftlig eksamen i Grundlæggende Programmering

Programmering for begyndere Lektion 2. Opsamling mm

//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!

De vigtigste SQL-sætninger. SQL kap Oprette database. DDL og DML

Kapitel 4 Løkker i C#

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3

Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:...

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

Eksempel: Skat i år 2000

Bemærk! Et PHP script har kun brug for at forbinde én gang til databaseserveren. Det kan så sagtens udføre flere kommandoer vha. denne forbindelse.

Videregående programmering i Java

Forelæsning Uge 2 Mandag

SWC eksamens-spørgsmål. Oversigt

Interaktionsudvikling

Python programmering. Per Tøfting. MacFest

class Time { int hours, min; } } Time t1; // Erklær variabel af type Time class Time1 { public static void main(string[] args) { Time t1; t1.

Skriftlig eksamen i Datalogi

Indholdsfortegnelse If-sætningen... 3 Opgaver... 4 OR, AND sammen med if-sætningen... 5 Rand() funktion... 5 Opgave... 5 Include() funktionen...

Forelæsning Uge 2 Torsdag

Forelæsning Uge 4 Mandag

Serialization i Java

Hvad er Objekter - Programmering

Forelæsning Uge 4 Mandag

Klasser og objekter. (Afsnit i manualen)

Forelæsning Uge 2 Mandag

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi Opgave: Brev til Sigurd Lære: John Austin Side 1 af 8 Dato:

Ugeseddel 4 1. marts - 8. marts

Prepared Statements. Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC.

BRP Tal. Om computer-repræsentation og -manipulation. Logaritmer

Sproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter Abstract

Kapitel 3 Betinget logik i C#

JavaScript. nedarvning.

Programmering. Udvidet Programmering. Kurserne. Kurset: programmering i sproget Java. Lærerne: Morten Larsen og Peter Sestoft

DM507 Algoritmer og datastrukturer

Tree klassen fra sidste forelæsning

Dokumentering af umbraco artikeleksport:

Forelæsning Uge 2 Mandag

Forelæsning Uge 4 Torsdag

Bits, bit operationer, integers og floating point

En Kort Introduktion til Oracle

Civilingeniøreksamen januar Skriftelig prøve den 12. januar 2001 Kursusnummer 49104

DM507 Algoritmer og datastrukturer

Forelæsning Uge 1 Torsdag

Ratingsystem i PHP og MySQL

Forelæsning Uge 2 Mandag

Den forudsætter kendskab til C++ og lidt kendskab til SQL og MySQL C API.

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:

Forelæsning Uge 2 Torsdag

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0

Forelæsning Uge 4 Mandag

Skriftlig eksamen i Datalogi

Forelæsning Uge 3 Mandag

Forelæsning Uge 1 Torsdag

DANMARKS TEKNISKE UNIVERSITET

Reeksamen, DSDS, forår 2008

Geografisk lokalisering i JSP

Sproget Rascal (v. 2)

Exceptions i Delphi. Try except

#AlleKanKode. Lektion 2 - Konstanter og Variabler

Øvelse 9. Klasser, objekter og sql-tabeller insert code here

MS Visual Studio Basic En kort vejledning

Introduktion til programmering

// Definition af porte og funktioner

Anvendelse af metoder - Programmering

Skriftlig eksamen i Datalogi

import java.awt.event.*; import java.awt.*; Container <- Panel <- Applet Component <- Button <- Checkbox <- ScrollPane <- Label

I profil-feltet kan imastra-kunder vælge om upload skal ske ligesom filerne var indsendt til mailboksen eller

Studiepraktik. Thomas Bøgholm Mikkel Hansen Jacob Elefsen

I denne arktikle går jeg gennem Slet, Ret og Opret data i en MySQL database. der er også en lille del i den hvor den postere datanen ud i en løkke

Parameters. Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET.

Specialiseringen Rapport Lavede Af Rasmus R. Sørensen Side 1 af 6

Aritmetiske Forelæsning Pr ogrammering operatorer tir 1999 sda præcedens september 1999 Logiske Sammenligningsoperatorer operatorer præcedens

Undervisningsbeskrivelse

Programmering i C. Lektion september 2009

Kursusarbejde 3 Grundlæggende Programmering

Videregående Programmering Obligatorisk opgave - 3. semester, efterår 2004

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2

Programmering i Javascript

SAX Simple API for XML.

Opgave 1. Opret de 4 tabeller i FTSFrontend programmet. Indsæt mindst 3 forskellige tabelværdier i kunder, målerstatus, byer og regning..

Skriftlig eksamen i Datalogi

Software Construction 1 semester (SWC) Spørgsmål 1

BRUGER KURSUS RAMBØLL HJEMMESIDE

Brugervejledning til Højkvalitetsdokumentationen og Dialogforummet på Danmarks Statistiks hjemmeside

Skrevet den 18. Feb 2010 af arne_v I kategorien Programmering / Visual Basic.NET

Web Admin 5.5. Brugsvejledning for User admin. Copyright 2003 Gullestrup.net

Forelæsning Uge 3 Torsdag

HTML, PHP, SQL, webserver, hvad er hvad??

Opgaver til C# - Beregninger og udskrift til skærm

MySQL i Java. Tutorial lavet af Jákup W. Hansen TSU semester 05.januar 2007

I mit script tager jeg højde for det problem ved, at gemme et unikt tal mellem 0-9 på 6 cifre og derved vil de så blive vist som 2 online.

DM507 Algoritmer og datastrukturer

PHP Crash course. Databaser

Web Admin 5.5. Brugsvejledning for Domain admin. Copyright 2003 Gullestrup.net

Introduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach 2002

Transkript:

Eksamens spørgsmål i Java HTML - DataBase 3. Semester (i) 1: KLASSE METODE KONSTRUKTØR EKS. PÅ TYPE (VARIABLE) PUBLIC/PRIVATE OBJECT UD FRA KLASSE KALD METODE TILFØR PARAMETER TIL METODE RETURNERE VARIBEL. ------------------------------------------ 2 2. TRY CATCH OG EXEPTIONS + EKSEMPLER FRA PROJEKT KONVERTER FRA ÉN TYPE TIL EN ANDEN UDTRÆKNING AF EN DEL AF TEKSTSTRENG.------- 6 3. OPBYGNING AF DATABASE, UDGANGSPUNK I EGET PROJEKT. EKS. PÅ CREATE, INSERT, UPDATE, SELECT, DROP OG DELETE.---------------------------------- 8 4. PROJEKTETS PROGRAMDOKUMENTATION UML, PSEUDO KODE, NASSI SCHNEIDERMANN, FLOWCHART SAMMENLIGNEN DEL AF PROGRAMDOKUMENTATION. SAMMENHÆNG MELLEM BROWSER HTML-FIL OG JAVA- KLASSE-FILER.------------------------------------------------------------------------------10 5. FORKLAR JAVA-HOVEDPROGRAM. OPBYGNING. METODER DER KALDES, OVERFØRING AF PARAMETRE. EVT. LØKKER. HVORLEDES OPRETTES FORBINDELSE TIL IP OG PORT, SENDE HENTE DATA FRA DETTE STED. -----------12 Side 1 af 12

1: klasse metode konstruktør eks. på type (variable) public/private object ud fra klasse kald metode tilfør parameter til metode returnere varibel. Hvad er en klasse? Klasse: er der hvor programmet ligger, det er her metoder, objekter, variabler er samlet. Der hvor man skriver programmet, faktisk den fil der indeholder programmet. Klassen indeholder metoderne, som funktioner dvs. den måde programmet skal køre på når programmet er færdigt. F.eks. vil der for det meste være én klasse hvor man kører det overordnede Javaprogram fra, altså samler trådene fra evt. andre klasse i Javaprogrammet. Typer klasser: Alm. klasse Applet klasse Abstrakt Interface Det er objekter der er klassificeret i forskellige kategorier (klasser). F.eks. at alle personer-objekter tilhører person-klassen. Klassen er objekternes type, en beskrivelse af hvad de indeholder, fornavn efternavn fødselsdag og hvad man ellers vil have med. Én klasse er en beskrivelse af en type objekter. Alle strenge tilhører således String-klassen og alle punkter Point-klassen. Klassen kan opfattes som en abstrakt beskrivelse af objekterne, en slags skabelon eller støbeform, ud fra hvilken vi kan oprette konkrete objekter. Objekter fra samme klasse har de samme variabler og metoder. Hvad er en metode? En metode er en navngiven programstump, udføre en speciel funktion.f.eks. gør System.out.println() det, at den skriver en tekst på skærmen, og actionperformed(), den lytter med actionlistener, og udfører en handling når der trykkes på Knap1. Når en metode nævnes i teksten, afsluttes den med (), i parentesen kan der stå navnet på en v. En metode er en kommando eller et spørgsmål til et objekt. Når vi definerer en metode, giver vi den et hoved og en krop. Hovedet ligner den måde, vi tidligere har set metoder opremset på. Metodehovedet fortæller metodens navn, returtype og hvilke parametre den eventuelt tager: double volumen() Side 2 af 12

Kroppen kommer lige under hovedet: double vol; vol = længde*bredde*højde; return vol; I kroppen står der, hvad der skal ske, når metoden kaldes. Her står altså, at når metoden volumen() kaldes, bliver der først oprettet en lokal variabel, vol. Denne bliver tildelt produktet af de tre variabler længde, bredde og højde. Den sidste linie i kroppen fortæller, at resultatet af vol bliver givet tilbage (returneret) til der, hvor metoden blev kaldt. public void actionperformed(actionevent e) if (e.getsource() == Knap1) (SimpleWrite()); Hvad er en konstruktør? En konstruktør er en speciel metode, der har samme navn som klassen. Den kaldes automatisk ved oprettelse af et objekt med new -operatoren og benyttes oftest til at klare forskellige former for initialisering af det nye objekt. // Komponent objekter : Knap1 = new Button("Start"); starte hentning af temperatur. // Knap til at Txt1 = new TextField(" "); // Textfelt hvor temperatur bliver vist Label1 = new Label ("Temperatur hentet fra 80535 kit"); Label2 = new Label("Temperaturen er"); // Tekst før tekstfeldt Giv eksempler på en type (variabel)? Variabler bruges til at opbevare og ændre data. En variabel opfattes som en navngiven papirlap, hvor der til enhver tid kan stå netop én ting. Variabler kan altid erklæres, dvs. at man skal fortælle computeren, at der skal oprettes en variabel, hvad slags data den skal indeholde, og hvad den skal hedde. public int temperatur; temperatur = hexstringtoint(s); // Her fortælles at temp. som er Hex skal laves til Int. System.out.println("OK forbindelse "+temperatur); // Her skrives en linie ud hvis forbindelse er OK Side 3 af 12

Der er flere slags variabel-typer, Int = Heltal, String/double = Kommatal Det er også her defineringen af knapper, tekstfelter osv. er. En variabel er et navn på et sted i computerens hukommelse, beregnet på at indeholde data af en bestemt type. Int. Når der oprettes en variabel af typen int. reserveres der 4 bytes (32bit) i hukommelsen til et heltal, dvs. at der her kan stå et tal mellem -2.147.483.648 og 2.147.483.648 Double. Når vi definere en double reserveres der 8 bytes (64 bit) i hukommelsen. Programmet ved pr. automatik at det er et kommatal. Boolean. En boolean er en logisk variable der kun kan have to værdier, den er enten 0 eller 1, true eller false, sandt eller falsk. Hvad betyder public/private? Public betyder adgang for alle klasser Private betyder kun adgang fra samme klasse Private: Det at man lave en indkapsling af data og metoder i objekter betyder, at man ikke lader andre bruge objekterne helt efter eget forgodtbefindende. Man gør visse dele af objekterne utilgængelige uden for klassens metoder. Herved sætter man nogle regler op for, hvordan man kan benytte objekterne. Dette er vigtigt når programmer bliver store og komplekse. Hvis det er muligt at ændre data i en klasse, kan det føre til situationer, som kommer ud af kontrol i store komplekse systemer. I ovenstående eksempel kan man for eksempel sætte højden af en boks til et negativt tal. Spørger man derefter på volumen(), vil man få et negativt svar! Det kræver ikke meget fantasi at forestille sig, hvordan sådanne fejl kunne gøre et program ubrugeligt. Tænk for eksempel på pakkepostomdeling, hvis et af Post Danmarks programmer påstod, at der nemt kunne være 10000 pakker på hver minus en kubikmeter og 10001 pakker på hver plus en kubikmeter i én postvogn... endda med flere kubikmeter til overs til anden post! Forklar hvorledes et objekt dannes ud fra en given klasse. Et objekt oprettes med new Når et objekt oprettes, sørger det for at sætte dets data til nogle fornuftige startværdier.: Kunde nykunde = new Kunde(); SkrivTekstfil Skriv = new SkrivTekstfil(); LaesTekstfil Læs = new LaesTekstfil(); Parentesen efter oprettelsen af et objekt bruges, hvis man vil oprette det med bestemte variabler. Side 4 af 12

De variabler der hentydes til, er dem der er i den nævnte klasse. Hvorledes kaldes en metode? Eks.: public void actionperformed(actionevent e) if (e.getsource() == Knap1) SimpleWrite(); Navn: Søren Guldbrand Pedersen Ovenstående er et eks. på et metodekald. SimpleWrite er navnet på metoden. Et metodekald er en nævnelse af en metodes navn efterfulgt af en metodes navn efterfulgt af de rigtige parametre. Parametrene er omgivet af parenteser. Denne metode bliver kaldt uden parametre, da ( ) er tommer. Hvordan tilføres parametre til metoden? I denne: Bank_Brugerflade.txt se bilag næste side. Se ovenfor! Hvordan returneres en variabel? Eks. Fra kunde bank, program. public String hentnavn() return navn; public double hentsaldo() return Saldo; public String hentkontonr() return Kontonr; public double hentudbelob() return udbelob; public double hentindbelob() return indbelob; Tag gerne udgangspunkt i dit projekt. Side 5 af 12

2. try catch og exeptions + eksempler fra projekt konverter fra én type til en anden udtrækning af en del af tekststreng. Forklar formålet med try...catch og exceptions. Vis eksempler fra dit projekt. Formålet med at bruge try catch er at fejl/undtagelser kan fanges og håndteres. Det gøres ved at indkapsle den kritiske kode i en try-blok og behandle eventuelle undtagelser i en catch-blok. Når programmet kører normalt, springes catch-blokken over. Hvis der opstår undtagelser i tryblokken, hoppes ned i catch-blokken, der håndterer fejlen, og derefter udføres koden efter catch. Undtagelsestypen bestemmer, hvilke slags undtagelser der fanges serialport.notifyondataavailable(true); try serialport.setserialportparams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); catch (UnsupportedCommOperationException e) Andre undtagelsestyper: Hvis man laver aritmetiske udregninger, kan der opstå undtagelsen ArithmeticException, f.eks. ved division med nul: int a = 5; int b = 0; System.out.print(a/b); ClassCastException opstår, hvis man prøver at typekonvertere en objektreference til en type, som objektet ikke er, f.eks. en Gade til et Rederi: Felt f = new Gade("Gade 2", 10000, 400, 1000); Rederi r = (Rederi) f; Vis eksempler på hvordan man kan konvertere fra en type til en anden, fra ex en tekststreng til et heltal. Fundet her. For at omsætte en streng til et tal (int eller double) skal strengen analyseres (eng.: parse), dvs. undersøges for, om den indeholder et tal, og tallet, som kan være repræsenteret på mange måder, skal findes frem. Det har Integer- og Double-klasserne funktioner til 3, nemlig hhv. parseint() og parsedouble(). De tager en streng og returnerer den ønskede type: Side 6 af 12

int i = Integer.parseInt("542"); double d = Double.parseDouble("3.14"); Navn: Søren Guldbrand Pedersen Eksponentiel notation (hvor 9.8E3 betyder 9800) forstås også, og der kan også bruges andre talsystemer end titalsystemet. F.eks. giver Integer.parseInt("00010011",2) tallet 19 (19 svarer til 00010011 i det binære talsystem), og Integer.parseInt("1F",16) giver 31 (1F i det hexadecimale talsystem): d = Double.parseDouble("9.8E3"); // d = 9800 i = Integer.parseInt("00010011",2); // i = 19 i = Integer.parseInt("1F",16); // i = 31 En anden mulighed er at benytte klassen DecimalFormat, der giver mulighed for at formatere og analysere strenge for forskellige talformater. Den er beskrevet i afsnit 3.10.3. Hvordan udtrækker man en del af en tekststreng? eks. sofus=t10125 (tekststreng) Vi gerne udskrive 25 fra tekststrengen. syntax = temp = sofus.substring(4.5); //4,5 henviser til karaktererne nr. 4 og nr. 5. Side 7 af 12

3. Opbygning af database, udgangspunk i eget projekt. Eks. på Create, insert, update, select, drop og delete. Forklar en databases opbygning. Tag udgangspunkt i dit eget projekt. Hvad er navnet på databasen? bank Hvilke tabeller er der indeholdt i databasen? KUNDER Hvilke felter er der i tabellerne? Navn, Kontonr. Saldo, Hævet, Indsat Hvordan kan java programmet se Access databasen? Kontakt til databasen opnås i to trin. Første trin er at man skal indlæse en databasedriver, kommandoen til dette ser i mit program sådan ud. public Database() try Class.forName("com.mysql.jdbc.Driver").newInstance(); forb = DriverManager.getConnection("jdbc:mysql://localhost/bank?user=guldbrand&password=gruppe4"); stmt = forb.createstatement(); stmt.executeupdate( "create table KUNDER (Navn TEXT, KontoNr TEXT, Saldo FLOAT8, Hævet FLOAT8, Indsat FLOAT8)" ); catch (Exception e) System.out.println("Kunne ikke oprette forbindelse: "+e); Class.forName("com.mysql.jdbc.Driver").newInstance(); Denne linje indlæser en mysql driver i programmet. Det næste der skal ske er at programmet skal registrere sig JDBC-systemets driver manager, kommandoen til dette ser således ud forb=drivermanager.getconnection("jdbc:mysql://localhost/temp?user=guldbrand&pas sword=gruppe4"); Man kan i denne kommando se at databasen er oprette i mysql, mit brugernavn er jensen og mit password er gruppe4. Vis eksempler fra dit projekt, på hvordan du bruger de grundlæggende SQL kommandoer: Create, insert, update, select, drop og delete. Herunder er en kort beskrivelse af seks af disse kommandoer. Create: Denne kommando bruges til at oprette tabellen og de enkelte felter i denne, kommandoen til dette ser ud som følgende. stmt.executeupdate("create table KURVE (tid TEXT, temp TEXT)" ); Side 8 af 12

Der bliver oprette en tabel med felterne TID og TEMP. Navn: Søren Guldbrand Pedersen Insert: Denne kommando bliver brugt til at indsætte data i de enkelt felter, kommandoen til dette ser ud som følgende. stmt.executeupdate("insert into KURVE values('" + tid + "','" + temp + "'); Her indsættes variablerne tid og temp. i tabellen kurve Update: Select: Bruges til at hente data fra databasen dette gøres med en stmt.excercutequery (forspørgelse)kommando som ser herunder. ResultSet rs = stmt.executequery("select temp FROM Temperatur "); Select: Bruges til at hente data fra databasen dette gøres med en stmt.excercutequery (forspørgelse)kommando som ser herunder. ResultSet rs = stmt.executequery("select temp FROM Temperatur "); Drop: bruges til at slette en tabel Delete: bruges til at slette en database. Side 9 af 12

4. Projektets programdokumentation UML, pseudo kode, Nassi Schneidermann, flowchart Sammenlignen del af programdokumentation. Sammenhæng mellem browser html-fil og Javaklasse-filer. Forklar dit projekts programdokumentation. UML, pseudo kode, Nassi Schneidermann, flow-chart eller andet blokdiagram. UML (the Unified Modeling Language) er et sprog til specifikation, visualisering, konstruktion og dokumentation af edb-systemer såvel som forretningsmodeller og andre ikke-edb-relaterede systemer. UML repræsenterer en samling af de bedste udviklingsmetoder, der har bevist sit værd ved modellering af store komplekse systemer Sammenlign en del af programdokumentationen med det tilsvarende program. Se bilag. Forklar sammenhængen mellem browser, html-fil, Java-klasse-filer. I et html dokument kan man kalde en javaapplet <html> <head> <title> Side 10 af 12

Min applet </title> </head> <body> Velkommen til min første applet! <br> <applet code="minapplet.class" width=400 height=300></applet> <br> Slut herfra! </body> </html> Det vil sige at når html koden læses kalder den javaapletten og viser den i den angivne størrelse. Javaapletten kan kalde et html-dokument -227URL getdocumentbase() giver URL'en til der, hvor HTML-dokumentet ligger. Hvilke Java-metoder kaldes automatisk af browseren? Automatisk kaldes følgende: init() Start() - kører når browseren er synlig Stop() - Køres hvis browseren f.eks minimeres eller på anden måde ikke er synlig mere. Paint() Destroy() - Hvis noget skal slettes efter browseren lukkes Repaint() - Paint() kaldes på ny Hvad er formålet med at dele sit hovedprogram op i disse metoder? Tag udgangspunkt i dit projekt og vis hvorledes programmet løbes igennem. Side 11 af 12

5. Forklar Java-hovedprogram. Opbygning. Metoder der kaldes, overføring af parametre. Evt. løkker. Hvorledes oprettes forbindelse til IP og port, sende hente data fra dette sted. Forklar dit Java hovedprogram. Opbygningen. Hvilke metoder kaldes? Hvor overføres parametre imellem klasser og metoder? Forklar evt. løkker i dit program. Vis hvorledes man kan skabe en forbindelse til en ip-adresse og port, og sende og hente data fra dette sted. //------------------------------------------------------------------- public void henttemp () // I denne funktion hentes Temperaturen // Her startes try - catch // Her forbindes til webnet- try Socket forbindelse = new Socket("192.168.1.244",23); modul OutputStream binærud = forbindelse.getoutputstream(); InputStream binærind = forbindelse.getinputstream(); // Her bliver sendt binær data // Her bliver modtaget binær // data PrintWriter ud = new PrintWriter(binærUd); // Her bliver skrevet ud BufferedReader ind = new BufferedReader(new InputStreamReader(binærInd));// Her bruges // BufferedR. til indlæsning ud.println("<d"); // Her sendes kommandoen til at // åbne port. ud.flush(); // send anmodning afsted til værten s = ind.readline(); // Her sættes en variabel "s" til hex-strengen temperatur = hexstringtoint(s); // Her fortælles at temp. som er Hex skal // laves til Int. System.out.println("OK forbindelse "+temperatur); // Her skrives en linie ud hvis // forbindelse er OK forbindelse.close(); // Her lukkes forbindelsen catch (Exception e) // Her sluttes try - catch e.printstacktrace(); //------------------------------------------------------------------- Side 12 af 12