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){
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
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
}
}
else if (scelta_1=='1'){
cancella_contatto(persona);
// questa è la chiamata 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;
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