• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer
projectsgeek

ProjectsGeek

Download Mini projects with Source Code, Java projects with Source Codes

  • Home
  • Java Projects
  • C++ Projects
  • VB Projects
  • PHP projects
  • .Net Projects
  • NodeJs Projects
  • Android Projects
    • Project Ideas
      • Final Year Project Ideas
      • JSP Projects
  • Assignment Codes
    • Fundamentals of Programming Language
    • Software Design Laboratory
    • Data Structure and Files Lab
    • Computer Graphics Lab
    • Object Oriented Programming Lab
    • Assembly Codes
  • School Projects
  • Forum

Simple Student Database using C Language

April 3, 2011 by ProjectsGeek 2 Comments

Simple Student Database using C Language

Implement a C Code to implement Student Database to some basic Student data . Data which we can store in Student database is as Given below :

  • Create a Database
  • Insert Inside a Database
  • Display data
  • Edit Database Data
  • Search Database
  • Delete Database

All options are Implemented with pointers as well as without pointers as Fundamentals of Data structure assignments under Pune University and Mumbai University .

Simple Student Database Code

 #include  
 #include  
 #include "c:\tc\valid.c"  
 #define MAX 25  

 enum e{ co=1,dsgt,hss }; 

 struct add  
 {  
 char addr[50];  
 char city[25];  
 char state[25];  
 };  

 struct stud  
 {  
 int roll,fds,dem;  
 int a;  
 char name[50];  
 struct add add1;

 union elective  
 {  
 int co,dsgt,hss;  
 }elec;  
 };  
 int withp(struct stud [],int);  
 struct stud* insertp();  
 int createp (struct stud *,int);  
 int searchp(struct stud *,int);  
 void editp(struct stud *,int);  
 void deletp(struct stud *,int);  
 void displayp(struct stud*);  
 int withoutp(struct stud [],int);  
 struct stud insert();  
 int create (struct stud [],int);  
 int search(struct stud [],int);  
 void edit(struct stud s1[],int n);  
 void delet(struct stud s1[],int n);  
 void display(struct stud s1);  
 int check(struct stud[],int,int);  
 void main()  
 {  
 int ch,n=0;  
 struct stud st[25];  
 do  
 {  
 clrscr();  
 printf("\n\n\n\t\t>>>>----  MANAGING DATABASE  ----<<<<\n");  
 printf("\n\t1\tWITH POINTERS\n");  
 printf("\t2\tWITHOUT POINTERS\n");  
 printf("\t3\tEXIT\n\n");  
 printf("\n\t\tENTER UR CHOICE\t");  
 ch=valid();  
 switch(ch)  
 {  
 case 1:     n=withp(st,n);  
 break;  
 case 2:  
 n=withoutp(st,n);  
 break;  
 case 3:  
 break;  
 default:  
 printf("\n\n!!!!  INVALID CHOICE  !!!!");  
 getch();  
 }  
 }  
 while(ch!=3);  
 }//end of main  
 /*********************************************************************  
 WITHP FUNCTION  
 **********************************************************************/  
 int withp(struct stud s1[],int n)  
 {  
 int ch,i,m;  
 struct stud *s;  
 void (*p) (struct stud*);  
 p=displayp;  
 do  
 {  
 clrscr();  
 printf("\n\n\t\t>>>>----  WITHOUT POINTER MENU  ----<<<<\n");  
 printf("\n\t1\tCREATE A NEW DATABASE");  
 printf("\n\t2\tINSERT");  
 printf("\n\t3\tDISPLAY");  
 printf("\n\t4\tEDIT");  
 printf("\n\t5\tSEARCH");  
 printf("\n\t6\tDELETE");  
 printf("\n\t7\tRETURN TO MAIN MENU \n");  
 printf("\n\t\tENTER UR CHOICE\t");  
 ch=valid();  
 switch(ch)  
 {  
 case 1:  
 n=createp(s1,MAX);  
 break;  
 case 2:  
 m=0;  
 do  
 {  
 if(m!=0)  
 {  
 printf("\n\n\tENTER AGAIN!!!!");  
 getch();  
 }  
 s=insertp();  
 s1[n]=*s;  
 m++;  
 }while(check(s1,s1[n].roll,n)==1);  
 n++;  
 break;  
 case 3:  
 if(n==0)  
 {  
 printf("\n\tFIRST CREATE DATABADE!!!");  
 getch();  
 break;  
 }  
 for(i=0;i<n;i++) <br=""> p(&s1[i]);  
 break;  
 case 4:  
 if(n==0)  
 {  
 printf("\n\tFIRST CREATE DATABASE!!!");  
 getch();  
 break;  
 }  
 editp(s1,n);  
 break;  
 case 5: if(n==0)  
 {  
 printf("\n\tFIRST CREATE DATABASE!!!");  
 getch();  
 break;  
 }  
 i=searchp(s1,n);  
 if(i>=0)  
 { printf("\n\tTHE RECORD IS PRESENT");  
 getch();  
 p(&s1[i]);  
 }  
 else  
 { printf("\n\t!! NOT FOUND !!");  
 getch();  
 }  
 break;  
 case 6:  
 if(n==0)  
 {  
 printf("\n\tFIRST CREATE DATABASE!!!");  
 getch();  
 break;  
 }  
 deletp(s1,n);  
 n--;  
 break;  
 case 7:  
 break;  
 default:  
 printf("\n\n\t\t!!!!   INVALID CHOICE  !!!!");  
 getch();  
 }//end of switch  
 }while(ch!=7);  
 return n;  
 }  
 /**********************************************************  
 DISPLAYP FUNCTION  
 ***********************************************************/  
 void displayp(struct stud *s1)  
 {  
 clrscr();  
 printf("\n\n\tROLL NO : %d",s1->roll);  
 printf("\n\tNAME : %s",s1->name);  
 printf("\n\tADDRESS:\n\t\t%s  ,\n\t\t%s  ,\n\t\t%s",s1->add1.addr,s1->add1.city,s1->add1.state);  
 printf("\n\tMARKS:-\n\tFDS\t%d\n\tDEM\t%d",s1->fds,s1->dem);  
 if(s1->a==co)  
 printf("\n\tCO\t%d",s1->elec.co);  
 else if(s1->a==dsgt)  
 printf("\n\tDSGT\t%d",s1->elec.dsgt);  
 else  
 printf("\n\tHSS\t%d",s1->elec.hss);  
 printf("\n\n\t!!! PRESS ANY KEY TO CONTINUE !!!!");  
 getch();  
 }  
 /*********************************************************  
 INSERTP FUNCTION  
 **********************************************************/  
 struct stud* insertp()  
 {  
 struct stud *s1;  
 int m;  
 clrscr();  
 printf("\n\t!!! --- !!!! \n\t ENTER DETAILS\n");  
 printf("\n>>>  ROLL NO->\t");  
 do  
 {  
 m=valid();  
 }while(m==-1);  
 s1->roll=m;  
 printf("\n>>>  NAME\t");  
 flushall();  
 scanf("%s",s1->name);  
 printf("\n>>>  ADDRESS \n\tSTREET NO-> / ROOM NO->\t");  
 flushall();  
 gets(s1->add1.addr);  
 printf("\n\tCITY\t");  
 flushall();  
 gets(s1->add1.city);  
 printf("\n\tSTATE\t");  
 flushall();  
 gets(s1->add1.state);  
 printf("\n>>>  MARKS IN ");  
 printf("\n\tF D S\t");  
 m=0;  
 do  
 {  
 if(m!=0 || m>100)  
 printf("\n\t ENTER AGAIN !!!!!\n");  
 m=valid();  
 }while(m==-1 || m>100);  
 s1->fds=m;  
 printf("\n\tDEM\t");  
 m=0;  
 do  
 {  
 if(m!=0 || m>100)  
 printf("\n\t ENTER AGAIN !!!!!\n");  
 m=valid();  
 }while(m==-1|| m>100);  
 s1->dem=m;  
 printf("\n\tSELECT ELECTIVE SUBJECT\t");  
 printf("\n\t1\tCO");  
 printf("\n\t2\tDSGT");  
 printf("\n\t3\tHSS");  
 printf("\n\n\tENTER UR CHOICE\t");  
 m=0;  
 do  
 {  
 if(m!=0 || m>3)  
 printf("\n\t ENTER AGAIN !!!!!\n");  
 m=valid();  
 }while(m==-1|| m>3);  
 s1->a=m;  
 if(s1->a==co)  
 {  
 printf("\n\tENTER MARKS IN CO\t ");  
 m=0;  
 do  
 {  
 if(m!=0 || m>100)  
 printf("\n\t ENTER AGAIN !!!!!\n");  
 m=valid();  
 }while(m==-1|| m>100);  
 s1->elec.co=m;  
 }  
 else if(s1->a==dsgt)  
 {  
 printf("\n\tENTER MARKS IN DSGT\t ");  
 m=0;  
 do  
 {  
 if(m!=0 || m>100)  
 printf("\n\t ENTER AGAIN !!!!!\n");  
 m=valid();  
 }while(m==-1|| m>100);  
 s1->elec.dsgt=m;  
 }  
 else  
 {  
 printf("\n\tENTER MARKS IN HSS\t");  
 m=0;  
 do  
 {  
 if(m!=0 || m>100)  
 printf("\n\t ENTER AGAIN !!!!!\n");  
 m=valid();  
 }while(m==-1 || m>100) ;  
 s1->elec.hss=m;  
 }  
 return s1;  
 }  
 /*****************************************************  
 CREATEP FUNCTION  
 *******************************************************/  
 int createp(struct stud *s1,int n)  
 {  
 int i=0;  
 do  
 {  
 *(s1+i)=insert();  
 i++;  
 printf("\n\t!!! DO U WANT TO INSERT MORE RECORDS (y \ n) !!!");  
 }while(getche() =='y'&& i<=n);  
 return i;  
 }  
 /**********************************************************  
 SEARCHP FUNCTION  
 ********************************************************/  
 int searchp(struct stud *s1,int n)  
 {  
 int i=0,rno;  
 printf("\n\tENTER ROLL NUMBER\t");  
 scanf("%d",&rno);  
 for(i=0;i<n;i++) <br=""> {  
 if((s1+i)->roll==rno)  
 return i;  
 }  
 return -1;  
 }  
 /*******************************************************  
 EDITP FUNCTION  
 ********************************************************/  
 void editp(struct stud s1[],int n)  
 {  
 int i;  
 i=search(s1,n);  
 if(i>=0)  
 {  
 int ch;  
 do  
 {  
 printf("\n\t\t\t\tMODIFY\n");  
 printf("\n\t\t\t1.ROLL\n\t\t\t2.NAME\n\t\t\t3.ADDRESS\n\t\t\t4.MARKS\n\t\t\t5.RETURN");  
 printf("\nEnter your choice: ");  
 scanf("%d",&ch);  
 switch(ch)  
 {  
 case 1:  
 printf("\nEnter new roll no: ");  
 scanf("%d",&s1[i].roll);  
 break;  
 case 2:  
 printf("\nEnter new name: ");  
 scanf("%s",&s1[i].name);  
 break;  
 case 3:  
 printf("\nEnter new address: ");  
 printf("\nHouse no. : ");  
 scanf("%d",&s1[i].add1.addr);  
 printf("\nCity: ");  
 scanf("%s",&s1[i].add1.city);  
 printf("\nState: ");  
 scanf("%s",&s1[i].add1.state);  
 break;  
 case 4:  
 printf("\nEnter new marks:");  
 printf("\nFDS: %d",s1[i].fds);  
 printf("\nDEM: %d",s1[i].dem);  
 if(s1[i].a==dsgt)  
 {  
 printf("\nDSGT: ");  
 scanf("%d",&s1[i].elec.dsgt);  
 }  
 if(s1[i].a==hss)  
 {  
 printf("\nHSS: ");  
 scanf("%d",&s1[i].elec.hss);  
 }  
 if(s1[i].a==co)  
 {  
 printf("\nCO: ");  
 scanf("%d",&s1[i].elec.co);  
 }  
 break;  
 case 5:  
 break;  
 default:printf("\n\nInvalid choice!!\n");  
 break;  
 }  
 }while(ch!=5);  
 printf("\n\n\tRECORD EDITED");  
 getch();  
 }  
 else  
 {  
 printf("\n\t\tRECORD NOT FOUND");  
 getch();  
 }  
 }  
 /*****************************************************  
 DELETP FUNCTION  
 *******************************************************/  
 void deletp(struct stud *s1,int n)  
 {  
 int i,j;  
 i=search(s1,n);  
 printf("\n\tdo u wanna delete\y(y\n)");  
 if(i>=0&&getche()=='y')  
 {  
 for(j=i+1;j<n;j++) <br=""> *(s1+j-1)=*(s1+j);  
 printf("\n\n\t!!!  DELETED !!!");  
 getch();  
 }  
 else  
 {  
 printf("\n\t\tnot deleted!!!!!!!!!");  
 getch();  
 }  
 }  
 /*********************************************************************  
 WITHOUTP FUNCTION  
 **********************************************************************/  
 int withoutp(struct stud s1[],int n)  
 {  
 int ch,i,m;  
 void (*p) (struct stud);  
 p=display;  
 do  
 {  
 clrscr();  
 printf("\n\n\t\t>>>>----  WITHOUT POINTER MENU  ----<<<<\n");  
 printf("\n\t1\tCREATE A NEW DATABASE");  
 printf("\n\t2\tINSERT");  
 printf("\n\t3\tDISPLAY");  
 printf("\n\t4\tEDIT");  
 printf("\n\t5\tSEARCH");  
 printf("\n\t6\tDELETE");  
 printf("\n\t7\tRETURN TO MAIN MENU \n");  
 printf("\n\t\tENTER UR CHOICE\t");  
 ch=valid();;  
 switch(ch)  
 {  
 case 1:  
 n=create(s1,MAX);  
 break;  
 case 2:  
 m=0;  
 do  
 {  
 if(m!=0)  
 {  
 printf("\n\n\tENTER AGAIN!!!!");  
 getch();  
 }  
 s1[n]=insert();  
 m++;  
 }while(check(s1,s1[n].roll,n)==1);  
 n++;  
 break;  
 case 3: if(n==0)  
 {  
 printf("\n\tFIRST CREATE DATABADE!!!");  
 getch();  
 break;  
 }  
 for(i=0;i<n;i++) <br=""> p(s1[i]);  
 break;  
 case 4:  
 if(n==0)  
 {  
 printf("\n\tFIRST CREATE DATABADE!!!");  
 getch();  
 break;  
 }  
 edit(s1,n);  
 break;  
 case 5:  
 if(n==0)  
 {  
 printf("\n\tFIRST CREATE DATABADE!!!");  
 getch();  
 break;  
 }  
 i=search(s1,n);  
 if(i>=0)  
 { printf("\n\tTHE RECORD IS PRESENT");  
 getch();  
 p(s1[i]);  
 }  
 else  
 { printf("\n\t!! NOT FOUND !!");  
 getch();  
 }  
 break;  
 case 6: if(n==0)  
 {  
 printf("\n\tFIRST CREATE DATABADE!!!");  
 getch();  
 break;  
 }  
 delet(s1,n);  
 n--;  
 break;  
 case 7:  
 break;  
 default:  
 printf("\n\n\t\t!!!!   INVALID CHOICE  !!!!");  
 getch();  
 }//end of switch  
 }while(ch!=7);  
 return n;  
 }  
 /**********************************************************  
 DISPLAY FUNCTION  
 ***********************************************************/  
 void display(struct stud s1)  
 {  
 clrscr();  
 printf("\n\n\tROLL NO : %d",s1.roll);  
 printf("\n\tNAME : %s",s1.name);  
 printf("\n\tADDRESS:\n\t\t%s  ,\n\t\t%s  ,\n\t\t%s",s1.add1.addr,s1.add1.city,s1.add1.state);  
 printf("\n\tMARKS:-\n\tFDS\t%d\n\tDEM\t%d",s1.fds,s1.dem);  
 if(s1.a==co)  
 printf("\n\tCO\t%d",s1.elec.co);  
 else if(s1.a==dsgt)  
 printf("\n\tDSGT\t%d",s1.elec.dsgt);  
 else  
 printf("\n\tHSS\t%d",s1.elec.hss);  
 printf("\n\n\t!!! PRESS ANY KEY TO CONTINUE !!!!");  
 getch();  
 }  
 /*********************************************************  
 INSERT FUNCTION  
 **********************************************************/  
 struct stud insert()  
 {  
 struct stud s1;  
 int m;  
 clrscr();  
 printf("\n\t!!! --- !!!! \n\t ENTER DETAILS\n");  
 printf("\n>>>  ROLL NO.\t");  
 m=0;  
 do  
 {  
 if(m!=0)  
 printf("\n\t ENTER AGAIN !!!!!\n");  
 m=valid();  
 }while(m==-1);  
 s1.roll=m;  
 printf("\n>>>  NAME\t");  
 flushall();  
 scanf("%s",s1.name);  
 printf("\n>>>  ADDRESS \n\tSTREET NO. / ROOM NO.\t");  
 flushall();  
 gets(s1.add1.addr);  
 printf("\n\tCITY\t");  
 flushall();  
 gets(s1.add1.city);  
 printf("\n\tSTATE\t");  
 flushall();  
 gets(s1.add1.state);  
 printf("\n>>>  MARKS IN ");  
 printf("\n\tF D S\t");  
 m=0;  
 do  
 {  
 if(m!=0 || m>100)  
 printf("\n\t ENTER AGAIN !!!!!\n");  
 m=valid();  
 }while(m==-1|| m>100);  
 s1.fds=m;  
 printf("\n\tDEM\t");  
 m=0;  
 do  
 {  
 if(m!=0 || m>100)  
 printf("\n\t ENTER AGAIN !!!!!\n");  
 m=valid();  
 }while(m==-1|| m>100);  
 s1.dem=m;  
 printf("\n\tSELECT ELECTIVE SUBJECT\t");  
 printf("\n\t1\tCO");  
 printf("\n\t2\tDSGT");  
 printf("\n\t3\tHSS");  
 printf("\n\n\tENTER UR CHOICE\t");  
 m=0;  
 do  
 {  
 if(m!=0 || m>3)  
 printf("\n\t ENTER AGAIN !!!!!\n");  
 m=valid();  
 }while(m==-1 || m>3);  
 s1.a=m;  
 if(s1.a==co)  
 {  
 printf("\n\tENTER MARKS IN CO\t ");  
 m=0;  
 do  
 {  
 if(m!=0 || m>100)  
 printf("\n\t ENTER AGAIN !!!!!\n");  
 m=valid();  
 }while(m==-1 || m>100);  
 s1.elec.co=m;  
 }  
 else if(s1.a==dsgt)  
 {  
 printf("\n\tENTER MARKS IN DSGT\t ");  
 m=0;  
 do  
 {  
 if(m!=0 || m>100)  
 printf("\n\t ENTER AGAIN !!!!!\n");  
 m=valid();  
 }while(m==-1 || m>100);  
 s1.elec.dsgt=m;  
 }  
 else  
 {  
 printf("\n\tENTER MARKS IN HSS\t");  
 m=0;  
 do  
 {  
 if(m!=0 || m>100)  
 printf("\n\t ENTER AGAIN !!!!!\n");  
 m=valid();  
 }while(m==-1 || m>100);  
 s1.elec.hss=m;  
 }  
 return s1;  
 }  
 /*****************************************************  
 CREATE FUNCTION  
 *******************************************************/  
 int create(struct stud s1[25],int n)  
 {  
 int i=0;  
 do  
 {  
 s1[i]=insert();  
 i++;  
 printf("\n\t!!! DO U WANT TO INSERT MORE RECORDS (y \ n) !!!");  
 }while(getche()=='y'&& i<=n);  
 return i;  
 }  
 /**********************************************************  
 SEARCH FUNCTION  
 ********************************************************/  
 int search(struct stud s1[],int n)  
 {  
 int i,rno;  
 printf("\n\tENTER ROLL NUMBER\t");  
 scanf("%d",&rno);  
 for(i=0;i<n;i++) <br=""> {  
 if(s1[i].roll==rno)  
 return i;  
 }  
 return -1;  
 }  
 /*******************************************************  
 EDIT FUNCTION  
 ********************************************************/  
 void edit(struct stud s1[],int n)  
 {  
 int i;  
 i=search(s1,n);  
 if(i>=0)  
 {  
 int ch;  
 do  
 {  
 printf("\n\t\t\t\tMODIFY\n");  
 printf("\n\t\t\t1.ROLL\n\t\t\t2.NAME\n\t\t\t3.ADDRESS\n\t\t\t4.MARKS\n\t\t\t5.RETURN");  
 printf("\nEnter your choice: ");  
 scanf("%d",&ch);  
 switch(ch)  
 {  
 case 1:  
 printf("\nEnter new roll no: ");  
 scanf("%d",&s1[i].roll);  
 break;  
 case 2:  
 printf("\nEnter new name: ");  
 scanf("%s",&s1[i].name);  
 break;  
 case 3:  
 printf("\nEnter new address: ");  
 printf("\nHouse no. : ");  
 scanf("%d",&s1[i].add1.addr);  
 printf("\nCity: ");  
 scanf("%s",&s1[i].add1.city);  
 printf("\nState: ");  
 scanf("%s",&s1[i].add1.state);  
 break;  
 case 4:  
 printf("\nEnter new marks:");  
 printf("\nFDS: %d",s1[i].fds);  
 printf("\nDEM: %d",s1[i].dem);  
 if(s1[i].a==dsgt)  
 {  
 printf("\nDSGT: ");  
 scanf("%d",&s1[i].elec.dsgt);  
 }  
 if(s1[i].a==hss)  
 {  
 printf("\nHSS: ");  
 scanf("%d",&s1[i].elec.hss);  
 }  
 if(s1[i].a==co)  
 {  
 printf("\nCO: ");  
 scanf("%d",&s1[i].elec.co);  
 }  
 break;  
 case 5:  
 break;  
 default:printf("\n\nInvalid choice!!\n");  
 break;  
 }  
 }while(ch!=5);  
 printf("\n\n\tRECORD EDITED");  
 getch();  
 }  
 else  
 {  
 printf("\n\t\tRECORD NOT FOUND");  
 getch();  
 }  
 }  
 /*****************************************************  
 DELET FUNCTION  
 *******************************************************/  
 void delet(struct stud s1[],int n)  
 {  
 int i,j;  
 i=search(s1,n);  
 printf("\n\tdo u wanna delete\y(y\n)");  
 if(i>=0&&getche()=='y')  
 {  
 for(j=i+1;j<n;j++) <br=""> s1[j-1]=s1[j];  
 printf("\n\n\t!!!  DELETED !!!");  
 getch();  
 }  
 else  
 {  
 printf("\n\t\tRECORD NOT Deleted");  
 getch();  
 }  
 }  
 int check(struct stud e[],int rno, int n)  
 {  
 int i;  
 for(i=0;i<n;i++) <br=""> if(e[i].roll==rno)  
 return 1;  
 return 0;  
 }

 

