C Program To Create A Structure Library II
C Program :
/* Aim: Write a program to accept details for n books and write a menu driven program for the following:
1] Display all reference books
2] Find the total number of reference books
3] Display the edition of specific reference book */
#include<stdio.h>
#include<string.h>
struct library
{
int id;
int code;
char title[80],publisher[20];
union u
{
int no_of_copies;
char month[20];
int edition;
}info[200];
int cost;
};
void DisplayAll_Ref(struct library book1[],int size);
int Total_Ref(struct library book1[],int size);
void DisRef(struct library book1[],int size,char title[80]);
void main()
{
struct library book1[200];
char title[80];
int i,size,ope;
printf("\n How many books are there in library:- ");
scanf("%d",&size);
printf("\n Enter the details of book:- ");
for(i=0;i<size;i++)
{
printf("\n Enter the id,title,and publisher for %dth book:- ",i+1);
scanf("%d%s%s",&book1[i].id,book1[i].title,book1[i].publisher);
do{
printf("\n Enter the code: 1-Text Book,2-magzine,3-Reference:- ");
scanf("%d",&book1[i].code);
switch(book1[i].code)
{
case 1:
printf("\n Enter the number of copies:- ");
scanf(" %d",&book1[i].info[i].no_of_copies);
break;
case 2:
printf("\n Enter the issue month date:- ");
scanf(" %s",book1[i].info[i].month);
break;
case 3:
printf("\n Enter the edition number:- ");
scanf(" %d",&book1[i].info[i].edition);
}}while(book1[i].code<1 book1="" code="" i="">3);
printf("\n Enter the cost:- ");
scanf("%d",&book1[i].cost);
}
do{
printf("\n Which operation do you want to perform:- \n");
printf("\n ----------Menu-------- \n");
printf("\n1.Display all reference books\n");
printf("2.Find the total number of reference books \n");
printf("3.Display the edition of specific reference book \n");
printf("4.Exit \n");
printf("\n Enter your choice:- ");
scanf("%d",&ope);
switch(ope)
{
case 1:
DisplayAll_Ref(book1,size);
break;
case 2:
printf("\n There are %d reference books in the library \n \n",Total_Ref(book1,size));
break;
case 3:
printf("\n Enter the title of book:- ");
scanf("%s",title);
DisRef(book1,size,title);
break;
}}while(ope!=4);
}
// DisplayAll_Ref Function
void DisplayAll_Ref(struct library book1[],int size)
{
int i;
printf("\n Details of all reference books are as follows:- \n");
for(i=0;i<size;i++)
{
if(book1[i].code==3)
{
printf("\n Id = %d",book1[i].id);
printf("\n Title = %s",book1[i].title);
printf("\n Publisher = %s",book1[i].publisher);
printf("\n Edition = %d",book1[i].info[i].edition);
printf("\n Cost = %d",book1[i].cost);
}
printf("\n");
}
}
//DisRef Function
void DisRef(struct library book1[],int size,char title[80])
{
int i;
printf("\n Details of all reference books with \"%s\" as title:- \n",title);
for(i=0;i<size;i++)
{
if(strcmp(book1[i].title,title)==0)
{
printf("\n Edition of \"%s\" is %d",book1[i].title,book1[i].info[i].edition);
}
printf("\n");
}
}
int Total_Ref(struct library book1[],int size)
{
int i,j,count=0;
for(i=0;i<size;i++)
{
if(book1[i].code==3)
count++;
}
return count;
}
1>
/* Output of above code:-
[root@localhost ~]# cc e16a2.c
[root@localhost ~]# ./a.out
How many books are there in library:- 3
Enter the details of book:-
Enter the id,title,and publisher for 1th book:- 1 Halo Master
Enter the code: 1-Text Book,2-magzine,3-Reference:- 1
Enter the number of copies:- 101
Enter the cost:- 999999
Enter the id,title,and publisher for 2th book:- 2 Physics Newton
Enter the code: 1-Text Book,2-magzine,3-Reference:- 3
Enter the edition number:- 1
Enter the cost:- 999
Enter the id,title,and publisher for 3th book:- 3 Biology Robert
Enter the code: 1-Text Book,2-magzine,3-Reference:- 3
Enter the edition number:- 1
Enter the cost:- 1000
Which operation do you want to perform:-
----------Menu--------
1.Display all reference books
2.Find the total number of reference books
3.Display the edition of specific reference book
4.Exit
Enter your choice:- 1
Details of all reference books are as follows:-
Id = 2
Title = Physics
Publisher = Newton
Edition = 1
Cost = 999
Id = 3
Title = Biology
Publisher = Robert
Edition = 1
Cost = 1000
Which operation do you want to perform:-
----------Menu--------
1.Display all reference books
2.Find the total number of reference books
3.Display the edition of specific reference book
4.Exit
Enter your choice:- 2
There are 2 reference books in the library
Which operation do you want to perform:-
----------Menu--------
1.Display all reference books
2.Find the total number of reference books
3.Display the edition of specific reference book
4.Exit
Enter your choice:- 3
Enter the title of book:- Biology
Details of all reference books with "Biology" as title:-
Edition of "Biology" is 1
*/
Comments