Menyvalen som alltid är numeriska presenteras omgivet av parenteser.

Storlek: px
Starta visningen från sidan:

Download "Menyvalen som alltid är numeriska presenteras omgivet av parenteser."

Transkript

1 Inlämningsuppgift 4 (avancerad) klassen Bank Att öva på och förstå ett lite större program med flera samverkande klasser. Tips på förberedande uppgift: Ett bra steg på vägen till att göra denna uppgift är att först göra inlämningsuppgift 4 normal, där man skall skriva en klass SimpleCustomer som kan byggas på (utökas) i denna uppgift till en klass Customer. Redovisning: Uppgiften redovisas i datasal: o Körning av programmet. o Redogöra för vad de olika klasserna gör (metoder, instansvariabler, konstruktorer) och hur de löser uppgiften. Koden skall vara vettigt strukturerad med indentering och kommenterad enligt Javadocstandarden (se föreläsning 8). Javadoc-filerna skall visas vid redovisningen. Efter att uppgiften redovisats i datasal med godkänt resultat, skall javafilerna lämnas in i studentportalen. En inlämning per grupp, ange fullständiga namn på de personer som ingår i gruppen vid inlämningen. Problembeskrivning En bekant till dig med namnet Ebbe Röd vill starta en bankrörelse. Tanken är att han bara skall förmedla låna in och låna ut pengar utan att ta något betalt av kunderna. (När kunderna väl vant sig vid hans tjänster kommer han säkert införa avgifter). Ebbe behöver ett program som kan hålla reda på kunderna och deras fordringar och skulder. Han vill t ex kunna lägga in nya kunder skapa konton till kunder sätta in och ta ut pengar från konton ändra namn och adress för kunden. Ebbe själv vet inte mycket om programmering men hans syster Ebba har nyligen läst programmeringsteknik 1 så han har bett henne om hjälp. Tillsammans har de gjort en fallstudie dvs funderat igenom hur programmet skall bära sig åt inför användaren. Användaren är alltså en banktjänsteman (dvs till en början bara Ebbe själv). Eftersom Ebba inte har läst något om hur man gör grafiska användarinterface så får programmet styras från menyer i det vanliga interaktions- eller terminalfönstret. Nedan följer den fallstudie som de gjort. 1

2 Välkommen till Ebberöds bank Ditt val: 4 Kundens namn: Lisa Kundens adress: Storgatan Ditt val: 4 Kundens namn: Olle Kundens adress: Slottsgatan Ditt val: 4 Kundens namn: Kalle Kundens adress: Strandgatan Ditt val: 1 Kunder: (1) 1 Lisa (2) 2 Olle (3) 3 Kalle Ditt val: 3 Kunder: (1) 1 Lisa (2) 2 Olle (3) 3 Kalle Välj kund (0 för att avbryta): 2 Ditt val: 2 Konto nummer 1 skapat Ditt val: 2 Konto nummer 2 skapat Ditt val: 4 Insättning Konton: (1) (2) Välj konto (0 för att avbryta): 1 Belopp (0 för att avbryta): 1000 Ditt val: 5 Uttag Konton: (1) (2) Välj konto (0 för att avbryta): 2 Belopp (0 för att avbryta): Ditt val: 1 Konton: (1) (2) Ditt val: 5 Uttag Konton: (1) (2) Välj konto (0 för att avbryta): 2 Belopp (0 för att avbryta): Ditt val: 1 Konton: (1) (2) Ditt val: 6 == Hantera personuppgifter för Olle (1) Visa personuppgifter (2) Ändra namn (3) Ändra adress Ditt val: 3 Ny adress: Villavägen == Hantera personuppgifter för Olle (1) Visa personuppgifter (2) Ändra namn (3) Ändra adress Ditt val: 0 Ditt val: 0 Ditt val: 3 Kunder: (1) 1 Lisa (2) 2 Olle (3) 3 Kalle Välj kund (0 för att avbryta): 1 == Hanterar kund Lisa Ditt val: 2 Konto nummer 1 skapat == Hanterar kund Lisa Ditt val: 4 Insättning Konton: (1) Välj konto (0 för att avbryta): 1 Belopp (0 för att avbryta): == Hanterar kund Lisa Ditt val: 0 Ditt val: 0 Säkert att du vill avsluta? ja Tack för denna gång! > Menyvalen som alltid är numeriska presenteras omgivet av parenteser. 2

3 Några detaljer: Banken har en kassa och ett antal kunder. Vid insättning läggs pengarna i kassan och vid uttag hämtas de från kassan En kund består av en person med uppgift om namn och adress, ett kundnummer och ett antal konton. Ett konto hör alltså alltid till en kund. Kontot har ett kontonummer och ett saldo. Kontona numreras individuellt för varje kund. Huvudmenyn Efter lite mer funderande har syskonparet Röd kommit fram till följande huvudmeny: (5) Avsluta kund (8) Läs in banken från fil (9) Spara banken på en fil Ditt val: Kommentarer till några av menyalternativen: Lista kunder: Programmet skall skriva en lista över samtliga kunder (namn och kundnummer) Lista konton: Programmet skall skriva en lista över samtliga konton (nummer och saldo) som finns. Eftersom kontona är knutna till kunder så måste detta göras genom att programmet går igenom kunderna. Ett fullständigt kontonummer får då bestå av kundnummer följt av kontonummer. Hantera kund: Väljer en specifik kund och går in i en annan meny för att hantera denna (se nedan i hantering av individuella kunder) Skapa kund: Kunden skall förses med ett kundnummer. Detta skall vara unikt för varje kund. Den första kunden som skapas får nummer 1, den andra nummer 2 etc. Kunden skall läggas in i bankens förteckning över kunder. Avsluta kund: Ta bort en kund ur registret. Eventuell fordran på eller skuld till kunden måste regleras. Läs in banken från fil: För att programmet skall vara användbart måste naturligtvis all infomation sparas på en fil medan banken är stängd. När banken öppnar skall man börja med att läsa in detta från filen. Spara banken på en fil: Detta skall göras när banken stänger men kan också behöva göras då och då (kanske automatiskt?) i den händelse banken skulle drabbas av datorfel eller strömavbrott. 3

4 Hantering av individuella kunder När man väljer Hantera kund i huvudmeny skall man först få en lista över kunder och där ange vilken kund man vill hantera. När det är valt skall man komma in i menyn för att hantera en kund: Ditt val: 3 Kunder: (1) 1 Lisa (2) 2 Olle (3) 3 Kalle Välj kund (0 för att avbryta): 2 Ditt val: Kommentarer till några av alternativen: Skapa konto: Skapar ett konto. Det första kontot som skapas för en kund får nummer 1, det andra nummer 2 osv. Saldot sätts till 0. Avsluta konto: Kontot skall tas bort från kundens kontoförteckning. Om saldot är positivt skall det betalas ut (från bankens kassa) och om det är negativt skall kunden betala in det (till bankens kassa). Observera att ett borttaget konto inte skall ändra på numreringen på eventuella andra konton som kunden har. Sätta in: Här måste man välja konto och belopp. Beloppet tillföres bankens kassa. (Anmärkning till programmeraren: bankens kassa måste alltså vara åtkomlig från kunden dvs det måste finnas en referens till bankobjektet från kundobjekten.) Ta ut: Som föregående punkt men beloppet tas ut från bankens kassa. Ändra personuppgifter: Det måste naturligtvis vara möjligt att ändra adress, namn och andra eventuella personuppgifter. Detta hänföres till en särskild meny. Felhantering Det är inte så bra om programmet avslutas när ett fel inträffar (då riskerar man ju att förlora inmatade uppgifter). Programmet bör alltså upptäcka felaktiga menyval. Exempel: (5) Avsluta kund (8) Läs in banken från fil (9) Spara banken på en fil Ditt val: 17 *** Ogiltigt val! (5) Avsluta kund (8) Läs in banken från fil (9) Spara banken på en fil Ditt val: qwgg2q3fyq3f *** Ogiltigt val! 4

5 Programdesign Ebba har sagt att det verkar lämpligt att ha klasser för banker, kunder, konton och personer. Eftersom hon programmerat i olika system (Unix, Mac, Windows) så vet hon att nationella tecken ofta ställer till besvär. Hon har därför valt engelska namn på klasserna: Bank, Customer, Account och Person. Lite tankar om de olika klasserna: Klassen Bank: Trots att programmet med största sannolikhet skall behandla en bank vid varje körning vill hon göra banken till ett objekt. Ett bankobjekt skall då ha ett antal kunder dvs ett antal objekt av typen Customer. Hon väljer att ha dessa kunder i en array (hon har en svag aning om att Java har mer flexibla strukturer men hon kan inget om dessa). Förutom arrayen med kundreferenser bör man hålla reda på hur många kunder som man faktiskt har (kan ju vara färre än antalet platser i arrayen). Vidare skall varje kund förses med ett unikt kundnummer så man behöver också hålla reda på antalet skapade kunder (om en kund tas bort bör man inte återanvända dess kundnummer). Kundnumret skapas när en ny kund skapas och numreras från 1. Se exempel i fallstudien, där kunden Lisa får kundnummer 1, Olle får 2 och Kalle får 3. Slutligen måste banken hålla reda på hur mycket det finns i kassan. Det behövs en metod i klassen som sköter hanteringen av huvudmenyn och den behöver ett antal hjälpmetoder för att utföra de olika operationerna. Klassen Customer: Denna klass skall dels innehålla personuppgifter. Dessa samlas i en separat klass Person så klassen Customer får innehålla en referens till ett Person-objekt. Klassen skall också innehålla kundnummer, en array med referenser till Account-objekt, uppgift om hur många konton som kunden verkligen har samt en kontoräknare för att kunna ge konton unika nummer. Eftersom en kund skall kunna ta ut och sätta in pengar behövs även en referens till bankobjektet där kassan finns. Det kommer att behövas en metod för Hantera kund-menyn och diverse hjälpmetoder. Ebba har gjort en skiss över hur de olika objekten skall hänga ihop: 5

