Library Management System - C Program S3


Program:

#include<stdio.h>
#include<ctype.h>
#include<string.h>
#include<stdlib.h>

//defining the properties of the fields used in the program


#define IN 1
#define OUT 0


void Addbook();
void Searchbook();
void Displaybook();
void Author();
void Titlelist();
void Stock();
void Issue();
void bookret();
void Addmembr();
void Exit();

char info[500];


struct
{
  int bid;
  char bname[25] ;
  char author[25];
  int nooftitles;
  char titles[500];
  int status;
}book;
struct
{
  int mid;
  char mname[25] ;
  char department[25];
  int availibcard;
  int phno;

}membr;


//initializing the files used in the program

FILE *librecord;
FILE *membrrecord;
FILE *fp1;
FILE *fp2;
FILE *temp1;
FILE *temp2;
int main()
{       
    int choice=0,i;
   
    printf("\n\t\t<<LIBRARY MANAGEMENT SYSTEM>>(Beta version ) \n");
    do{
    printf("\n\t~~MENU~~\n 1> Add A New Book\n 2> Search a book \n 3> Display Complete Information\n 4> Display All Books of An Author\n 5> List Titles of a Book\n 6> List Count of Books (Issued & On Stock)\n 7> To Issue a Book \n 8> To Rreturn a Book \n 9> Add A New Member\n 10> Exit the program\n\n\t Enter your choice <1-10>: ");
    scanf("%i",&choice);

       
    switch (choice)
    {   
        case 1:
            Addbook();
            break;
        case 2:
            Searchbook();
            break;
        case 3:
            Displaybook();
            break;
        case 4:
            Author();
            break;
        case 5:
            Titlelist();
            break;
        case 6:
            Stock();
            break;
        case 7:
            Issue();
            break;
        case 8:
            bookret();
            break;
        case 9:
            Addmembr();
            break;
        case 10:
            Exit();
        default:
            printf(" ! Invalid Input...\n");
    }
}while(choice!=10);
 return (0);
}

void Addbook()
{
    int i;book.status=IN;
            //opening the librecord file
    librecord = fopen("librecord.txt","a+");
    printf("Enter The uniqueid of The Book :(Integer) \n");
        scanf("%d",&book.bid);
    printf("Enter The Name of The Book :\n");
        scanf("%s",book.bname);
    printf("Enter The Name of Author :\n");
        scanf("%s",book.author);
    printf("Enter The Number of Titles Of The Book:(Integer)\n");
        scanf("%d",&book.nooftitles);
    fprintf(librecord,"\n%d\t%s\t%s\t%d\t%d\t",book.bid,book.bname,book.author,book.status,book.nooftitles);
    printf("Enter The Titles Of The Book : \n");
    for(i=0;i<book.nooftitles;i++)
    {
        scanf("%s",book.titles);
        fprintf(librecord,"%s\t",book.titles);
    }
    fclose(librecord);
    printf(" (' ' ) A New Book has been Added Successfully...\n");

}

void Displaybook()
{
    librecord = fopen("librecord.txt","a+");
    printf("\nBookid\tName\tAuthor\tStatus\tNo.\tTitles\n",info);
    do
    {
        fgets(info,500,librecord);
        printf("%s\n",info);
    }while(!feof(librecord));
    fclose(librecord);
    membrrecord = fopen("membrrecord.txt","a+");
    printf("\nMid\tName\tDept\tPh.no\tAvailablecards\n");
    do
    {
        fgets(info,500,membrrecord);
        printf("%s\n",info);
    }while(!feof(membrrecord));
    fclose(membrrecord);

}

void Searchbook()
{
    int i;
    char Target[25],stats[3];
    int Found=0;
    if((librecord=fopen("librecord.txt","r"))==NULL)
        printf(" ! The File is Empty...\n\n");
    else
    {
        printf("\nEnter The Name Of Book : ");
            scanf("%s",Target);
        while(!feof(librecord)&& Found==0)
        {
        fscanf(librecord,"%d %s %s %d %d", &book.bid,book.bname,book.author,&book.status,&book.nooftitles);
            if(strcmp(Target,book.bname)==0)
                Found=1;
            for(i=0;i<book.nooftitles;i++)
                fscanf(librecord,"%s",book.titles);
        }
        if(Found)
        {
            if(book.status==IN)
                strcpy(stats,"IN");
            else
                strcpy(stats,"OUT");
           
            printf("\nThe Unique ID of The Book:  %d\nThe Name of Book is:  %s\nThe Author is:  %s\nThe Book Status:%s\n\n",book.bid,book.bname,book.author,stats);
            }
        else if(!Found)
            printf("! There is no such Entry...\n");
        fclose(librecord);
    }

}

void Author()
{
    int i;   
    char Target[500];
    int Found=0;
    if((librecord=fopen("librecord.txt","r"))==NULL)
    printf(" ! The file is empty... \n\n");
    else
    {
        printf("\nEnter The Name Of Author : ");
            scanf("%s",Target);
        printf("\nBooks:");
        while(!feof(librecord))
        {
            fscanf(librecord,"%d %s %s %d %d",&book.bid,book.bname,book.author,&book.status,&book.nooftitles);
            if(strcmp(Target,book.author)==0)
            {
                Found=1;
                printf("\n\t%s",book.bname);
            }
            for(i=0;i<book.nooftitles;i++)
                fscanf(librecord,"%s",book.titles);
        }
        if(!Found)
            printf(" ! There is no such Entry...\n");
        fclose(librecord);
    }

}
void Titlelist()
{
    int i;
    char Target[500];
    int Found=0;
    if((librecord=fopen("librecord.txt","r"))==NULL)
        printf(" ! The file is empty...\n\n");
    else
    {
        printf("\nEnter The Book Name :");
        scanf("%s",Target);
        while(!feof(librecord)&& Found==0)
        {
            fscanf(librecord,"%d %s %s %d %d",&book.bid,book.bname,book.author,&book.status,&book.nooftitles);
            if(strcmp(Target,book.bname)==0)
                {
                    Found=1;
                    break;
                }
            for(i=0;i<book.nooftitles;i++)
                fscanf(librecord,"%s",book.titles);
        }
        if(Found)
        {
            //printf("The Name of book is:               %s\n",book.bname);
            printf("\nThe Titles:\n");
            for(i=0;i<book.nooftitles;i++)
            {
                fscanf(librecord,"%s",book.titles);
                    printf("%d.%s......\n",i+1,book.titles);
            }
        }
        else if(!Found)
            printf(" ! There is no such Entry...\n");
        fclose(librecord);
    }

}
void Stock()
{
    int i,issuecount=0,stockcount=0;   
    char Issued[100][20];
    int Found=0;
    if((librecord=fopen("librecord.txt","r"))==NULL)
        printf(" ! The file is empty...\n\n");
    else
    {
        while(!feof(librecord))
        {
            fscanf(librecord,"%d %s %s %d %d",&book.bid,book.bname,book.author,&book.status,&book.nooftitles);
            if(book.status==IN)
            {
                stockcount++;
            }
            else
            {
                issuecount++;
            }
            for(i=0;i<book.nooftitles;i++)
                fscanf(librecord,"%s",book.titles);
        }
        fclose(librecord);
    printf("\nCount of issued Books:%d\nCount of Books in Stock:%d\n",issuecount,stockcount-1);
    }

}
void Addmembr()
{
    int i;
           
    membrrecord = fopen("membrrecord.txt","a+");
    printf("Enter The userid of the Member(Integer) :\n");
        scanf("%d",&membr.mid);
    printf("Enter The Name of the Member :\n");
        scanf("%s",membr.mname);
    printf("Enter The Department\n");
        scanf("%s",membr.department);
   
    printf("Enter The phone number of the member:\n");
        scanf("%d",&membr.phno);
    membr.availibcard=5;
    fprintf(membrrecord,"\n%d\t%s\t%s\t%d\t%d\t",membr.mid,membr.mname,membr.department,membr.phno,    membr.availibcard);
    fclose(membrrecord);
    printf("\n (' ') Added  A New member Successfully...\n");
   
   
}
void Issue()
{
    int mid,i,Found1=0,Found2=0;char issubookname[20];
    //temp1=librecord;temp2=membrrecord;
    printf("\nEnter The userid of the Member : \n");
        scanf("%d",&mid);
    if((membrrecord=fopen("membrrecord.txt","r"))==NULL)
        printf(" ! The file is empty...\n\n");
    else
    {
        while(!feof(membrrecord)&& Found1==0)
        {
            fscanf(membrrecord,"%d %s %s %d %d ",&membr.mid,membr.mname,membr.department,&membr.phno,&membr.availibcard);
            if(mid==membr.mid)
            {
                Found1=1;
            }
        }
        if(Found1)
        {
            if(membr.availibcard<1)
            {
                printf(" ! Library card not available...\n");
            }
            else
            {    printf("\nEnter The Name of book :");
                scanf("%s",issubookname);
                if((librecord=fopen("librecord.txt","r"))==NULL)
                    printf(" ! The file is empty...\n\n");
                else
                {
                    while(!feof(librecord)&& Found2==0)
                    {
                        fscanf(librecord,"%d %s %s %d %d", &book.bid,book.bname,book.author,&book.status,&book.nooftitles);
                        if(strcmp(issubookname,book.bname)==0)
                            Found2=1;
                        for(i=0;i<book.nooftitles;i++)
                            fscanf(librecord,"%s",book.titles);
                    }
                    if(Found2)
                    {
                        if(book.status==0)
                        {
                            printf(" ! Book already issued...\n");
                        }
                        else
                        {   
                           
                            fp2=fopen("fp2.txt","w");
                            if((temp2=fopen("membrrecord.txt","r"))==NULL)
                                printf(" ! The file is empty...\n\n");
                            else
                            {
                                while(!feof(temp2))
                                {
                                    fscanf(temp2,"%d %s %s %d %d ",&membr.mid,membr.mname,membr.department,&membr.phno,&membr.availibcard);
                           
                                   
                                    if(mid==membr.mid)
                                    {
                                        membr.availibcard--;
                                        fprintf(fp2,"\n %d\t%s\t%s\t%d\t%d\t",membr.mid,membr.mname,membr.department,membr.phno,    membr.availibcard);
                                    }
                                    else{
                                        fprintf(fp2,"\n %d\t%s\t%s\t%d\t%d\t",membr.mid,membr.mname,membr.department,membr.phno,membr.availibcard);}
                                    if(feof(temp2))
                                        break;
                                }
                            }
                            fclose(temp2);
                            fclose(fp2);
                           

                            fp1=fopen("fp1.txt","w");
                            if((temp1=fopen("librecord.txt","r"))==NULL)
                                printf(" ! The file is empty...\n\n");
                            else
                            {
                                while(!feof(temp1))
                                {
                                      fscanf(temp1,"%d %s %s %d %d", &book.bid,book.bname,book.author,&book.status,&book.nooftitles);
                                    if(feof(temp1))
                                        break;
                                    if(strcmp(issubookname,book.bname)!=0)
                                    {
                                        fprintf(fp1,"\n%d\t%s\t%s\t%d\t%d    \t",book.bid,book.bname,book.author,book.status,book.nooftitles);
                                    }
                                    else
                                    {
                                        fprintf(fp1,"\n%d\t%s\t%s\t%d\t%d\t",book.bid,book.bname,book.author,0,book.nooftitles);
                                    }
                                    for(i=0;i<book.nooftitles;i++)
                                    {
                                        fscanf(temp1,"%s",book.titles);
                                        fprintf(fp1,"%s\t",book.titles);
                                    }
                                }
                            }
                            fclose(temp1);
                            fclose(fp1);
                            fclose(librecord);
                            fclose(membrrecord);
                            remove("librecord.txt");
                            rename("fp1.txt","librecord.txt");
                            remove("membrrecord.txt");
                            rename("fp2.txt","membrrecord.txt");
                            printf(" (' ') Book Successfully issued...\n");
                        }               
                    }
                    else if(!Found2)
                        printf(" ! There is no such Book...\n");
               
                }
            }
        }
        else if(!Found1)
            printf(" ! Invalid User id...\n");
       

    }
   
}
void bookret()
{
int mid,i,Found1=0,Found2=0,flag=0;char retbookname[20];
    temp1=librecord;temp2=membrrecord;
    printf("\nEnter The userid of the Member :\n");
        scanf("%d",&mid);
    if((membrrecord=fopen("membrrecord.txt","r"))==NULL)
        printf(" ! The file is empty...\n\n");
    else
    {
        while(!feof(membrrecord)&& Found1==0)
        {
            fscanf(membrrecord,"%d %s %s %d %d ",&membr.mid,membr.mname,membr.department,&membr.phno,&membr.availibcard);
            if(mid==membr.mid)
            {
                Found1=1;
            }
        }
        if(Found1)
        {
            if(membr.availibcard>=5)
            {
                printf(" ! Error...\n");
            }
            else
            {    printf("\nEnter The Name of book :");
                scanf("%s",retbookname);
                if((librecord=fopen("librecord.txt","r"))==NULL)
                    printf(" ! The file is empty\n\n");
                else
                {
                    while(!feof(librecord)&& Found2==0)
                    {
                        fscanf(librecord,"%d %s %s %d %d", &book.bid,book.bname,book.author,&book.status,&book.nooftitles);
                        if(strcmp(retbookname,book.bname)==0)
                        Found2=1;
                        for(i=0;i<book.nooftitles;i++)
                            fscanf(librecord,"%s",book.titles);
                    }
                    if(Found2)
                    {
                        if(book.status==1)
                        {
                            printf(" ! Error:Book already in stock...\n");
                        }
                        else
                        {   
                           
                            fp2=fopen("fp2.txt","w");
                            if((temp2=fopen("membrrecord.txt","a+"))==NULL)
                                printf(" ! The file is empty...\n\n");
                            else
                            {
                                while(!feof(temp2))
                                {
                                    fscanf(temp2,"%d %s %s %d %d ",&membr.mid,membr.mname,membr.department,&membr.phno,&membr.availibcard);
                           
                                   
                                    if(mid==membr.mid)
                                    {
                                        membr.availibcard++;
                                        fprintf(fp2,"\n %d\t%s\t%s\t%d\t%d\t",membr.mid,membr.mname,membr.department,membr.phno,    membr.availibcard);
                                    }
                                    else
                                    {
                                        fprintf(fp2,"\n %d\t%s\t%s\t%d\t%d\t",membr.mid,membr.mname,membr.department,membr.phno,membr.availibcard);
                                    }
                                    if(feof(temp2))
                                        break;
                                }
                            }
                            fclose(temp2);
                            fclose(fp2);
                           

                            fp1=fopen("fp1.txt","w");
                            if((temp1=fopen("librecord.txt","r"))==NULL)
                                printf(" ! The file is empty...\n\n");
                            else
                            {
                                while(!feof(temp1))
                                {
                                      fscanf(temp1,"%d %s %s %d %d", &book.bid,book.bname,book.author,&book.status,&book.nooftitles);
                                    if(feof(temp1))
                                        break;
                                    if(strcmp(retbookname,book.bname)!=0)
                                    {
                                        fprintf(fp1,"\n%d\t%s\t%s\t%d\t%d    \t",book.bid,book.bname,book.author,book.status,book.nooftitles);
                                    }
                                    else
                                    {
                                        fprintf(fp1,"\n%d\t%s\t%s\t%d\t%d\t",book.bid,book.bname,book.author,1,book.nooftitles);
                                    }
                                    for(i=0;i<book.nooftitles;i++)
                                    {
                                        fscanf(temp1,"%s",book.titles);
                                        fprintf(fp1,"%s\t",book.titles);
                                    }
                                }
                            }
                            fclose(temp1);
                            fclose(fp1);
                            fclose(librecord);
                            fclose(membrrecord);
                            printf("('') Book Successfully Returned...\n");
                            remove("librecord.txt");
                            rename("fp1.txt","librecord.txt");
                            remove("membrrecord.txt");
                            rename("fp2.txt","membrrecord.txt");

                        }               
                    }
                    else if(!Found2)
                        printf("! There is no such Book...\n");
               
                }
            }
        }
        else if(!Found1)
            printf("! Invalid User id...\n");
       

    }
   
}
void Exit()
{
  exit(0);
}

