Arrya with file handling

#include <stdio.h>
#include <stdlib.h>
void InstertingData(int *parry,int *lastpostion,int data,int pos,int Size);
void DeletingDate(int *parray,int *lastpostion,int pos);
void PrintingList(int *parray,int *lastpostion,int sizeOFList);
void SearchingForPosition(int *parray,int *lastpostion,int *data,int sizeOFList,int pos);
void SearchingForData(int *parray,int *lastposition,int data);
void InsertingDataTOEmptyList(int arr[],int *lastposition,int data,int List_size);

int main()
{
    FILE* fp;
    fp=fopen("Display.txt","w");
    if(fp==NULL)
    {
        printf("Error in opening in file\n");
        return;
    }
    int a[10];
    int Last_position=-1;
    int List_size=10;
    int Data;
    int pos,pos1,pos2,che;
    printf("List start from 1\n");
    while(1)
    {
    printf("\n");
    printf("1]Inserting at position\n");
    printf("2]Deleting\n");
    printf("3]Finding Element\n");
    printf("4]Searching\n");
    printf("5]Display\n");
    printf("6]Inserting Empty List\n");
    printf("0]Stop\n");
    printf("Enter choice:");
    scanf("%d",&che);
    if(che<=0)
    {
        break;
    }
    else
    {
        switch(che)
       {
        case 1:
         {
            printf("Enter position :");
            scanf("%d",&pos);
            printf("Enter data to insert:");
            scanf("%d",&Data);
            InstertingData(a,&Last_position,Data,pos,List_size);
            PrintingList(a,&Last_position,List_size);
            fseek(fp, 0,  SEEK_SET);
            for(int i=0;i<=Last_position;i++)
            {
              fprintf(fp,"%d ",a[i]);
            }
             break;
         }
       case 2:
          {
             printf("Enter position to delete");
             scanf("%d",&pos1);
             DeletingDate(a,&Last_position,pos1);
             PrintingList(a,&Last_position,List_size);
             fseek(fp, 0, SEEK_SET);
             for(int i=0;i<=Last_position;i++)
             {
               fprintf(fp,"%d ",a[i]);
             }
             break;
         }
       case 3:
           {
                   printf("\nEnter position for you looking");
                   scanf("%d",&pos2);
                   int ans;
                   SearchingForPosition(a,&Last_position,&ans,List_size,&pos2);
                   printf("\nYou looking for :%d\n",ans);
                   PrintingList(a,&Last_position,List_size);
                   break;

           }
      case 4:
         {
                 int Ldata;
                 printf("Enter data for  matching in list:");
                 scanf("%d",&Ldata);
                 SearchingForData(a,&Last_position,Ldata);
                 PrintingList(a,&Last_position,List_size);
                 break;
         }
      case 5:
        {
            PrintingList(a,&Last_position,List_size);
            break;
        }
     case 6:
        {
            int data;
            printf("Enter data:");
            scanf("%d",&data);
            InsertingDataTOEmptyList(a,&Last_position,data,List_size);
            fseek(fp, 0,  SEEK_SET);
            for(int i=0;i<=Last_position;i++)
            {
              fprintf(fp,"%d ",a[i]);
            }
            break;
        }
       }
     }
    }
    fclose(fp);
    return 0;
}
void InstertingData(int *parry,int *lastpostion,int data,int pos,int Size)
{
    int FinalPos=pos-1;

    if(*(lastpostion)==Size)
    {
        printf("There is no space to insert data to list");
        return;
    }
    else if(pos>Size)
    {
      printf("Your going out of list check your position\n");
    }
    else
    {
        if(FinalPos>*(lastpostion)+1&& FinalPos<=Size)
        {
            printf("Data will not be contiguous\n");
            return;
        }
        else
        {
            if(FinalPos==*(lastpostion+1))
            {
                int n=FinalPos;
                *(parry+n)=data;
                *(lastpostion)=FinalPos;
            }
            else
            {
                for(int i=(*(lastpostion)+1);i>FinalPos;--i)
                {
                    *(parry+i)=*(parry+i-1);
                }
                int m=FinalPos;
                *(parry+m)=data;
                *(lastpostion)=*(lastpostion)+1;
            }
        }
    }

  return;

}
void DeletingDate(int *parray,int *lastpostion,int pos)
{
    if(*lastpostion==0)
    {
        printf("Array is empty");
        return;
    }
    else
    {
        if((pos-1)>*(lastpostion))
        {
            printf("Enter position is empty nothing to delete");
            return;
        }
        else
        {
            for(int i=(pos-1);i<=*(lastpostion);i++)
            {
                *(parray+i)=*(parray+(i+1));

            }
             *(lastpostion)=*(lastpostion)-1;
        }
    }
}
void PrintingList(int *parray,int *lastpostion,int sizeOFList)
{
    if(*(lastpostion)>sizeOFList)
    {
        printf("List is less than your last position");
        return;
    }
    else if(*(lastpostion)<0)
    {
        printf("List is empty\n");
    }
    else
    {
        for(int i=0;i<=*(lastpostion);i++)
        {
            printf("%d ",*(parray+i));
        }
    }
}
void SearchingForPosition(int *parray,int *lastpostion,int *data,int sizeOFList,int pos)
{
    if((pos)-1>sizeOFList)
    {
        printf("Your are looking for element out of array");
        *(data)=-1;
        return -1;
    }
    else if((pos)-1<=*(lastpostion))
    {
        int Fpos=(pos)-1;
        *(data)=*(parray+Fpos);
    }
    return;

}
void SearchingForData(int *parray,int *lastposition,int data)
{
    if(*(lastposition)==-1)
    {
        printf("List is empty first put some in it\n");

    }
    else if(*(lastposition)>=0)
    {
        int i;
        for(i=0;i<=*(lastposition);i++)
        {
             if(*(parray+i)==(data))
             {
                 printf("Enter data found at position %d\n",i+1);
                 break;
             }
        }
        if(i==*(lastposition)+1)
        {
            printf("Entered data %d is not found in list",(data));
        }
    }
}
void InsertingDataTOEmptyList(int arr[],int *lastposition,int data,int List_size)
{
    if(*(lastposition)==List_size)
    {
        printf("List is full");
    }
    else
    {
        *(lastposition)=(*lastposition)+1;
        arr[*lastposition]=data;
    }

}






Post a Comment

0 Comments