Download Source Code

 

Other Projects to Try:

  1. Primitive operations on Sequential file in C language
  2. How to Implement Hash Table using C language
  3. Hash table code in C Language
  4. Matrix operations in c language
  5. Student Database in C Language

Filed Under: Fundamentals of Datastructure Tagged With: Datastructure Assignments

Reader Interactions

Comments

  1. amardeep says

    November 15, 2015 at 4:17 pm

    sir , where is the valid.c file

    Reply
    • ProjectsGeek says

      November 16, 2015 at 2:20 am

      You can copy this code and put in the text file with extension c.

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Primary Sidebar

Tags

.Net Projects Download Android Project Ideas Android Projects Angular 2 Assembly Codes C # Projects C & C++ Projects C++ Projects Class Diagrams Computer Graphics Database Project Data Mining Projects DataScience Projects Datastructure Assignments Download Visual Basic Projects Electronics project Hadoop Projects Installation Guides Internet of Things Project IOS Projects Java Java Interview Questions Java Projects JavaScript JavaScript Projects java tutorial JSON JSP Projects Mechanical Projects Mongodb Networking Projects Node JS Projects OS Problems php Projects Placement Papers Project Ideas Python Projects seminar and presentation Struts

Search this Website


Footer

Download Java Project
Download Visual Basic Projects
Download .Net Projects
Download VB Projects
Download C++ Projects
Download NodeJs Projects
Download School Projects
Download School Projects
Ask Questions - Forum
Latest Projects Ideas
Assembly Codes
Datastructure Assignments
Computer Graphics Lab
Operating system Lab
australia-and-India-flag
  • Home
  • About me
  • Contact Form
  • Submit Your Work
  • Site Map
  • Privacy Policy