Övning Dictionary. Övning 1. Steg 1: På din virtuella maskin, starta Visual Studio.

Relevanta dokument
Övning: Arbeta med Azure Explorer

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio

DIAGNOSTISKT PROV. Tid. Hjälpmedel. Antaganden. Rättning. Övrigt. Diagnostiskt Prov. Klockan Inga

Polymorfi. Objektorienterad och komponentbaserad programmering

Language Integrated Query, LINQ, och databaser

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

Chapter 4: Writing Classes/ Att skriva egna klasser.

Grundläggande programmering med C# 7,5 högskolepoäng. Provmoment: Ladokkod: Tentamen ges för: TEN1 NGC011 ADAEK17, ASYST17 samt öppen för alla

Förutsättningar: Konto på Azure, kontot har fått File Storage tillagt, Azure Powershell version eller senare.

Programmering i C++ EDA623 Något om C# EDA623 (Föreläsning 14) HT / 17

Alla rättigheter till materialet reserverade Easec

Provmoment: TEN1 Ladokkod: NGC011 Tentamen ges för: Tentamen DE14, IMIT14 och SYST14 samt öppen för alla

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

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

Grundläggande programmering med C# 7,5 högskolepoäng. Provmoment: Ladokkod: Tentamen ges för:

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

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

Övning Arbeta med klasser

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

Arv Murach s: kap 14

Frekvenstabell över tärningskast med C#

Arbeta med databas. Översikt. Lektion 1: Arbeta med Entity Data Models. Arbeta med Entity Data Models. LINQ (Language Integrated Query).

Frekvenstabell över tärningskast med C#

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

Objektorienterad Programmering (TDDC77)

The Last Adventure. Innehåll. Objektorientering. Språket Java. Java - Paket. Java - synlighet. Den sista lektionen. Repetition.

Tentamen, EDAA20/EDA501 Programmering

Lösningsförslag övning 2.

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

Outline. Objektorienterad Programmering (TDDC77) En frukt har ett namn. Man kan lägga en frukt i en korg... Hashing. Undantag. Ahmed Rezine.

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

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 tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2

Lösningsförslag till tentamen FYTA11 Javaprogrammering

// GET: Test1/Index2 // Syftet är att se hur olika url:er leder till olika actions

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

Obligatorisk uppgift: Banksystem

TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 5

Övning vecka 6. public void method2() { //code block C method3(); //code block D }//method2

Objektorienterad Programmering (TDDC77)

Föreläsning 3. Stack

SI-pass 4. Johan Brook och Jesper Persson. 25 september Diskutera och svara på om påståendena nedan är äkta sanningar eller listiga lögner.

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

Föreläsning 14. Filhantering

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

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

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING

Mer om klasser och objekt

TDDE10 TDDE11, 725G90. Objektorienterad programmering i Java, Föreläsning 3 Erik Nilsson, Institutionen för Datavetenskap, LiU

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc

Algoritmer. Två gränssnitt

FactoryCast HMI. Premium & Quantum PLC. Applets

Arv. Objektorienterad och komponentbaserad programmering

Lab 6: ASP.NET 2.0 Providermodellen

Vad handlar kursen om? Algoritmer och datastrukturer. Vad handlar kursen om? Vad handlar kursen om?

Lösningar för tenta 2 DAT043,

KARLSTADS UNIVERSITET 12/8/09 informatik & datavetenskap Johan Öfverberg, Kerstin Andersson Laboration 4, ISG A04 och DVG A08 HT-09

DAT043 Objektorienterad Programmering

F12 - Collections. ID1004 Objektorienterad programmering Fredrik Kilander

PROG2 Tenta Gäller SP:PROG2, DSK2:PROG2, FK:PROG2, FK:OOP, DSV1:P2 och ITK:P2

Konstruktion av klasser med klasser

Föreläsning 3. Stack

Tentamen Objekt-orienterad programmering i Java, 5p distanskurs

2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning

Modelsvar för Tentamen för Objektorienterad programvaruutveckling, TDA545

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

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

Vad kännetecknar en god klass. Vad kännetecknar en god klass. F12 Nested & Inner Classes

Programmering för Språkteknologer II. Innehåll. Associativa datastrukturer. Associativa datastrukturer. Binär sökning.

Malmö högskola 2008/2009 CTS

Repetition av viktiga begrepp inom objektorienterad programmering

Dugga i Grundläggande programmering STS, åk

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.

Collections och datastrukturer. Kursbokens kapitel 13 och

Abstrakt klass. DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 31/ Exempel: Implementation av Schackpjäser.

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

1 Repetition av viktiga begrepp inom objektorienterad programmering

Lösningsförslag till omtentamen för TDA540 Objektorienterad Programmering

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

System.out.println("Jaså du har "+ antaldollar + " stycken.");

Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista

Svaret kan ges i Javakod (eller i UML-klassdiagram). public class A { B minb;... } public class B { <B:s många variabler och metoder> } Lösning:

Laboration 10 - Eclipse

Programmering för språkteknologer II, HT2011. Rum

Upplägg. Introduktion. Examination. Mål. Konsekvenser. Java. Kursen heter konstruktion, ej design eller formgivning.

JAVA Mer om klasser och objektorientering

Enkla variabler kontra referensvariabel

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin

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.

Föreläsning 6. Mer om klasser och objekt. Enkla variabler kontra referensvariabel. Omslagsklassen Integer. Referensvariabler

Tentamen FYTA11 Javaprogrammering

Concurrency Saker händer samtidigt. Process En instans av ett program

Enkla variabler kontra referensvariabel

Examination i. PROGRAMMERINGSTEKNIK F1/TM1 TIN212 (Dugga) Dag: Onsdag Datum: Tid: (OBS 3 tim) Rum: V

Tentamen, EDAA10 Programmering i Java

Objektorienterad programmering E. Algoritmer. Telefonboken, påminnelse (och litet tillägg), 1. Telefonboken, påminnelse (och litet tillägg), 2

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

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

Transkript:

1 Övning Dictionary När collection av typen Dictionary används, används nyckel och ett värde som ett par för lagringen. Duplikat av information kan lagras, men nyckel är alltid unik. Generic collections är definierade i namespace System.Collections.Generic. Det finns tre bastyper av collection (List, HashSet och Dictionary) definierade. I övningen skall vi bygga ett enkelt banksystem, där tre unika konto skapas, du gör en insättning för en av kunderna och sedan kontrollerar du ingående balans. I övningen kommer du att göra två stycken klasser, en klass för kontot (Account) och en klass för bank (Bank). Som unik kombination används nyckel i form av ett löpnummer och värde i form av namnet för kund. I metoden Main(), skapas tre konton (även försök att skapa post med samma nyckel), visa balans för de tre kontona, ett konto hämtas för att göra en insättning, därefter visas aktuell balans igen. Övning 1 Steg 1: På din virtuella maskin, starta Visual Studio.

2 Steg 2: Klicka på File-New-Project. I den vänstra trädstrukturen klicka på Visual C#. Klicka därefter på Console Application i det mittersta fönstret. Steg 3: Skriv in DictionaryÖvning1 i rutan till höger om File Name, klicka därefter på OK. Steg 4: Verifiera att using System.Collections.Generic; finns med överst i din applikation. Steg 5: Skriv in följande kod som är markerad med fet text. namespace DictionaryÖvning1 class Account private String name; public String Name get return name; private String dateofbirth; public String DateOfBirth get return dateofbirth; private int balance; dob) public Account(String name, String this.name = name;

3 this.dateofbirth = dob; balance = 0; public void DepositMoney(int increase) balance = balance + increase; public override string ToString() return Namn: + name \nbalans : + balance; obj) public override bool Equals(object Account a = (Account)obj; return ((name==a.name) && (dateofbirth ==a.dateofbirth)); public override int GetHashCode() return (name + dateofbirth).gethashcode(); Class Bank

4 accounts; Accounts private Dictionary<int,Account> public Dictionary<int,Account> get return accounts; public Bank() Account>(); accounts = new Dictionary<int, public void AddAccount(int number, Account account) try account); accounts.add(number, catch (Exception) public Account GetAccount(int number)

5 Account a; out a); accounts.trygetvalue(number, return a; Class Program static void Main(string[] args) Bank b = new Bank(); Account a; int an; 06/12/1963 ); a = new Account( Ture Svensson, b.addaccount(1, a); nyckel 06/12/1963 ); // lägger till duplikat med samma a = new Account( Ture Svensson, b.addaccount(1, a); 06/06/1928 ); 06/06/1945 ); a = new Account( Alice Babs, b.addaccount(2, a); a = new Account( Nisse Hult, b.addaccount(3, a);