Output:

nn@linuxmint ~ $ gcc ll.c
nn@linuxmint ~ $ ./a.out

        <<LIBRARY MANAGEMENT SYSTEM>>(Beta version )

    ~~MENU~~
 1> Add A New Book
 2> Search a book
 3> Display Complete Information
 4> Display All Books of An Author
 5> List Titles of a Book
 6> List Count of Books (Issued & On Stock)
 7> To Issue a Book
 8> To Rreturn a Book
 9> Add A New Member
 10> Exit the program

     Enter your choice <1-10>: 1
Enter The uniqueid of The Book :(Integer)
100
Enter The Name of The Book :
n1
Enter The Name of Author :
a1
Enter The Number of Titles Of The Book:(Integer)
2
Enter The Titles Of The Book :
t1
t2
 (' ' ) A New Book has been Added Successfully...

Method Overriding -Java

Program:
class rectangle
{
    int dim1,dim2;
    double s;
    rectangle(int a,int b)
    {
        dim1=a;
        dim2=b;
    }
    void area()
    {
        s=dim1*dim2;
        System.out.println("Area of rectangle:"+s);
    }
}
class triangle extends rectangle
{
    triangle(int a,int b)
    {
        super(a,b);
    }
    void area()
    {
        s=(dim1*dim2)/2;
        System.out.println("Area of triangle="+s);
    }
}
class circle extends rectangle
{
    public circle(int a)
    {
        super(a,a);
    }
    void area()
    {
        s=3.14*dim1*dim1;
        System.out.println("Area of circle="+s);
    }
}
class ovriding
{
    public static void main(String args[])
    {
        rectangle x=new rectangle(3,4);
        triangle y=new triangle(3,4);
        circle z=new circle(10);
        rectangle p;
        p=x;
        p.area();
        p=y;
        p.area();
        p=z;
        p.area();
    }
}
Output:
nn@linuxmint ~ $ javac ovriding.java
nn@linuxmint ~ $ java ovriding
Area of rectangle:12.0
Area of triangle=6.0
Area of circle=314.0
nn@linuxmint ~ $

