Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- using namespace std;
- /*
- Scrivere un programma in C/C++ che visualizzi il seguente menu:
- 1) Crea rubrica
- 2) Cerca un elemento
- 3) Visualizza la tabella
- 4) Esci
- 1) La rubrica (array di struct) deve contenere al massimo 100 elementi. Ogni elemento è
- composto dai seguenti campi
- nome
- cognome
- indirizzo
- città di residenza
- telefono
- Tutti i suddetti campi devono essere rappresentati come stringhe.
- Dopo avere inserito un elemento il programma chiede: “Vuoi continuare s/n”?
- Se la risposta è “s” si aggiunge un nuovo elemento, se è “n” si torna al menu.
- 2) Visualizza un sottomenu che chiede per quale campo si vuole cercare:
- 1. nome
- 2. cognome
- 3. indirizzo
- 4. città di residenza
- 5. telefono
- 6. Torna al menu precedente
- Si fa inserire il valore del campo che si è scelto per la ricerca
- Si cerca nella tabella tutti gli elementi in cui appare quel campo.
- Es. se ho scelto come campo di ricerca “città di residenza” e ho inserito come valore di
- ricerca “Torino” bisogna mostrare tutti gli elementi che hanno il valore “Torino”.
- Se non si trova nessun elemento con quel valore bisogna visualizzare il messaggio:
- “Non trovato nessun elemento”.
- 3) Si visualizza tutta la tabella
- */
- const int N = 20;
- int g_inseriti;
- struct Contatto{
- char nome[N];
- char cognome[N];
- char indirizzo[N];
- char residenza[N];
- int numero;
- };
- void inserisciNumero(Contatto* param1){
- char nome[N], cognome[N], indirizzo[N], residenza[N];
- int numero;
- cout << "Nome";
- cin >> nome;
- cout << "cognome";
- cin >> cognome;
- cout << "\nindirizzo";
- cin >> indirizzo;
- cout << "\nresidenza";
- cin >> residenza;
- cout << "numero";
- cin >> numero;
- strcpy(param1[g_inseriti].nome, nome);
- strcpy(param1[g_inseriti].cognome, cognome);
- strcpy(param1[g_inseriti].indirizzo, indirizzo);
- strcpy(param1[g_inseriti].residenza, residenza);
- param1[g_inseriti].numero = numero;
- g_inseriti = g_inseriti + 1;
- }
- void cercaElemento(Contatto* parametro_contatti) {
- int input;
- char parolaChiave[N];
- char* inizioSottostringa;
- bool trovato = false;
- cout << "Scegliere per quale campo cercare (numero 1-6)"
- "1. nome\n"
- "2. cognome\n"
- "3. indirizzo\n"
- "4. città di residenza\n"
- "5. telefono\n"
- "6. Torna al menu precedente";
- cin >> input;
- cout << "\nInserire parola chiave:";
- cin >> parolaChiave;
- for(int i = 0; i< g_inseriti; i = i+1){
- switch(input){
- case 1:
- //cercare per nome
- inizioSottostringa = strstr(parametro_contatti[i].nome, parolaChiave);
- break;
- case 2:
- //cercare per cognome
- inizioSottostringa = strstr(parametro_contatti[i].cognome, parolaChiave);
- break;
- case 3:
- //cercare per indirizzo
- inizioSottostringa = strstr(parametro_contatti[i].indirizzo, parolaChiave);
- break;
- case 4:
- //cercare per città di residenza
- inizioSottostringa = strstr(parametro_contatti[i].residenza, parolaChiave);
- case 5:
- //cercare per numero di telefono
- case 6:
- break;
- default:
- cout << "Scelta errata";
- }
- if(inizioSottostringa != NULL){
- trovato = true;
- cout << "\ntrovata corrispondenza:";
- cout << parametro_contatti[i].nome << endl;
- cout << parametro_contatti[i].cognome << endl;
- cout << parametro_contatti[i].indirizzo << endl;
- cout << parametro_contatti[i].residenza << endl;
- cout << parametro_contatti[i].numero << endl;
- }
- }//TI VEDO CHE SCRIVI e vai a mangiare lol dio por
- if(trovato == false)
- cout << "Non trovato nessun elemento";
- }
- void visualizzaTabella(Contatto* contatti){
- for(int i = 0; i<g_inseriti;i=i+1){
- cout << contatti[i].nome << endl;
- cout << contatti[i].cognome << endl;
- cout << contatti[i].indirizzo << endl;
- cout << contatti[i].residenza << endl;
- cout << contatti[i].numero << endl;
- }
- }
- int main(){
- int input;
- g_inseriti = 0;
- Contatto rubrica[100];
- cout <<"Inserire un numero:\n"
- "1) Crea rubrica\n"
- "2) Cerca un elemento\n"
- "3) Visualizza la tabella\n"
- "4) Esci\n";
- cin >> input;
- switch(input){
- case 1:
- inserisciNumero(rubrica);
- break;
- case 2:
- cercaElemento(rubrica);
- break;
- case 3:
- visualizzaTabella(rubrica);
- break;
- case 4:
- break;
- default:
- cout << "Scelta errata\n";
- }
- return 0;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement