Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    4

    [C++] Compilazione: riferimento a membro non statico

    sto cercando di compilare in c++ un SW per la gestione accessi, ho diversi problemi, premetto che è la prima volta, qualcuno veramente preparato ha voglia di darmi una mano?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    4
    allego il sw (scusate se è scritto malissimo e ha bisogno di assunzioni)


    codice:
    //swiluppo SW per il controllo accessi
    
    
    #include <iostream> 
    #include <stdlib.h>
    #include <string>
    #include <vector>
    #include <ctime>
    using namespace std;
    //definizione badge con le sue funzioni
    class Badge
    {
    public:
           int id; //numero identificativo tessera
           char nome [20];
           string cognome; 
           string indirizzo;
           bool aut [6]; //atorizzazione
    public:
           int read_id ();
           void autorizzazioni ();
    };
    //definizione del cartellino con le sue funzioni, relative alla raccolta degli orari di entrata e uscita dei singoli
    class Cartellino
    {
    public:
        char nome [20];
           char cognome [20];
           int id;
           int mese;
           int anno [4]; 
           int giorno;
           int timeIN;
           int timeOUT;
           void clock_in ();
           void clock_out ();
    };
    class leggi_badge
    {
    public:
           int id;
           int modulo_varco; //il modulo varco è il sistema che comanda l'elettroserratura,la barriera infrarossi e l'accensione luce.  
    private:
        string door1;
        string door2;
        string lab1;
        string lab2;
        string lab3;
        string lab4;
        string lab5;
        string lab6;
    };
    
    
    
    
    //definizione dei badge
    Badge b0,b1,b2,b3;
    
    
    //definizione modulo varco
    int leggi_badge::modulo_varco (string d1, string d2, string l1, string l2, string l3, string l4, string l5, string l6) 
    {
        this->door1=d1; // modulo varco lettura ingresso
        this->door2=d2; // modulo varco lettura uscita
        this->lab1=l1; // modulo varco primo laboratorio
        this->lab2=l2; // modulo varco secondo laboratorio
        this->lab3=l3;
        this->lab4=l4;
        this->lab5=l5;
        this->lab6=l6;
    }
    //implementazioni dei metodi
    
    
    int Badge::read_id () //lettura del badge
    {
           return id;  
    };
    
    
    
    
    //definizioni "autorizzazioni" con ciclo aurorizzati viene autorizzato in questo caso quattro badge
    void Badge::autorizzazioni ()
    {
        int i;
           b0.aut [0] = true;
           b1.aut [2] = true;
           b1.aut [4] = true;
           b2.aut [6] = true;
           for (i=0; i<6; i++)
           b3.aut [i] = true;
    };
    
    
    main()
    {
       do 
       {
           Badge = procedura flag; // la prcedura "flag" interna al modulo varco attende e si aggiorna tutte le volte che c'è una nuova informazione (badge)   
       }                           // qui leggo il badge appena il badge è valido lui esce dal ciclo attesa 
       while (Badge == 0); 
    
    
    
    
    switch (leggi_badge.modulo_vaco)
       {
       case 1: //modulo varco utilizzato all'ingresso inserimento orario d'entrata
                
      time_t timer; //utilizzo della libreria ctime
      struct tm y2k;
      double seconds;
    
    
      y2k.tm_hour = 0;   y2k.tm_min = 0; y2k.tm_sec = 0;
      y2k.tm_year = 100; y2k.tm_mon = 0; y2k.tm_mday = 1;
    
    
      time(&timer);  //prende l'ora attuale uguale: timer = time(NULL) 
      seconds = difftime(timer,mktime(&y2k));
    
    
       return 0;
          
       case 2: //modulo varco utilizzato all'uscita inserimento orario d'uscita
    
    
      time_t timer; 
      struct tm y2k;
      double seconds;
    
    
      y2k.tm_hour = 0;   y2k.tm_min = 0; y2k.tm_sec = 0;
      y2k.tm_year = 100; y2k.tm_mon = 0; y2k.tm_mday = 1;
    
    
      time(&timer);  //prende l'ora attuale uguale: timer = time(NULL) 
      seconds = difftime(timer,mktime(&y2k));
    
    
       return 0;
    
    
       case 3: // modulo varco utilizzato dal primo lab
           
    leggi_badge.modulo_varco; //risposta dal lab
       int countF, countP; //counF conta il primo, countP conta le persone
    
    
       if (Badge.aut (0)) (leggi_badge.modulo_varco()); // lettore di fronte al lab se autorizzato apre la porta (b0)
       
       if (leggi_badge.modulo_varco()) (countF = countF + 1);
    
    
       if (countF==1) (leggi_badge.modulo_varco());//accende la luce 
    
    
          countF--;//conta al contrario
       if (countF=0) (leggi_badge.modulo_varco());//spenge la luce
       
       case 4: // modulo varco utilizzato dal secondo lab
       case 5: // modulo varco utilizzato dal terzo lab
       case 6: // modulo varco utilizzato dal quarto lab
       case 7: // modulo varco utilizzato dal quinto lab
       case 8: // modulo varco utilizzato dal sesto lab
    Ultima modifica di LeleFT; 09-06-2014 a 11:05 Motivo: Aggiunti i tag CODE

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    4
    sul modulo_varco mi da errore....(riferimento a membro non statico, non include alcun membro, ecc)

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    4
    Sunto del programma:
    - porta d'ingresso con lettore badge in-out per registrazione orario
    - sei laboratori con lettore badge
    - quattro badge con quattro autorizzazioni diverse
    - badge autorizzato il modulo_varco del lab in oggetto apre la porta, il sensore IR sempre gestito dal modulo varco conta le persone, se è la prima comanda la luce, se è stato usato un solo badge e il sensore IR conta due persone suona l'allarme.
    - in uscita dal lab il sensore IR conta al contrario e l'ultimo spegne la luce, il lettore della porta principale legge il badge in uscita e registra il time.

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,305
    Ho corretto il titolo della discussione, in quanto è vietato dal regolamento interno scrivere cose come "solo per esperti" o simili (perchè non hanno alcun senso: ciò che per te richiede l'intervento di un esperto, per qualcun altro potrebbe essere un intervento banale).

    Inoltre, sempre secondo quanto richiesto dal regolamento interno, ho aggiunti i tag CODE per il codice, che permettono di mantenere formattazione ed indentazione del codice.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Ho letto il codice solo di sfuggita, ma l'errore è autoesplicativo: riferimento a metodo non statico: cerchi di richiamare un metodo di istanza su una classe. Cerca il significato di static method sul tuo manuale C++.
    Inoltre non stai rispettando praticamente nessun principio dell'OOP e a dirla tutta il tuo codice semplicemente non ha senso. Mi dispiace ma devi ripartire dalle basi, studiando seriamente il linguaggio.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.