mboost-dp1
Hjælp til c#
- Forside
- ⟨
- Forum
- ⟨
- Programmering
Hej med jer,
Jeg vil stadig gerne have kommentarer på min kode, hvis der er nogen der gider!
Derudover så kan jeg ikke finde ud af at få den til at udskrive adresse, telefonnummer, dyrenavn og hvad der eller bliver tastet ind - er der nogen der kan hjælpe?
Programmet kan hentes her: http://rapidshare.com/files/119096761/Dyrehotel.zi...
Min programklasse ud som nedenstående.
*********************************************
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Dyrehotel
{
class Program //Opretter klassen program
{
static void Main(string[] args)
{
char svar = '1';
string aktivitet; // attributter
do //do - while loop starter
{
Console.WriteLine("Vælg dyr: Tast 1 for fisk eller 2 for hund");//skriver teksten
Dyr voresDyr;
string b = (Console.ReadLine());//opretter en string b som den
//laver ud fra en console.readline, hvilket vil sige den bruger det input der kommer
//der fra.
switch (b)//bruger en switch, som går ud fra string b.
{
case "1": //Hvis string b = "1" laver den sin tekst med du har valgt fisk
Console.WriteLine("Du har valgt en fisk" + "\n");
voresDyr = new Fisk();//constructor
Console.WriteLine("Indtast Aktivitet for fisken:");
aktivitet = Console.ReadLine();
break; //break gør den falder ud af "switchen"
case "2": //hvis string b = "2" skriver den du har valgt hund... osv osv..
Console.WriteLine("Du har valgt en hund" + "\n");
voresDyr = new Hund(); //constructor
Console.WriteLine("Indtast Aktivitet for hunden:");
aktivitet = Console.ReadLine();
break; //break gør at den falder ud af switchen
default: //default siger vel sig selv... det er hvis string b ikke = 1 eller 2...
Console.WriteLine("\n*** ERROR 1 ***\nDu har ikke valgt et dyr vi har!\nPrøv igen.\n\n");
continue;//Continue gør at den hopper tilbage... (dette kan bruges da det er i starten...
//Ellers ville den hoppe for langt tilbage... (der er mange andre metoder)
}
Hund hunden = new Hund(); // opretter en instans/objekt af klassen hund
Fisk fisken = new Fisk(); //opretter en instans/objekt af klassen fisk
Reservation VoresReservation = new Reservation(); //opretter en instans/objekt af klassen/typen Reservation
VoresReservation.Aktivitet = aktivitet; //assigner m_Aktivitet en værdi via. Aktivitet propertien
Kunde voresKunde = new Kunde(); //opretter en instans/objekt af klassen Kunde
VoresReservation.Kunden = voresKunde; //assigner en værdi til kunde
voresKunde.Navn = "navn"; //assigner en værdi til Navn
voresKunde.Adresse = "add"; //assigner en værdi til Adresse
voresKunde.Telefon = "tlf"; //assigner en værdi til Telefon
Dyr voresNavn = new Dyr(); //opretter en instans/objekt af klassen Dyr
VoresReservation.Dyr = voresDyr; // assigner m_Dyr en værdi via. en property
voresNavn.DyreNavn = "navn"; //assigner en værdi til DyreNavn
voresNavn.Foder = "fodernavn"; //assigner en værdi til Foder
Console.WriteLine(VoresReservation.UdskrivReservation()); //Udskriver reservationen fra klassen reservation
Console.WriteLine("Reservationsnummer: " + VoresReservation.ReservationsNummer);//udskriver reservationsnummer
Console.WriteLine(VoresReservation.Aktivitet); //Udskriver aktivitet
Console.WriteLine("************************************");
Console.WriteLine(VoresReservation.UdskrivReservation()); //Udskriver reservationen fra klassen reservation
Console.WriteLine("Reservationsnummer: " + VoresReservation.ReservationsNummer);// udskriver reservationsnummer
Console.WriteLine(VoresReservation.Aktivitet); //Udskriver aktivitet
Console.ReadLine();
Console.WriteLine("Flere reservationer?: Tast 1 for ja eller 2 for nej" + "\n");
svar = char.Parse(Console.ReadLine());
} while (svar == '1'); //do while loop slutter
}
}
}
Jeg vil stadig gerne have kommentarer på min kode, hvis der er nogen der gider!
Derudover så kan jeg ikke finde ud af at få den til at udskrive adresse, telefonnummer, dyrenavn og hvad der eller bliver tastet ind - er der nogen der kan hjælpe?
Programmet kan hentes her: http://rapidshare.com/files/119096761/Dyrehotel.zi...
Min programklasse ud som nedenstående.
*********************************************
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Dyrehotel
{
class Program //Opretter klassen program
{
static void Main(string[] args)
{
char svar = '1';
string aktivitet; // attributter
do //do - while loop starter
{
Console.WriteLine("Vælg dyr: Tast 1 for fisk eller 2 for hund");//skriver teksten
Dyr voresDyr;
string b = (Console.ReadLine());//opretter en string b som den
//laver ud fra en console.readline, hvilket vil sige den bruger det input der kommer
//der fra.
switch (b)//bruger en switch, som går ud fra string b.
{
case "1": //Hvis string b = "1" laver den sin tekst med du har valgt fisk
Console.WriteLine("Du har valgt en fisk" + "\n");
voresDyr = new Fisk();//constructor
Console.WriteLine("Indtast Aktivitet for fisken:");
aktivitet = Console.ReadLine();
break; //break gør den falder ud af "switchen"
case "2": //hvis string b = "2" skriver den du har valgt hund... osv osv..
Console.WriteLine("Du har valgt en hund" + "\n");
voresDyr = new Hund(); //constructor
Console.WriteLine("Indtast Aktivitet for hunden:");
aktivitet = Console.ReadLine();
break; //break gør at den falder ud af switchen
default: //default siger vel sig selv... det er hvis string b ikke = 1 eller 2...
Console.WriteLine("\n*** ERROR 1 ***\nDu har ikke valgt et dyr vi har!\nPrøv igen.\n\n");
continue;//Continue gør at den hopper tilbage... (dette kan bruges da det er i starten...
//Ellers ville den hoppe for langt tilbage... (der er mange andre metoder)
}
Hund hunden = new Hund(); // opretter en instans/objekt af klassen hund
Fisk fisken = new Fisk(); //opretter en instans/objekt af klassen fisk
Reservation VoresReservation = new Reservation(); //opretter en instans/objekt af klassen/typen Reservation
VoresReservation.Aktivitet = aktivitet; //assigner m_Aktivitet en værdi via. Aktivitet propertien
Kunde voresKunde = new Kunde(); //opretter en instans/objekt af klassen Kunde
VoresReservation.Kunden = voresKunde; //assigner en værdi til kunde
voresKunde.Navn = "navn"; //assigner en værdi til Navn
voresKunde.Adresse = "add"; //assigner en værdi til Adresse
voresKunde.Telefon = "tlf"; //assigner en værdi til Telefon
Dyr voresNavn = new Dyr(); //opretter en instans/objekt af klassen Dyr
VoresReservation.Dyr = voresDyr; // assigner m_Dyr en værdi via. en property
voresNavn.DyreNavn = "navn"; //assigner en værdi til DyreNavn
voresNavn.Foder = "fodernavn"; //assigner en værdi til Foder
Console.WriteLine(VoresReservation.UdskrivReservation()); //Udskriver reservationen fra klassen reservation
Console.WriteLine("Reservationsnummer: " + VoresReservation.ReservationsNummer);//udskriver reservationsnummer
Console.WriteLine(VoresReservation.Aktivitet); //Udskriver aktivitet
Console.WriteLine("************************************");
Console.WriteLine(VoresReservation.UdskrivReservation()); //Udskriver reservationen fra klassen reservation
Console.WriteLine("Reservationsnummer: " + VoresReservation.ReservationsNummer);// udskriver reservationsnummer
Console.WriteLine(VoresReservation.Aktivitet); //Udskriver aktivitet
Console.ReadLine();
Console.WriteLine("Flere reservationer?: Tast 1 for ja eller 2 for nej" + "\n");
svar = char.Parse(Console.ReadLine());
} while (svar == '1'); //do while loop slutter
}
}
}
Så vidt jeg kan se er det eneste der indtastes fra brugerens side "aktivitet", og hvilken type dyr der skal reserveres, intet andet - resten er hardcoded værdier.
Men jeg kan fortælle dig allerede nu at du burde dele din kode op i flere klasser ellers bliver programmet meget hurtigt totalt uoverskueligt.
Men jeg kan fortælle dig allerede nu at du burde dele din kode op i flere klasser ellers bliver programmet meget hurtigt totalt uoverskueligt.
Hej ZiN,
Det er fordi det kun er program klassen jeg har sat ind i ovenstående. Resten kan ses her:
Det er fordi det kun er program klassen jeg har sat ind i ovenstående. Resten kan ses her:
using System; // system = namespace
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Dyrehotel
{
class Program //Opretter klassen program
{
static void Main(string[] args) // statisk metode Main der altid skal være der.
{
char svar = '1';
string aktivitet; // felter
do //do - while loop starter. Gør nedenstånde, og kør igen hvis While betingelsen er opfyldt.
{
Console.WriteLine("Vælg dyr: Tast 1 for fisk eller 2 for hund");//skriver teksten. Console objektet. WriteLine = statisk metode i klassen Console
Dyr voresDyr;
string b = (Console.ReadLine());//opretter en string b som den
//laver ud fra en console.readline, hvilket vil sige den bruger det input der kommer
//der fra.
switch (b)//bruger en switch, som går ud fra string b. Switch er godt hvis man har mange valg, i dette tilfælde kunne det være mange dyr.
{
case "1": //Hvis string b = "1" laver den sin tekst med du har valgt fisk
Console.WriteLine("Du har valgt en fisk" + "\n");
voresDyr = new Fisk();//constructor opretter en instans/objekt af klassen Fisk
Console.WriteLine("Indtast Aktivitet for fisken:");
aktivitet = Console.ReadLine();
break; //break gør den falder ud af "switchen"
case "2": //hvis string b = "2" skriver den du har valgt hund... osv osv..
Console.WriteLine("Du har valgt en hund" + "\n");
voresDyr = new Hund(); //constructor opretter en instans/objekt af klassen Hund
Console.WriteLine("Indtast Aktivitet for hunden:");
aktivitet = Console.ReadLine();
break; //break gør at den falder ud af switchen
default: //default siger vel sig selv... det er hvis string b ikke = 1 eller 2...
Console.WriteLine("\n*** ERROR 1 ***\nDu har ikke valgt et dyr vi har!\nPrøv igen.\n\n");
continue;//Continue gør at den hopper tilbage... (dette kan bruges da det er i starten...
//Ellers ville den hoppe for langt tilbage.
}
Reservation VoresReservation = new Reservation(); //opretter en instans/objekt af klassen/typen Reservation (constructor uden argumenter)
VoresReservation.Aktivitet = aktivitet; //assigner m_Aktivitet en værdi via. Aktivitet egenskaben
Kunde voresKunde = new Kunde(); //opretter en instans/objekt af klassen Kunde (constructor uden argumenter)
VoresReservation.Kunden = voresKunde; //assigner en værdi til kunde
voresKunde.Navn = "navn"; //assigner en værdi til Navn
voresKunde.Adresse = "add"; //assigner en værdi til Adresse
voresKunde.Telefon = "tlf"; //assigner en værdi til Telefon
VoresReservation.Dyr = voresDyr; // assigner en værdi til dyr
voresDyr.DyreNavn = "navn"; //assigner en værdi til DyreNavn
voresDyr.Foder = "fodernavn"; //assigner en værdi til Foder
Console.WriteLine(VoresReservation.UdskrivReservation()); //Kalder metoden udkrivReservation klassen reservation
Console.WriteLine("************************************");
Console.WriteLine(VoresReservation.UdskrivReservation()); //Udskriver reservationen fra klassen reservation
Console.ReadLine();
Console.WriteLine("Flere reservationer?: Tast 1 for ja eller 2 for nej" + "\n");
svar = char.Parse(Console.ReadLine());
} while (svar == '1'); //do while loop slutter. While løkken er i modsætning til For løkken ikke baseret på at en numerisk variabel skal nå en værdi,
//men at en betingelse er opfyldt - i dette tilfælde at der bliver tastet 1. Her ved man ikke hvor mange gange løkken skal køre.
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Dyrehotel
{
public class Reservation //Opretter klassen reservation
{
//Statisk tæller til reservationsnumre.
private static int m_ReservationsCounter = 1;
//private felter for klassen
private int m_ReservationsNummer; //Medlemmerne er udelukkende tilgængelige internt i klassen
private string m_Aktivitet;
private Dyr m_Dyr;
private Kunde m_Kunde;
public Reservation() //Metoden reservation
{
ReservationsNummer = m_ReservationsCounter;
m_ReservationsCounter++;
}
//Adgang type navn
public Kunde Kunden //offentlig egenskab
{
get
{
return m_Kunde; //"return" benyttes for at retunere en værdi fra klassen Kunde
}
set
{
m_Kunde = value; //den værdi der retuneres til argumentet "value" tildeles det private felt m_Kunde
}
}
public int ReservationsNummer //offentlig egenskab
{
get
{
return m_ReservationsNummer; //"return" benyttes for at retunere en værdi fra reservationsCounteren
}
set
{
m_ReservationsNummer = value; //den værdi der retuneres til argumentet "value" tildeles det private felt m_ReservationsNummer
}
}
public string Aktivitet //offentlig egenskab
{
get
{
return m_Aktivitet; //"return" benyttes for at retunere en værdi fra program klassen (VoresReservation.Aktivitet = aktivitet;)
}
set
{
m_Aktivitet = value; //den værdi der retuneres til argumentet "value" tildeles det private felt m_Aktivitet
}
}
public Dyr Dyr //offentlig egenskab
{
get
{
return m_Dyr; //"return" benyttes for at retunere en værdi fra klassen Dyr
}
set
{
m_Dyr = value; //den værdi der retuneres til argumentet "value" tildeles det private felt m_Dyr
}
}
public string UdskrivReservation() //Metode uden argumenter der retunere en streng til reservationen.
{
string tmp; //Bruges til at samle en streng
tmp = string.Format("\n" + "Kundenavn: " + Kunden.Navn + "\n"); // der formateres til en streng og udskrives værdi fra egenskaben Kunden der hentes fra egenskaben Navn i klassen Kunde via ovenstående
tmp += string.Format("Kunde Adresse: " + Kunden.Adresse + "\n");
tmp += string.Format("Kunde Tlf: " + Kunden.Telefon + "\n");
tmp += string.Format("Aktivitet: " + Aktivitet + "\n");
tmp += string.Format("Dyr: " + Dyr.Race + "\n");
tmp += string.Format("Dyrenavn: " + Dyr.DyreNavn + "\n");
tmp += string.Format("Reservationsnummer: " + ReservationsNummer + "\n");
return tmp;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Dyrehotel
{
public class Kunde //Opretter klassen Kunde
{
//private felter for klassen
private string m_Navn;
private string m_Adresse;
private string m_Telefon;
//klassens metode
public Kunde() //offentlig metode Kunde
{
}
//virkefelt, type, egenskabens navn
public string Navn //offentlig egenskab
{
get
{
return m_Navn; //"return" benyttes for at retunere en værdi fra program klassen (voresKunde.Navn = "navn";)
}
set
{
Console.WriteLine("Indtast kundenavn: "); //Skriver i konsollen via den statiske metode WriteLine
m_Navn = Console.ReadLine(); //Læser fra konsollen og tildeler m_Navn en værdi
}
}
public string Adresse //offentlig egenskab
{
get
{
return m_Adresse; //"return" benyttes for at retunere en værdi fra program klassen (voresKunde.Adresse = "add";)
}
set
{
Console.WriteLine("Indtast adresse: ");
m_Adresse = Console.ReadLine();
}
}
public string Telefon //offentlig egenskab der kaldes fra programklassen
{
get
{
return m_Telefon; //"return" benyttes for at retunere en værdi fra program klassen (voresKunde.Telefon = "tlf";)
}
set
{
Console.WriteLine("Indtast telefonnr.: "); //voresKunde.Telefon = "tlf";
m_Telefon = Console.ReadLine();
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Dyrehotel
{
public class Dyr //Opretter klassen Dyr
{
//attributter for klassen
protected string m_Race; //Medlemmerne er udelukkende tilgængelige internt i klassen og for de nedarvede klasser Hund/Fisk
protected string m_Navn;
protected string m_Foder;
public string Race //offentlig tilgængelig metode
{
get
{
return m_Race;
}
set
{
m_Race = value;
}
}
public string DyreNavn //offentlig metode
{
get // returnerer attributten variabels indhold
{
return m_Navn;
}
set // gemmer variabelnavns indhold i attributten "variabel"
{
Console.WriteLine("Indtast dyrenavn: ");
m_Navn = Console.ReadLine();
}
}
public string Foder
{
get
{
return m_Foder;
}
set
{
Console.WriteLine("Indtast dyrefoder: ");
m_Foder = Console.ReadLine();
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Dyrehotel
{
class Hund : Dyr //Opretter klassen hund der nedarver fra klassen Dyr
{
public Hund() //offentlig metode
{
Race = "Hund";
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Dyrehotel
{
public class Fisk : Dyr //opretter klassen fisk
{
public Fisk() //offentlig metode
{
Race = "Fisk";
}
}
}
du kunen bruge System.Text.RegularExpressions til at lave Regular Expressions så du nemt kan tjekke om den data du for fra en bruger er den type du skal brug
En god huskeregel er, at man skal kommentere, hvorfor man gør noget, og ikke hvad man gør. Nu kommer jeg lige med et oversimplificeret eksempel, men pointen skulle være klar:
Det her er forkert:
Det her er rigtigt:
Kommentarer skal give en programmør mulighed for at forstå tankerne, den oprindelige udvikler har gjort sig - ikke at lære vedkommende programmeringssproget.
Det her er forkert:
// Sætter værdien af i til 1
int i = 1;
Det her er rigtigt:
// Initialiserer i til 1, fordi det første element på listen er placeret der
int i = 1;
Kommentarer skal give en programmør mulighed for at forstå tankerne, den oprindelige udvikler har gjort sig - ikke at lære vedkommende programmeringssproget.
Gå til top
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.