Hov. Du er ikke logget ind.
DU SKAL VÆRE LOGGET IND, FOR AT INTERAGERE PÅ DENNE SIDE

Programmering med C#

Side 1 ud af 1 (6 indlæg)
  • 1
Fra Aarhus
Tilmeldt 24. Jun 12
Indlæg ialt: 55
Fra  Forkoelelsessaar.dk Skrevet kl. 10:02
Hvor mange stjerner giver du? :
Hej alle,
Jeg søger hjælp til en opgave i forbindelse med mit studie. Det drejer sig om en opgave, hvor vi skal lave et program i Visual Studios Desktop for Web i C# Sharp.
Opgaveformuleringen lyder som følger:

Til at foretage bookningen af pladser i Luft Under Vingernesfly er du blevet bedt om i C# at udvikle et
program, der kan foretage denne proces automatisk.

Programmet skal kunne tage imod 2 parametre: Flyets antal sæder og antal passagerertil flyet.Herefter
skal programmet automatisk tildele et tilfældigtsæde per passager og vise det i en liste. Eventuelle tomme
sædenumre vises i en anden liste ved siden af.
Flyselskabets krav til programmet:

- Det skal ikke være muligt at forsøge at booke pladser til flere passagerer, end der er sæder i flyet.
- Et sæde må kun tildeles til én passager per fly.
- Flyets fordeling af sæderskal foregå tilfældig.
Vi skal bruge de funktioner vi har lært. Så vi skal bruge en Array, og sandsynligvis også nogle løkker. Håber nogen kan hjælpe?  
Fra Odense
Tilmeldt 4. Jun 06
Indlæg ialt: 953
Fra  Veronté Skrevet kl. 10:06
Hvor mange stjerner giver du? :
Gennemsnit 5,0 stjerner givet af 4 person

Lad mig spørge først: Hvad har du selv prøvet?

Post den kode, der fejler herinde, så vi kan se du selv har gjort et helhjertet forsøg, så det ikke bare er os, der sidder og laver dine lektier (for det får hverken vi, eller du noget ud af) Wink

Mvh., Elias Sørensen

Ved siden af mit arbejde som udvikler, sælger jeg også sokker på nettet :o)

Fra Aarhus
Tilmeldt 24. Jun 12
Indlæg ialt: 55
Fra  Forkoelelsessaar.dk Skrevet kl. 12:36
Hvor mange stjerner giver du? :

Jeg tror bare jeg har svært ved at komme i gang. 

Jeg har lavet 2 tekstboxe, den ene til at sætte antal sæder i flyet og den anden til at sætte antal passagere. Derudover har jeg lavet to listboxe, hvor der skal stå hhv. antal fri sæder og antal optagede sæder. 

Min knap ud for antal passagere skulle gerne indeholde en for-løkke, hvori den inputter alle tallene mellem 0 og "antal sæder" tastet ind i tekstboxen.

Jeg ville gerne se et bud på, hvordan man kan gøre det. Det betyder jo ikke, at jeg bare aflevere dette, da jeg skal skrive 2 hele sider, hvor jeg forklare, hvad jeg har gjort og hvorfor. Men hvis vedkommende med kompetencerne kunne skrive //noter ud for nogle af de vigtige ting, vil det da være en stor hjælp. 

Fra Odense
Tilmeldt 4. Jun 06
Indlæg ialt: 953
Fra  Veronté Skrevet kl. 12:45
Hvor mange stjerner giver du? :

Jamen jeg synes da, at du selv skal komme med et bud på, hvordan du vil gøre det :-) Så er jeg sikker på, at andre nok skal byde ind på hvad der kan gøres bedre/anderledes.

1) Du har 2 variable: Seats (antal sæder i flyet) og Passengers (det antal passagerer du skal finde sæder til). Du har ét array TakenSeats

2) Tjek først om Seats <= Passengers (og så meld fejl hvis det er)

3) Lav et for-loop der går fra 0 < Passengers. Det for-loop tilføjer pladsen til TakenSeats array'et fra en funktion.

4) Grunden til du laver en funktion til at finde tilgængelige sæder er jo, at der skal tjekkes om sædet den finder allerede er taget. Du kan altså ikke bare bruge en matematisk tilfældighedsfunktion der genererer et tal mellem 1 og Seats. Så i din funktion genererer du et tal (sædenummer), og i en if tjekker du om sædet allerede er i TakenSeats, HVIS sædet er optaget, så returnerer du funktionen (så den derved kører igen - og kører indtil den har fundet et ledigt sæde), og hvis det ikke er taget, så returnerer du bare sædenummeret, som så vil blive tilføjet til dit array (TakenSeats).

Så burde du være good-to-go.

Kom med dit bud :-)

Edit: Har ikke Windows her på min Mac, men koder tit C#, og det burde kunne laves på få minutter. Jeg har lige bikset et hurtigt eksempel sammen i PHP som kører (det var lettest lige hurtigt, da jeg kunne køre det i Terminalen), så der kan du se min approach.

Bemærk; det er ikke den eneste måde at gøre det på, og det her er rimelig hurtigt hacket sammen. Så prøv du at oversæt det til C# og kom med dit bud:

<?php
$Seats      
548;
$Passengers 200;

$TakenSeats = array();

if (
$Seats <= $Passengers) { //Tjek om man vil reservere flere pladser end der er mulighed for
    
echo 'Fejl!';
} else {
    
//Giv hver passagerer et unikt sæde
    
for ($i 0$i $Passengers$i++) {
        
$TakenSeats[] = FindAvailableSeat($TakenSeats$Seats);
    }
    
    
//Udskriv de reserverede sæder
    
print_r($TakenSeats);
    
    
//Udskriv de sæder der er ledige
    
print_r(array_diff(range(1$Seats), $TakenSeats));
}

//Funktion til at finde ledigt sæde
function FindAvailableSeat($TakenSeats$Seats)
{
    
$Seat rand(1$Seats);
    if (
in_array($Seat$TakenSeats)) {
        return 
FindAvailableSeat($TakenSeats$Seats);
    } else {
        return 
$Seat;
    }
}
?>

Mvh., Elias Sørensen

Ved siden af mit arbejde som udvikler, sælger jeg også sokker på nettet :o)

Fra Frederiksberg
Tilmeldt 5. Nov 12
Indlæg ialt: 608
Skrevet kl. 12:56
Hvor mange stjerner giver du? :

@Elias Programmet terminerer aldrig hvis antallet af reservationer overstiger antallet af sæder

Fra Odense
Tilmeldt 4. Jun 06
Indlæg ialt: 953
Fra  Veronté Skrevet kl. 13:48
Hvor mange stjerner giver du? :

Nicolai Lundgaard:

@Elias Programmet terminerer aldrig hvis antallet af reservationer overstiger antallet af sæder

Det gør det da Smile Se de første par linjer (eller prøv at kør koden selv med f.eks. $Passengers = 9000;). Tjekker om det overskrider.

Edit:

Derudover var det bare et meget hurtigt eksempel. Kunne sagtens laves mere optimalt. F.eks. lav et array med ALLE sæder, og så tag en tilfældig værdi fra det array, gem det i $TakenSeats, og slet værdien fra $AvailableSeats. Så ville man spare en del eksekveringstid, da rand() jo højst sandsynligt ville kræve at man til sidst kørte funktionen et par gange for at finde et ledigt sæde.

Mvh., Elias Sørensen

Ved siden af mit arbejde som udvikler, sælger jeg også sokker på nettet :o)

Side 1 ud af 1 (6 indlæg)