6 Ebba har också börjat skriva en del: Klassen TestBank finns att hämta från kursens filarea. * Given klass som bara innehåller en mainmetod som * testar klassen Bank * import java.util.locale; public class TestBank { * Skapar ett Bank-objekt och sätter igång menyhanteringen public static void main(string [] args) { Locale.setDefault(Locale.US); // decimalpunkt Bank thebank = new Bank(); thebank.mainmenue(); Klassen Bank (ofullständig), finns att hämta från kursens filarea. * Klassen representerar en bank. import java.util.scanner; import java.util.date; import java.util.locale; import java.io.*; public class Bank { private Customer[] customers; // Kundförteckning private int numberofcustomers; // Aktuellt antal kunder private int globalcustomernumber; // Globalt kundnummer private double cashbox; // Kassa private Scanner sc = new Scanner(System.in); // För användning i flera metoder public Bank() { this.customers = new Customer[3]; this.numberofcustomers = 0; this.globalcustomernumber = 1; * Skapar ett Bank-objekt och sätter igång menyhanteringen public static void main(string [] args) { Locale.setDefault(Locale.US); // decimalpunkt Bank thebank = new Bank(); thebank.mainmenue(); * Huvudmeny för bankhantering public void mainmenue() { int choice; boolean goon = true; System.out.println("Välkommen till Ebbe Röds bank"); while (goon) { System.out.println("\n"); System.out.println(" "); System.out.println(" "); System.out.println(" "); System.out.println(" "); System.out.println(" "); System.out.println(" (5) Avsluta kund"); System.out.println(" (8) Läs in banken från fil"); System.out.println(" (9) Spara banken på en fil"); System.out.print("Ditt val: "); if (sc.hasnextint()) { choice = sc.nextint(); else { choice = 999; 6

7 sc.nextline(); switch (choice) { case 0: System.out.print("Säkert att du vill avsluta? "); if (sc.nextline().equals("ja")) { goon = false; case 1: this.listcustomers(); case 2: this.listaccounts(); case 3: // Hantera kund this.handlecustomer(); case 4: this.createcustomer(); case 5: this.deletecustomer(); case 8: this.load(); case 9: this.save(); default: System.out.println("*** Ogiltigt val!"); System.out.println("Tack för denna gång!"); return; * Skapar en ny kund. Kundarrayen ökas automatiskt vid behov public void createcustomer() { if (this.numberofcustomers==this.customers.length) { Customer [] newcst = new Customer[2*this.customers.length]; System.arraycopy(this.customers, 0, newcst, 0, this.customers.length); customers = newcst; Person p = new Person(); p.read(); this.customers[this.numberofcustomers] = new Customer(p, this.globalcustomernumber, this); this.numberofcustomers++; this.globalcustomernumber++; * Förintar en kund. Reglerar skuld eller fordran. public void deletecustomer() { int index = this.choosecustomer(); if (index<0) { return; System.out.println("\nFörintar " + customers[index]); double total = this.customers[index].totalbalance(); if (total<0) { System.out.println("Kunden skall betala in " + String.format("%.2f", total) + " kronor"); else if (total>0) { System.out.println("Kunden skall erhålla " + String.format("%.2f", total) + " kronor"); this.updatecashbox(-total); for (int i= index; i<this.numberofcustomers-1; i++) { this.customers[i] = this.customers[i+1]; this.numberofcustomers--; if (this.numberofcustomers>0) { this.customers[this.numberofcustomers] = null; 7

8 * Skriver en förteckning över kunderna * public void listcustomers() { System.out.println("*** Lista kunder ej implementerad än"); * Låter användaren välja en kund index för kunden private int choosecustomer() { int cust; this.listcustomers(); while (true) { System.out.print("Välj kund (0 för att avbryta): "); if (sc.hasnextint()) { cust = sc.nextint(); else { cust = -1; sc.nextline(); if(cust>=0 && cust<=numberofcustomers) { System.out.println("Ogiltigt val!"); this.listcustomers(); return cust-1; * Väljer ut en enskild kund och anropar hanteringsmenyn för denna kund public void handlecustomer() { int cust = this.choosecustomer(); if (cust<0) { System.out.println("Avbrutet"); return; else { // System.out.println("Vald kund: " + this.customers[cust]); this.customers[cust].handle(); * Listar samtliga konton vid banken public void listaccounts() { System.out.println("*** Lista konton ej implementerad"); * get-metod för kassan Kassan public double getcashbox() { return this.cashbox; * Uppdaterar kassans innehåll amount Summa att öka (om positiv) eller minska (om negativ) kassan med true om operationen lyckades, annars false public boolean updatecashbox(double amount) { System.out.println("*** Uppdatera kassan ej implementerad än"); return false; * Frågar efter filnamn att spara filen på, * kopplar en ström till filen, skriver allmän information * och anropar en spara-funktion för varje kund. public void save() { System.out.println("*** save ej implementerad än"); /* String filename = "bankfil"; PrintWriter outputstream = null; Scanner sc = new Scanner(System.in); 8

9 System.out.print("Filnamn (default '" + filename + "'): "); String name = sc.nextline(); if (!name.equals("")) { filename = name; try { outputstream = new PrintWriter(new FileOutputStream(fileName)); catch(filenotfoundexception e) { System.out.println("*** Filen '" + filename + "' kunde inte öppnas"); return; System.out.println("Sparar på fil '" + filename + "'"); outputstream.println("bankfil" + " " + (new Date()).toString()); outputstream.println(this.customers.length + " // customers.length"); outputstream.println(this.numberofcustomers + " // numberofcustomers"); outputstream.println(this.globalcustomernumber + " // globalcustomernumber"); outputstream.println(this.cashbox + " // cashbox"); for (int i=0; i<this.numberofcustomers; i++) { if (this.customers[i]!=null) { this.customers[i].save(outputstream); outputstream.close(); * Läser in information om en bank som är sparad med save-metoden * Alla attribut skrivs över med innehåll från filen. public void load() { System.out.println("*** load ej implementerad än"); /* String filename = "bankfil"; Scanner inputstream = null; Scanner sc = new Scanner(System.in); System.out.print("Filnamn (default '" + filename + "'): "); String name = sc.nextline(); if (!name.equals("")) { filename = name; try { inputstream = new Scanner(new FileInputStream(fileName)); catch(filenotfoundexception e) { System.out.println("*** Filen '" + filename + "' kunde inte öppnas"); return; System.out.println("Läser från fil '" + filename + "'"); System.out.println(inputStream.nextLine()); int customerslength = inputstream.nextint(); inputstream.nextline(); // Byt rad this.numberofcustomers = inputstream.nextint(); inputstream.nextline(); // Byt rad this.customers = new Customer[customersLength]; // this.customers = new Customer[numberOfCustomers]; this.globalcustomernumber = inputstream.nextint(); inputstream.nextline(); // Byt rad this.cashbox = inputstream.nextdouble(); inputstream.nextline(); for (int i=0; i<this.numberofcustomers; i++) { this.customers[i] = Customer.load(inputStream, this); inputstream.close(); Klassen Person för representation av personuppgifter, finns att hämta från kursens filarea. * Representerar information om en person import java.util.scanner; import java.io.*; public class Person { private String name; private String address; 9

10 * Skapar person med angivet namn name Personens namn public Person(String name) { this.name = name; this.address = ""; * Tar fram en persons namn Personens namn public String getname() { return this.name; * Tar fram en persons adress Personens adress public String getaddress() { return this.address; * Ger en person ett nytt namn name det nya namnet public void setname(string name) { this.name = name; * Ger en person en ny adress address Den nya adressen public void setaddress(string address) { this.address = address; * Returnerar en String-representation av personobjektet public String tostring() { return this.name; * Menystyrd hantering av uppgifterna om en person public void handle() { int choice; Scanner sc = new Scanner(System.in); while (true) { System.out.println("\n== Hantera personuppgifter för " + this.name ); System.out.println(" "); System.out.println(" (1) Visa personuppgifter"); System.out.println(" (2) Ändra namn"); System.out.println(" (3) Ändra adress"); System.out.print("Ditt val: "); if (sc.hasnextint()) { choice = sc.nextint(); else { choice = -1; sc.nextline(); // Läs förbi radslutet switch (choice) { case 0: return; case 1: System.out.println("Namn : " + this.name); System.out.println("Adress: " + this.address); case 2: System.out.print("Nytt namn: "); this.setname(sc.nextline()); case 3: System.out.print("Ny adress: "); 10

11 this.setaddress(sc.nextline()); default: System.out.println("Ogitigt val!"); // Anmärkning: För att inte switch-satsen skall bli oöverskådlig // bör en case-del innehålla högst tre satser. // Om man behöver fler så samlar man dem i en // separat metod som anropas från case-fallet. * Sparar personuppgifterna på en öppen ström public void save(printwriter outputstream) { outputstream.println(this.name); outputstream.println(this.address); * Läser namn och adress från standard input public void read() { Scanner sc = new Scanner(System.in); System.out.print("Kundens namn: "); this.name = sc.nextline(); System.out.print("Kundens adress: "); this.address = sc.nextline(); * Skapar en person och läser in uppgifterna från en öppen ström * Precondition: Strömmen är positionerad så att namnet står på första raden * Postcondition: Strömmen positionerad efter sista radens radslut. * Exempel på anrop: * Person p = Person.load(inputStream); Skapad person public static Person load(scanner inputstream) { Person person = new Person(inputStream.nextLine()); person.address = inputstream.nextline(); return person; Klassen Account för representation av bankkonto, finns att hämta från kursens filarea. * Representerar ett bankkonto import java.io.*; import java.util.scanner; public class Account { private int customernumber; private int accountnumber; private double balance; * Parameterlös konstruktor. Avsedd att användas av load-metoden nedan public Account() { * Konstruktor avsedd att användas från ett kund-objekt * customernumber Kundnummer accountnumber Kontonummer public Account(int customernumber, int accountnumber) { this.customernumber = customernumber; this.accountnumber = accountnumber; * get-metod för saldot 11

12 Kontots saldo public double getbalance() { return this.balance; * get-metod för kontonumret Kontots nummer public int getaccountnumber() { return this.accountnumber; * get-metod för kundnumret Kontoinnehavarens kundnummer public int getcustomernumber() { return this.customernumber; Textrepresentation av fullständigt kontonummer och saldo public String tostring() { return " " + this.customernumber + "-" + this.accountnumber + String.format(" %10.2f", this.balance); * Noterar insättning på eller uttag från kontot amount Summa som sätts in (om positiv) eller tas ut (om negativ) kontots nya saldo public double deposit(double amount) { this.balance += amount; return this.balance; * Sparar kontoinformationen på en öppnad ström outputstream En öppen ström public void save(printwriter outputstream) { outputstream.print(" "); outputstream.print(" " + this.customernumber); outputstream.print(" " + this.accountnumber); outputstream.println(" " + this.balance); * Skapar ett konto från informationen på en öppen ström * Exempel på anrop: * Account a = Account.load(inputStream); * inputstream En öppen ström Det skapade objektet public static Account load(scanner inputstream) { Account account = new Account(); account.customernumber = inputstream.nextint(); account.accountnumber = inputstream.nextint(); account.balance = inputstream.nextdouble(); inputstream.nextline(); return account; Ett skal för klassen Customer för representation en kund, finns att hämta från kursens filarea. // Ett skal till klassen Customer import java.util.scanner; import java.io.*; public class Customer { 12

13 public Customer (Person p, int GlobalCustomerNumber, Bank b) { public double totalbalance() { return 0; public void handle() { public void save (PrintWriter file_out) { public static Customer load (Scanner file_in, Bank b) { return null; // Customer Filhantering Klasserna innehåller filhantering, dvs man läser bankdata från en textfil och skriver bankdata på en textfil. Klasserna Bank, Account och Person innehåller färdiga metoder för denna hantering. Metoderna heter load (läser från fil) och save (skriver på fil) i respektive klass. Motsvarande metoder saknas dock i klassen Customer. De skall du skriva själv. Tips om hur de kan skrivas kan du få genom att studera de givna metoderna load och save. Bankdata sparas i en textfil som heter bankfil om man inte anger annat namn. Filen kan se ut så här, givet att vi har två kunder, varav en av dem har två konton: Bankfil Wed Sep 29 10:44:10 CEST // customers.length 2 // numberofcustomers 3 // globalcustomernumber // cashbox Kim Ek Kungsgatan 2 1 // customernumber 2 // accountnumber 5 // accounts.length 2 // numberofaccounts Eva Persson Storgatan 4 2 // customernumber 0 // accountnumber 5 // accounts.length 0 // numberofaccounts Klassmetoder Klasserna innehåller en klassmetod, dvs en metod som man anropar med klassens namn följt av metodens namn. Det gäller metoden load (i klassen Person, Account resp. Customer) med vilka man läser bankdata från textfil. Din uppgift Innan Ebba kommit längre fick hon ett jobberbjudande från Google och flyttade till Kalifornien. Ebbe ber nu dig om hjälp att färdigställa klasserna. Din uppgift är nu att skriva klart programmet dvs skriva klar klassen Bank och klassen Customer (dvs den som i texten och figuren kallats Kund)! Till din hjälp har du de färdiga klasserna TestBank, Account och Person. 13

14 den ofullständiga klassen Bank ett skal till klassen Customer De fem klasserna finns att hämta på kursens filarea i mappen inlupp4_avancerad. Tips! Börja så här: Lägg alla klasser i samma mapp. Kompilera dem. Testkör mainmetoden i klassen TestBank för att se vad som händer och vad de givna klasserna klarar av. Fundera först på metoden som skapar en kund och få den att fungera. Bygg sedan på programmet (Customer och Bank) stegvis med nya delar (metoder). När programmet inte fungerar som du tänkt dig: Använd DrJava s debugger för att utröna vad som verkligen händer och varför. Fundera på hur banken skall hantera uttag där kassan inte räcker till. I programmet förekommer arrayer. Tänk på att hanteringen av index är säker. 14

Obligatorisk uppgift: Banksystem

Obligatorisk uppgift: Banksystem Informationsteknologi Programmeringsteknik I vt10 Obligatorisk uppgift: Banksystem Moment: Öva på att förstå ett lite större program med flera samverkande klasser. Redovisning: Uppgiften redovisas i labbsal.

Läs mer

Att öva på och förstå ett program med flera samverkande klasser.

Att öva på och förstå ett program med flera samverkande klasser. Inlämningsuppgift 4 klassen Kund (Customer) Att öva på och förstå ett program med flera samverkande klasser. Redovisning: Uppgiften redovisas i datasal: o Körning av programmet. o Redogöra för vad de olika

Läs mer

Chapter 4: Writing Classes/ Att skriva egna klasser.

Chapter 4: Writing Classes/ Att skriva egna klasser. Chapter 4: Writing Classes/ Att skriva egna klasser. I dessa uppgifter kommer du att lära dig om hur man definierar egna objekt genom att skriva klasser. Detta är grunden för att förstå objekt orienterad

Läs mer

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper Tentamen Programmeringsteknik I 2016-03-17 Skrivtid: 1400 1900 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 AID-nummer: Datum: 2014-12-18 Kurskod: 725G61 Provkod: LAB1 Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 Skrivningstid: 2014-12-18 klockan 8.00-10.00. Hjälpmedel: Inga. För varje fråga

Läs mer

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2015-06-11 Skrivtid: 08:00 13:00 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Läs mer

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper Tentamen Programmeringsteknik I 2017-03-16 Skrivtid: 0800 1300 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna. 1 Uppgift 1 Klassen Company Banken FinanceTrust som tidigare bara haft privatpersoner som kunder vill nu bygga ut sitt datasystem så att även företag kan registreras som kunder. Skriv klassen Company som

Läs mer

Föreläsnings 9 - Exceptions, I/O

Föreläsnings 9 - Exceptions, I/O Föreläsnings 9 - Exceptions, I/O Josef Svenningsson Tisdag 6/11 Undantag - Exceptions Kommer ni ihåg det här programmet? Det var ett av de första ni såg i första föreläsningen. import javax.swing.*; public

Läs mer

Föreläsning 14. Filhantering

Föreläsning 14. Filhantering Föreläsning 14 Filhantering Filhantering Att hantera filer, dvs att läsa eller skriva data till en fil är en viktig del i de flesta program. Ur Javas synvinkel är filer objekt med egenskaper och metoder

Läs mer

Design av en klass BankAccount som representerar ett bankkonto

Design av en klass BankAccount som representerar ett bankkonto Klasser Kommer ta upp följande begrepp: Design av en klass Implementera en klass Testa en klass med en mainmetod Instansvariabler, lokala variabler, formella parametrar, aktuella parametrar och variablers

Läs mer

Tentamen, EDAA20/EDA501 Programmering

Tentamen, EDAA20/EDA501 Programmering LUNDS TEKNISKA HÖGSKOLA 1(4) Institutionen för datavetenskap Tentamen, EDAA20/EDA501 Programmering 2011 10 19, 8.00 13.00 Anvisningar: Denna tentamen består av fem uppgifter. Preliminärt ger uppgifterna

Läs mer

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten? Programmeringsteknik och Matlab Övning 4 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312

Läs mer

Del A (obligatorisk för alla)

Del A (obligatorisk för alla) Del A (obligatorisk för alla) A1. Koden följer garanterat namnkonventionerna. Ringa in rätta svar och lämna in tillsammans med dina övriga svar! a) Hur många objekt skapas av följande kod? World w = new

Läs mer

Det är principer och idéer som är viktiga. Skriv så att du övertygar examinatorn om att du har förstått dessa även om detaljer kan vara felaktiga.

Det är principer och idéer som är viktiga. Skriv så att du övertygar examinatorn om att du har förstått dessa även om detaljer kan vara felaktiga. Tentamen Programmeringsteknik I 2011-03-17 Skrivtid: 1400-1700 Hjälpmedel: Java-bok Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja alltid ny uppgift

Läs mer

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan. Bankkonto - övning Övningar att göra efter lärardemostration. Filen bankkonto.zip innehåller ett projekt med klassen Bankkonto. Zippa upp denna fil och öppna projektet i BlueJ och skriv vidare på klassen

Läs mer

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2015-06-11 Skrivtid: 08:00 13:00 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Läs mer

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper Tentamen Programmeringsteknik I 2016-03-17 Skrivtid: 1400 1900 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F6:1 OOP Objekt-orienterad programmering Föreläsning 6 Mer om klasser och objekt Hantera många objekt ArrayList tostring() metoden this Vi vill ofta hantera många objekt i ett program: OOP F6:2 public

Läs mer

Övningsuppgift. Bankkonton. Steg 2. Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402

Övningsuppgift. Bankkonton. Steg 2. Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402 Övningsuppgift Bankkonton Steg 2 Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402 Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering

Läs mer

Malmö högskola 2008/2009 CTS

Malmö högskola 2008/2009 CTS Laboration 8 Avsikten med laborationen är att du lära dig skapa objekt med hjälp av klasser. Detta är en introduktion till ett objektorienterat tankesätt. Med hjälp av detta tankesätt kan du så småningom

Läs mer

public och private Obs: private inte skyddar mot access från andra objekt i samma klass.

public och private Obs: private inte skyddar mot access från andra objekt i samma klass. public och private En metod som är public får anropas från alla metoder i alla klasser. Ett attribut som är public får avläsas och ändras från alla metoder i alla andra klasser. En metod som är private

Läs mer

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper Tentamen Programmeringsteknik I 2016-06-11 Skrivtid: 0900 1400 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper Tentamen Programmeringsteknik I 2016-06-11 Skrivtid: 0900 1400 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

Grundläggande programmering med C# 7,5 högskolepoäng

Grundläggande programmering med C# 7,5 högskolepoäng Grundläggande programmering med C# 7,5 högskolepoäng Provmoment: TEN1 Ladokkod: NGC011 Tentamen ges för: Omtentamen DE13, IMIT13 och SYST13 samt öppen för alla (Ifylles av student) (Ifylles av student)

Läs mer

Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2015-01-10 Skrivtid: 8.00 13.00 Hjälpmedel: Java-bok Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till

Läs mer

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1) Föreläsning 10 STRING OCH STRINGBUILDER; VARIABLERS SYNLIGHET Att deklarera och att använda variabler När vi deklarerar en variabel, t ex int x; inför vi en ny variabel med ett namn och en typ. När namnet

Läs mer

Tentamen, EDAA10 Programmering i Java

Tentamen, EDAA10 Programmering i Java LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Tentamen, EDAA10 Programmering i Java 2019 08 21, 08.00 13.00 Anvisningar: Preliminärt ger uppgifterna 25 + 15 + 5 = 45 poäng. För godkänt betyg

Läs mer

Lösningsförslag till tentamen i EDA011, lördagen den 16 december 2006

Lösningsförslag till tentamen i EDA011, lördagen den 16 december 2006 Lösningsförslag till tentamen i EDA011, lördagen den 16 december 2006 Detta lösningsförslag är skrivet i stor hast, så det är möjligt att det innehåller en del slarvfel jag ber i så fall om ursäkt för

Läs mer

JAVAUTVECKLING LEKTION 7

JAVAUTVECKLING LEKTION 7 JAVAUTVECKLING LEKTION 7 2016 Mahmud Al Hakim mahmud.al.hakim@nackademin.se www.alhakim.se AGENDA Olika språkversioner (Klassen Locale) Utskrift i kommandofönster Inläsning via kommandofönster Standardklassen

Läs mer

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Johan Falkenjack johan.falkenjack@liu.se Linköpings universitet Sweden December 4, 2013 1 Innehåll Arv och andra viktiga begrepp Abstrakta

Läs mer

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper Tentamen Programmeringsteknik I 2018-03-16 Skrivtid: 8:00 13:00 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

Fält av referenser. Konstruktorerna används för att skapa Bilar och Trafikljus.

Fält av referenser. Konstruktorerna används för att skapa Bilar och Trafikljus. Fält av referenser Tanken med objekt är man kan bygga ihop olika sorts objekt till nya saker. Sålunda kan man exempelvis använda Bil och Trafikljus att konstruera ett Väg-objekt. Om Bil och Trafikljus

Läs mer

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk

Läs mer

PROGRAMMERINGSTEKNIK TIN212

PROGRAMMERINGSTEKNIK TIN212 Data och Informationsteknik / Computer Science and Engineering Chalmers University of Technology and University of Gothenburg Robin Adams Göteborg 8 June 2018 PROGRAMMERINGSTEKNIK TIN212 Dag: Fredag Datum:

Läs mer

Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder

Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305 Klass Object, instans av klass public/private Klassvariabler och klassmetoder 1 Array och ArrayList Arrayer och ArrayList är till för att innehålla

Läs mer

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList. Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 3 Innehåll Lite om felhantering och Exceptions Mer om variabler och parametrar

Läs mer

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser // En första version av BankKonto-klassen class BankKonto { private String namn; private long nr; private double saldo; private double ränta; // Klassen TestaBankKonto // Klassens uppgift är att skapa

Läs mer

DAT043 Objektorienterad Programmering

DAT043 Objektorienterad Programmering DAT043 Objektorienterad Programmering Detta är en exempeltenta som innehåller gamla tentauppgifter av ungefär liknande slag som ni kan förvänta er se på ordinarie tenta i Del 1 respektive Del 2. Dock är

Läs mer

Laboration A Objektsamlingar

Laboration A Objektsamlingar Laboration A Objektsamlingar Avsikten med laborationen är att du ska träna på att använda ett par objektsamlingar. Uppgift 1 Titta genom föreläsningsunderlaget DA129AFAHT07.pdf och testkör exemplen (se

Läs mer

Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.

Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser. (16 februari 2016 F5.1 ) Dagens text Programmeringsteknik Mer om Scanner-klassen Dialogrutor (klassen JOptionPane) Bubbelsortering ArrayList Omslagsklasser Arbetsexempel (16 februari 2016 F5.2 ) Pokertärningar

Läs mer

TENTAMEN OOP

TENTAMEN OOP TENTAMEN OOP 2013-08-08 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli

Läs mer

Tentamen OOP 2015-03-14

Tentamen OOP 2015-03-14 Tentamen OOP 2015-03-14 Anvisningar Fråga 1 och 2 besvaras på det särskilt utdelade formuläret. Du får gärna skriva på bägge sidorna av svarsbladen, men påbörja varje uppgift på ett nytt blad. Vid inlämning

Läs mer

Inkapsling tumregler. Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler. public och private

Inkapsling tumregler. Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler. public och private Inkapsling tumregler Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler Tobias Wrigstad (baserat på material från Tom Smedsaas) 5 november 2010 1. Man skall

Läs mer

Objekt och referenser

Objekt och referenser Objekt och referenser Antag att vi har följande enkla klass: public class Person { private String namn; private String adress; private String personnummer; public Person() { namn = NN ; adress = ; personnummer

Läs mer

Objektorienterad programmering D2

Objektorienterad programmering D2 Objektorienterad programmering D2 Laboration nr 2. Syfte Att få förståelse för de grundläggande objektorienterade begreppen. Redovisning Källkoden för uppgifterna skall skickas in via Fire. För senaste

Läs mer

Tentamen i Programmeringsteknik I,, KandMa/Fy,

Tentamen i Programmeringsteknik I,, KandMa/Fy, Tentamen i Programmeringsteknik I,, KandMa/Fy, 2010-10-19 Skriv tid: 14-17. Hjälpmedel: 1. Kurslitteratur, en av följande: Lewis & Loftus, Java Software Solutions Skansholm, Java Direkt Guzdial & Ericson,

Läs mer

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling metoder Föreläsning 2 Objektorienterad programmering DD1332 Array [modifierare] String metodnamn (String parameter) Returtyp (utdata typ) i detta fall String Indata typ i detta fall String 1 De får man

Läs mer

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2015-03-19 Skrivtid: 14:00 19:00 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Läs mer

Dagens föreläsning. Arrayer och klasser. Medan ni väntar: Gå till m.voto.se/prog11 och svara på några gamla tentamensfrågor! (26 januari 2018 F3 1 )

Dagens föreläsning. Arrayer och klasser. Medan ni väntar: Gå till m.voto.se/prog11 och svara på några gamla tentamensfrågor! (26 januari 2018 F3 1 ) (26 januari 2018 F3 1 ) Dagens föreläsning Arrayer och klasser Medan ni väntar: Gå till m.voto.se/prog11 och svara på några gamla tentamensfrågor! (26 januari 2018 F3 2 ) Arrayer En array är en datatyp

Läs mer

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning. Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java

Läs mer

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2012-06-04 Skrivtid: 1400-1700 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till

Läs mer

Tentamen, EDA501 Programmering M L TM W K V

Tentamen, EDA501 Programmering M L TM W K V LUNDS TEKNISKA HÖGSKOLA 1(0) Institutionen för datavetenskap Tentamen, EDA501 Programmering M L TM W K V 2010 05 31, 8.00 13.00 Anvisningar: Denna tentamen består av 4 uppgifter. Preliminärt ger uppgifterna

Läs mer

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2014-10-17 Skrivtid: 0800-1300 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till

Läs mer

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2014-10-17 Skrivtid: 0800-1300 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till

Läs mer

Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och i regel som private.

Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och i regel som private. Tentamen Programmeringsteknik I 2013-06-14 med lösningar 1. Svara kortfattat på följande: a) Vad är en instansvariabel? Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och

Läs mer

TENTAMEN OOP

TENTAMEN OOP TENTAMEN OOP 2014-03-15 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli

Läs mer

Malmö högskola 2007/2008 Teknik och samhälle

Malmö högskola 2007/2008 Teknik och samhälle Laboration 9 Avsikten med denna laboration är att du ska jobba vidare med klasser. Uppgifterna går ut på att skriva metoder och att skriva konstruktorer. Laborationen bygger vidare på laboration 8. Skapa

Läs mer

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper Tentamen Programmeringsteknik I 2017-10-23 Skrivtid: 0800 1300 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

Objekt och klasser - Introduktion

Objekt och klasser - Introduktion Objekt och klasser - Introduktion Begreppet objekt Hur klasser används för att skapa objekt Fördefinierade klasser Metoder och parameteröverföring Definiera klasser Modifierare Statiska variabler och metoder

Läs mer

Malmö högskola 2007/2008 Teknik och samhälle

Malmö högskola 2007/2008 Teknik och samhälle Laboration 8 Avsikten med denna laboration är att du lära dig skapa objekt med hjälp av klasser. Detta är en introduktion till ett objektorienterat tankesätt. Med hjälp av detta tankesätt kan du så småningom

Läs mer

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2012-03-14 Skrivtid: 0800-1100 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till

Läs mer

Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.

Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser. (1 oktober 2017 F5 1 ) Dagens text Programmeringsteknik Mer om Scanner-klassen Dialogrutor (klassen JOptionPane) Bubbelsortering ArrayList Omslagsklasser Arbetsexempel (1 oktober 2017 F5 2 ) Pokertärningar

Läs mer

Sammanfattning och repetition utgående från typiska tentamensuppgifter

Sammanfattning och repetition utgående från typiska tentamensuppgifter (2 mars 2018 F6 1 ) Dagens föreläsning Sammanfattning och repetition utgående från typiska tentamensuppgifter (2 mars 2018 F6 2 ) A-fråga Hur många objekt skapas av nedanstående kod? World w = new World();

Läs mer

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper Tentamen Programmeringsteknik I 2017-10-23 Skrivtid: 0800 1300 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

Objektorienterad programmering i Java

Objektorienterad programmering i Java Objektorienterad programmering i Java Föreläsning 4 Täcker i stort sett kapitel 6 i kursboken Java Software Solutions 1 Läsanvisningar Den här föreläsningen är uppbyggd som en fortsättning av exemplet

Läs mer

Tentamen, EDAA20/EDA501 Programmering

Tentamen, EDAA20/EDA501 Programmering LUNDS TEKNISKA HÖGSKOLA 1(4) Institutionen för datavetenskap Tentamen, EDAA20/EDA501 Programmering 2014 04 29, 8.00 13.00 Anvisningar: Denna tentamen består av tre uppgifter. Preliminärt ger uppgifterna

Läs mer

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel Idag Ett exempel Undantag Substitutierbarhet, subtyper, subklasser När val av metod beror av typerna hos två objekt Lite om överlagring Exempel, version 2 Notera: för samtliga figurer gäller: arean av

Läs mer

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel Programmeringsteknik för Bio1 och I1 Övning 2 Kort repetition Övningsgrupp 3 (Sal E33) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1310/

Läs mer

Tentamen på kursen DA7351, Programmering 1. 051102, kl 08.15-12.15. Malmö högskola Teknik och samhälle. DA7351, Programmering 1 1 051102

Tentamen på kursen DA7351, Programmering 1. 051102, kl 08.15-12.15. Malmö högskola Teknik och samhälle. DA7351, Programmering 1 1 051102 Tentamen på kursen DA7351, Programmering 1 051102, kl 08.15-12.15 Tillåtna hjälpmedel: Valfri bok om Java. Vid bedömning av lösningarna tas hänsyn till om dessa uppfyller de krav på programkvalitet (strukturering,

Läs mer

Presentation av trafiksimuleringsprojektet

Presentation av trafiksimuleringsprojektet (27 februari 2017 Trafiksimulering 1 ) Presentation av trafiksimuleringsprojektet Skall diskutera Ett lite större program med flera klasser Hur man designar ett system Hur man ritar klassdiagram i UML

Läs mer

Del A (obligatorisk för alla)

Del A (obligatorisk för alla) Del A (obligatorisk för alla) A1. Ringa in rätt svarsalternativ eller skriv svar i ruta om sådan a) Satsen double x = (int)(1 + 3/2.0) + 3.; resulterar i b) Satsen int x = (int)(1 + 3/2.0) + 3.; resulterar

Läs mer

Redovisning av inlämningsuppgifter

Redovisning av inlämningsuppgifter Bilaga B Redovisning av inlämningsuppgifter 1 Rapportens innehåll Varje inlämningsuppgift ska redovisas med en skriftlig rapport. Rapporten ska vara häftad och försedd med ett försättsblad med uppgiftens

Läs mer

Tentamen Programmeringsteknik II Skrivtid: Hjälpmedel: Java-bok (vilken som helst) Skriv läsligt! Använd inte rödpenna!

Tentamen Programmeringsteknik II Skrivtid: Hjälpmedel: Java-bok (vilken som helst) Skriv läsligt! Använd inte rödpenna! Tentamen Programmeringsteknik II 2014-01-09 Skrivtid: 0800-1300 Hjälpmedel: Java-bok (vilken som helst) Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja

Läs mer

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer. Översikt Klasshierarkier UML klassdiagram Relation mellan klasser mellan klasser och objekt Association ning ing andling Programmering tillämpningar och datastrukturer 2 UML UML Unified Modeling Language

Läs mer

F4. programmeringsteknik och Matlab

F4. programmeringsteknik och Matlab Programmeringsspråk Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer 1 Ett program är en eller flera instruktioner

Läs mer

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ orienterad programmering Föreläsning 3 Exempel: Telefonboken Fält som funktionsresultat Exempel Definiera static double[] vectorsum(double[] a, double[] b) Betrakta sedan följande kodavsnitt:... double[]

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F12:1 OOP Objekt-orienterad programmering Föreläsning 12 Mer om JOptionPane Undantagshantering Vad är det? try catch Kasta egna undantag Filhantering spara objekt mellan körningar Användardialog via

Läs mer

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p UMEÅ UNIVERSITET Datavetenskap 010530 LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p Betygsgränser 3 21,5-27 4 27,5-33,5 5 34-43 Uppgift 1. (4p) Hitta de fel som finns i nedanstående klass (det

Läs mer

Mer om klasser och objekt

Mer om klasser och objekt Klassvariabler och klassmetoder En klass kan innehålla klassvariabler och klassmetoder. TDA143 I1 Programmerade system Föreläsning 5 (OH-bilder 5) Mer om klasser och objekt Christer Carlsson Det som skiljer

Läs mer

4 13 / %.; 8 </" '': " / //&' " " ' * TelefonKostnad +,-%&. #!" $% " &' . > / ' 5 /' * 13/ &' static Math 1+" &'/ % 12 "" static "' * 1 /") %& &

4 13 / %.; 8 </ '':  / //&'   ' * TelefonKostnad +,-%&. #! $%  &' . > / ' 5 /' * 13/ &' static Math 1+ &'/ % 12  static ' * 1 /) %& & TelefonKostnad static Math static $ & )&* +,-&. 0 +& + & 3 356+573 ) & & 6 3 3 & 3 * 6 3.:; < = 3 = 6 ; < : & >?.;,;@.A@;0,0,? @B0 C,0 > *. > 5 C D & D 5 * &! ; 66C! * C, 0 E,&! 0 F,G0 >: = = C 3 & HI

Läs mer

EDAA20 Föreläsning Klassen ArrayList. Viktiga operationer på ArrayList. Generisk klass

EDAA20 Föreläsning Klassen ArrayList. Viktiga operationer på ArrayList. Generisk klass EDAA20 Föreläsning 11-12 Klassen ArrayList Klassen ArrayList Skriva program som läser data från en textfil och skriver data till en textfil Repetition inför delmålskontroll 2 är en standardklass (i paketet

Läs mer

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2014-06-12 Skrivtid: 1400-1900 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Läs mer

Objekt och klasser - Introduktion. Objekt. SparKonto.java 2. SparKonto.java 1. Konton.java. Ett objekt har: Ett bankkonto

Objekt och klasser - Introduktion. Objekt. SparKonto.java 2. SparKonto.java 1. Konton.java. Ett objekt har: Ett bankkonto Objekt och klasser - Introduktion Objekt Ð Begreppet objekt Ð Hur klasser anvšnds fšr att skapa objekt Ð Fšr-definierade klasser Ð Metoder och parameteršverfšring Ð Definiera klasser Ð Modifierare Ð Statiska

Läs mer

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga. Tentamen Programmeringsteknik II 2015-05-26 Skrivtid: 0800 1300 Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja alltid ny uppgift på nytt papper. Lägg

Läs mer

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna. 1 Uppgift 1 Klassen Company Banken FinanceTrust som tidigare bara haft privatpersoner som kunder vill nu bygga ut sitt datasystem så att även företag kan registreras som kunder. Skriv klassen Company som

Läs mer

DD2310. Javaprogrammering för Pythonprogrammerare. Johan Boye

DD2310. Javaprogrammering för Pythonprogrammerare. Johan Boye DD2310 Javaprogrammering för Pythonprogrammerare Johan Boye James Gosling pappa till Java Hej.java public class Hej { public static void main( String[] args ) { System.out.println( "Hej" ); Java basics

Läs mer

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga) Grundläggande programmering med C# Provmoment: Ladokkod: Tentamen ges för: 7,5 högskolepoäng TEN1 NGC011 Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga) (Ifylles av student) (Ifylles av student)

Läs mer

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java (Man brukar säga att) Java är... Denna föreläsning Allmänt om Java Javas datatyper, arrayer, referenssemantik Klasser Strängar enkelt baserat på C/C++ objekt-orienterat från början dynamiskt utbyggbart

Läs mer

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA för SY2 1999-03-17, kl 14.00-18.00 Hjälpmedel: En lärobok i Java programmering Återlämningstillfälle:

Läs mer

Språkkonventioner och redigering av tal.

Språkkonventioner och redigering av tal. Språkkonventioner och redigering av tal. Kap J3-1 Konventioner för olika språk hanteras med hjälp av klassen java.util.locale Ett objekt i denna klass beskriver en lokal konvention. Lokala konventioner

Läs mer

Tentamen i Programmeringsteknik MN

Tentamen i Programmeringsteknik MN Tentamen i Programmeringsteknik MN1 001204 Skrivtid : 14.00-19.00 Hjälpmedel : Skansholm, Java direkt eller motsvarande Pärt-Enander mfl, Anv. handledning för Matlab. Matlab-material utdelat på lektion.

Läs mer

Tentamen i Programmeringsteknik I

Tentamen i Programmeringsteknik I Tentamen i Programmeringsteknik I 2017-01-03 Skrivtid: 8.00-13.00 Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Skriv ej högst upp i det vänstra hörnet

Läs mer

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken. Tentamen Programmeringsteknik I 2012-09-01 Skrivtid: 0900-1200 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till

Läs mer

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... } En klassdefinition class A extends B {... Arv definierar en klass A som ärver av B. Klassen A ärver alla fält och metoder som är definierade för B. A är en subklass till B. B är en superklass till A. class

Läs mer

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering. EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.aelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade

Läs mer

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering och metoder Introduktion till objektorienterad programmering Markus Saers markus.saers@lingfil.uu.se orientering Deklarativ programmering Beskriver förutsättningarna för något Prolog Imperativ programmering

Läs mer

Lösningsförslag till tentamen i EDA011/EDA017 Programmeringsteknik för F, E, I, π och N 25 maj 2009

Lösningsförslag till tentamen i EDA011/EDA017 Programmeringsteknik för F, E, I, π och N 25 maj 2009 Lösningsförslag till tentamen i EDA011/EDA017 Programmeringsteknik för F, E, I, π och N 25 maj 2009 Christian 5 mars 2010 Observera att poängen nedan är preliminära det är möjligt att vi korrigerar något

Läs mer

Laboration 1 - Grunderna för OOP i Java

Laboration 1 - Grunderna för OOP i Java Uppdaterad: 2006-08-31 Laboration 1 - Grunderna för OOP i Java Inledning Laborationen går ut på att lära sig grunderna för objektorienterad programmering, samt motsvarande språkkonstruktioner i Java. Labben

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP F2:1 OOP Objekt-orienterad programmering Föreläsning 2 Deklaration och tilldelning Programsatser Tilldelning Input/Output Selektion Deklaration och tilldelning OOP F2:2 int x; double d; char ch; boolean

Läs mer