Method Overloading -Java

Program:
class Area
{
   int a,b;
   void area(int a)
   {
     double A=3.14*a*a;
     System.out.print("\n\tArea of circle="+A);
   }
   void area(int a,int b)
   {
     double B=a*b;
     System.out.print("\n\tArea of Rectangle="+B);
   }
}
class methodoverload
{
  public static void main(String args[])
   {
     Area A1=new Area();
     A1.area(10);
     A1.area(5,10);
   }
}

Output:
nn@linuxmint ~ $ javac methodoverload.java
nn@linuxmint ~ $ java methodoverload

    Area of circle=314.0
    Area of Rectangle=50.0
nn@linuxmint ~ $

Inheritance Example 3- Room - Java

Program:
class Room
{
   int length,width;
   Room(int a,int b)
   {
     length = a;
     width = b;
   }
   void area()
   {
     int area = length*width;
     System.out.println("The area of the room is " +area);
   }
}

class roomvol extends Room
{
   int height;
   roomvol(int a,int b,int c)
   {
     super(a,b);
     height = c;
   }
   void volume()
   {
     int volume = length*width*height;
     System.out.println("The volume of the room is " +volume);
   }
}

class inheritance3
{
   public static void main(String args[])
   {
     roomvol room2 = new roomvol(10,40,20);
     room2.area();
     room2.volume();
   }
}

Output:
nn@linuxmint ~ $ javac inheritance3.java
nn@linuxmint ~ $ java inheritance3
The area of the room is 400
The volume of the room is 8000
nn@linuxmint ~ $

Inheritance Example 2 - Figure - Java

Program:
class figure
{
    int b;
    int l;
    figure(int x,int y)
    {
        l=x;
        b=y;
    }
}
class triangle extends figure
{
    triangle (int x,int y)
    {
        super(x,y);
    }
    int show()
    {
        return(l*b/2);
    }
}
class rectangle extends figure
{
    rectangle(int x,int y)
    {
        super(x,y);
    }
    int show()
    {
        return(l*b);
    }
}

class inheritance2
{
public static void main(String argrs[])
{
    figure fig1=new figure(4,5);
    triangle tri1=new triangle(4,5);
    rectangle rect1= new rectangle(4,5);
    System.out.println("Area of triangle="+tri1.show());
    System.out.println("Area of rectangle="+rect1.show());
}
}

Output:
nn@linuxmint ~ $ javac inheritance2.java
nn@linuxmint ~ $ java inheritance2
Area of triangle=10
Area of rectangle=20
nn@linuxmint ~ $

Inheritance Example 1- Employee - Java

Program:
class employe
{
    protected int emp_no;
    protected String name;
    protected int salary;
    public employe(int empno,String nam,int sal)
    {
        emp_no=empno;
        name=nam;
        salary=sal;
    }
    public void emplo_data()
    {
        System.out.println("\nEmploy no.="+emp_no); 
        System.out.println("Name="+name);
        System.out.println("Salary="+salary);
    }
}
class manager extends employe
{
    int reward;
    public manager(int empno,String nam,int sal,int p)
    {
        super(empno,nam,sal);
        reward=p;
    }
    public void managerdata()
    {
        System.out.println("\nEmploy no.="+emp_no);
        System.out.println("Name="+name);
        System.out.println("Salary="+salary);
        System.out.println("Reward="+reward);
    }
}
class scientist extends employe
{
    int perks;
    public scientist(int empno,String nam,int sal,int s)
    {
        super(empno,nam,sal);
        perks=s;
    }
    public void scientistdata()
    {
        System.out.println("\nEmploy no.="+emp_no);
        System.out.println("Name="+name);
        System.out.println("Salary="+salary);
        System.out.println("Perks="+perks);
    }
}
class inheritance
{
public static void main(String args[])
{
    employe emp= new employe(1,"Varun",20000);
    emp.emplo_data();
    manager man= new manager(2,"Arun",50000,1000);
    man.managerdata();
    scientist scient= new scientist(3,"Nithin",60000,5000);
    scient.scientistdata();
}
}

Output:
nn@linuxmint ~ $ javac inheritance.java
nn@linuxmint ~ $ java inheritance

Employ no.=1
Name=Varun
Salary=20000

Employ no.=2
Name=Arun
Salary=50000
Reward=1000

Employ no.=3
Name=Nithin
Salary=60000
Perks=5000
nn@linuxmint ~ $

A Simple Java Program - Addition - JAVA

Program:
import java.io.*;
class add
{
public static void main(String args[]) throws IOException
{
    int num1,num2,sum;
    try
    {
        System.out.println("Enter two numbers:");
        /*DataInputStream x=new DataInputStream(System.in);
        num1=Integer.parseInt(x.readLine());
        num2=Integer.parseInt(x.readLine());
        */
        InputStreamReader Isr=new InputStreamReader(System.in);
        BufferedReader br=new BufferedReader(Isr);
        String s=br.readLine();
        num1=Integer.parseInt(s);
        num2=Integer.parseInt(br.readLine());
        sum=num1+num2;
        System.out.println("Sum="+sum);
    }catch(Exception e)
    {}
}
}
Output:
nn@linuxmint ~ $ javac add.java
nn@linuxmint ~ $ java add
Enter two numbers:
5
10
Sum=15
nn@linuxmint ~ $

Matrix Inverse & Transpose- C Program

Program:
#include<stdio.h>
#include<math.h>
void readmatrix(int x[10][10],int);
void showmatrix(int g[10][10],int);
void transpose(int y[10][10],int);
int det(int a[10][10],int);
void inv(int a[10][10],int);
main()
{
    int a[10][10],m,p;
    printf("Enter the order of the matrix:\n");
    scanf("%d",&m);
    printf("Enter the elements for the matrix:\n");
    readmatrix(a,m);
    printf("Matrix:\n");
    showmatrix(a,m);
    printf("Transpose of the above matrix:\n");
    transpose(a,m);
    p=det(a,m);
    printf("\nDetarminant=%d\n",p);
    inv(a,m);
}
void transpose(int y[10][10],int m)
{
    int i,j;
    int t[10][10];
    for(i=0;i<m;i++)
    {
        for(j=0;j<m;j++)
        {
            t[i][j]=y[j][i];
        }
    }
    showmatrix(t,m);
}
int det(int a[10][10],int m)
{
    int i,j,k,l,dtr,b[10][10];
    if(m==1)
         return a[0][0];
    dtr=0;
    for(i=0;i<m;i++)
    {
            for(j=0;j<m-1;j++)
        {
            for(k=0,l=0;k<m-1;++k,++l)
            {
                if(i==l)
                     ++l;
                b[j][k]=a[j+1][l];
            }
        }
        dtr+=pow(-1,i)*a[0][i]*det(b,m-1);
    }
    return dtr;
}
void inv(int a[10][10],int m)
{
    int i,j,k,l,p,q,b[10][10],c[10][10],d;
    float in[10][10];
    for(i=0;i<m;i++)
    {
        for(j=0;j<m;j++)
        {
            for(k=0,p=0;k<m-1;++k,++p)
            {
                for(l=0,q=0;l<m-1;++l,++q)
                {
                    if(p==i)
                        ++p;
                    if(q==j)
                        ++q;
                    b[k][l]=a[p][q];
                }
            }
            c[i][j]=pow(-1,i+j)*det(b,m-1);
        }
    }
    d=det(a,m);
    printf("\n\nThe inverse matrix\n\n");
    for(i=0;i<m;i++)
    {
        for(j=0;j<m;j++)
        {
            in[i][j]=c[i][j];
            in[i][j]/=d;
            printf("%f\t",in[i][j]);
        }
        printf("\n");
    }
}

void readmatrix(int x[10][10],int ord)
{
    int i,j;
   
    for(i=0;i<ord;i++)
        {
        for(j=0;j<ord;j++)
            {
            scanf("%d",&x[i][j]);
            }
        }
}

void showmatrix(int g[10][10],int ord)
{
    int i,j;
        for(i=0;i<ord;i++)
        {
        for(j=0;j<ord;j++)
                    {
            printf("%d\t",g[i][j]);
            }
        printf("\n");
                }
}

Output:
nn@linuxmint ~ $ gcc c22.c -lm
nn@linuxmint ~ $ ./a.out
Enter the order of the matrix:
2
Enter the elements for the matrix:
4
2
1
3
Matrix:
4    2   
1    3   
Transpose of the above matrix:
4    1   
2    3   

Detarminant=10


The inverse matrix

0.300000    -0.100000   
-0.200000    0.400000   
nn@linuxmint ~ $

Student Record using File - C Program

Program:
#include<stdio.h>
struct student
{
    char name[20];
    int rn;
    int tm;
}s1;
int a[25];
int no,i,j,k,l,p,q,s,t;
char c;
int f=0;
FILE *fp,*ft,*fr;
main()
{
    int b;
    while(1)
    {
        printf("\n1:Create 2:List 3:Delete 4:Search 5:Sort w.r.t Roll# 6:Sort w.r.t Mark :");
        scanf("%d",&b);
        switch(b)
        {
            case 1:create();
                break;
            case 2:list();
                break;
            case 3:delete();
                break;
            case 4:search();
                break;
            case 5:sort();
                break;
            case 6:marksort();
                break;
            default:
                break;
        }
    }
}
        /*Function to insert a record*/
create()
{
    s=6;
    fp=fopen("stn.dat","a+");
    while(s==6)
    {
        fclose(fp);
        search();
        fp=fopen("stn.dat","a+");
        if(f==0)
        {
            s1.rn=no;
            printf("\nEnter student's name,mark:");
            scanf("%s %d",s1.name,&s1.tm);
            fwrite(&s1,sizeof(s1),1,fp);
        }
        printf("\n Enter 6 to create another:");
        fflush(stdin);
        scanf("%d",&s);
    }
    fclose(fp);
}
        /*Function to display all records*/
list()
{
    fp=fopen("stn.dat","r");
    printf("\n NAME ROLLNO MARK :");
    while(fread(&s1,sizeof(s1),1,fp)==1)
    {
        printf("\n%s\t%4d %4d\n",s1.name,s1.rn,s1.tm);
       
    }fclose(fp);
        }
        /*Function to delete records*/
delete()
{
    fp=fopen("stn.dat","r");
    p=1;
    while(p==1)
    {
        printf("\nEnter student's RollNo to delete:");
        scanf("%d",&no);
        ft=fopen("temp.dat","a+");
        while(fread(&s1,sizeof(s1),1,fp)==1)
        {
            if (s1.rn != no)
            fwrite(&s1,sizeof(s1),1,ft);
           
            remove("stn.dat");
            rename("temp.dat","stn.dat");
            fp=fopen("stn.dat","r+");
            printf("Enter 1 to delete another");
            fflush(stdin);
            scanf("%d",&p);
        }
        fclose(fp);
        fclose(ft);
    }
}
        /*Function to search a record*/
search()
{
    f=0;
    fp=fopen("stn.dat","r");
    printf("\nEnter RollNo:");
    scanf("%d",&no);
    while(fread(&s1,sizeof(s1),1,fp)==1)
    {
        if(s1.rn==no)
        {
            f=1;
            break;
        }
    }
    if (f==1)
    {
        printf("\nRECORD EXISTS DETAILS ARE :");
        printf("%s %d %d\n",s1.name,s1.rn,s1.tm);
    }
    else
    {
        printf("\n RECORD NOT EXISTS\n");
        fclose(fp);
    }
}
        /*Function to sort w.r.t RollNo*/
sort()
{
    fp=fopen("stn.dat","r+");
    fr=fopen("spp.dat","a+");
    i=0;
    while(fread(&s1,sizeof(s1),1,fp)==1)
    {
        a[i]=s1.rn;
        i++;
    }
    l=i;
    isort();
    for(i=l-1;i>=0;i--)
    {
        rewind(fp);
        while(fread(&s1,sizeof(s1),1,fp)==1)
            if(a[i]==s1.rn)
                fwrite(&s1,sizeof(s1),1,fr);

    }
    fclose(fp);
    fclose(fr);
    remove("stn.dat");
    rename("spp.dat","stn.dat");
}
isort()
{
    int t;
    for(j=1;j<1;j++)
    {
        for(k=j;(k>0 || (a[k-1]< a[k]));k--)
        {
            if(a[k]<a[k-1])
            {
                t=a[k];
                a[k]=a[k-1];
                a[k-1]=t;
            }
        }
    }
}
        /*Function to sort w.r.t marks */
marksort()
{
    int i;
    fp=fopen("stn.dat","r+");
    ft=fopen("smm.dat","w+");
    i=0;
    while(fread(&s1,sizeof(s1),1,fp)==1)
    {
        a[i]=s1.tm;
        i++;
    }
        l=i;
    isort();
    for(i=l-1;i>=0;i--)
    {
        rewind(fp);
        while(fread(&s1,sizeof(s1),1,fp)==1)
            if(s1.tm==a[i])
                fwrite(&s1,sizeof(s1),1,ft);
    }
    fclose(fp);
    fclose(ft);
    remove("stn.dat");
    rename("smm.dat","stn.dat");
}

Output:
    nn@linuxmint ~ $ gcc file.c
    nn@linuxmint ~ $ ./a.out

    1:Create 2:List 3:Delete 4:Search 5:Sort w.r.t Roll# 6:Sort w.r.t Mark :1

    Enter RollNo:1

     RECORD NOT EXISTS

    Enter student's name,mark:Afsal 85

     Enter 6 to create another:6

    Enter RollNo:2

     RECORD NOT EXISTS

    Enter student's name,mark:Vipin 90

     Enter 6 to create another:6

    Enter RollNo:3

     RECORD NOT EXISTS

    Enter student's name,mark:Tinu 81

     Enter 6 to create another:7

    1:Create 2:List 3:Delete 4:Search 5:Sort w.r.t Roll# 6:Sort w.r.t Mark :2

     NAME ROLLNO MARK :
    Afsal       1   85

    Vipin       2   90

    Tinu       3   81

    1:Create 2:List 3:Delete 4:Search 5:Sort w.r.t Roll# 6:Sort w.r.t Mark :6

    1:Create 2:List 3:Delete 4:Search 5:Sort w.r.t Roll# 6:Sort w.r.t Mark :2

     NAME ROLLNO MARK :
    Vipin       2   90

    Afsal       1   85

    Tinu       3   81

    1:Create 2:List 3:Delete 4:Search 5:Sort w.r.t Roll# 6:Sort w.r.t Mark :5

    1:Create 2:List 3:Delete 4:Search 5:Sort w.r.t Roll# 6:Sort w.r.t Mark :2

     NAME ROLLNO MARK :
    Afsal       1   85

    Vipin       2   90

    Tinu       3   81

    1:Create 2:List 3:Delete 4:Search 5:Sort w.r.t Roll# 6:Sort w.r.t Mark :4

    Enter RollNo:2

    RECORD EXISTS DETAILS ARE :Vipin 2 90

