Vinnaren i pepparkakshustävlingen!
  • 1
  • 2
2015-11-18, 14:20
  #1
Medlem
Ja, då är jag tillbaka här igen eftersom att jag fick så otroligt bra hjälp sist.

Uppdraget är att vi ska tänka objektbaserad utveckling. Vi har ett uppdrag där vi ska skapa en meny (fixat) och menyn ska låta användaren Visa innehållet i en back läsk (fixat), lägga till flaskor med pris, namn och position i backen (fixat) och sedan kommer vi till steget som jag misslyckas med vad jag än försöker mig på... Vi ska summera värdet av alla flaskor som finns i backen.

Mina flaskor är lagrade i en vektor som har plats för 24 flaskor. Varje flaska har som sagt ett namn, ett pris och en position i backen. Hur kan jag summera värdet av de flaskor som finns inlagda i backen?

Edit:
Lite förtydligande. Min vektor innehåller alltså upp till 24 objekt (flaskor) som har tre fält var (price, name, pos). Det jag behöver är att komma på hur jag bara lyfter ut ett av fälten från varje objekt och adderar dessa till ett slutvärde.
__________________
Senast redigerad av giddorah2 2015-11-18 kl. 14:30.
Citera
2015-11-18, 14:41
  #2
Medlem
jordrobsss avatar
Du får iterera igenom din array med flaskor och plocka ut summan från varje flaska och addera den.


Citera
2015-11-18, 14:45
  #3
Medlem
Antingen, eftersom det är programmering 1 så itererar du som jordrobss sa, eller så använder du en redan inbyggd metod (läs mer om IEnumerables metoder) som heter Sum.

Kod:
var totalSum = arr.Sum(x => x.Price)

EDIT:
Vilket var precis det som jordrobss sa. Tolkade din text som att han måste iterera för att plocka ut priset, men du itererar för att sätta priset såg jag när jag tryckte spoiler.
__________________
Senast redigerad av Blippster 2015-11-18 kl. 14:48.
Citera
2015-11-18, 14:52
  #4
Medlem
kp1s avatar
Citat:
Ursprungligen postat av giddorah2
Ja, då är jag tillbaka här igen eftersom att jag fick så otroligt bra hjälp sist.

Uppdraget är att vi ska tänka objektbaserad utveckling. Vi har ett uppdrag där vi ska skapa en meny (fixat) och menyn ska låta användaren Visa innehållet i en back läsk (fixat), lägga till flaskor med pris, namn och position i backen (fixat) och sedan kommer vi till steget som jag misslyckas med vad jag än försöker mig på... Vi ska summera värdet av alla flaskor som finns i backen.

Mina flaskor är lagrade i en vektor som har plats för 24 flaskor. Varje flaska har som sagt ett namn, ett pris och en position i backen. Hur kan jag summera värdet av de flaskor som finns inlagda i backen?

Edit:
Lite förtydligande. Min vektor innehåller alltså upp till 24 objekt (flaskor) som har tre fält var (price, name, pos). Det jag behöver är att komma på hur jag bara lyfter ut ett av fälten från varje objekt och adderar dessa till ett slutvärde.

Kod:
            int sum0 = 0;
            for (int i = 0; i < drickor.Length; i++)
            {
                if (drickor[i] != null)
                {
                    sum0 = sum0 + drickor[i].Pris;
                }
            }
            int sum1 = 0;
            foreach (Dricka dricka in drickor)
            {
                if (dricka != null)
                {
                    sum1 += dricka.Pris;
                }
            }
            int sum2 = drickor.Where(y => y != null).Sum(x => x.Pris);
            int sum3 = drickor.OfType<Dricka>().Sum(x => x.Pris);

Där har du fyra olika sätt.
Citera
2015-11-18, 14:57
  #5
Medlem
jordrobsss avatar
Citat:
Ursprungligen postat av Blippster

EDIT:
Vilket var precis det som jordrobss sa. Tolkade din text som att han måste iterera för att plocka ut priset, men du itererar för att sätta priset såg jag när jag tryckte spoiler.

Jag skrev ihop något snabbt bara för att testa. Men om man gjort som jag föreslog hade det blivit såhär :

När jag gjorde programmering 1 ville inte lärarna att man skulle använda sig av listor och inbyggda metoder utan göra skiten själv. Därför gjorde ja en spoiler.
Citera
2015-11-18, 15:18
  #6
Medlem
Då min vektor "sodas" är en private int under crate.cs så antar jag att jag på något sätt måste bryta ut den till program.cs för att kunna läsa Length?
Citera
2015-11-18, 15:21
  #7
Medlem
Enklaste kanske är att jag delar med mig av koden i sin helhet så att ni kan få bedöma mig.


crate.cs

soda.cs
Citera
2015-11-18, 15:30
  #8
Medlem
Nu har jag kommit på hur jag skulle göra! Mycket tack vare er men också tack vare att jag, i samråd med en vän kom på att jag är väldigt slarvig med mina deklarationer.

Allt eftersom att projektet blev mer komplext så tappade jag bort mig i min egen kod och började hänvisa till saker som faktiskt inte existerade. Sen kompletterade jag bara presentationen för användaren med era kodsnippets som grund.
Citera
2015-12-04, 15:26
  #9
Medlem
Hej! har du gjort klart koden för din läskback hade det varit suveränt om du skickade den. Läser lite själv för skogsskull och hade vätt kul att se hur den är uppbyggd
Citera
2015-12-11, 10:12
  #10
Medlem
.--.s avatar
Citat:
Ursprungligen postat av -Mac4EVER-
Hej! har du gjort klart koden för din läskback hade det varit suveränt om du skickade den. Läser lite själv för skogsskull och hade vätt kul att se hur den är uppbyggd

Här är ett exempel: http://goo.gl/WT08fg
Skriv om skiten helt annars får du IG i kursen på grund av plagiat.
Citera
2015-12-11, 15:59
  #11
Medlem
TexasSwedes avatar
Här är ett inlägg i en annan tråd med lite kod som kanske kan hjälpa också.
(FB) Den stora tråden för snabba nybörjarfrågor
Citera
2016-01-29, 17:04
  #12
Medlem
Hej är fast på exakt samma ställe.. kan inte komma på en for-loop som skulle kunna räkna ut den totala summan av samlade drycker, har jobbat med det i timmar nu och kan inte hitta något exempel på hur jag kan göra, tips någon?

Program
Kod:
class program
    { 

        public static void Main(string[] args)
        {
      Crate crate1 = new Crate("Läskback 1", 1);


            bool loop = true;

            do
            {
                Console.WriteLine("1. Visa vad som är i.");
                Console.WriteLine("2. Lägg till drickor.");
                Console.WriteLine("3. Räkna ut total pris.");
                Console.WriteLine("4. Avsluta.");
                string str = Console.ReadLine();
                int nr = Convert.ToInt32(str);

                switch (nr)

                {
                    case 1:
                        Console.WriteLine("Inehåller:");
                        crate1.show_soda();
                       
                        break;

                    case 2:

                        Console.WriteLine("Vad heter drickan?");
                        string sodaName = Console.ReadLine();
                        Console.WriteLine("Var i backen vill du lägga drickan?");
                        string strsodapos = Console.ReadLine();
                        int sodapos = Convert.ToInt32(strsodapos);
                        Console.WriteLine("{0} har laggts till i fack {1}", sodaName, sodapos);
                        crate1.add_soda(sodaName, 5, sodapos);
                        break;


                    case 3:

                                  //hur ska den förstå vad jag vill? 
                
                        Console.WriteLine("Läsken kostar {0} sammanlagt", sum);
                        break;



                    case 4:
                        
                        loop = false;
                        break;
                }

                }
                while (loop) ;




          
            
        }
    }
}

Crate
Kod:
  public class Crate
    {
        private string name;
        private int price;
        private soda[] sodas;

        public Crate(string _name, int _price)
        {
            name = _name;
            price = _price;
            sodas = new soda[24];
        }
         public void add_soda(string _name, int _price, int _pos)
        { sodas[_pos] = new soda(_name, _price); }

        public void show_soda()
        {
            foreach (var tmp_soda in sodas)
                if (tmp_soda != null)
                    Console.WriteLine(tmp_soda);
                else
                    Console.WriteLine("tomt fack");



                    }
        
    }
}

Soda
Kod:
public class soda
    {
        private string name;
        private int price;


        public soda(string _name, int _price)
        {
            name = _name;
            price = _price;
            _price = 5;
        }

        public override string ToString()
        {
            return string.Format("{0} kostar {1} kronor", name, price);
        }
    }
}

Som ni ser har jag en fast summa av 5 för priset men det är exakt hur den ska använda de olika elementen för att räkna ihop varje läsk tillsammans som jag inte finner några svar för...
Citera
  • 1
  • 2

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback