Cricketer's database

cricket match players record 2-D linked List struct Player
{
int player_id;
char player_name[30];
char player_type[15]; // batsman,bowler or all rounder
int runs;
int wkts;
struct Player *next;
struct Player *prev;
}
Functions
insertion( ) deletion( ) updation( ) search( ) dispose( ) show_all( ) calculate_total_runs( ) calculate_total_wkts( )
calculate_runrate( ) // calculate the run rate

#include
#include
#include
#include


void total_runs(void);
void total_wkts(void);
void run_rate(void);
void new_player(void);
void listall(void);
void update(void);
void search(void);
void delete_player(void);
void dispose(void);

typedef struct player
{
 int id,runs,wkts;
 char name[30],fname[30],p_type[20];
 struct player *next,*prev;
};
struct player *header,*current,*preve,*temp;
int tep;
char ch,tap[30];
int sum=0,sum1=0;
float runrate;
void main(void)
{
 int gm=0,gd=0;
 initgraph(&gd,&gm,"g:/tc/bgi");
 header=(player *)NULL;
 while(1)
 {
  cleardevice();
  settextstyle(1,0,4);
  outtextxy(160,10,"\nCricketer's Database\n");
  moveto(230, 100);
  settextstyle(0,0,1);
  outtext("\n1.New player.");
  moveto(230, 110);
  outtext("\n2.List all players.");
  moveto(230, 120);
  outtext("\n3.Update Information.");
  moveto(230, 130);
  outtext("\n4.Search player.");
  moveto(230, 140);
  outtext("\n5.Delete a player.");
  moveto(230, 150);
  outtext("\n6.Total Runs.");
  moveto(230, 160);
  outtext("\n7.Total Wickets.");
  moveto(230, 170);
  outtext("\n8.Run Rate.");
  moveto(230, 180);
  outtext("\n9.Exit.");
  ch=getch();
  switch(ch)
  {
   case '1':
 cleardevice();
 new_player();
      break;
   case '2':
 cleardevice();
 listall();
      break;
   case '3':
 cleardevice();
 update();
      break;
   case '4':
 cleardevice();
 search();
      break;
   case '5':
 cleardevice();
 delete_player();
      break;
   case '6':
 cleardevice();
 total_runs();
 break;
   case '7':
 cleardevice();
 total_wkts();
 break;
   case '8':
 cleardevice();
 run_rate();
 break;
   case '9':
 cleardevice();
 dispose();
 exit(1);
      break;
   default:
 moveto(180,260);
 outtext("\nEnter the choice given above.");
 getch();
  }
 }
}
void new_player(void)
{
 current=(player *)malloc(sizeof(player));
 printf("\nEnter your ID:");
 gets(tap);
 current->id=atoi(tap);
 printf("\nEnter your name:");
 gets(current->name);
 printf("\nEnter your father's name:");
 gets(current->fname);
 printf("\nEnter your total runs:");
 gets(tap);
 current->runs=atoi(tap);
 printf("\nEnter your type(Batsman,Baller,or Allrounder):");
 gets(current->p_type);
 printf("\nEnter your total wickets taken:");
 gets(tap);
 current->wkts=atoi(tap);
 current->next=(player *)NULL;

     if ( header == NULL )
     {
   header = current;
   header -> next = NULL;
   header -> prev = NULL;
     }
     else
     {
   temp = header;
   while ( temp -> id != current -> id && temp != NULL )
    temp = temp -> next;
   if ( temp -> id == current -> id )
   {
        printf("The Record id Already exist...\n\n");
   }
   if ( header -> id > current -> id )
   {
        current -> next = header;
        current -> prev = NULL;
        header -> prev = current;
        header = current;
   }
   else
   {
        temp = header;
        while ( temp != NULL && current -> id > temp -> id )
        {
      preve = temp;
      temp = temp -> next;
        }
        if ( temp != NULL )
        {
      current -> next = temp;
      current -> prev = preve;
      preve -> next = current;
      temp -> prev = current;
        }
        else
        {
      preve -> next = current;
      current -> prev = preve;
      current -> next = NULL;
        }
   }
     }
     printf("\n");
     printf("\n\nPress any key to continue...");
     getch();
}
void listall(void)
{
 temp=header;
 while(temp!=NULL)
 {
  printf("\nID:%d",temp->id);
  printf("\nName:%s",temp->name);
  printf("\nFather's Name:%s",temp->fname);
  printf("\nPlayer Type:%s",temp->p_type);
  printf("\nTotal Runs:%d",temp->runs);
  printf("\nTotal Wickets:%d",temp->wkts);
  temp=temp->next;
 }
 printf("\nPress any key to continue...");
 getch();
}
void dispose(void)
{
 temp=header;
 while(temp!=NULL)
 {
  current=temp->next;
  free(temp);
  temp=current;
 }
}
void delete_player(void)
{
 int id1;
 printf("\nEnter ID of the data to be deleted:");
 scanf("%d",&id1);
 if(header->id==id1)
 {
  temp=header->next;
  free(header);
  header=temp;
 }
 else
 {
  temp=header;
  while(temp->id!=id1&&temp!=NULL)
  {
   preve=temp;
   temp=temp->next;
  }
  if(temp==NULL)
  {
   printf("\nWrong Input.");
  }
  else
  {
   preve->next=temp->next;
   free(temp);
  }
 }
 printf("\n\nPress any key to continue...");
 getch();
}
void search(void)
{
 int id2;
 temp=header;
 printf("\nEnter the ID to search:");
 scanf("%d",&id2);
 while(temp->id!=id2&&temp!=NULL)
 {
  temp=temp->next;
 }
  printf("\nID:%d",temp->id);
  printf("\nName:%s",temp->name);
  printf("\nFather's Name:%s",temp->fname);
  printf("\nPlayer Type:%s",temp->p_type);
  printf("\nTotal Runs:%d",temp->runs);
  printf("\nTotal Wickets:%d",temp->wkts);
  printf("\n\nPress any key to continue...");
  getch();
}
void update(void)
{
     unsigned char ch;
     char array[50];
     int id2, action = 0;
     printf("Enter ID, which Details You Want to Update ");
     scanf("%d", &id2);
     printf("\n");
     temp = header;
     while ( temp != NULL && temp -> id != id2 )
 temp = temp -> next;
     if ( temp != NULL )
     {
   printf("ID Found!!!\n\n");
   printf("In which field do you want to make changes\n\n");
   printf("1.Name of player\n");
   printf("2.Father's Name\n");
   printf("3.Player type\n");
   printf("4.Runs\n");
   printf("5.Wickets taken\n");
   ch = getch ();
   while ( action == 0 )
   switch (ch)
   {
      case '1' :
   printf("Enter Name ");
   gets ( temp -> name );
   gets ( temp -> name );
   action++;
   break;
      case '2' :
   printf("Enter Father's Name ");
   gets ( temp -> fname );
   gets ( temp -> fname );
   action++;
   break;
      case '3' :
   printf("Enter Player type ");
   gets ( temp -> p_type );
   gets ( temp -> p_type );
   action++;
   break;
      case '4' :
   printf("Enter new runs");
   gets ( array );
   gets ( array );
   temp -> runs = atoi ( array );
   action++;
   break;
      case '5' :
   printf("Enter Wickets");
   gets ( array );
   gets ( array );
   temp -> wkts = atoi ( array );
   action++;
   break;
      default  :
   printf("Invalid Selection\n");
   ch = getch();
   break;
     }
    }
    else
     printf("Record Does not Exist...\n");
     printf("\n");
     printf("\n\nPress any key to continue...");
     getch();
}
void total_runs(void)
{
 temp=header;
 while(temp!=NULL)
 {
  sum+=temp->runs;
  temp=temp->next;
 }
 printf("The total score is %d",sum);
 printf("\n\nPress any key to continue...");
 getch();
}
void total_wkts(void)
{
 temp=header;
 while(temp!=NULL)
 {
  sum1+=temp->wkts;
  temp=temp->next;
 }
 printf("The total wickets taken are %d",sum1);
 printf("\n\nPress any key to continue...");
 getch();
}
void run_rate(void)
{
 float over;
 printf("Enter the number of over played:");
 scanf("%f",&over);
 runrate=sum/over;
 printf("\n%d\n",sum);
 printf("The run rate is %f",runrate);
 printf("\n\nPress any key to continue...");
 getch();
}
// calculate total wickets
// calculate total runs of all ther players
// in sorted order

Comments

Popular posts from this blog

Tip of the Day # 13

Governor Generals of Pakistan

Tip of the Day# 12