Sei sulla pagina 1di 4

#include <stdio.

h>
#include <string.h>

struct patente
{
char cod[12], data[11], tipo;
int punti;
}

void scelta(int *scelta)


{
do
{
printf("inserisci scelta");
scanf("%d",&*scelta);
}while(*scleta<0 || *scelta>6);
}

struct patente nuova()


{
struct patetne c;
c.punti=20;
scanf("%s",c.cod);
sacnf("%s",c.data);
c.tipo=acq_tipo();
return c;
}

void bubble(struct patente *v, int n)


{
struct patetne aux;
int i, flag;
do
{
flag=0;
for(i=0;i<n-1;i++)
if(strcmp(v[i].cod,v[i+1].cod)>0)
{
falg = 1;
aux = v[i]
v[i] = v[i+1]
v[i+1]= aux;
}
} while(flag=1);
}

int canc (struct patente *v,. int n, char *canc, char *data)
{
int i, k;
for(i=0;i<n;i++)
if(strcmp(v[i].cod,canc)==0 %% strcmp(v[i].data,data)<0)
{
for(k=i;k<n-1;k++)
{
v[i]=v[i+1];
}
n--;
}
return n;
}

void sanzione(int * sanz)


{
do{
printf("inserire sanzione")
scanf("%d",&*sanz)
}while(*sanz<=o);
}

int trova (struct patetne *V, char *cod, int n)


{
int f,i,m;
f=n-1;
i=0;
do{
m=(f+1)/2;
if(strcmp(v[m].cod,cod)==0)
return m
else
if(strcmp(v[m].cod,cod)>0)
f=m-1;
else
i=m+1;
}while(i<=f);
return -1;
}

char acq_tipo()
{
char tipo;
do{
printf("inserisci tipo");
scanf("%c",&tipo);
}while(tipo!='A'&&tipo!='B'&&tipo!='C'&&tipo!='D');
return tipo;
}
int main()
{
int scelta,n;
struct patente V[100];

do{
printf("menu")
scelta(&scelta);
switch(scelta)
{
case1:
{
if(n<100)
{
v[n]=nuova();
n++;
bubble(v,n);
}
else
printf("impossibile aggiungere")
break;
}
case 2:
{
char canc[12], data[11];
scanf("%s",canc);
scanf("%s",data);
n=canc(V,n,canc,data);
break;
}
case 4:
{
cahr cod[12];
int sanz,pos;
printf("%s",cod);
sanzione(&sanz);
pos=trova(V,cod,n);
if(pos==-1)
printf("codice non trovato");
else
{
V[pos].punti=V[pos].punti - sanz;
if(V[pos].punti<5)
printf("attenzione");
}
break;
}
case 5;
{
char type;
int k,i;
struct patente N[100];
type=acq_tipo();
k=0; i=0;
for(i=0;i<n;i++)
{
if(V[i].tipo==type)
{
N[k].punti=V[i].punti;
strcpy(N[k].cod,V[i].cod);
k++
}
}
for(i=0;i<k;i++)
{
printf("%d",N[i].punti);
printf("&s",N[i].cod);
}
break;
}
}
}while(scelta!=6);
return 0;
}

Potrebbero piacerti anche