Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- typedef struct c{
- char nome[15];
- char cognome[20];
- char citta[10];
- int camera;
- char dataIn[20];
- char dataOut[20];
- }cliente;
- typedef struct d{
- cliente info;
- struct d *next;
- }nodo, *lista;
- int menu(){
- int scelta ;
- printf("\n***MENU***\n");
- printf("\n1)Inserisci Ordinatamente: \n");
- printf("\n2)Conteggio clienti presenti in un periodo di tempo: \n");
- printf("\n3)Estrazione clienti camere: \n");
- printf("\n4)estrazione utenti stessa citta: \n");
- printf("\n0) premi 0 per terminare\n");
- scanf("%d", &scelta);
- return scelta;
- }
- void InserisciInListaOrdinata(lista *l, cliente cl){
- lista aux = NULL;
- if (*l == NULL){
- aux = (lista)malloc(sizeof(nodo));
- aux->info = cl;
- aux->next = *l;
- *l = aux;
- }
- else
- {
- if ((*l)->info.camera < cl.camera){
- aux = (lista)malloc(sizeof(nodo));
- aux->info = cl;
- aux->next = *l;
- *l = aux;
- }
- else{
- InserisciInListaOrdinata(&(*l)->next, cl);
- }
- }
- }
- void Carica(lista *l, char *nomefile){
- FILE*f;
- cliente cl;
- f = fopen(nomefile, "r");
- if (f == NULL){
- printf("errore apertura file");
- exit(1);
- }
- if (l != NULL){
- while (fscanf(f, "%s,%s,%s,%d,%s,%s", cl.nome, cl.cognome, cl.citta, &cl.camera, cl.dataIn, cl.dataOut) == 6){
- InserisciInListaOrdinata(&(*l), cl);
- }
- printf("\nfile caricato\n");
- fclose(f);
- }
- else {
- printf("file non trovato");
- }
- }
- void presenza(lista l, char *dataIn, char *dataOut){
- while (l != NULL){
- if (strcmp(l->info.dataIn, dataIn) >= 0 && strcmp(l->info.dataOut, dataOut) <= 0){
- printf("il cliente %s %s era in hotel tra il %s e il %s\n", l->info.cognome, l->info.nome, l->info.dataIn, l->info.dataOut);
- }
- l = l->next;
- }
- }
- int main(void){
- int scelta =0;
- lista L ;
- L = NULL;
- char nomefile[15];
- char dataIn[16];
- char dataOut[20];
- do{
- scelta = menu();
- switch (scelta){
- case 1:{
- printf("Inserisci il nome del file da caricare: \n");
- scanf("%s", nomefile);
- Carica(&L, nomefile);
- break;
- }
- case 2:
- {printf("\nInserisci data di arrivo: \n");
- scanf("%s", dataIn);
- printf("\nInserisci data di uscita: \n");
- scanf("%s", dataOut);
- presenza(L, dataIn, dataOut);
- break; }
- case 3:
- break;
- case 4:
- break;
- }
- } while (scelta != 0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement