Progetto Programmazione 1: Gestione Archivio Telefonico Codice C
Appunti a cura di Giacomo Gargiulo
Università degli Studi di Napoli Parthenope
per tutte le info o osservazioni:
giacomo.gargiulo.made4Core@gmail.com
MAIN.c
/* Nome del progetto:Gestione Archivio Telefonico
Si vuole simulare l’archivio telefonico di un cellulare. Ogni nominativo è identificato
dal Cognome, Nome, numero telefonico. Provvedere all’implementazione
dell’algoritmo per la simulazione dell’archivio telefonico (massimo 30 nominativi).
Permettere, inoltre, all’utente di
• Inserire o cancellare un nominativo
• Dato il Cognome e il Nome di un utente visualizzare il numero telefonico
corrispondente (effettuare una ricerca binaria ricorsiva)
• Dato un numero telefonico vedere il numero totale di chiamate da e verso
quel numero
L’archivio può anche essere inizializzato con informazioni casuali. Effettuare almeno
due test per ognuna delle opzioni dell’utente.
*/
#include "header.h"
void main()
{ int n;
char nome[16],cognome[16];//nome e cognome sono due variabili di tipo stringa che ci
servono quando dobbiamo fare
//lo scanf del nome e cognome per ricercare il numero telefonico
char chiave, Numero_tel[16];//chiave è una variabile che useremo sia con la funzione
vedi_chiamate sia con la funzione visualizza_numero;
//Numero_tel è una variabile che ci servirà per la chiamata alla funzione vedi_chiamate
struct contatto elenco[N];//questa è la dichiarazione del vettore struttura elenco[N]
che,relativo alla struct contatto,è un array che contiene la struct di 6 elementi
char scelta;//questa è la variabile che inseriremo nello switch per permettere all'utente
di selezionare le varie alternative
char scelta_1;//questa è un'altra variabile che serve all'utente per scegliere di inserire o
cancellare un contatto
inizializza(persona);//questa è la chiamata alla procedura per inizializzare a zero il
numero dei contatti,con il relativo nome,cognome,numero,numero di chiamate ricevute ed
effettuate.
// qui è contenuto il menù principale del programma dove l'utente può scegliere tra le
varie opzioni
do{
printf("\n======================================\n");
printf("* *\n");
printf("* BENVENUTO NELLA RUBRICA TELEFONICA *\n");
printf("* *\n");
printf("======================================\n");
printf("\nChe cosa vuoi fare?\n");
printf("1- Inserire o cancellare un nominativo\n");
printf("2- Ricerca i numeri telefonici\n");
printf("3- Vedere il numero di chiamate da e verso un numero\n");
printf("4- Visualizzare i contatti con i relativi numeri\n");
printf("ESC- Esci dalla rubrica\n");
printf("\nLa tua scelta e': ");
scelta=getch();
system("cls");//è un'istruzione che serve per pulire lo schermo del computer
switch(scelta)
{ //se si sceglie 1 è possibile o inserire o cancellare un nominativo
case '1':
do
{ system("cls");//è un'istruzione che serve per pulire lo schermo del
computer //c'è una scelta ulteriore che vede inserire un contatto premendo 0 oppure
cancellare un contatto premendo 1
printf("\nPremi 0 per inserire---oppure---Premi 1 per cancellare\n");
printf("\nLa tua scelta e': ");
printf("\n");
scelta_1=getch();
system("cls");//è un'istruzione che serve per pulire lo schermo del
computer //c'è una scelta ulteriore che vede inserire un contatto premendo 0 oppure
cancellare un contatto premendo 1
if(scelta_1=='0')
{ if(aggiungi_contatto(persona))//nell'if è stata inserita la chiamata
alla funzione aggiungi_contatto
{ ordina_elenco(persona);//qui c'è la chiamata alla
procedura ordina_elenco in modo tale che
//se viene aggiunto un contatto,questo viene
immediatamente ordinato per cognome in ordine crescente
}
}
//se non si sceglie di aggiungere un contatto si entra nell'else
else if (scelta_1=='1')
{ cancella_contatto(persona);//questa è la chimata alla funzione
cancella_contatto che ci //consente di cancellare il nominativo desiderato
}
}while(scelta_1>'1');
system("\nPAUSE");//serve per mettere il sistema in pausa e continuare solo se
viene premuto un tasto da tastiera
system("cls");//è un'istruzione che serve per pulire lo schermo del computer
break;
//se si preme 2 è possibile ricercare un numero telefonico immettendo da tastiera
il nome e il cognome relativi al contatto
case '2':system("cls");//è un'istruzione che serve per pulire lo schermo del
computer printf("\nCONTENUTO DELLA RUBRICA\n");
printf("\nInserisci il nome: ");
gets(nome);
printf("\nInserisci il cognome: ");
gets(cognome);
if