Avatar billede brigge Nybegynder
10. oktober 2001 - 15:02 Der er 20 kommentarer og
1 løsning

Hjæælp i dag

Jeg er ved at lave et program i C++ og jeg er ved at løse det, der er åbenbart nogle fejl. Hvis der er en der gider hjælpe og få det op og køre er point og jeg vil også gerne sende vedkommende en eller anden form for gave som tak. Jeg vil sende alle filer jeg har til vedkommende. Dette spørgsmål gælder kun i dag 10. okt
Avatar billede disky Nybegynder
10. oktober 2001 - 15:06 #1
hvad laver programmet og hvor stort er det ?
Avatar billede soepro Nybegynder
10. oktober 2001 - 15:08 #2
Læg programmet ud på eksperten (eller attach det til en e-mail til mig), så vi kan kigge på det.
Avatar billede brigge Nybegynder
10. oktober 2001 - 15:09 #3
det er meget lille det skal bare beregne valuta kurser på 3 valutaer men det skal laves i en klasse. Header filen er lavet og jeg kan også sende det jeg har lavet
Avatar billede brigge Nybegynder
10. oktober 2001 - 15:10 #4
Hvordan lægge jeg det på eksperten
Avatar billede disky Nybegynder
10. oktober 2001 - 15:12 #5
copy paster det i text feltet.
Avatar billede brigge Nybegynder
10. oktober 2001 - 15:12 #6
Hvordan lægger jeg det ud på eksperten
Avatar billede brigge Nybegynder
10. oktober 2001 - 15:14 #7
Er det i det felt jeg skriver i nu, for der kan jeg ikke få det ind
Avatar billede disky Nybegynder
10. oktober 2001 - 15:15 #8
du skal markere koden i din editor, trykke
ctrl+c

markere indtastningsfeltet og trykke ctrl+v
Avatar billede brigge Nybegynder
10. oktober 2001 - 15:16 #9
ok sådan. Men jeg har også en problem formulering og det er lidt meget
Avatar billede disky Nybegynder
10. oktober 2001 - 15:17 #10
aha, det lyder som en skole opgave.

Det er bedst at lave sin lektier selv.
Avatar billede brigge Nybegynder
10. oktober 2001 - 15:18 #11
Men når man ikke kan finde ud af det kunne det godt være der var en der varen haj der kunne hælpe lidt. Please
Avatar billede disky Nybegynder
10. oktober 2001 - 15:20 #12
derfor post din kode her, og forklar dit problem.
Avatar billede fri-hash Nybegynder
10. oktober 2001 - 15:23 #13
du kan finde mig på ICQ nickname HSAHIRF, så kan vi snakke om hvad der ikke virker :-)
Avatar billede brigge Nybegynder
10. oktober 2001 - 15:26 #14
Her er min header fil :
#ifndef clValutaH
#define clValutaH
//---------------------------------------------------------------------------
class Valuta
{
public:
// Konstruktører
        Valuta();
        Valuta(String ValutaNavn, double ValutaKurs);
// Access metoder
        void  SetNavn(String ValutaNavn);
        // SetNavn erstatter Navn\'s nuværende værdi med værdien fra ValutaNavn
        void  SetKurs(double ValutaKurs);
        // SetKurs erstatter Kurs\' nuværende værdi med værdien fra ValutaKurs
        String GetNavn();
        // GetNavn returnerer Navn
        double GetKurs();
        // GetKurs returnerer Kurs
// Øvrige metoder
        double ValutaKoeb (int DanskeKroner);
        // pre : DanskeKroner er et heltal > 0
        // post: Størrelsen af det beløb i fremmed valuta man kan købe for
        //      DanskeKroner er returneret
        double ValutaSalg (int FremmedMoent);
        // pre : FremmedMoent er et heltal > 0
        // post: Størrelsen af det beløb i danske kroner man får ved salg af
        //      FremmedMoent er returneret
private:
        String Navn;      // Valutaens navn
        double Kurs;      // Kurs = pris for 1 enhed af fremmedvalutaen
};