Matrix Operations-Addition,Subtraction,Transpose - C Program

Program:
#include<stdio.h>
void readmatrix(int x[10][10],int,int);
void sum(int y[10][10],int z[10][10],int s[10][10],int,int);
void showmatrix(int g[10][10],int,int);
void difference(int d[10][10],int y[10][10],int z[10][10],int,int);
void transpose(int t[10][10],int y[10][10],int,int);
main()
{
    int a[10][10],b[10][10],c[10][10],d[10][10],t[10][10],m,n,p,q;
    printf("Enter the order of first matrix:\n");
    scanf("%d%d",&m,&n);
    printf("Enter the order of second matrix:\n");
    scanf("%d%d",&p,&q);
    if(m==p&&n==q)
    {
        printf("Enter the elements for the first matrix:\n");
        readmatrix(a,m,n);
        printf("Enter the elements for the second matrix:\n");
        readmatrix(b,p,q);
        printf("First matrix:\n");
        showmatrix(a,m,n);
        printf("Transpose of the above matrix:\n");
        transpose(t,a,m,n);
        showmatrix(t,n,m);
        printf("Second matrix:\n");
        showmatrix(b,p,q);
        printf("Transpose of the above matrix:\n");
        transpose(t,b,m,n);
        showmatrix(t,n,m);
        sum(a,b,c,p,q);
        printf("Sum of the matrix:\n");
        showmatrix(c,m,q);
        difference(d,a,b,m,n);
        printf("Difference of the matrix:\n");
        showmatrix(d,p,q);
        }
    else
        {
        printf("Operation is not possible...\n");
        }
    }
void readmatrix(int x[10][10],int u,int v)
    {
    int i,j;
   
    for(i=1;i<=u;i++)
        {
        for(j=1;j<=v;j++)
            {
            scanf("%d",&x[i][j]);
            }
        }
    }

void sum(int y[10][10],int z[10][10],int s[10][10],int m,int n)
    {
    int i,j;
    for(i=1;i<=m;i++)
        {
        for(j=1;j<=n;j++)
            {
            s[i][j]=y[i][j]+z[i][j];
            }
        }
    }
void showmatrix(int g[10][10],int f,int d)
    {
    int i,j;
        for(i=1;i<=f;i++)
        {
        for(j=1;j<=d;j++)
                    {
            printf("%d\t",g[i][j]);
            }
        printf("\n");
                }
    }
void difference(int d[10][10],int y[10][10],int z[10][10],int m,int n)
    {
    int i,j;
     for(i=1;i<=m;i++)
                {
                for(j=1;j<=n;j++)
                        {
                        d[i][j]=y[i][j]-z[i][j];
                        }
                }
    }
void transpose(int t[10][10],int y[10][10],int m,int n)
    {
    int i,j;
    for(i=1;i<=n;i++)
        {
        for(j=1;j<=m;j++)
            {
            t[i][j]=y[j][i];
            }
        }
    }

Output:
nn@linuxmint ~ $ gcc c19.c
nn@linuxmint ~ $ ./a.out
Enter the order of first matrix:
2
2
Enter the order of second matrix:
2
2
Enter the elements for the first matrix:
9
8
7
6
Enter the elements for the second matrix:
5
4
3
2
First matrix:
9    8   
7    6   
Transpose of the above matrix:
9    7   
8    6   
Second matrix:
5    4   
3    2   
Transpose of the above matrix:
5    3   
4    2   
Sum of the matrix:
14    12   
10    8   
Difference of the matrix:
4    4   
4    4   
nn@linuxmint ~ $

String Manipulation - Substring Search & Replacement C Program

Program:
#include<stdio.h>
#include<string.h>
main()
{
   char str[40],newstr[20],substr[20];
   int len1,len2,i,j,k,t=0,len3,d=0;
   printf("Enter the string:");
   gets(str);
   printf("Enter the substring:");
   gets(substr);
   printf("Enter the new string:");
   gets(newstr);
   len1 = strlen(str);
   len2 = strlen(substr);
   len3 = strlen(newstr);
   for(i=0;i<len1;i++)
   {
     for(j=t=0,k=i;j<len2;j++,k++)
     {
        if(str[k]==substr[j])
            t++;
        else
          break;
     }
     if(t==len2)
         break;
   }
   if(t==len2)
   {
     printf("\nThe substring is found.\n");
     printf("String replaced...\n");
     if(len3>len2)
     {
       for(j=len1;j>=k;j--)
       str[j+len3-len2] = str[j];
     }
     else
     {
       for(j=k;j<=len1;j++)
       str[j-(len2-len3)] = str[j];
     }
     while(newstr[d]!='\0')
     {
       str[i] = newstr[d];
       i++;
       d++;
     }
     puts(str);
   }
   else
   {
     printf("\nSubstring not found.\n");
   }
}

Output:
nn@linuxmint ~ $ gcc c18.c
/tmp/ccqnIqKS.o: In function `main':
c18.c:(.text+0x40): warning: the `gets' function is dangerous and should not be used.
nn@linuxmint ~ $ ./a.out
Enter the string:good night
Enter the substring:night
Enter the new string:morning

The substring is found.
String replaced...
good morning
nn@linuxmint ~ $

Permutation of 'abcd ' - C Program

Program:
#include<stdio.h>
#include<string.h>
int main()
{
    int i,j,k;
    char str[20];
    strcpy(str,"abcd");
    for(i=0;i<strlen(str);i++)
        for(j=0;j<strlen(str);j++)
        {
            printf("\n");
            for(k=i;k<=j;k++)
                printf("%c",str[k]);
        }
    printf("\n\n\n");
}

Output:
nn@linuxmint ~ $ gcc c29.c
nn@linuxmint ~ $ ./a.out

a
ab
abc
abcd

b
bc
bcd


c
cd



d


nn@linuxmint ~ $

Print a Matrix Helically - C Program

Program:

#include<stdio.h>
void main()
{
    int arr[10][10],i, j, k,n,middle,size;
    printf("\nEnter the order:\n");
    scanf("%d",&size);
    printf("Enter the matrix:\n");
    for(i=0;i<size;i++)
        for(j=0;j<size;j++)
            scanf("%d",&arr[i][j]);

    for(i=size-1, j=0; i > 0; i--, j++)
    {
        for(k=j; k < i; k++)
            printf("%d ", arr[j][k]);
        for(k=j; k < i; k++)
            printf("%d ", arr[k][i]);
        for(k=i; k > j; k--)
            printf("%d ", arr[i][k]);
        for(k=i; k > j; k--)
            printf("%d ", arr[k][j]);
    }
    middle = (size-1)/2;
    if (size % 2 == 1)
        printf("%d\n", arr[middle][middle]);
  

}

Output:

nn@linuxmint ~ $ gcc c28.c
nn@linuxmint ~ $ ./a.out


Enter the order:
3
Enter the matrix:
1
2
3
4
5
6
7
8
9
1 2 3 6 9 8 7 4 5
nn@linuxmint ~ $

File Example - C Program

Program:
#include <stdio.h>
#include<string.h>
main()
{
    FILE *point;
    char str[35];
    int i, count;
    strcpy(str, "http://2k8618.blogspot.com/");
    point = fopen("file1.txt", "a");        // open in append mode
    for (count = 1; count <= 10; count++)
    {
        for (i = 0; str[i]; i++)
            putc(str[i], point); // output a single character
        putc('\n', point);       
       }
    fclose(point);
}

Output:
nn@linuxmint ~ $ gcc c26.c
nn@linuxmint ~ $ ./a.out
(file1.txt)
http://2k8618.blogspot.com/
http://2k8618.blogspot.com/
http://2k8618.blogspot.com/
http://2k8618.blogspot.com/
http://2k8618.blogspot.com/
http://2k8618.blogspot.com/
http://2k8618.blogspot.com/
http://2k8618.blogspot.com/
http://2k8618.blogspot.com/
http://2k8618.blogspot.com/

Taylor Series - C Program

Program:
#include<stdio.h>
void sinx(float,int,int);
void cosx(float,int,int);
void epowerx(int,int);
void main()
{
//    clrscr();
    float x;
    int y,n;
    printf("enter limit: ");
    scanf("%d",&n);
    printf("enter the value in degree: ");
    scanf("%f",&x);
    y=x;
    x=(3.14/180)*x;
    sinx(x,n,y);
    cosx(x,n,y);
    epowerx(y,n);
}
void sinx(float x,int n,int y)
{
    float term=x,sum=x;
    int i;
    for(i=1;i<=n;i++)
    {
        term=((-term)*(x*x))/((2*i)*(2*i+1));
        sum=sum+term;
    }
    printf("sin %d=%f\n",y,sum);
}
void cosx(float x,int n,int y)
{
    float term=x,sum=1;
    int i;
    for(i=1;i<=n;i++)
    {
        term=((-term)*(x*x))/((2*i)*(2*i-1));
        sum=sum+term;
    }
    printf("cos %d=%f\n",y,sum);
}
void epowerx(int y,int n)
{
    int i;
    float term=1,sum=1;
    for(i=1;i<=n;i++)
    {
        term=((term)*y)/i;
        sum=sum+term;
    }
    printf("e^%d=%.0f\n",y,sum);
}

Output:
nn@linuxmint ~ $ gcc c25.c
nn@linuxmint ~ $ ./a.out
enter limit: 5
enter the value in degree: 30
sin 30=0.499770
cos 30=0.929956
e^30=241231
nn@linuxmint ~ $

Base Conversion- Any Base to Any Base -C Program

Program:
#include<stdio.h>
#include<string.h>
void baseconversion(char s[20],int,int);
main()
{   
    char s[20];
    int base1,base2;
    printf("Enter the number and base:");
    scanf("%s%d",s,&base1);
    printf("Enter the base to be converted:");
    scanf("%d",&base2);
    baseconversion(s,base1,base2);
}

void baseconversion(char s[20],int b1,int b2)
{
    int count=0,r,digit,i,n=0,b=1;
    for(i=strlen(s)-1;i>=0;i--)
        {
         if(s[i]>='A'&&s[i]<='Z')
            {
             digit=s[i]-'0'-7;
            }
         else
            {
             digit=s[i]-'0';
            }
        n=digit*b+n;
        b=b*b1;
        }
    while(n!=0)
    {
        r=n%b2;
        digit='0'+r;
        if(digit>'9')
        {
            digit+=7;
        }
         s[count]=digit;
         count++;
         n=n/b2;
    }
for(i=count-1;i>=0;i--)
    {
     printf("%c",s[i]);
    }
 printf("\n");

}

Output:
nn@linuxmint ~ $ gcc anybse.c
nn@linuxmint ~ $ ./a.out
Enter the number and base:10
10
Enter the base to be converted:2
1010
nn@linuxmint ~ $ ./a.out
Enter the number and base:1010
2
Enter the base to be converted:10
10
nn@linuxmint ~ $
Related Posts Plugin for WordPress, Blogger...