Avatar billede Slettet bruger
03. oktober 2013 - 09:47 Der er 18 kommentarer og
1 løsning

Hvordan laver jeg en porto

Hej. jeg er lige begyndt at programmer i c# og jeg vil gerne lave en konsolprogram der kan udskrive prisen for et brev (porto). Som input skal programmet modtage brevets vægt.

Der skal regnes med følgende priser:

Vægt < 20 gram = 5,00 kr.
Vægt > 20 og < 50 = 7,00 kr.
Vægt > 51 og < 100 gram = 10,00 kr.
Vægt > 100 og < 150 gram = 15,00 kr.
Vægt > 150 og < 200 gram = 20,00 kr.
Eller en pakke og pris = 30,00 kr.

er der nogen der kan hjælpe mig med porto eller give mig en fuld kode?
Avatar billede Slettet bruger
03. oktober 2013 - 10:56 #1
er der nogen der kan hjælp mig???
Avatar billede Skifter24 Praktikant
03. oktober 2013 - 13:08 #2
Hej. Jeg er også ny til programmering. Så fedt projekt du lige kom med der :)
Jeg vil gerne kigge på det, men kan intet love da jeg selv er ny.
Avatar billede Skifter24 Praktikant
03. oktober 2013 - 13:49 #3
Okay. Her er lavet en hurtig løsning. Jeg er SIKKER på at du kan finde en bedre kode. Men som sagt er jeg også ny og så er jeg slet ikke god til matematik. Jeg ved at man kan skrive matematiske koder, som gør selveste kildekoden lettere at gennemskue. Men er er et eksempel på hvordan det kan gøres.
Jeg er sikker på at du selv kan udfylde resten.
Jeg har skrevet det i visual studio Express.
Så du burde kunne copy paste det.
Lad mig vide om det var det du ledte efter :)



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string answer;

            bool brev = true;
            bool pakke = false;

            Console.WriteLine("skal du sende en pakke eller et brev? ");
            answer = Console.ReadLine().ToLower();

            if (answer == "brev")
            {
                Console.WriteLine("indtast venligst vægten på dit brev i Gram");
                answer = Console.ReadLine();
            }
            {
                if (answer == "0")
                    Console.WriteLine("Du kan ikke sende et brev der ikke vejer noget");
                if (answer == "1")
                    Console.WriteLine("Du har tastet 1, hvilket betyder at dit brev vejer 1 gram. Og derfor er Prisen på dit brev, 5,00kr i porto");
                if (answer == "2")
                    Console.WriteLine("Prisen på dit brev er 5,00kr i porto");
                if (answer == "3")
                    Console.WriteLine("Prisen på dit brev er 5,00kr i porto");
                if (answer == "4")
                    Console.WriteLine("Prisen på dit brev er 5,00kr i porto");
                if (answer == "5")
                    Console.WriteLine("Prisen på dit brev er 5,00kr i porto");
                if (answer == "6")
                    Console.WriteLine("Prisen på dit brev er 5,00kr i porto");
                if (answer == "7")
                    Console.WriteLine("Prisen på dit brev er 5,00kr i porto");
                if (answer == "8")
                    Console.WriteLine("Prisen på dit brev er 5,00kr i porto");
                if (answer == "9")
                    Console.WriteLine("Prisen på dit brev er 5,00kr i porto");
                if (answer == "10")
                    Console.WriteLine("Prisen på dit brev er 5,00kr i porto");
                if (answer == "11")
                    Console.WriteLine("Prisen på dit brev er 5,00kr i porto");
                if (answer == "12")
                    Console.WriteLine("Prisen på dit brev er 5,00kr i porto");
                if (answer == "13")
                    Console.WriteLine("Prisen på dit brev er 5,00kr i porto");
                if (answer == "14")
                    Console.WriteLine("Prisen på dit brev er 5,00kr i porto");
                if (answer == "15")
                    Console.WriteLine("Prisen på dit brev er 5,00kr i porto");
                if (answer == "16")
                    Console.WriteLine("Prisen på dit brev er 5,00kr i porto");
                if (answer == "17")
                    Console.WriteLine("Prisen på dit brev er 5,00kr i porto");
                if (answer == "18")
                    Console.WriteLine("Prisen på dit brev er 5,00kr i porto");
                if (answer == "19")
                    Console.WriteLine("Prisen på dit brev er 5,00kr i porto");
                if (answer == "20")
                    Console.WriteLine("Prisen på dit brev er 5,00kr i porto");
            }

            if (answer == "pakke")
                Console.WriteLine("indtast venligst vægten på din pakke");

            if (answer == "")
                Console.WriteLine("");
            {

            }


        }

    }

}
Avatar billede Skifter24 Praktikant
03. oktober 2013 - 13:51 #4
For resten!!
Hvis du vil holde konsol vinduet åbent under testen/debugging. Så skal du holde ctrl nede mens du trykker f5.
Ellers kan du skrive Console.ReadLine();  til sidst, det glemte jeg lige...
Avatar billede arne_v Ekspert
03. oktober 2013 - 14:41 #5
Maaske var det bedre at teste for om vaegten var i et interval ....
Avatar billede Skifter24 Praktikant
03. oktober 2013 - 14:47 #6
ikke forstået ?
Avatar billede kalp Novice
03. oktober 2013 - 15:07 #7
noget alá:

