Untitled

 avatar
unknown
c_cpp
a month ago
4.3 kB
3
Indexable
/*
1. Si definiscano le seguenti variabili che specificano le strutture dati per rappresentare i messaggi scambiati attraverso Facebook e ai profili degli utenti:
• una struttura che definisca un’utente, con nome, cognome e e-mail, tutti
composti da caratteri alfanumerici;
• una struttura che definisca un messaggio, con un contenuto alfanumerico, un
mittente scelto tra gli utenti, un numero fissato di destinatari e i destinatari,
anch’essi scelti tra gli utenti (fino ad un massimo di 256).
2. Definire, usando il linguaggio C, un’appropriata variabile per memorizzare le informazioni relative a 10 utenti e 10 messaggi. Queste variabili dovranno essere
chiamate utenti_facebook e messaggi_inviati.
3. Scrivere in linguaggio C, aggiungendo eventualmente opportune dichiarazioni di
variabili, un frammento di codice che permetta di visualizzare a video l’indirizzo
email di tutti gli utenti che hanno spedito almeno un messaggio e che non siano tra
i destinatari di tale messaggio. Si presupponga che la variabile messaggi_inviati sia inizializzata correttamente con le informazioni relative a 10 messaggi. Si
presupponga inoltre che l’indirizzo email sia identificatore univoco di un utente:
pertanto si può utilizzare l’indirizzo email per verificare se due utenti sono lo
stesso utente.
*/

#include <stdio.h>
#include <string.h>

#define MAX_DESTINATARI 256
#define MAX_STRING 100

typedef struct{
    char nome[MAX_STRING];
    char cognome[MAX_STRING];
    char email[MAX_STRING];
}Utente;

typedef struct{
    char contenuto[MAX_STRING];
    Utente mittente;
    Utente destinatari[MAX_DESTINATARI];
    int num_destinatari;
}Messaggio;

int main() {

Utente utenti_facebook[10];
Messaggio messaggi_inviati[10];

    strcpy(utenti_facebook[0].nome, "Mario");
    strcpy(utenti_facebook[0].cognome, "Rossi");
    strcpy(utenti_facebook[0].email, "mario.rossi@email.com");
    
    strcpy(utenti_facebook[1].nome, "Laura");
    strcpy(utenti_facebook[1].cognome, "Bianchi");
    strcpy(utenti_facebook[1].email, "laura.bianchi@email.com");
    
    strcpy(utenti_facebook[2].nome, "Giuseppe");
    strcpy(utenti_facebook[2].cognome, "Verdi");
    strcpy(utenti_facebook[2].email, "giuseppe.verdi@email.com");
    
    strcpy(messaggi_inviati[0].contenuto, "Ciao a tutti!");
    messaggi_inviati[0].mittente = utenti_facebook[0];
    messaggi_inviati[0].num_destinatari = 2;
    messaggi_inviati[0].destinatari[0] = utenti_facebook[1];
    messaggi_inviati[0].destinatari[1] = utenti_facebook[2];
    
    strcpy(messaggi_inviati[1].contenuto, "Come state?");
    messaggi_inviati[1].mittente = utenti_facebook[1];
    messaggi_inviati[1].num_destinatari = 1;
    messaggi_inviati[1].destinatari[0] = utenti_facebook[0];
    
    for(int i=0; i<10; i++)
    {
        int email_gia_stampata = 0;
        
        for(int j=0; j<i && email_gia_stampata == 0; j++)
        {
            if(strcmp(messaggi_inviati[i].mittente.email, messaggi_inviati[j].mittente.email) == 0){
                email_gia_stampata= 1;
            }
        }
        
        if(email_gia_stampata == 0)
        {
            int mittente_e_destinatario = 0;
            
            for(k=0; k<messaggi_inviati[i].num_destinatari && mittente_e_destinatario == 0; k++)
            {
                if(strcmp(messaggi_inviati[i].mittente.email, messaggi_inviati[i].destinatari[k].email) == 0)
                {
                    mittente_e_destinatario = 1;
                }
            }
            
            if(mittente_e_destinatario == 0)
            {
                printf("Email: %s\n", messaggi_inviati[i].mittente.email)
            }
        }
    }
    
    /*
    Mario rossi (mario@email.com)
    Laura Bianchi (laura@email.com)
    Giuseppe Verdi (giuseppe@email.com)
    
    MESSAGGIO 1:
    - Mittente: Mario
    - Testo: "Ciao a tutti!"
    - Destinatari: Laura, Giuseppe
    (qui Mario NON ha messo se stesso come destinatario)
    
    MESSAGGIO 2:
    - Mittente: Laura
    - Testo: "Ci vediamo stasera"
    - Destinatari: Mario, Laura, Giuseppe
    (qui Laura HA MESSO se stessa come destinataria)
    
    MESSAGGIO 3:
    - Mittente: Giuseppe
    - Testo: "Ok!"
    - Destinatari: Laura
    (qui Giuseppe NON ha messo se stesso come destinatario)

    */

    return 0;
}






Leave a Comment