Untitled
unknown
c_cpp
10 months ago
4.3 kB
8
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;
}
Editor is loading...
Leave a Comment