#endif
Her er min cpp. fil:
#include <vcl.h>
#pragma hdrstop

#include \"clValuta.h\"

//---------------------------------------------------------------------------
Valuta::Valuta()
(
        Navn = \"Default\";
        Kurs = 0;
)
Valuta::Aktie(string ValutaNavn, double ValutaKurs)
//construter er så jeg kan sætte en værdi direkte ind i mit test-main
(
        Navn = ValutaNavn;
        Kurs = ValutaKurs;
)
void Valuta::SetNavn(String ValutaNavn)
(
        Navn = ValutaNavn;
)
void Valuta::SetKurs(double ValutaKurs)
(
        Kurs = ValutaKurs;
)
String Valuta::GetNavn()
(
        return Navn;
)
double Valuta::GetKurs()
(
        return Kurs;
)
double Valuta::ValutaKoeb (int DanskeKroner)
(
        return DanskeKroner*Kurs;
)
double Valuta::ValutaSalg (int FremmedMoent)
(
        return FremmedMoent/Kurs;
)

#pragma package(smart_init)
her er min main hvor jeg kun lige er blevet færdig mit test program og det vil ikke virke. Jeg er begyndt at sætte lidt ind til det rigtige program :
        #include <iostream.h>
#include <conio.h>
#include <vcl.h>
#pragma hdrstop
#include \"clValuta.h\"
void RunAgain(char&Ans);
void GetValutaInfo(Valuta&Valuta1,Valuta&Valuta2,Valuta&Valuta3);
//pos:En tekst fil med oplysninger
//pre:Indlæser værdierne fra filen til de rigtige objekter

