Buona sera a tutti, come dal titolo ho un problema per quanto riguarda il passaggio di valori
#include <iostream>
#include <cstring>
using namespace std;
struct orario
{
int anno;
short int mese;
short int giorno;
short int ore;
short int min;
};
struct appuntamento
{
char titolo[50];
char luogo[30];
orario ora;
appuntamento* succ;
};
typedef appuntamento* lista;
//Prototipi
void scelta_opzione(appuntamento& a);
void stampaLista(lista inizio);
// Questa funzione restituisce true solo se l'appuntamento passato al secondo
// membro è programmato dopo quello puntato al primo membro
bool anteriore (lista a, appuntamento b)
{
}
// Questa procedura inserisce in agenda l'appuntamento passato al secondo membro
// in maniera ordinata rispetto alla data ed all'orario in cui è programmato
void inserisci_ordinatamente(lista& inizio, appuntamento e)
{
}
// Questa procedura elimina dall'agenda gli appuntamenti scaduti alla data
// dell'appuntamento passatole al secondo membro
void elimina_passati(lista& inizio, appuntamento oggi)
{
}
// Questa funzione restituisce true solo se le stringhe contenute nei due
// vettori sono identiche
bool uguali(char stringa1[], char stringa2[])
{
}
// Questa funzione restituisce true solo se in agenda viene trovato un
// appuntamento il cui titolo è identico a quello dell'appuntamento passatole a
// secondo membro; in questo caso il secondo membro deve diventare una copia di
// quello trovato e quest'ultimo deve essere eliminato dall'agenda
bool estrai_elem_dato(lista& inizio, appuntamento& e)
{
}
// Questa procedura riempie dall'input i campi dell'appuntamento
// passatole per riferimento
void leggidati(appuntamento& a)
{
lista inizio;
char ausiliare[2]; //utlizzata per "assorbire" il carattere '/0'
cin.getline(ausiliare,2);
orario ora;
cout << "Inserisci il titolo dell'appuntamento: "; cin.getline(a.titolo,60);
cout << "Inserisci il luogo dell'appuntamento: "; cin.getline(a.luogo,30);
cout << "Inserisci l'orario dell'appuntamento (ora, minuto): "; cin >> ora.ore >> ora.min;
cout << "Inserisci il giorno, il mese e poi l'anno dell'appuntamento: "; cin >> ora.giorno >> ora.mese >> ora.anno ;
scelta_opzione(a);
}
// Questa procedura stampa in output tutti gli appuntamenti
void stampaLista(lista inizio)
{
appuntamento a;
inizio = new appuntamento(a);
orario* ora;
cout << "Titolo: " << ((appuntamento *) inizio)->titolo << endl;
cout << "Luogo: " << ((appuntamento *) inizio)->luogo << endl;
cout << "Anno: " << ora->giorno << endl;
cout << "Mese: " << ora->mese << endl;
cout << "Giorno: " << ora->giorno << endl;
cout << "Ora: " << ora->ore << endl;
cout << "Minuti: " << ora->min << endl;
scelta_opzione(a);
}
void scelta_opzione(appuntamento& a)
{
lista inizio;
appuntamento oggi;
char scelta;
cout << "Scegli un opzione:" << endl;
cout << "i: inserire un nuovo appuntamento." << endl;
cout << "e: per eliminare gli appuntamenti passati." << endl;
cout << "a: per eliminare un particolare appuntamento" << endl;
cout << "s: per stampare la lista degli appuntamenti" << endl;
cin >> scelta;
switch (scelta)
{
case 'i':
leggidati(a);
break;
case 'e':
elimina_passati(inizio, oggi);
break;
case 's':
stampaLista(inizio);
break;
}
}
int main()
{
appuntamento a;
scelta_opzione(a);
}
Dopo aver inserito i dati dell'appuntamento (Quindi scelgo di far partire la funzione "leggidati"), dopo decido di far stampare quei dati, solo che quando scelgo l'opzione di stampare i dati (stampaLista) mi escono simboli strani. Vi lascio in allegato uno screen di quelle che mi esce.
Allegati: