Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    risoluzione problema in C++

    mi sono appena iscritto a questo forum: inanzitutto complimenti per il forum ed il sito in generale che ho gia consultato in passato per seguire le guide alla programmazione. Ho questo problema da sottoporvi che sicuramente per un utente esperto è molto banale:
    devo realizzare un programma scritto in linguaggio C++... siccome sono alle primissime armi, sto cercando di imparare, ho trovato un problema a cui sto cercando di dare una soluzione: vi posto le richieste nella speranza che qualcuno che sappia programmare in C++, mi dia la soluzione in codice...
    "devo memorizzare un elenco di indirizzi (di cui interessa nome, telefono, e-mail), supponendo che non esistano due persone con lo stesso nome e che al massimo gli indirizzi siano 100 .
    Dopo aver definito i tipi indirizzo e rubrica si scriva il prototipo di una funzione modificaTelefono che modifica il numero di telefono di un indirizzo memorizzato nella rubrica"
    ringrazio anticipatamente per la risposta...

  2. #2
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Prova a definire una classe Indirizzo per rappresentare un contatto della rubrica. Sarà una classe con vari campi di tipo stringa per mantenere le informazioni necessarie (nome, cognome, telefono, ecc ecc)

    La classe Rubrica dovrà quindi possedere una lista di Indirizzi, che puoi realizzare ad esempio con un array o in altro modo, e offrire dei metodi per inserire un Indirizzo, per eleiminare un indirizzo e per modificare il telefono. La ricerca di un indirizzo nella lista la dovrai fare in base al nome che è unico.

    Prova a buttar giù un po di codice e chiedi se hai problemi, se no non impari nulla,


  3. #3
    grazie dei consigli: ti posto le porzioni di codice che ho buttato giu fino ad adesso... io mi sono appena avventurato in questo mondo del C++ tuttavia se mi puoi dare un occhio al codice ed eventualmente ad integrarmelo te ne sarei davvero molto grato
    volevo arrivare ad una versione definitiva: ci ho già perso molto tempo dietro questo esempio e cercavo qualcuno abile nel C++ che mi postasse il codice corretto
    *** Definizione tipo indirizzo e tipo Rubrica

    typedef struct {
    char nome [30];
    char cognome [30];
    char telefono [15];
    char mail [20];
    } Contatto;

    typedef struct {
    Contatto lista [100];
    } Rubrica;

    *** Il mio problema è che non so scrivere il prototipo di una funzione modificaTelefono...

  4. #4
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Scarica il file da qui:

    http://xoomer.virgilio.it/world721/Rubrica.cpp

    perche sul forum le righe con le stringhe vengono spezzate e non puoi fare copia - incolla

    codice:
    #include <cstdlib>
    #include <iostream>
    #include <cstring>
    
    using namespace std;
    
    typedef struct{ 
    	char nome [30]; 
    	char cognome [30]; 
    	char telefono [15]; 
    	char mail [20]; 
    }Contatto; 
    
    typedef struct Rubrica{ 
    	Contatto *lista[100];
    	
    	//numero di contatti presenti nella rubrica
    	int dimensione;
    
    	//numero massimo di contatti presenti nella rubrica
    	int dimensioneMassima;
    	
    	Rubrica(){
    		dimensione = 0;
    		dimensioneMassima = 100;
    	}
    
    	void aggiungiContatto(){
    		if(dimensione == dimensioneMassima){
    			cout << "La rubrica contiene già " << dimensioneMassima  << " contatti!";
    			cout << "\nElimina qlche contatto prima di inserirne uno nuovo.";
    			return;
    		}
    		lista[dimensione] = new Contatto();
    			
    		cout << "\n\n\nInserisci il nome: ";
    		cin >> lista[dimensione] -> nome;
    		cout << "Inserisci il cognome: ";
    		cin >> lista[dimensione] -> cognome;
    		cout << "Inserisci il telefono: ";
    		cin >> lista[dimensione] -> telefono;
    		cout << "Inserisci l'indirizzo e-mail: ";
    		cin >> lista[dimensione] -> mail;
    		
    		dimensione++;
    	}
    	
    	void eliminaContatto(){
    		
    	}
    	
    	
    	void cambiaTelefono(){
    		if(dimensione == 0){
    			cout << "\n\nNon ci sono contatti da modificare nella rubrica!\n\n";
    			return;
    		}
    		char nome[30];
    		cout << "\n\nInserisci il nome del contatto da modificare: ";
    		cin >> nome;
    		for(int i = 0; i < dimensione; i++){
    			if(strcmp(lista[i] -> nome, nome) == 0){
    				cout << "\nInserisci il nuovo numero di telefono: ";
    				cin >> lista[i] -> telefono;
    				cout << "\nContatto modificato!";
    				return;
    			}
    		}
    	}
    	
    	void stampa(){
    		cout << "\n\n********  ___  RUBRICA (" << dimensione << " contatti) ___  ********\n";
    		for(int i = 0; i < dimensione; i++){
    			cout << " \n\n |------ Contatto " << i << " --------\n |\n";
    			cout << " | Nome:     \t" << lista[i] -> nome << "\n";
    			cout << " | Cognome:  \t" << lista[i] -> cognome << "\n";
    			cout << " | Telefono: \t" << lista[i] -> telefono << "\n";
    			cout << " | Mail:     \t" << lista[i] -> mail << "\n";
    			cout << " |\n |-------------------------\n\n";
    		}
    
    	}
    
    }Rubrica;
    
    int menu(){
    //	cout << "\n\n\n";
    	cout << " _______________________________________________________\n";
    	cout << "|                                                       |\n";
    	cout << "|                        Menu                           |\n";
    	cout << "|_______________________________________________________|\n";
    	cout << "|                                                       |\n";
    	cout << "|    Per inserire un nuovo contatto                1    |\n";
    	cout << "|    Per cambiare il telefono di un contatto       2    |\n";
    	cout << "|    Per eliminare un contatto                     3    |\n";
    	cout << "|    Per stampare la rubrica                       4    |\n";
    	cout << "|    Per uscire dalla rubrica                      5    |\n";
    	cout << "|_______________________________________________________|\n";
    	
    	cout << "\n     Inserisci la tua scelta: ";
    	int scelta;
    	cin >> scelta;
    	return scelta;
    
    }
    
    int main(){
    		Rubrica rubrica;
    		bool continua = true;
    		int scelta = 5;
    		
    		while(continua){
    			scelta = menu();		
    			switch(scelta){
    				case 1: rubrica.aggiungiContatto();
    						break;
    				case 2: rubrica.cambiaTelefono();
    						break;
    				case 3: break;
    				case 4: rubrica.stampa();
    						break;
    				case 5: continua = false;
    				default:;
    			}
    			cout << "\n\n\n";
    		}
    		
    		return 0;
    }

  5. #5
    grazie grazie infinite, veramente sei stato molto gentile
    ciao ciao e grazie ancora

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.