//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
        char Ans = \'J\';
        int Beloeb;
        Valuta Valuta1, Valuta2, Valuta3;
        Valuta valutaTest1, ValutaTest2(\"TestValuta2\",14.5);

        GetValutaInfo(Valuta1,Valuta2,Valuta3);
        while(toupper(Ans) == \'J\')
        {
                cout    << \"Test\"<< endl;
                ValutaTest1.SetNavn(\"TestValuta1\");
                ValutaTest1.SetKurs(13.3);
                cout    << ValutaTest1.GetNavn().c_str() << endl;
                cout    << ValutaTest1.GetKurs()        << endl;

                cout    << ValutaTest2.GetNavn().c_str() << endl;
                cout    << ValutaTest2.GetKurs()        << endl;

                cout    << \"Indtast hvor mange danske kroner du har: \";
                cin    >> DanskeKroner;
                cout    << \" Soe mange udenlandske paenge kan du foe: \" ;
                cout    << ValutaTest2.ValutaKoeb(DanskeKroner) << endl;

                cout    << \"Indtast hvor meget fremmed valuta du har: \";
                cin    >> FremmedMoent;
                cout    << ValutaTest2.ValutaSalg(FremmedMoent);
                cout    << \"valuta\" <<endl << endl;



        return 0;
}
//---------------------------------------------------------------------------
void RunAgain(char&Ans)
{
        do
        {
                cout<< \"Vil du køre programmet igen ?  (J/N) : \";
                cin >> Ans;
        }while(toupper(Ans) !=\'J\' && (toupper(Ans) !=\'N\');
}
void GetValutaInfo(Valuta&valuta1, Valuta&Valuta2, Valuta&Valuta3)
{
        ifstream in_stream(File1.txt\");
        char EtNavn[30];
        double EnKurs;

        in_stream.getline(EtNavn,30);
        in_stream >> EnKurs;
        in_stream.ignore(2,\'\\n\');
// For at kunne skrive en moent fod med mellem rum
        Valuta1.SetNavn(EtNavn);
        Valuta1.SetKurs(EnKurs);
        in_stream.getline(EtNavn,30);
        in_stream >> EnKurs;
        in_stream.ignore(2,\'\\n\');
        Valuta2.SetNavn(EtNavn);
        Valuta2.SetKurs(EnKurs);
        in_stream.getline(EtNavn,30);
        in_stream >> EnKurs;
        in_stream.ignore(2,\'\\n\');
        Valuta3.SetNavn(EtNavn);
        Valuta3.SetKurs(EnKurs);
        in_stream.getline(EtNavn,30);

        in_stream.close();
}
Avatar billede brigge Nybegynder
10. oktober 2001 - 15:28 #15
Her er den tekst fil jeg bruger :
US-Dollar
8.14
Pund
11.86
D-Mark
3.8
Avatar billede brigge Nybegynder
10. oktober 2001 - 15:30 #16
dette er hvad programmet skulle kunne .veksling mellem de 3 store fremmede valutaer: US-Dollar, Pund og D-mark, og danske kroner. Man veksler begge veje, men ikke mellem fremmede valuta indbyrdes.Programmet skal udvikles objektorienteret, og benytte sig af en klasse: Valuta.
Avatar billede disky Nybegynder
10. oktober 2001 - 15:31 #17
for at veksle imellem 2 fremmede valuta,

f.eks. pund->mark

først pund->kroner derefter kroner->mark

Det var det :)
Avatar billede brigge Nybegynder
10. oktober 2001 - 15:46 #18
Jeg har lavet meget af det selv så det er bare de små fejl der er jeg ikke kan hitteud af
Avatar billede soepro Nybegynder
11. oktober 2001 - 10:12 #19
Puha, den var sej - du havde lavet mange fejl:

1) Class methods skal \"omsluttes\" af tuborg klammer ({}) ikke parenteser.
2) Dine includes var ikke korrekte
3) Din while konstruction var ikke korrekt - du fik aldrig stoppet

Det korrekte program (bortset fra at programmet looper efter at man har indtastet beløb i fremmed mønt, hvis man indtaster decimaler - men det må du selv løse), ser sådan ud:

#include <fstream.h>
#pragma hdrstop

#include \"clsValuta.h\"

//---------------------------------------------------------------------------
char RunAgain(char& Ans);
void GetValutaInfo(Valuta&Valuta1,Valuta&Valuta2,Valuta&Valuta3);

//pos:En tekst fil med oplysninger
//pre:Indlæser værdierne fra filen til de rigtige objekter

//---------------------------------------------------------------------------

#pragma argsused
int ValutaMain(int argc, char* argv[])
{
        char Ans = \'J\';
        int  DanskeKroner, FremmedMoent;
        Valuta Valuta1, Valuta2, Valuta3;
        Valuta ValutaTest1, ValutaTest2(\"TestValuta2\",14.5);

        GetValutaInfo(Valuta1,Valuta2,Valuta3);
        do
        {
                cout    << \"Test\"<< endl;
                ValutaTest1.SetNavn(\"TestValuta1\");
                ValutaTest1.SetKurs(13.3);
                cout    << ValutaTest1.GetNavn().c_str() << endl;
                cout    << ValutaTest1.GetKurs()        << endl;

                cout    << ValutaTest2.GetNavn().c_str() << endl;
                cout    << ValutaTest2.GetKurs()        << endl;

                cout    << \"Indtast hvor mange danske kroner du har: \";
                cin    >> DanskeKroner;
                cout    << \" Saa mange udenlandske paenge kan du faa: \" ;
                cout    << ValutaTest2.ValutaKoeb(DanskeKroner) << endl;

                cout    << \"Indtast hvor meget fremmed valuta du har: \";
                cin    >> FremmedMoent;
                cout    << ValutaTest2.ValutaSalg(FremmedMoent);
                cout    << \"valuta\" << endl << endl;
        } while (RunAgain(Ans) == \'J\');
        return 0;
}
//---------------------------------------------------------------------------
char RunAgain(char& Ans)
{
        do
        {
                cout << \"Vil du køre programmet igen ?  (J/N) : \";
                cin  >> Ans;
        } while ((toupper(Ans) != \'J\') && (toupper(Ans) != \'N\'));
        return Ans;
}
void GetValutaInfo(Valuta& Valuta1, Valuta& Valuta2, Valuta& Valuta3)
{
        ifstream in_stream(\"File1.txt\");
        char EtNavn[30];
        double EnKurs;

        in_stream.getline(EtNavn,30);
        in_stream >> EnKurs;
        in_stream.ignore(2,\'\\n\');
// For at kunne skrive en moent fod med mellem rum
        Valuta1.SetNavn(EtNavn);
        Valuta1.SetKurs(EnKurs);
        in_stream.getline(EtNavn,30);
        in_stream >> EnKurs;
        in_stream.ignore(2,\'\\n\');
        Valuta2.SetNavn(EtNavn);
        Valuta2.SetKurs(EnKurs);
        in_stream.getline(EtNavn,30);
        in_stream >> EnKurs;
        in_stream.ignore(2,\'\\n\');
        Valuta3.SetNavn(EtNavn);
        Valuta3.SetKurs(EnKurs);
        in_stream.getline(EtNavn,30);

        in_stream.close();
}

hvortil clsValuta.h så ser sådan her ud (kun små-fejl):

//---------------------------------------------------------------------------
#ifndef clsValutaH
#define clsValutaH

#include <vcl.h>

//---------------------------------------------------------------------------
class Valuta
{
  private:
    String Navn;      // Valutaens navn
    double Kurs;      // Kurs = pris for 1 enhed af fremmedvalutaen

  public:
    // Konstruktører
    Valuta(void);
    Valuta(String ValutaNavn, double ValutaKurs);
    // Access metoder
    void  SetNavn(String ValutaNavn);
    // SetNavn erstatter Navn\'s nuværende værdi med værdien fra ValutaNavn
    void  SetKurs(double ValutaKurs);
    // SetKurs erstatter Kurs\' nuværende værdi med værdien fra ValutaKurs
    String GetNavn();
    // GetNavn returnerer Navn
    double GetKurs();
    // GetKurs returnerer Kurs
    // Øvrige metoder
    double ValutaKoeb (int DanskeKroner);
    // pre : DanskeKroner er et heltal > 0
    // post: Størrelsen af det beløb i fremmed valuta man kan købe for
    //      DanskeKroner er returneret
    double ValutaSalg (int FremmedMoent);
    // pre : FremmedMoent er et heltal > 0
    // post: Størrelsen af det beløb i danske kroner man får ved salg af
    //      FremmedMoent er returneret
};

#endif

og endelig clsValuta.cpp sådan her (her var de fleste fejl):

#include \"clsValuta.h\"

Valuta::Valuta(void)
{
  Navn = \"Default\";
        Kurs = 0;
}
Valuta::Valuta(String ValutaNavn, double ValutaKurs)
//construtor er så jeg kan sætte en værdi direkte ind i mit test-main
{
        Navn = ValutaNavn;
        Kurs = ValutaKurs;
}
void Valuta::SetNavn(String ValutaNavn)
{
        Navn = ValutaNavn;
}
void Valuta::SetKurs(double ValutaKurs)
{
        Kurs = ValutaKurs;
}
String Valuta::GetNavn()
{
        return Navn;
}
double Valuta::GetKurs()
{
        return Kurs;
}
double Valuta::ValutaKoeb (int DanskeKroner)
{
        return DanskeKroner*Kurs;
}
double Valuta::ValutaSalg (int FremmedMoent)
{
        return FremmedMoent/Kurs;
}

Avatar billede soepro Nybegynder
11. oktober 2001 - 10:14 #20
Jeg er fuldtud tilfreds med blot at få nogle point - så håber jeg du får løst din skoleopgave.
Avatar billede brigge Nybegynder
11. oktober 2001 - 10:23 #21
Soepro det var for sent , men jeg har fået rettet nogle af fejlene. Men fordi du gad hjælpe på den måde, for du hele dynen. Og ellers tak for hjælpen.
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
Kurser inden for grundlæggende programmering

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