6 foreach (KeyValuePair<int, Account> kvp in b.accounts) an = kvp.key; a = kvp.value; nummer: + an + a.tostring()); Console.WriteLine( Konto \ndetaljer för kontot: + a = b.getaccount(1); a.depositmoney(100); foreach (KeyValuePair<int, Account> kvp in b.accounts) nummer: + an + a.tostring()); an = kvp.key; a = kvp.value; Console.WriteLine( Konto \ndetaljer för kontot: + Steg 5: Klicka på DEBUG-Start Without Debugging. Steg 6: Verifiera funktion enligt bild nedan:

7 Program: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DictionaryÖvning1 class Account private String name; public String Name get return name; private String dateofbirth; public String DateOfBirth get return dateofbirth;

8 private int balance; public Account(String name, String dob) this.name = name; this.dateofbirth = dob; balance = 0; public void DepositMoney(int increase) balance = balance + increase; public override String ToString() return "Namn: " + name + "\nbalans : " + balance; public override bool Equals(object obj) Account a = (Account)obj; return ( (name==a.name) && (dateofbirth==a.dateofbirth)); public override int GetHashCode() return (name + dateofbirth).gethashcode();

9 class Bank private Dictionary<int,Account> accounts; public Dictionary<int,Account> Accounts get return accounts; public Bank() accounts = new Dictionary<int, Account>(); public void AddAccount(int number,account account) try accounts.add(number, account); catch (Exception) public Account GetAccount(int number) Account a; accounts.trygetvalue(number, out a); return a;

10 class Program static void Main(string[] args) Bank b = new Bank(); Account a; int an; a = new Account("Ture Svensson", "06/12/1963"); b.addaccount(1, a); // lägger till duplikat med samma nyckel a = new Account("Ture Svensson", "06/12/1963"); b.addaccount(1, a); a = new Account("Alice Babs", "06/06/1928"); b.addaccount(2, a); a = new Account("Nisse Hult", "06/12/1945"); b.addaccount(3, a); foreach (KeyValuePair<int, Account>kvp in b.accounts) an = kvp.key; a = kvp.value; Console.WriteLine("Kontonummer: " + an +

11 "\ndetaljer för kontot: " + a.tostring()); a = b.getaccount(1); a.depositmoney(100); foreach (KeyValuePair<int, Account>kvp in b.accounts) an = kvp.key; a = kvp.value; Console.WriteLine("Kontonummer: " + an + "\ndetaljer för kontot: " + a.tostring());