Program

Tags:    c#

<< < 12 > >>
Hejsa

Jeg skal lave et program, og den skal kunne:

Et program med en funktion, der kan omsætte et månedsnummer til et månedsnavn (hvis f.eks. måneden kaldes med en værdien 12 som parameter, skal den returnere værdien ’December’). Funktionens signatur skal se sådan ud:
private string KonverterMaanedsnr(int nr)
Programmet skal derefter bede brugeren indtaste et månedsnr, kalde ovennævnte funktion med månedsnr som parameter, og vise det månedsnavn funktionen returnerer.
Jeg må selvom om det skal være et Consolprogram eller om jeg vil lave en Windows grænseflade.

Nogen der kan hjælpe mig og give et forslag?




Indlæg senest redigeret d. 03.12.2011 14:57 af Bruger #16870
17 svar postet i denne tråd vises herunder
6 indlæg har modtaget i alt 9 karma
Sorter efter stemmer Sorter efter dato
Fold kodeboks ind/udCSharp kode 





Hej Michael,

Jeg gør udefra at det er i c# du gerne vil lave denne kode, siden at det er tagged til dette spørgsmål..

Hvis det er c#, så benytter du dig af følgende fremgangsmåde

1) skriv dit metode op

Fold kodeboks ind/udCSharp kode 


2) skriv din kode inde i din metode

Herunder, skal du lave nogle if-else sætninger, siden du ved at der kun er 12 måneder, så er den første if-sætning om, tallet er imellem 1 og 12.. Hvis så nr ligger imellem 1 og 12 så går du dine næste if sætninger igennem, der tjekker om det er den første måned eller den anden, tredje eller fjerde måned osv.

i kode ville dette se ud på følgende måde:
Fold kodeboks ind/udCSharp kode 



3) du bør kalde din funktion, når den skal benyttes enten, når en bruger trykker på en knap, hvis du benytter dig af gui, eller når du modtager et bestemt paramter i din konsol

4) dit program er nu færdigt, og du kan nyde resultatet :)

ps. Jeg skrev ikke alle linjers kode, da jeg regner med at det er fremgangs måde, du gerne ville have :)

Men, hvis du skulle få lyst til at se, hvordan et evt. GUI kunne se ud så har jeg lige vedhæftet det :)
Et hurtigt program



Indlæg senest redigeret d. 03.12.2011 16:57 af Bruger #15301
Brian: så længe, at du ikke benytter dig af pointers til funktioner i C eller C++, så betyder det ikke noget for afviklingstiden, om man benytter sig af en switch, statement eller en if-else statements. Da begge dele tager O(n) tid at køre igennem, dog ville du have ret hvis du lavede pointers til funktioner i C eller C++ at du ville kunne få din køretid ned på O(1).

Michael: Det er jo meget simpelt, det er bare at lave flere if-sætninger inde i din metode, sådanne så det kommer til at se ud på følgende måde:

Fold kodeboks ind/udCSharp kode 


Tænkte det, nok det lille hurtige program, jeg lavede var også visual studio c# kode :) ... Når man klikker på den eneste knap jeg har i mit program, bliver følgende metode kaldt

Fold kodeboks ind/udCSharp kode 


Og det er på denne måde, at jeg benytter mig af KonverterMaanedsnr funktionen :)



Jeg tænker ikke på afviklingstiden, men på pæn kode. En enum vil trods alt gøre det nemmere at læse koden og det er netop sådan noget en enum skal bruges til. Der er if / else trods alt noget old school.

Michael, husk at der skal også valideres på om det indtastede er numerisk.







Hejsa Michael
Velkommen til udvikleren, og den nye verden af udvikling :)

Jeg ville foreslå at starte med GUI da det (for mig) er nemmest at starte ud med.

Lav derfor en windows applikation, og træk en textbox ind sammen med en knap som du giver en passende tekst.
Du dobbeltklikker så på knappen, hvorefter der automatisk laves en metode til den.
Vil blot sige at da jeg ikke sidder med en visual studio eller andet udviklerværktøj på denne maskine, er dette taget ud fra hukommelsen - men håber det giver lidt forståelse.

Ganske rigtigt som Kevin siger så ønsker du at lave din metode først. Jeg ville dog løse det lidt anderledes. Faktisk ville jeg nok bruge noget DateTime, men da jeg ikke har en Visual Studio og ikke kan huske syntaksen i hovedet så derfor jeg har valgt denne.
Fold kodeboks ind/udCSharp kode 


Det du ønsker at gøre er at tjekke først om der er indskrevet noget og derefter om det indskrevne er et tal. Da det er en tekstbox kan man jo indskrive enhver ønsket tekst som fx "abcd" eller hvad man nu ønsker.
Fold kodeboks ind/udCSharp kode 


Håber det bringer dig lidt tættere på en løsning :)



Indlæg senest redigeret d. 03.12.2011 17:42 af Bruger #16651
Mit bud ville være:

Fold kodeboks ind/udCSharp kode 


Egentlig imod et princip omkring, at levere færdige skoleopgaver. Det lærer man ikke så meget af Michael ;-)



Indlæg senest redigeret d. 03.12.2011 18:13 af Bruger #9814
I stedet for if else som forslået af Kevin, vil jeg foreslå en enumerator (enum) og hvis du ikke vil det, vil en swith/case være bedre end en if/else



Hej Kevin

Tak for svaret. Jeg vil meget gerne have det hele, da jeg er newbie :)

Hej Brian

Hvordan skal jeg sammensætte koden?

Og det er forresten visual studio og C# kode



Indlæg senest redigeret d. 03.12.2011 17:08 af Bruger #16870
Tænker bare at en enum, er lidt et overkill for et lille projekt sådanne som dette. Men, hvis det var et større projekt, ville jeg nok også lave en enum til dette.. Det kan godt være, at if-else er lidt old school; men det er oftest nemmere for begyndere at forstå :)





så betyder det ikke noget for afviklingstiden, om man benytter sig af en switch, statement eller en if-else statements. Da begge dele tager O(n) tid at køre igennem


Big O notation har intet med afviklingstiden at gøre, men beskriver blot kompleksiteten af en algorithme.


Anyway... et par alternativer der lidt kortere:

Fold kodeboks ind/udCSharp kode 


Fold kodeboks ind/udCSharp kode 




Indlæg senest redigeret d. 03.12.2011 17:59 af Bruger #16594
<< < 12 > >>
t