Erinevus lehekülje "ITI0011:harjutus 01" redaktsioonide vahel

Allikas: Kursused
Mine navigeerimisribale Mine otsikasti
 
(ei näidata sama kasutaja 2 vahepealset redaktsiooni)
2. rida: 2. rida:
  
 
Tähtaeg: 3. prakikum (08.-10. veebruar)
 
Tähtaeg: 3. prakikum (08.-10. veebruar)
 +
 +
Ülesande testimiseks tuleb see laadida tudengi gitis kausta EX01. Faili/klassi nimi peab täpselt sama olema nagu all mallis. Ehk siis teil peaks giti tekkima fail: EX01/src/EX01.java (või EX01/EX01.java kui teete ilma IDE-ta).
 +
 +
* Kuidas testida: [[Meedia:ITI0011-2016_How_to_test.pdf|How to test]], testfaili sisu [[#Testifail|siit]]
  
 
== Ülesanne ==
 
== Ülesanne ==
  
Mardil – ühel tagasihoidlikul kommipoe omanikul, kes ülekõige armastab lapsi - on viimasel ajal tekkinud väikene probleem, millele ta loodab just Sinu abiga lahenduse leida. Nimelt on Mart 72-aastane USA sõjard, kes sai II maailmasõjas pommiplahvatuses kannatada. Õnneks jäi Mart ellu, kuid õnnetusest saati tunneb, et ta pea ei tööta nii nagu varem. Küll unustab asju ja küll eksib erinevates arvutustes. Kuid Mart armastab oma pisikestele silmarõõmudele kommi jagamist nii väga, et ta ei ole valmis veel lõpetama..
+
Mardil – ühel tagasihoidlikul kommipoe omanikul tuli mõte automatiseerida ettevõttes 2 väga tähtsat ülesannet. Ülesanneteks on klientide tervitamine ja kommide koguhinna arvutamine.
 
+
Ülesannete realiseerimisel loodab Mart just Sinu abile!
Aitame kommionu Mardil tööd jätkata ja kirjutame talle töö jätkamiseks programmi, mis teeb kõik otsekui tema eest ära.
 
  
 
Sinu ülesandeks on kirjutada sisu järgnevatele meetoditele:
 
Sinu ülesandeks on kirjutada sisu järgnevatele meetoditele:
  
Mart on unustanud ära laste nimed ja ilma nimeta tervitamine ei tundu tema jaoks õige. Et Marti aidata peame talle ette ütlema lapse nime ja ülejäänu eest hoolitseb ta juba ise!
+
1) meetod <code>getCustomerGreeting(String customerName)</code>, kus parameetri <code>customerName</code> väärtuseks on kliendi nimi ja meetod tagastab nimelise tervituse kujul: <code>Hello {nimi}, nice to see you!</code> (kus {nimi} tuleb asendada etteantud lapse nimega).
 
 
1) meetod <code>getCustomerGreeting(String customerName)</code>, kus parameetri <code>customerName</code> väärtuseks on lapse nimi ja meetod tagastab lapsele nimelise tervituse kujul: <code>Hello {nimi}, nice to see you!</code> (kus {nimi} tuleb asendada etteantud lapse nimega).
 
  
 
Mart eksib pidevalt arvutustes, teeme ka selle tema eest ära
 
Mart eksib pidevalt arvutustes, teeme ka selle tema eest ära
19. rida: 20. rida:
 
2) meetod <code>getPrice(int amount, double price)</code>, kus parameetri <code>amount</code> väärtuseks antakse täisarv, mis näitab mitu kommi osteti, ja parameetri <code>price</code> väärtuseks on ühe kommi hind. Eeldame, et kõik ostetud kommid on sama hinnaga. Meetod peaks tagastama ostu kogusumma. Eeldame, et kommide arv on > 0 ja ühe kommi hind on mitte-negatiivne.
 
2) meetod <code>getPrice(int amount, double price)</code>, kus parameetri <code>amount</code> väärtuseks antakse täisarv, mis näitab mitu kommi osteti, ja parameetri <code>price</code> väärtuseks on ühe kommi hind. Eeldame, et kõik ostetud kommid on sama hinnaga. Meetod peaks tagastama ostu kogusumma. Eeldame, et kommide arv on > 0 ja ühe kommi hind on mitte-negatiivne.
  
 +
Meetodite sisendid on korrektsed - ei ole vaja teostada sisendikontrolli.
  
 
== Mall ==
 
== Mall ==
58. rida: 60. rida:
 
         return Double.NaN;
 
         return Double.NaN;
 
     }
 
     }
 +
}
 +
 +
</source>
 +
 +
== Testifail ==
 +
 +
<source lang="java">
 +
import static org.junit.Assert.*;
 +
 +
import java.util.Random;
 +
 +
import org.junit.Test;
 +
 +
public class EX01Test {
 +
 +
EX01 testEX01 = new EX01();
 +
private static final double DELTA = 1e-5; //For testing double values.
 +
 +
@Test
 +
public void testGreetings() {
 +
assertEquals("Hello Alice, nice to see you!", testEX01.getCustomerGreeting("Alice"));
 +
}
 +
 +
@Test
 +
public void testNumeralGreetings() {
 +
String name = "1234";
 +
assertEquals("Hello " + name + ", nice to see you!", testEX01.getCustomerGreeting(name));
 +
}
 +
 +
@Test
 +
public void testCandyPrice() {
 +
int one = 5;
 +
double two = 4.5;
 +
assertEquals(one*two, testEX01.getPriceOfCandies(one, two),DELTA);
 +
}
 +
 +
@Test
 +
public void testRandomCandyPrice() {
 +
double min = 1;
 +
double max = 50;
 +
Random rand = new Random();
 +
int one = rand.nextInt(50)+1;
 +
double two = min + (max - min) * rand.nextDouble();
 +
assertEquals(one*two, testEX01.getPriceOfCandies(one, two),DELTA);
 +
}
 +
 
}
 
}
  
 
</source>
 
</source>

Viimane redaktsioon: 7. veebruar 2016, kell 10:09

Üldine

Tähtaeg: 3. prakikum (08.-10. veebruar)

Ülesande testimiseks tuleb see laadida tudengi gitis kausta EX01. Faili/klassi nimi peab täpselt sama olema nagu all mallis. Ehk siis teil peaks giti tekkima fail: EX01/src/EX01.java (või EX01/EX01.java kui teete ilma IDE-ta).

Ülesanne

Mardil – ühel tagasihoidlikul kommipoe omanikul tuli mõte automatiseerida ettevõttes 2 väga tähtsat ülesannet. Ülesanneteks on klientide tervitamine ja kommide koguhinna arvutamine. Ülesannete realiseerimisel loodab Mart just Sinu abile!

Sinu ülesandeks on kirjutada sisu järgnevatele meetoditele:

1) meetod getCustomerGreeting(String customerName), kus parameetri customerName väärtuseks on kliendi nimi ja meetod tagastab nimelise tervituse kujul: Hello {nimi}, nice to see you! (kus {nimi} tuleb asendada etteantud lapse nimega).

Mart eksib pidevalt arvutustes, teeme ka selle tema eest ära

2) meetod getPrice(int amount, double price), kus parameetri amount väärtuseks antakse täisarv, mis näitab mitu kommi osteti, ja parameetri price väärtuseks on ühe kommi hind. Eeldame, et kõik ostetud kommid on sama hinnaga. Meetod peaks tagastama ostu kogusumma. Eeldame, et kommide arv on > 0 ja ühe kommi hind on mitte-negatiivne.

Meetodite sisendid on korrektsed - ei ole vaja teostada sisendikontrolli.

Mall

<source lang="java"> /**

* Home assignment 01.
*/

public class EX01 {

   /**
    * Entry-point of the program.
    * This is here so you can test out your code
    * with running this program.
    * @param args Arguments from command-line.
    */
   public static void main(String[] args) {
       System.out.println(getCustomerGreeting("Alice")); // => Hello Alice, nice to see you!
       System.out.println(getPriceOfCandies(5, 4.5)); // => 22.5
   }
   /**
    * Function that greets a customer by it's name
    * @param customerName The customer's name to greet
    * @return Greeting to the customer like Hello {customerName}, nice to see you!
    */
   public static String getCustomerGreeting(String customerName) {
       //Add your code here
       return null;
   }
   /**
    * Function that returns the total cost of candies
    * @param amount Amount of candies to buy
    * @param price Price of one candy
    * @return Total cost of the candies
    */
   public static double getPriceOfCandies(int amount, double price) {
       //add your code here
       return Double.NaN;
   }

}

</source>

Testifail

<source lang="java"> import static org.junit.Assert.*;

import java.util.Random;

import org.junit.Test;

public class EX01Test {

EX01 testEX01 = new EX01(); private static final double DELTA = 1e-5; //For testing double values.

@Test public void testGreetings() { assertEquals("Hello Alice, nice to see you!", testEX01.getCustomerGreeting("Alice")); }

@Test public void testNumeralGreetings() { String name = "1234"; assertEquals("Hello " + name + ", nice to see you!", testEX01.getCustomerGreeting(name)); }

@Test public void testCandyPrice() { int one = 5; double two = 4.5; assertEquals(one*two, testEX01.getPriceOfCandies(one, two),DELTA); }

@Test public void testRandomCandyPrice() { double min = 1; double max = 50; Random rand = new Random(); int one = rand.nextInt(50)+1; double two = min + (max - min) * rand.nextDouble(); assertEquals(one*two, testEX01.getPriceOfCandies(one, two),DELTA); }

}

</source>