53
Progizzunk Visual C++ nyelven!!!
  • zero_cool51
    #53
    Lenne egy kis problémám.
    Hamarosan ZH-t írok programozásból, de egy-két kérdésre nem tudom a választ, a tanár meg semmilyen írott anyagot nem adott, amiből meg lehetne keresni a választ.
    A kérdések a következők:
    Honnan tudják egy osztály tagfüggvényei, hogy éppen melyik példány adattagjain dolgoznak?

    Hol helyezkedik el a formális paraméterlistában a this mutató és milyen a típusa?

    Mit helyettesít a this az alábbi értékadásban?
    gomb = new TSpeedButton( this ) ;

    Milyen használati előnye van az alapértelmezett paraméterek használatának?

    Az alapértelmezett paramétereket (is) tartalmazó formális paraméterlista tervezésekor, hol célszerű szerepel-tetni az alapértelmezettnek szánt paramétereket?

    Melyik tagfüggvény végzi a konstans adattagok kezdőérték beállítását?

    Milyen a konstans adattagok esetén használt taginicializáló lista szintaxisa?

    Kösz előre is.
  • horitomy
    #52
    Nagy baj van! Itt ülünk 20an zh-n. Feladat a következő:
    Írja meg a squeeze(s1,s2) fgv-t, amely az s1 karaktersorozatból töröl minden karaktert ami az s2-ben megtalálható.
    Fél óránk van rá!
    Köszönjük!
  • zoleeee88
    #51
    Ha nem forditana le a fordito, vedd ki a "#include "stdafx.h"-t "
  • zoleeee88
    #50
    Na es aza gondom h ha szemelyi szamot beadom, majd kiiratom nem irja ki ugyanazt... :(((
  • zoleeee88
    #49
    #include "stdafx.h"
    #include <stdio.h>
    #include <stdlib.h>

    typedef struct _tanulo {
    char nev[10];
    char vezeteknev[12];
    int szemelyiszam;
    char ertekeles;
    struct _tanulo *dalsi;
    } tanulo;

    tanulo *elso,*utolso, *tmp, *pp;

    extern void menu();
    extern int Create_List();
    extern int Add_Tanulo();
    extern int Del_Tanulo();
    extern int Del_List();
    extern int Write_Textsubor();
    extern int Read_Textsubor();
    extern int Print_Monitor();

    int main()
    {
    char elem;

    printf("\n\n",elso);
    menu();
    while((elem=getchar()) != 'x')
    {
    if(elem!='\n'){
    switch(elem){
    case 'a':
    Create_List();
    break;
    case 'b':
    Add_Tanulo();
    break;
    case 'c':
    Del_Tanulo();
    break;
    case 'd':
    Del_List();
    break;
    case 'e':
    Write_Textsubor();
    break;
    case 'f':
    Read_Textsubor();
    break;
    case 'g':
    Print_Monitor();
    break;
    case 'x':
    return 0;
    break;
    default:
    printf("Ervenytelen... Meg1x probald meg\n");
    }
    menu();
    }
    }

    }

    void menu()
    { printf("\n*************************************************\n\n");
    printf("MENU:\n");
    printf("a: hozz letre egy ures listat \n");
    printf("b: tanulo behelyezese a listaba \n");
    printf("c: tanulo torlese a listabol \n");
    printf("d: az egesz lista torlese \n");
    printf("e: tanulok listajanak kiírasa szoveges fajlba(.txt)\n");
    printf("f: tanulok listajanak beolvasasa szoveges fajlbol \n");
    printf("g: tanulok listajanak kiirasa kepernyore \n");
    printf("x: EXIT\n");
    }

    int Create_List(){
    if(elso==NULL) {
    if ((elso = (tanulo *) malloc(sizeof(tanulo)))== NULL {
    printf("Not enough memory...\n");
    return -1;
    }
    else
    {
    elso->dalsi=NULL;
    elso->szemelyiszam=-1
    utolso=elso;
    printf("A lista letrehozva...\n");
    }
    }
    else
    {
    printf("Nem lehet letrehozni, mert mar letezik...\n");
    return -1;
    }
    return 0;
    }

    int Add_Tanulo()
    {
    if(elso==NULL)
    {
    printf("A lista nem letezik...\n");
    return (-1);
    }

    if(!(utolso->szemelyiszam==-1)){
    if ((tmp = (tanulo *) malloc(sizeof(tanulo)))== NULL)
    {
    printf("Not enough memory...\n");
    return -1;
    }
    else
    {
    utolso->dalsi=tmp;
    utolso=tmp;
    tmp->dalsi=0;
    utolso->szemelyiszam=-1;
    }
    }

    printf("Nev:\n");
    scanf("%s",utolso->nev);
    printf("Vezeteknev:\n");
    scanf("%s",utolso->vezeteknev);
    printf("Szemelyi szam:\n");
    scanf("%i",&utolso->szemelyiszam);
    printf("Ertekeles:");
    scanf(" %c",&utolso->ertekeles);
    return 0;
    }

    int Del_Tanulo()
    {
    int rc,k=0;
    printf("Szemelyi szam:",&rc);
    scanf("%d",&rc);

    if(elso==0 || elso->szemelyiszam==-1)
    {
    printf("Nincs semmi az adatbazisban...\n");
    }
    else
    {
    pp=elso;
    for(tmp=elso;tmp!=NULL && k==0;tmp=tmp->dalsi)
    {
    if(tmp->szemelyiszam==rc){
    if(tmp==elso)
    elso=elso->dalsi;
    pp->dalsi=tmp->dalsi;
    free( (void *) tmp);
    k=1;
    printf("A bejegyzes torolve...\n");
    }
    else
    pp=tmp;
    }
    }
    return 0;
    }

    int Del_List()
    {
    if(elso!=0){
    pp=elso;
    while(pp!=0){
    tmp=pp->dalsi;
    free((void *)pp);
    pp=tmp;
    }
    elso=0;
    }
    return 0;
    }

    int Write_Textsubor()
    {
    FILE *file;
    char filename[256];
    printf("Add meg a fajl nevet:");
    scanf("%s",filename);
    if((file=fopen(filename,"w"))==NULL){
    printf("Nem lehet letrehozni...\n\n");
    return -1;
    }
    for(tmp=elso;tmp!=NULL;tmp=tmp->dalsi){
    if(tmp->szemelyiszam!=-1) fprintf(file,"%s %s %i %c\n",tmp->nev,tmp->vezeteknev,tmp->szemelyiszam,tmp->ertekeles);
    }
    fflush(file);
    fclose(file);
    return 0;

    }

    int Read_Textsubor()
    {
    FILE *file;
    char filename[256];
    printf("Add meg a fajl nevet:");
    scanf("%s",filename);
    if((file=fopen(filename,"r"))==NULL){
    printf("Nem lehet megnyitni...\n\n");
    return -1;
    }

    if(elso==NULL)
    {
    if ((elso = (tanulo *) malloc(sizeof(tanulo)))== NULL) {
    printf("Not enough memory...\n");
    return -1;
    }
    else
    {
    elso->dalsi=NULL;
    elso->szemelyiszam=-1;
    utolso=elso;
    }
    }

    if(!(utolso->szemelyiszam==-1)){
    if ((tmp = (tanulo *) malloc(sizeof(tanulo)))== NULL) {
    printf("Not enough memory...\n");
    return -1;
    }
    else
    {
    utolso->dalsi=tmp;
    utolso=tmp;
    tmp->dalsi=0;
    utolso->szemelyiszam=-1;
    }
    }

    while(fscanf(file,"%s %s %i %c",utolso->nev,utolso->vezeteknev,&utolso->szemelyiszam,&utolso->ertekeles)!=EOF){
    if(!(utolso->szemelyiszam==-1)){
    if ((tmp = (tanulo *) malloc(sizeof(tanulo)))== NULL) {
    printf("Not enough memory...\n");
    return -1;
    }
    else
    {
    utolso->dalsi=tmp;
    utolso=tmp;
    tmp->dalsi=0;
    utolso->szemelyiszam=-1;
    }
    }
    }


    fclose(file);
    return 0;

    }

    int Print_Monitor()
    {
    for(tmp=elso;tmp!=NULL;tmp=tmp->dalsi){
    if(tmp->szemelyiszam!=-1)
    printf("%s %s %i %c\n",tmp->nev,tmp->vezeteknev,tmp->szemelyiszam,tmp->ertekeles);
    }
    return 0;

    }

  • zoleeee88
    #47
    EZ A FELADATOM:
    Írjatok interaktív programot(felhasználó által vezérelt), amelyik implementálja(felhasználja) a tanulók rendezetlen, láncolt listáját. Minden tanuló bejegyzése tartalmazza a vezetéknevet, nevet, személyi számot és az értékelést(A,B,C,D,E,F). Ezen kívül mutatót(pointert) is tartalmaz, amely a következő tanuló bejegyzésére mutat a listában. A tanulók listája dinamikusan fog változni a tanulók aktuális száma szerint.

    Foglaljátok bele a következő lehetőségeket a felhasználóval való komunikációnál:
    a: hozz létre egy üres listát
    b: tanuló behelyezése a listába
    c: tanuló törlése a listából
    d: az egész lista törlése
    e: tanulók kistájának kiírása szöveges fájlba(.txt)
    f: tanulók listájának beolvasása szöveges fájlból(.txt)
    g: tanulók kistájának kiírása képernyőre
    x: a program bezárása
  • zoleeee88
    #46
    HELLOO!!!!! HELPPP!!!! VALAKI SEGITSEN... GYORSAN KÉNE LEHETÖLEG EGY NAPON BELÜL LECCI!!! FONTOS!!!
  • thandor
    #45
    Meg mindig kene a segitseg...
  • thandor
    #44
    HY!
    Na igen..megint en..meg mindig ez a program...:(
    olyat kellene bele tenni, hogy ha a dataf.txt ures, de letezik,akkor nem 0erteket kellene adnia, hanem kiirni, pl. hogy a fajl ures!
    Az if(darab==0) szorakoztam, de sehogy nem hozta ossze tokeletesre..please meg ezt az egyet...a tanarom nagyon szivat mostansag:(
  • thandor
    #43
    fuuu..koszi szepen!Tenyleg igy jo..de ha benne hagyom a conio.h-t
    es a vegere raktam volna egy getch()-et
    akkor nem lett volna gond ..csak vhogy kimaradt..megegyszer nagyon szepen KOX!
  • Dj Faustus #42
    1. conio.h nem kell. A GCC nyomott egy hátast amikor meglátta:
    test.c:2:18: error: conio.h: Nincs ilyen fájl vagy könyvtár
    2. Az alábbi állomány (az 50.0, és a -52.3 utáni két sorban 6 szóköz van, a -52.3 után egy szóköz):
    50.2
    50.0
          
          
    -52.3 
          
    55.3

    esetén az alábbi kimenetet kapom vissza:
    A dataf.txt fajlban 3 ertek talalhato

    A fajlban 1 negativ szamot talaltam

    Legjobb ertek 55.30

    Legrosszabb ertek 50.00

    Atlagos ertek 51.83

    Szóval rendben van. nincs hiba.
  • thandor
    #41
    ha kiprobalod , ugy hogy a fajlban az utolso ertek negativ, es meg utanna nyomsz 1 space-t akkor egyel tobb negativ szamot fog kiirni..miert??
  • thandor
    #40
    na ja ignoralja is..csak abban az 1 esetben nem ha negativ szam van a vegen,es +1 szokoz(space).A programom igy nez ki:

    #include<stdio.h>
    #include<conio.h>

    float szam;
    float max;
    float min;
    float osszeg=0.0;
    float atlag;
    int darab=0;
    int j;


    FILE* Scorefajl;

    int main()
    {

    if((Scorefajl=fopen("dataf.txt", "r" )) == NULL )
    {
    printf( "A fajlt nem talalhato!\n\n");

    return -1;
    }

    while(!feof(Scorefajl))

    {

    fscanf( Scorefajl, "%f\n", &szam );


    if (szam < 0)
    j++;


    if (szam <= 0.0 || szam >= 100.0) continue;

    osszeg+=szam;
    darab++;


    if (darab == 1)
    {
    min = szam;
    max = szam;
    }

    else
    {
    if (szam >= max) max=szam ;
    if (szam <= min) min=szam ;
    }

    }


    atlag = osszeg/darab;

    if (darab == 0)
    {
    atlag = 0;
    }

    printf("A dataf.txt fajlban %d ertek talalhato\n\n",darab);

    printf("A fajlban %i negativ szamot talaltam\n\n",j);

    printf("Legjobb ertek %.2f\n\n",max);

    printf("Legrosszabb ertek %.2f\n\n",min);

    printf("Atlagos ertek %.2f\n\n",atlag);

    return 0;

    }
  • zoleeee88
    #39
    Hat nekem wegem... :)))))))))) Szewasz THANDOR!!!! :PP Mar majdnem en kerdeztem meg helyetted, de latom megy ez neked... hehhe
  • Dj Faustus #38
    Igen fopen-nel megnyitod, while (!feof(datfile)) {} segítségével ellenörzöd, hogy nincs vége az állománynak (addig mókolsz az állománnyal).

    fscanf-fel (a while cikluson belül) beolvastathatod az értékeket - attól függően hoggy milyen tipusú értékeket olvasol be.
    fscanf (datfile,"%f\n", &temp); - ez például lebegőpontos számot olvas be a temp változóba
    fscanf (datfile,"%d\n", &temp); - ez meg ugyanez egészre
    A szóközöket ignorálni fogja.
    Utána leellenőrizhetőek, tömbbe helyezhetőek az értékek...

    A feladat nagyon hasonlít Razor88-éra csak "nem szintén zenész"? ;)
  • thandor
    #37
    Hello mindenkinek!
    Szoval egy olyan progit irtam, ami kulso fajllal dolgozik.Ebbol a fajlbol beolvassa az ertekeket, es a kepernyore kiirja a maximalis erteket (a .txt fajlban szamok talalhatoak,tetszolegesek 0-100ig)es a minimalisat,valamint az átlagot, és hogy mennyi ertek(szam) talalhato az adott fajlban.Ez mind szep es jo, de nekem ha negativ szamokat irok be azt is ki kell iratnom,es lám ki is irja, de ha a fajlban veletlenul ott hagyok egy ures helyet(space)akkor azt is negativnak veszi es hozzaadja a negativ szamokhoz es mindig egyel tobbet ir ki..(de csak akkor ha a negativ szamok az utoslo helyen szerepelnek), hogy tudnam ezt kikuszobolni?????,Gondolkoztam , hogy a "while(!feof(Akarmifajl))" -ezt egybol a beolvasas utan raktam:
    if((Akarmifajl=fopen("dataf.txt", "r" )) == NULL )
    {
    printf( "A fajl nem talalhato!\n\n");

    return -1;
    }
    while(!feof(SkoreSubor))
    ezzel kellene jatszani???
    ..kerlek aki tud segitsen fontos lenne minnel hamarabb!
    ELORE is koszi!
  • Pitbull90
    #36
    Üdw
    Remélem jó helyen járok:D
    A kérésem, kérdésem a következő lenne:
    Keresnénk elszánt programozókat akik értik elég rendesen a szakmájukat.Egy játékot szeretnénk csinálni, amit elég rég elkezdtünk. A game maga MMORPG lenne. Eddig haladgatunk, de most a programozói résznél, sajnos teljesen leakadtunk.:( Ezért kérnék segítséget, attól aki ért hozzá nagyon s érzi magában az erőt, hogy segítene nekünk.
    Ha valaki jelentkezni akar írjon a [email protected] címre! S ha kíváncsi képekre is annak szívesen küldök.
    Előre is kössz!

    Pitbull
  • Dj Faustus #35
    1. Ne írj mindent nagybetűvel. Zavaró.
    2. Nem a megfelelő fórum.
    3. Honosítás pedig nemigazán van hozzá. dict.sztaki.hu a jóbarátod.
  • allied
    #34
    DVD SHRINK 3.2 HONOSÍTÁS KELLENE HONNAN????
  • Palinko
    #33
    jaja,de engem érdekel a téma,én msot kezdem a tanulást c vel és azért kéne a könyv,mert összegyűjtöttem eddig az összes hasnzálható iromány,cska ez hiányzik,meg még ilyen programozás alapjai kéne..
  • Axtros
    #32
    A Visaul C++ Mesteri Szinten című könyvet kezdőknek nem ajánlom, én is ezzel kezdtem el tanulni, és nagyon nehéz volt, főként onnan, ahol a szerző elkezdi saját programjaival prezentálni a leírást, tehát az MFC tárgyalásánál. Én inkább egy magyar szerő könyvét ajánlanám: Sípos Mariann: Az MFC és a Visual C++. Könnyen tanulható, és a nyelvezete is megfelelő kezdőknek. Mivel régebbi könyv, ezért könyvtárakban megtalálható és kölcsönözhető.
  • Rolesz
    #31
    hehe az üzeneted előtti üzenet dátuma:2003.dec.14. :D
  • Palinko
    #30
    nem tudjátok,hol lehget ezt megtalálni ebookban?
  • fm
    #28
    ha nem estem volna ki a formámból, mondhatnám,hogy ez lesz a 3. programozási nyelvem :)
    még anno c64en nyomtam a basic-et, aztán középsuliban turbo pascalt érettségi szinten,most meg egyetemen c++t. a baj csak az,hogy kiestem a formából..

    de az msdn-hez nem nagyon volt türelmem,pedig lehet hogy hasznos lenne. mit ajánlasz tanulni vágyóknak? vmi magyar,netes cucc lenne a legjobb..
  • Frenzy
    #27
    Az MSDN kivalo referencia, de azert tanulni vagyoknak nem ajanlanam .. hacsak nem ez lesz a 3. programozasi nyelve valakinek :-)
  • fm
    #26
    thx to all!
  • AtomHeart
    #25
    van egy csomo c++ ebook, pl ott a learn c++ in 21 days, stb...Keress ra mongyuk kazaa-val
  • rushman
    #24
    MSDNLibrary (Link), igaz angol, de aki programozni akar, az tanulja meg legalább erős alapszinten a nyelvet.
  • fm
    #23
    thx,de nem könyvre gondoltam,hanem vmi netes segédletre..
  • fm
    #21
    hol találok jó segédletet a c alapjaihoz? plz hlp..
  • Frenzy
    #20
    Visual C++ -ból már többször lehetett rendelni INGYEN teljes kipróbálható verziót, amely teljesen funkcionális egy kivétellel,mégpedig, hogy 60 napig használható. A prog.hu-n lehetett látni ilyen hirdetéseket, illetve a www.developer.hu portálon át lehetett rendelni őket, de elvileg ilyesmit máskor is lehet a Microsofttól kérni (esetleg Microsoft Magyarországtól), mert ilyen trialokat osztanak szivesen, de ált. magyarországra postaköltséget kell fizetni. Fentebb emlitett akciók keretében minden költség nélkül, ingyen lehetett hozzájutni VC++-hoz. Érdemes rákérdezni, hátha van még ilyesmi folyamatban!

    Másik megoldás, ha egyetemista vagy, vagy van oktatáshoz köze lévő családtagod, akkor Campus licensz keretében jogosult vagy egész sor MS software-re, pl. Visual Studiora is (amiből jelenleg a .NET 2003 verzió elérhető)

    Ha simán csak VC++-t akarsz venni, akkor az szerintem nem olyan drága amúgy, akár 100 alatt is meg lehet úszni. (nem drága -- viszonylag...) De nem akarok semmi többet mondani ezügyben, mert igazából ezt csak hallomásból tudom, nem néztem utána konkrétan.

    Tanulás ügyében ha nem probléma megszerezned a VC++-t, akkor akár azzal is lehet, de kezdetben egyszerű, konzolra írt alkalmazásokat érdemes nézegetni (amikkel tulajdonképpen a C++ programozást sajátítod el) és később lehet a többi "csoda"dolog felé haladni.
  • mir
    #19
    azért nem olyan rossz az a visual c++
    attól függetlenül, hogy m$ suxx.
    a VS.NETnek ugyan elcseszett lett szerintem a felülete, de a régi VC6ttal elég jól használható.
    Fireboy: a kezdő vagy, akkor szerintem inkább valami sima C++al kellene kezdeni, nem egyből a visuallal.
    és ha nagyon meg akarod szerezni az imént említett dolgokat, és semmiképp sem akarsz értük kipengetni kiszereléstől függően 300000+ petákot javasolnám a DC++, Kazaa nevű felhasználói szoftverek használatát, melyek könyyedén hozzásegítenek az íly módon ingyenes szoftverekhez:) persze ez nem szép dolog. de azt teljesen ej lehet fogadni, hogy valaki nem akar 300000 Ftot fizetni valamiért, amit lehet, hogy 1 hét múlva kidob.
    ja, télleg. most jutott eszembe.
    nézz utána a m$ vagy a borland weboldalán, ha jól csaknak emlékeim, akkor mindkét cég fejlesztő környezeteinek vannak un. "personal edition" változatai, amelyek nem használhatók üzleti célokra, de próbálkozni jó.
    de ha nem tudsz C++ul akkor előbb azt, és majd utána a vizuális kibővítést!
  • AtomHeart
    #18
    Nagyobb cegeknel nem biz'! :^)
  • Methos from GH
    #17
    :: Programozókat keresünk ::

    Olyan embereket keresünk, akik értenek a programozáshoz és szívesen segítenének, hogy minél több játékhoz készüljön honosítás! A feladat annyi lenne, hogy néha küldünenénk egy egy játék szövegfájlját (ami esetleg kódolva van, vagy ha nem is kódolva, de nem lehet simán szerkeszteni) és ahhoz kellene megpróbálni írni egy visszakódoló programot. Dezzy anno nagy segítségünkre volt, hiszen nélküle nem lenne most Enter The Matrix ill. Project IGI 2 honosítás! A jelentkezéseket a [email protected] mailcímre várom!
  • AtomHeart
    #14
    BC, VC++? MinGW! (GCC windozra ) + DevCPP :^P Meg ingyenes is...
  • fm
    #11
    vmint nem értem minek kell definiálni (vagy miért vcélszerű) osztályt ehhez a feladathoz ?!
    vki segítsen..thx
  • fm
    #10
    hali..

    hogy lehet azt megvalósítani,hogy egy tömb elemeit töltse fel a felhasználó a köv.képpen:
    a tömb elemei 1 jegyű számok,sorban kérje be őket,úgy hogy ne kelljen entert ütni,csak sorban a számokat végjelig.
    vagy bekérjem egyesével és utána bontsam szét jegyekké?

    óriási számok tárolása számjegyenként,műveletek a feladat..

    thx a segítségért előre is
  • Pheel
    #9
    Legalább fogalmad lenne róla, hogy miről beszélsz ember!
  • FiReBoY
    #8
    És a borland c++-t honnan tom leszedni? Vagy azért is fizessek?
  • Kunyik2
    #7
    Ha rám hallgatsz hagyod a pics**a a visual c++-t! Amibe a billi bá beleteszi a kezét az csak sux lehet! Borlnad C++-ban fejlessz!