C Program To Create Structure Student and Search, Modify and Display the Records
Write a C program to create a structure student and perform different operation on it such as search, modify and display.
C Program Create a Structure Student and perform Operations on it
/* Aim: Create a structure student(roll number,name,marks of three subjects,percentage). Accept the details of n students and write a menu driven program toperform the following operations. Write seperate functions for different options.
1]Search
2]Modify
3]Display all student details
4]Display all students having percentage > ____
5]Display student having mkaximum percentage */
#include<stdio.h>
#include<string.h>
struct student
{
int roll_no,math,fileo,proc;
char name[20];
float percent;
};
void Search(struct student S[],int size);
void Modify(struct student S[],int size,int roll_no);
void DisplayAll(struct student S[],int size);
void PercentGT(struct student S[],float checkPercent,int size);
void MaxPercent(struct student S[],int size);
void main()
{
struct student S[200];
int i,roll_no,size,ope;
float checkPercent;
printf("\n How many students are there:- ");
scanf(" %d",&size);
printf("\n Enter the information of students as follow:- \n \n");
printf("\n Roll No\t Name \t Mathematics \t File Organisation \t Programming In C \n \n");
for(i=0;i<size;i++)
{
scanf(" %d %s %d %d %d",&S[i].roll_no,S[i].name,&S[i].math,&S[i].fileo,&S[i].proc);
S[i].percent=(S[i].math+S[i].fileo+S[i].proc)/3;
}
do{
printf("\n \t ***** Menu *****");
printf("\n 1.Search");
printf("\n 2.Modify");
printf("\n 3.Display all student details");
printf("\n 4.Display all students having percentage greater than ___");
printf("\n 5.Display student having maximum percentage");
printf("\n 6.Exit \n \n");
printf("\n Enter Your Choice:- ");
scanf(" %d",&ope);
switch(ope)
{
case 1:
Search(S,size);
break;
case 2:
printf("\n Enter roll no to modify the details:- ");
scanf(" %d",&roll_no);
Modify(S,size,roll_no);
break;
case 3:
DisplayAll(S,size);
break;
case 4:
printf("\n Enter percentage:- ");
scanf("%f",&checkPercent);
PercentGT(S,checkPercent,size);
break;
case 5:
MaxPercent(S,size);
break;
}}while(ope!=6);
}
void Search(struct student S[],int size)
{
char name[20];
int i,flg=0,roll_no,searchBy;
do{
printf("\n How do you want to search:- 1.By Roll No \n \t\t\t 2.By Name \n");
scanf(" %d",&searchBy);
if(searchBy==1)
{
printf("\n Enter roll no of the student:- ");
scanf(" %d",&roll_no);
}
else
{
printf("\n Enter the name of the student:- ");
scanf(" %s",name);
}}while(searchBy<1 || searchBy>2);
for(i=0;i<size;i++)
{
if(S[i].roll_no==roll_no || strcmp(S[i].name,name)==0)
{
flg=1;
break;
}
}
if(flg==1)
{
printf("\n We have found this result:- \n ");
printf("\n Roll No\t Name \t Mathematics \t File Organisation \t Programming In C \t Percentage \n \n");
printf("\n %d \t\t %s \t %6d \t\t %1d \t\t %8d \t\t %f \n",S[i].roll_no,S[i].name,S[i].math,S[i].fileo,S[i].proc,S[i].percent);
}
else
printf("\n We haven't found any record \n \n");
}
// Modify Function
void Modify(struct student S[],int size,int roll_no)
{
char name[20];
int i,update,newData;
do{
printf("\n What do you want to update:- 1.Roll NO \n \t\t\t 2.Name \n \t\t\t 3.Marks of 'Mathematics' \n \t\t\t 4.Marks of 'File Organisation' \n \t\t\t 5.Marks of 'Programming in C' \n");
scanf(" %d",&update);
if(update==3 || update==4 || update==5)
{
printf("\n Enter new marks:- ");
scanf("%d",&newData);
}
else if(update==1)
{
printf("\n Enter new roll no:- ");
scanf(" %d",&newData);
}
else if(update==2)
{
printf("\n Enter new name:- ");
scanf(" %s",name);
}
else
{
printf("\n Please make a valid choice \n \n");
}
}while(update<1 || update>5);
for(i=0;i<size;i++)
{
if(S[i].roll_no==roll_no)
{
if(update==1)
{
S[i].roll_no=newData;
break;
}
else if(update==3)
{
S[i].math=newData;
break;
}
else if(update==4)
{
S[i].fileo=newData;
break;
}
else if(update==5)
{
S[i].proc=newData;
break;
}
else
{
strcpy(S[i].name,name);
break;
}
}
}
printf("\n Modified details of students are as follows:- \n");
printf("\n Roll No\t Name \t Mathematics \t File Organisation \t Programming In C \t Percentage \n \n");
for(i=0;i<size;i++)
{
printf("\n %d \t\t %s \t %6d \t\t %1d \t\t %8d \t\t %f \n",S[i].roll_no,S[i].name,S[i].math,S[i].fileo,S[i].proc,S[i].percent);
}
}
// DisplayAll Function
void DisplayAll(struct student S[200],int size)
{
int i;
printf("\n The Information of students is as follow:- \n \n");
printf("\n Roll No\t Name \t Mathematics \t File Organisation \t Programming In C \t Percentage \n \n");
for(i=0;i<size;i++)
printf("\n %d \t\t %s \t %6d \t\t %1d \t\t %8d \t\t %f \n",S[i].roll_no,S[i].name,S[i].math,S[i].fileo,S[i].proc,S[i].percent);
}
// PercentGT Function
void PercentGT(struct student S[],float checkPercent,int size)
{
int i;
printf("\n The Information of students who scored percentage>%f :- \n \n",checkPercent);
printf("\n Roll No\t Name \t Mathematics \t File Organisation \t Programming In C \t Percentage \n \n");
for(i=0;i<size;i++)
{
if(S[i].percent>checkPercent)
{
printf("\n %d \t\t %s \t %6d \t\t %1d \t\t %8d \t\t %f \n",S[i].roll_no,S[i].name,S[i].math,S[i].fileo,S[i].proc,S[i].percent);
}
}
}
// MaxPercent Function
void MaxPercent(struct student S[200],int size)
{
int i;
float maxPercent=S[0].percent;
for(i=0;i<size;i++)
if(S[i].percent>maxPercent)
{
maxPercent=S[i].percent;
break;
}
printf("\n \"%s\" scored maximum percentage. Below are his details:- - \n ",S[i].name);
printf("\n Roll No\t Name \t Mathematics \t File Organisation \t Programming In C \t Percentage \n \n");
printf("\n %d \t\t %s \t %6d \t\t %1d \t\t %8d \t\t %f \n",S[i].roll_no,S[i].name,S[i].math,S[i].fileo,S[i].proc,S[i].percent);
}
Output:
How many students are there:- 2 Enter the information of students as follow:- Roll No Name Mathematics File Organisation Programming In C 1 xc 90 90 90 2 xxc 98 99 100 ***** Menu ***** 1.Search 2.Modify 3.Display all student details 4.Display all students having percentage greater than ___ 5.Display student having maximum percentage 6.Exit Enter Your Choice:- 1 How do you want to search:- 1.By Roll No 2.By Name 2 Enter the name of the student:- xxc We have found this result:- Roll No Name Mathematics File Organisation Programming In C Percentage 2 xxc 98 99 100 99.000000
Comments