public int Fee(int fee){
if(fee < 0) throw new Exception("XXXXXXXXXXXX");
if (Enumerable.Range(0, 20).Contains(fee))
  return 5;
}
if (Enumerable.Range(21, 50).Contains(fee))
  return 7;
}
osv.....
}
Avatar billede kalp Novice
03. oktober 2013 - 15:11 #8
Jeg går selvfølgelig ikke ud fra du sidder og laver noget der kræver  den vildeste performance.. blot derfor jeg bruger Enumerable.Range.

men ellers kan du bare lave tjekket på den gode gamle måde.

if(fee > 0 && fee < 20) {
return 5;
}
if(fee > 20 && fee < 50) {
return 7;
}
Avatar billede MADOlsen Forsker
03. oktober 2013 - 15:33 #9
#8 Der skal også lige tages stilling til, hvad der skal ske, hvis vægten f.eks. er præcis 20 :-)
Avatar billede kalp Novice
03. oktober 2013 - 15:44 #10
fedeko >> nu var det blot princippet jeg illustrede.. i ovenstående mangler der jo også alle de øvrige kombinationer, men det overså du måske?:)

Desuden kræver det ikke at man tager stilling til tallet 20 direkte.. man kan blot tjekke på om tallet er under 21 i første if betingelse osv osv osv

hvis vi nu skal skære tingene ud i pap så alle kan være med:)
Avatar billede MADOlsen Forsker
03. oktober 2013 - 15:52 #11
Det bemærkede jeg godt. Risikoen for, at trådsstarteren ville glemme "grænseværdierne" var formentlig bare overhængende, hvis det ikke blev præciseret :-)

I øvrigt vil jeg mene, at "fee <= 20" eller "fee >= 20" ville være mere korrekt.
Avatar billede MadsHaupt Juniormester
04. oktober 2013 - 19:43 #12
Du skal bruge Console klassen i c#, lige som i vb.net.

Eksempel:
Console.WriteLine();
Console.WriteLine("123");
Console.ReadLine()


Her er nole tutorials: http://www.youtube.com/watch?v=SXmVym6L8dw&list=PLAC325451207E3105
Avatar billede Slettet bruger
07. oktober 2013 - 08:29 #13
tak for det
Avatar billede MADOlsen Forsker
07. oktober 2013 - 08:55 #14
#MadsHaupt: Er det ikke det Skifter24 skriver allerede i #3?
Avatar billede arne_v Ekspert
08. oktober 2013 - 03:56 #15
dat805>

Husk at giv point til den eller dem som har hjulpet dig.
Avatar billede Slettet bruger
08. oktober 2013 - 09:52 #16
@arne_v hvordan?
Avatar billede Slettet bruger
08. oktober 2013 - 13:39 #17
Fandt ud af det.
Koden var...

[code]
    class Program
    {
        static double Vægt, Porto;
        static string Pakke;

        static void Main(string[] args)
        {
            try
            {
                Console.Write("Ønsker du at sende en pakke(J/N)? "); Pakke = Console.ReadLine().ToUpper();

                if (Pakke.Equals("J"))
                    Porto = 30.00;
                else
                {
                    Console.Write("\nindtast brevets vægt: "); Vægt = double.Parse(Console.ReadLine());

                    if (Vægt <= 20)
                        Porto = 5.00;
                    else if (Vægt <= 50)
                        Porto = 7.00;
                    else if (Vægt <= 100)
                        Porto = 10.00;
                    else if (Vægt <= 150)
                        Porto = 15.00;
                    else if (Vægt <= 200)
                        Porto = 20.00;
                    else
                    {
                        Console.Write("\nbrevert er en storbrev");
                        Porto = 25.00;
                    }
                }
                Console.Write("\n\nPORTO = {0} Kr.", string.Format("{0:0.00}", Porto));
            }
            catch
            {
                Console.WriteLine("Vægten er ikke korrekt angivet!");
            }
            Console.ReadLine();


        }
    }
}
[/code]
Avatar billede kalp Novice
08. oktober 2013 - 16:30 #18
Sejt, jeg vil gerne sende et brev som vejer -100
Avatar billede kimr Nybegynder
27. oktober 2013 - 15:48 #19
Har du haft overvejet Switch?

OG som kalp skriver, skal du nok lige overveje, hvis er under nul.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester