Untitled
/* 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