Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 118

(5TH SEM) PROJECT

SUBMITTED TO: ABHEY SINGH

SUBMITTED BY: CHANDANI VERMA ROLL:-0900808008 MONA SONI ROLL:-0900808029 RAHUL SONI ROLL:-0900808043

Signature of students

CERTIFICATE

I hereby declare that the work which is being presented in the minor project report entitled LIBRARY MANAGMENT SYSTEM in partial fulfillment of the requirement of award of diploma with computer science and engineering submitted in department of computers faculty of B.K.N. GOVT. POLYTECHNIC, NARNAUL is authentic record of our original wotk carried out under the guidance of ABHAY SINGH , lecturer, department of computer science and engineering

Library Management System

Table of Contents
1. Introduction 2. Feasibility Study 3. Data Tables 4. Data Flow Diagrams 5. Entity Relationship Diagram 6. CODING 7. Screen Shots Of Form 8. Future Scope 9. Conclusion 10. Bibliography

1. Introduction
1) Purpose:
The purpose of this application are as follows: The software is for automation of library. It provides following facilities to Operator : o Can enter details related to a particular book. o Can provide membership to members. Admin : o Can read and write information about any member. o Can update, create, and delete the record of membership as per requirement and implementation plans.

2) Scope:
The different areas where we can use this application are : Any education institute can make use of it for providing information about author, content of the available books. It can be used in offices and modifications can be easily done according to requirements.

3) TechnologyUsed:
Front End : PROGRAMMING IN C Back End : SQL

4) Assumptions:
This application is used to convert the manual application to the online application. Customized data will be used in this application. User does not have right to enter information about books.

5) Overview:
Project is related to library management which provides reading services to its members. Any person can become a member of the library by filling a prescribed form. They can get the book issued, so that they cab take home and return them.

6.) Functionality:
Online membership. Keeps the track of issues and submission of books.

2. Feasibility Study
In feasibility study phase we had undergone through various steps which are describe as under: 1. Identify the origin of the information at different level. 2. Identify the expectation of user from computerized system. 3. Analyze the draw back of existing system (manual) system.

WORKING OF PRESENT MANUAL SYSTEM


The staffs of library are involved in the following tasks. 1. Membership process: person have to fill membership form and they are provided with member id.

DRAWBACKS OF PRESENT SYSTEM

Some of the problems being faced in manual system are as follows: 1. Fast report generation is not possible. 2. Tracing a book is difficult. 3. Information about issue/return of the books are not properly maintained. 4. No central database can be created as information is not available in database.

PROPOSED SYSTEM
There will be three major components: 1. Stock maintenance. 2. Transaction entry. 3. Reports. Proposed system provides with following solutions: 1. It provides "better and efficient" service to members. 2. Reduce the workload of employee. 3. Faster retrieval of information about the desired book. 4. Provide facility for proper monitoring reduce paper work and provide data security. 5. All details will be available on a click.

Data Tables:

Data Flow Diagram (DFD)

E-R DIGRAM
It is clear that the physical objects from the previous section:

member, books, library, correspond to entities in the Entity-Relationship model, and the operations to be done on those entities: holds, checkouts, and so on correspond to relationships. However, a good design will minimize redundancy and attempt to store all the required information in as small a space as possible.

Coading #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<string.h> #include<process.h> #include<ctype.h> #include<time.h> #include<dos.h> struct addstd { char name[30]; char roll[5]; char stream[5]; char sem[5]; struct addstd *next; struct addstd *prior; }; struct addstd *begin; struct addstd *last;

struct addbook { char book[30]; char author[40]; char tquantity[5]; char code[10]; struct addbook *next; struct addbook *prior; }; struct addbook *start; struct addbook *end; struct addlib { char acc[10]; char edate[20]; char sdate[20]; struct addlib *next; struct addlib *prior; }; struct addlib *initiate; struct addlib *terminate;

struct common { char name[50]; char roll[5]; char stream[5]; char sem[5]; char mem[10]; }common_list; char mainmenu(void) { char opt; int i; clrscr(); textcolor(4); gotoxy(6,2); cprintf("S"); textcolor(0); gotoxy(7,2); cprintf("tudent Info"); textcolor(4); gotoxy(27,2); cprintf("B"); textcolor(0);

gotoxy(28,2); cprintf("ook Info"); textcolor(4); gotoxy(45,2); cprintf("L"); textcolor(0); gotoxy(46,2); cprintf("ibrary Info"); textcolor(4); gotoxy(66,2); cprintf("E"); textcolor(0); gotoxy(67,2); cprintf("xit"); gotoxy(1,4); cprintf("%c",201); for(i=1;i<37;i++) { gotoxy(1+i,4); cprintf("%c",205); } textcolor(4); gotoxy(39,4); cprintf("A"); textcolor(0);

gotoxy(40,4); cprintf("bout"); for(i=44;i<79;i++) { gotoxy(1+i,4); cprintf("%c",205); } gotoxy(80,4); cprintf("%c",187); gotoxy(1,5); for(i=3;i<21;i++) { gotoxy(1,2+i); cprintf("%c",186); } gotoxy(1,23); cprintf("%c",200); for(i=1;i<79;i++) { gotoxy(1+i,23); cprintf("%c",205); } gotoxy(80,23); cprintf("%c",188); gotoxy(80,2);

for(i=3;i<21;i++) { gotoxy(80,2+i); cprintf("%c",186); } textcolor(4); gotoxy(2,24); cprintf("`S'"); textcolor(0); gotoxy(6,24); cprintf("Student Info"); textcolor(4); gotoxy(20,24); cprintf("`B'"); textcolor(0); gotoxy(24,24); cprintf("Book Info"); textcolor(4); gotoxy(35,24); cprintf("`L'"); textcolor(0); gotoxy(39,24); cprintf("Library Info"); textcolor(4); gotoxy(54,24);

cprintf("`A'"); textcolor(0); gotoxy(58,24); cprintf("About"); textcolor(4); gotoxy(68,24); cprintf("`Esc'"); textcolor(0); gotoxy(74,24); cprintf("Exit"); gotoxy(28,10); cprintf("# TECHNO INDIA LIBRARY #"); opt=getch(); return opt; } void fine(void) { int i; clrscr(); textcolor(4); gotoxy(4,2); cprintf("I"); textcolor(0);

gotoxy(5,2); cprintf("nsert"); textcolor(4); gotoxy(14,2); cprintf("D"); textcolor(0); gotoxy(15,2); cprintf("elete"); textcolor(4); gotoxy(24,2); cprintf("F"); textcolor(0); gotoxy(25,2); cprintf("ind"); textcolor(4); gotoxy(32,2); cprintf("D"); textcolor(0); gotoxy(33,2); cprintf("isplay"); textcolor(0); gotoxy(44,2); cprintf("Sa"); textcolor(4); gotoxy(46,2);

cprintf("v"); textcolor(0); gotoxy(47,2); cprintf("e"); textcolor(4); gotoxy(53,2); cprintf("A"); textcolor(0); gotoxy(54,2); cprintf("ppend"); textcolor(4); gotoxy(64,2); cprintf("L"); textcolor(0); gotoxy(65,2); cprintf("oad"); textcolor(4); gotoxy(72,2); cprintf("R"); textcolor(0); gotoxy(73,2); cprintf("emove"); gotoxy(1,4); cprintf("%c",201); for(i=1;i<3;i++)

{ gotoxy(1+i,4); cprintf("%c",205); } textcolor(4); gotoxy(5,4); cprintf("B"); textcolor(0); gotoxy(6,4); cprintf("ack"); for(i=1;i<26;i++) { gotoxy(9+i,4); cprintf("%c",205); } textcolor(0); cprintf(" WORKSPACE "); for(i=1;i<27;i++) { gotoxy(45+i,4); cprintf("%c",205); } textcolor(4); gotoxy(73,4); cprintf("H");

textcolor(0); gotoxy(74,4); cprintf("elp"); for(i=1;i<3;i++) { gotoxy(77+i,4); cprintf("%c",205); } gotoxy(80,4); cprintf("%c",187); gotoxy(1,5); for(i=3;i<21;i++) { gotoxy(1,2+i); cprintf("%c",186); } gotoxy(1,23); cprintf("%c",200); for(i=1;i<79;i++) { gotoxy(1+i,23); cprintf("%c",205); } gotoxy(80,23); cprintf("%c",188);

gotoxy(80,2); for(i=3;i<21;i++) { gotoxy(80,2+i); cprintf("%c",186); } textcolor(4); gotoxy(2,24); cprintf("`Ins'"); textcolor(0); gotoxy(8,24); cprintf("Insert"); textcolor(4); gotoxy(16,24); cprintf("`Del'"); textcolor(0); gotoxy(22,24); cprintf("Delete"); textcolor(4); gotoxy(31,24); cprintf("`V'"); textcolor(0); gotoxy(35,24); cprintf("Save"); textcolor(4);

gotoxy(42,24); cprintf("`H'"); textcolor(0); gotoxy(46,24); cprintf("Help"); textcolor(4); gotoxy(53,24); cprintf("`BkSp'"); textcolor(0); gotoxy(61,24); cprintf("Remove"); textcolor(4); gotoxy(69,24); cprintf("`Esc'"); textcolor(0); gotoxy(75,24); cprintf("Back"); } void libfine(void) { int i; clrscr(); textcolor(4); gotoxy(4,2);

cprintf("R"); textcolor(0); gotoxy(5,2); cprintf("egistration"); textcolor(4); gotoxy(22,2); cprintf("E"); textcolor(0); gotoxy(23,2); cprintf("ssue"); textcolor(4); gotoxy(35,2); cprintf("S"); textcolor(0); gotoxy(36,2); cprintf("ubmit"); textcolor(4); gotoxy(49,2); cprintf("S"); textcolor(0); gotoxy(50,2); cprintf("earch"); textcolor(4); gotoxy(62,2); cprintf("U");

textcolor(0); gotoxy(63,2); cprintf("n Registration"); gotoxy(1,4); cprintf("%c",201); for(i=1;i<3;i++) { gotoxy(1+i,4); cprintf("%c",205); } textcolor(4); gotoxy(5,4); cprintf("B"); textcolor(0); gotoxy(6,4); cprintf("ack"); for(i=1;i<26;i++) { gotoxy(9+i,4); cprintf("%c",205); } textcolor(0); cprintf(" WORKSPACE "); for(i=1;i<27;i++) {

gotoxy(45+i,4); cprintf("%c",205); } textcolor(4); gotoxy(73,4); cprintf("H"); textcolor(0); gotoxy(74,4); cprintf("elp"); for(i=1;i<3;i++) { gotoxy(77+i,4); cprintf("%c",205); } gotoxy(80,4); cprintf("%c",187); gotoxy(1,5); for(i=3;i<21;i++) { gotoxy(1,2+i); cprintf("%c",186); } gotoxy(1,23); cprintf("%c",200); for(i=1;i<79;i++)

{ gotoxy(1+i,23); cprintf("%c",205); } gotoxy(80,23); cprintf("%c",188); gotoxy(80,2); for(i=3;i<21;i++) { gotoxy(80,2+i); cprintf("%c",186); } textcolor(4); gotoxy(2,24); cprintf("`Ins'"); textcolor(0); gotoxy(8,24); cprintf("Resistration"); textcolor(4); gotoxy(22,24); cprintf("`E'"); textcolor(0); gotoxy(26,24); cprintf("Essue"); textcolor(4);

gotoxy(33,24); cprintf("`Del'"); textcolor(0); gotoxy(39,24); cprintf("Submit"); textcolor(4); gotoxy(47,24); cprintf("`Tab'"); textcolor(0); gotoxy(53,24); cprintf("Search"); textcolor(4); gotoxy(61,24); cprintf("`U'"); textcolor(0); gotoxy(65,24); cprintf("Unregistration"); } char bookmenu(void) { char res; fine(); res=getch(); return res;

} char stdmenu(void) { char res; fine(); res=getch(); return res; } char libmenu(void) { char res; libfine(); res=getch(); return res; } void inputs(char *prompt,char *s,int count) { char p[2001]; do {

printf(prompt); fgets(p,2000,stdin); if(strlen(p)>count) { clrscr(); fine(); gotoxy(30,13); printf("Database is too long."); getch(); } }while(strlen(p)>count); p[strlen(p)-1]=0; strcpy(s,p); } struct addbook *bfind(char *author) { struct addbook *info; info=start; while(info) { if(!strcmp(author,info->author)) return info;

info=info->next; } return NULL; } struct addstd *sfind(char *name) { struct addstd *info; info=begin; while(info) { if(!strcmp(name,info->name)) return info; info=info->next; } return NULL; } void bdls_store(struct addbook *i,struct addbook **start,struct addbook **end) { struct addbook *old,*p; if(*end==NULL)

{ i->next=NULL; i->prior=NULL; *end=i; *start=i; return; } p=*start; old=NULL; while(p) { if(strcmp(p->author,i>author)<0) { old=p; p=p->next; } else { if(p->prior) { p->prior->next=i; i->next=p; i->prior=p->prior; p->prior=i;

return; } i->next=p; i->prior=NULL; p->prior=i; *start=i; return; } } old->next=i; i->next=NULL; i->prior=old; *end=i; } void sdls_store(struct addstd *i,struct addstd **begin,struct addstd **last) { struct addstd *old,*p; if(*last==NULL) { i->next=NULL; i->prior=NULL; *last=i; *begin=i;

return; } p=*begin; old=NULL; while(p) { if(strcmp(p->name,i->name)<0) { old=p; p=p->next; } else { if(p->prior) { p->prior->next=i; i->next=p; i->prior=p->prior; p->prior=i; return; } i->next=p; i->prior=NULL; p->prior=i; *begin=i;

return; } } old->next=i; i->next=NULL; i->prior=old; *last=i; } void benter(void) { struct addbook *info; for(;;) { fine(); info=(struct addbook *)malloc(sizeof(struct addbook)); if(!info) { clrscr(); fine(); gotoxy(32,13); printf("Out of memory."); return; }

gotoxy(4,6); inputs("Enter Book Name: ",info>book,30); if(!info->book[0]) break; gotoxy(4,8); inputs("Enter Author Name: ",info->author,40); gotoxy(4,10); inputs("Enter Total Quantity: ",info->tquantity,5); gotoxy(4,12); inputs("Enter Code No.: ",info>code,10); bdls_store(info,&start,&end); } } void senter(void) { struct addstd *info; for(;;) { fine();

info=(struct addstd *)malloc(sizeof(struct addstd)); if(!info) { clrscr(); fine(); gotoxy(32,13); printf("Out of memory."); return; } gotoxy(4,6); inputs("Enter name: ",info>name,30); if(!info->name[0]) break; gotoxy(4,8); inputs("Enter Roll No.: ",info>roll,5); gotoxy(4,10); inputs("Enter Stream: ",info>stream,5); gotoxy(4,12); inputs("Enter Semestar: ",info>sem,5);

sdls_store(info,&begin,&last); } } void bdel(struct addbook **start,struct addbook **end) { struct addbook *info; char s[80]; clrscr(); fine(); gotoxy(4,13); inputs("Enter author name to delete: ",s,30); info=bfind(s); clrscr(); fine(); gotoxy(27,13); printf("Searching data to delete...."); delay(2000); if(info) { if(*start==info)

{ *start=info->next; if(*start) (*start)->prior=NULL; else *end=NULL; } else { info->prior->next=info->next; if(info!=*end) info->next->prior=info>prior; else *end=info->prior; } free(info); clrscr(); fine(); gotoxy(4,20); printf("Data Deleted Sucessfully."); gotoxy(4,10);

printf("%15s %17s %12s %15s",info->book,info->author,info>tquantity,info->code); getch(); } else { clrscr(); fine(); gotoxy(32,13); printf("Data not found."); getch(); } } void sdel(struct addstd **begin,struct addstd **last) { struct addstd *info; char s[80]; clrscr(); fine(); gotoxy(4,13);

inputs("Enter name to delete: ",s,30); info=sfind(s); clrscr(); fine(); gotoxy(27,13); printf("Searching data to delete...."); delay(2000); if(info) { if(*begin==info) { *begin=info->next; if(*begin) (*begin)->prior=NULL; else *last=NULL; } else { info->prior->next=info->next; if(info!=*last) info->next->prior=info>prior;

else *last=info->prior; } free(info); clrscr(); fine(); gotoxy(4,20); printf("Data Deleted Sucessfully."); gotoxy(4,10); printf("%10s %10s %10s %10s",info->name,info->roll,info>stream,info->sem); getch(); } else { clrscr(); fine(); gotoxy(32,13); printf("Data not found."); getch(); } }

void sdisplay(struct addstd *info) { if(info!=NULL) printf("%15s %17s %12s %15s",info->name,info->roll,info>stream,info->sem); } void bdisplay(struct addbook *info) { if(info!=NULL) printf("%15s %17s %12s %15s",info->book,info->author,info>tquantity,info->code); } void blist(void) { struct addbook *info; clrscr(); gotoxy(4,3); puts(" -----------------------------------------------------------------------"); textcolor(4);

gotoxy(12,4); cprintf("Book Name Author Name Total Count Code Numder\n"); gotoxy(4,5); puts(" -----------------------------------------------------------------------"); gotoxy(2,6); printf(" "); info=start; while(info!=end) { bdisplay(info); info=info->next; printf("\n\n\t "); } bdisplay(end); puts("\n -----------------------------------------------------------------------"); getch(); } void slist(void)

{ struct addstd *info; clrscr(); gotoxy(3,3); puts(" -----------------------------------------------------------------------"); textcolor(4); gotoxy(12,4); cprintf(" Name Roll Number Stream Semestar\n"); gotoxy(3,5); puts(" -----------------------------------------------------------------------"); gotoxy(2,6); printf(" "); info=begin; while(info!=last) { sdisplay(info); info=info->next; printf("\n\n\t "); } sdisplay(last);

puts("\n -----------------------------------------------------------------------"); getch(); } void find(void) { char name[40]; struct addbook *info; clrscr(); fine(); gotoxy(4,13); printf("Enter author name to find: "); gets(name); clrscr(); fine(); gotoxy(32,13); printf("Processing Data...."); delay(2000); info=bfind(name); if(!info) {

clrscr(); fine(); gotoxy(32,13); printf("Data not found."); getch(); } else { clrscr(); fine(); gotoxy(4,13); bdisplay(info); getch(); } } void ssearch(void) { char name[40]; struct addstd *info; clrscr(); fine(); gotoxy(4,13); printf("Enter name to find: ");

gets(name); clrscr(); fine(); gotoxy(32,13); printf("Processing Data...."); delay(2000); info=sfind(name); if(!info) { clrscr(); fine(); gotoxy(32,13); printf("Data not found."); getch(); } else { clrscr(); fine(); gotoxy(4,13); sdisplay(info); getch(); } }

void bsave(void) { struct addbook *info; FILE *fp; char filename[80]; clrscr(); fine(); gotoxy(4,17); printf("Example: C:\\Library.txt"); gotoxy(4,9); printf("Input file name: "); gets(filename); fp=fopen(filename,"wb"); if(fp==NULL) { clrscr(); fine(); gotoxy(31,13); printf("Cannot open file."); getch(); } else { clrscr();

fine(); gotoxy(33,13); printf("Saving Records...."); delay(2000); info=start; while(info) { fwrite(info,sizeof(struct addbook),1,fp); info=info->next; } clrscr(); fine(); gotoxy(28,13); printf("Records Saved Sucessfully"); fclose(fp); getch(); } } void ssave(void) { struct addstd *info; FILE *fp;

char filename[80]; clrscr(); fine(); gotoxy(4,17); printf("Example: C:\\Library.txt"); gotoxy(4,9); printf("Input file name: "); gets(filename); fp=fopen(filename,"wb"); if(fp==NULL) { clrscr(); fine(); gotoxy(31,13); printf("Cannot open file."); getch(); } else { clrscr(); fine(); gotoxy(33,13); printf("Saving Records...."); delay(2000);

info=begin; while(info) { fwrite(info,sizeof(struct addstd),1,fp); info=info->next; } clrscr(); fine(); gotoxy(28,13); printf("Records Saved Sucessfully"); fclose(fp); getch(); } } void bload(void) { struct addbook *info; FILE *fp; char filename[80]; clrscr(); fine();

gotoxy(4,17); printf("Example: C:\\Library.txt"); gotoxy(4,9); printf("Input file name: "); gets(filename); fp=fopen(filename,"rb"); if(fp==NULL) { clrscr(); fine(); gotoxy(31,13); printf("Cannot open file."); getch(); } else { clrscr(); fine(); gotoxy(35,13); printf("Loading...."); delay(2000); while(begin) { info=start->next; free(info);

start=info; } start=end=NULL; while(!feof(fp)) { info=(struct addbook *)malloc(sizeof(struct addbook)); if(!info) { clrscr(); fine(); gotoxy(32,13); printf("Out of memory."); return; } if(1!=fread(info,sizeof(struct addbook),1,fp)) break; bdls_store(info,&start,&end); } clrscr(); fine(); gotoxy(28,13); printf("File Loaded Sucessfully");

fclose(fp); getch(); } } void sload(void) { struct addstd *info; FILE *fp; char filename[80]; clrscr(); fine(); gotoxy(4,17); printf("Example: C:\\Library.txt"); gotoxy(4,9); printf("Input file name: "); gets(filename); fp=fopen(filename,"rb"); if(fp==NULL) { clrscr(); fine(); gotoxy(31,13); printf("Cannot open file.");

getch(); } else { clrscr(); fine(); gotoxy(35,13); printf("Loading...."); delay(2000); while(begin) { info=begin->next; free(info); begin=info; } begin=last=NULL; while(!feof(fp)) { info=(struct addstd *)malloc(sizeof(struct addstd)); if(!info) { clrscr(); fine();

gotoxy(32,13); printf("Out of memory."); return; } if(1!=fread(info,sizeof(struct addstd),1,fp)) break; sdls_store(info,&begin,&last); } clrscr(); fine(); gotoxy(28,13); printf("File Loaded Sucessfully"); fclose(fp); getch(); } } void bappend(void) { struct addbook *info; FILE *fp; char filename[80]; clrscr();

fine(); gotoxy(4,17); printf("Example: 0C:\\Library.txt"); gotoxy(4,9); printf("Input file name to append into: "); gets(filename); fp=fopen(filename,"ab"); if(fp==NULL) { clrscr(); fine(); gotoxy(31,13); printf("Cannot open file."); getch(); } else { benter(); clrscr(); fine(); gotoxy(33,13); printf("Saving Records...."); delay(2000); info=start;

while(info) { fwrite(info,sizeof(struct addbook),1,fp); info=info->next; } clrscr(); fine(); gotoxy(28,13); printf("Records Saved Sucessfully"); fclose(fp); getch(); } } void sappend(void) { struct addstd *info; FILE *fp; char filename[80]; clrscr(); fine(); gotoxy(4,17);

printf("Example: C:\\Library.txt"); gotoxy(4,9); printf("Input file name to append into: "); gets(filename); fp=fopen(filename,"ab"); if(fp==NULL) { clrscr(); fine(); gotoxy(31,13); printf("Cannot open file."); getch(); } else { senter(); clrscr(); fine(); gotoxy(33,13); printf("Saving Records...."); delay(2000); info=begin; while(info) {

fwrite(info,sizeof(struct addstd),1,fp); info=info->next; } clrscr(); fine(); gotoxy(28,13); printf("Records Saved Sucessfully"); fclose(fp); getch(); } } struct addlib *libfind(char *acc) { struct addlib *mid; mid=initiate; while(mid) { if(!strcmp(acc,mid->acc)) return mid; mid=mid->next; }

return NULL; } void libstore(struct addlib *i,struct addlib **initiate,struct addlib **terminate) { struct addlib *old,*p; if(*terminate==NULL) { i->next=NULL; i->prior=NULL; *terminate=i; *initiate=i; return; } p=*initiate; old=NULL; while(p) { if(strcmp(p->edate,i->edate)<0) { old=p; p=p->next; }

else { if(p->prior) { p->prior->next=i; i->next=p; i->prior=p->prior; p->prior=i; return; } i->next=p; i->prior=NULL; p->prior=i; *initiate=i; return; } } old->next=i; i->next=NULL; i->prior=old; *terminate=i; } void insert(void)

{ struct addlib *mid; for(;;) { libfine(); mid=(struct addlib *)malloc(sizeof(struct addlib)); if(!mid) { clrscr(); libfine(); gotoxy(32,13); printf("Out of memory!"); return; } gotoxy(4,7); inputs("Enter ACC No.: ",mid>acc,10); if(!mid->acc[0]) break; gotoxy(4,9); inputs("Enter the Date of essue: ",mid->edate,20); gotoxy(4,11);

inputs("Enter the Date of submit: ",mid->sdate,20); libstore(mid,&initiate,&terminate); } } void show(struct addlib *mid) { if(mid!=NULL) printf("%15s %20s %20s",mid>acc,mid->edate,mid->sdate); } void resistration(void) { struct addlib *mid; char choice; FILE *fp; clrscr(); libfine(); gotoxy(4,13); printf("Enter Stream: ");

gets(common_list.stream); clrscr(); libfine(); gotoxy(4,13); printf("Enter Semestar: "); gets(common_list.sem); clrscr(); libfine(); gotoxy(4,13); printf("Enter Roll No.: "); gets(common_list.roll); clrscr(); libfine(); gotoxy(4,13); printf("Enter Name: "); gets(common_list.name); clrscr(); libfine(); gotoxy(4,13); printf("Enter the Membership No: "); gets(common_list.mem); fp=fopen(common_list.mem,"wb"); if(fp==NULL) {

clrscr(); libfine(); gotoxy(31,13); printf("Membership No.is invalid!"); getch(); } else { clrscr(); libfine(); gotoxy(4,9); printf("A new member is registered."); gotoxy(4,19); printf("Membership No.: %s",common_list.mem); getch(); clrscr(); libfine(); gotoxy(4,9); printf("Do you want to essue book under %s.",common_list.mem); gotoxy(4,19);

printf("Press `Y' to confirm, anykey to cancel."); choice=getch(); if(choice=='Y' || choice=='y') insert(); clrscr(); libfine(); gotoxy(33,13); printf("Registering Account...."); delay(2000); if(*common_list.name) { if(fwrite(&common_list,sizeof(struct common),1,fp)!=1) { clrscr(); gotoxy(31,13); printf("An error occared while Resistering account!"); } } mid=initiate; while(mid) {

fwrite(mid,sizeof(struct addlib),1,fp); mid=mid->next; } clrscr(); libfine(); gotoxy(28,13); printf("Account Registered Sucessfully."); fclose(fp); getch(); } } void save(void) { struct addlib *mid; FILE *fp; char filename[80]; clrscr(); libfine(); gotoxy(4,13); printf("Enter the Membership No.: ");

gets(filename); fp=fopen(filename,"wb"); if(fp==NULL) { clrscr(); libfine(); gotoxy(31,13); printf("Membership No. does not exists!"); getch(); } else { clrscr(); libfine(); gotoxy(33,13); printf("Submitting Books...."); delay(2000); if(*common_list.name) { if(fwrite(&common_list,sizeof(struct common),1,fp)!=1) { clrscr();

gotoxy(31,13); printf("An error occared while Submitting books!"); } } mid=initiate; while(mid) { fwrite(mid,sizeof(struct addlib),1,fp); mid=mid->next; } clrscr(); libfine(); gotoxy(28,13); printf("Book Submitted Sucessfully."); fclose(fp); getch(); } } void submit(struct addlib **initiate,struct addlib **terminate) {

struct addlib *mid; char s[80],choice; FILE *fp; clrscr(); libfine(); gotoxy(4,13); inputs("Enter the ACC No.: ",s,30); mid=libfind(s); clrscr(); libfine(); gotoxy(27,13); printf("Searching the entered ACC No....."); delay(2000); if(mid) { if(*initiate==mid) { *initiate=mid->next; if(*initiate) (*initiate)->prior=NULL; else *terminate=NULL; }

else { mid->prior->next=mid->next; if(mid!=*terminate) mid->next->prior=mid>prior; else *terminate=mid->prior; } free(mid); clrscr(); libfine(); gotoxy(4,20); printf("Press `Y' to Submit the above book, any key to cancel."); gotoxy(4,10); printf("%15s %20s %20s",mid>acc,mid->edate,mid->sdate); choice=getch(); if(choice=='Y' || choice=='y') save(); } else { clrscr();

libfine(); gotoxy(32,13); printf("ACC No is invalid!"); getch(); } } void search(void) { struct addlib *mid; FILE *fp; clrscr(); libfine(); gotoxy(4,13); printf("Enter the Membership No.: "); gets(common_list.mem); fp=fopen(common_list.mem,"rb"); if(fp==NULL) { clrscr(); libfine();

gotoxy(31,13); printf("Membership No.does not exists!"); getch(); } else { clrscr(); libfine(); gotoxy(35,13); printf("Searching...."); delay(2000); if(fread(&common_list,sizeof(struct common),1,fp)!=1) { clrscr(); gotoxy(31,13); printf("An error occared while reading the file!"); } clrscr(); gotoxy(17,4); printf("Name: %s",common_list.name);

gotoxy(17,6); printf("Roll No.: %s",common_list.roll); gotoxy(17,8); printf("Stream: %s",common_list.stream); gotoxy(17,10); printf("Semestar: %s",common_list.sem); gotoxy(17,12); printf("Membership No.: %s",common_list.mem); while(initiate) { mid=initiate->next; free(mid); initiate=mid; } initiate=terminate=NULL; while(!feof(fp)) { mid=(struct addlib *)malloc(sizeof(struct addlib)); if(!mid)

{ clrscr(); libfine(); gotoxy(32,13); printf("Out of memory!"); return; } if(1!=fread(mid,sizeof(struct addlib),1,fp)) break; libstore(mid,&initiate,&terminate); } gotoxy(12,14); puts(" ------------------------------------------------------"); textcolor(4); gotoxy(17,15); cprintf("ACC No. Date of Issue Date of Submit\n"); gotoxy(12,16); puts(" ------------------------------------------------------");

gotoxy(2,17); printf(" "); mid=initiate; while(mid!=terminate) { show(mid); mid=mid->next; printf("\n\n "); } show(terminate); puts("\n\t ------------------------------------------------------"); printf("\n\t You can Essue maximum `4' books at a time."); fclose(fp); getch(); } } void essue(void) { struct addlib *mid; FILE *fp; char filename[80];

clrscr(); libfine(); gotoxy(4,13); printf("Enter the Membership No.: "); gets(filename); fp=fopen(filename,"wb"); if(fp==NULL) { clrscr(); libfine(); gotoxy(31,13); printf("Membership No. does not exists!"); getch(); } else { insert(); clrscr(); libfine(); gotoxy(33,13); printf("Essuing Books...."); delay(2000);

if(*common_list.name) { if(fwrite(&common_list,sizeof(struct common),1,fp)!=1) { clrscr(); gotoxy(31,13); printf("An error occared while Essuing books!"); } } mid=initiate; while(mid) { fwrite(mid,sizeof(struct addlib),1,fp); mid=mid->next; } clrscr(); libfine(); gotoxy(28,13); printf("Books are Essued Sucessfully."); fclose(fp);

getch(); } } void bookhelp(void) { int i; clrscr(); gotoxy(1,1); textcolor(15); cprintf("%c",201); for(i=1;i<37;i++) { gotoxy(1+i,1); cprintf("%c",205); } textcolor(14); gotoxy(39,1); cprintf("HELP"); textcolor(15); for(i=43;i<79;i++) { gotoxy(1+i,1); cprintf("%c",205); }

gotoxy(80,1); cprintf("%c",187); gotoxy(1,5); for(i=1;i<23;i++) { gotoxy(1,1+i); cprintf("%c",186); } gotoxy(80,1); for(i=1;i<23;i++) { gotoxy(80,1+i); cprintf("%c",186); } gotoxy(3,2); textcolor(14); cprintf("INSERT : "); textcolor(15); cprintf("This function is used to insert the names of books with author name,"); gotoxy(3,3); cprintf("total quantity & ACC No. in the database. To insert data press the `Insert'");

gotoxy(3,4); cprintf("key through your keyboard. This function sorted all data alphabatically"); gotoxy(3,5); cprintf("before saving."); gotoxy(3,7); textcolor(14); cprintf("DELETE : "); textcolor(15); cprintf("This function is used to delete the data. To delete data press"); gotoxy(3,8); cprintf("`Delete' key through your keyboard."); gotoxy(3,10); textcolor(14); cprintf("FIND : "); textcolor(15); cprintf("This function is used to search the data by author name. To find data"); gotoxy(3,11);

cprintf("press `F' key through your keyboard."); gotoxy(3,13); textcolor(14); cprintf("DISPLAY : "); textcolor(15); cprintf("This function is used to display all data after loading a file. To"); gotoxy(3,14); cprintf("show or display all data press `D' key through your keyboard."); gotoxy(3,16); textcolor(14); cprintf("SAVE : "); textcolor(15); cprintf("This function is used to save all the data in a specified file in a"); gotoxy(3,17); cprintf("specified drive. To save all data press `V' key through your keyboard."); gotoxy(3,19); textcolor(14);

cprintf("APPEND : "); textcolor(15); cprintf("This function is used to append new data in a existing file. Press"); gotoxy(3,20); cprintf("`A' key through your keyboard to append new data."); gotoxy(3,22); textcolor(14); cprintf("REMOVE : "); textcolor(15); cprintf("This function is used to remove a file from a specified drive. Press"); gotoxy(3,23); cprintf("Back Space to remove a file through your keyboard."); gotoxy(1,24); cprintf("%c",200); for(i=1;i<79;i++) { gotoxy(1+i,24); cprintf("%c",205); }

gotoxy(80,27); cprintf("%c",188); getch(); } void book(void) { char response=' '; char filename[80]; clrscr(); _setcursortype(0); start=end=NULL; do { textbackground(15); response=stdmenu(); if(response=='R' || response=='r') benter(); if(response=='S' || response=='s') bdel(&start,&end); if(response=='L' || response=='l') bload();

if(response=='D' || response=='d') blist(); if(response=='V' || response=='v') bsave(); if(response=='F' || response=='f') find(); if(response=='A' || response=='a') bappend(); if(response=='\b') { clrscr(); fine(); gotoxy(4,13); printf("Input file name to remove: "); gets(filename); clrscr(); fine(); gotoxy(31,13); printf("Please wait..."); delay(2000);

if (remove(filename) == 0) { clrscr(); fine(); gotoxy(25,13); printf("%s removed sucessfully.",filename); getch(); } else { perror("remove"); clrscr(); fine(); gotoxy(29,13); printf("There is no such file."); getch(); } } if(response=='H' || response=='h') { textbackground(3); bookhelp();

} if(response==27) break; }while(response>'A' || response<'Z'); } void stdhelp(void) { int i; clrscr(); gotoxy(1,1); textcolor(15); cprintf("%c",201); for(i=1;i<37;i++) { gotoxy(1+i,1); cprintf("%c",205); } textcolor(14); gotoxy(39,1); cprintf("HELP"); textcolor(15); for(i=43;i<79;i++) {

gotoxy(1+i,1); cprintf("%c",205); } gotoxy(80,1); cprintf("%c",187); gotoxy(1,5); for(i=1;i<23;i++) { gotoxy(1,1+i); cprintf("%c",186); } gotoxy(80,1); for(i=1;i<23;i++) { gotoxy(80,1+i); cprintf("%c",186); } gotoxy(3,2); textcolor(14); cprintf("INSERT : "); textcolor(15); cprintf("This function is used to insert the names of students with roll"); gotoxy(3,3);

cprintf("numbers stream & semestar in the database. To insert data press the `Insert'"); gotoxy(3,4); cprintf("key through your keyboard. This function sorted all data alphabatically"); gotoxy(3,5); cprintf("before saving."); gotoxy(3,7); textcolor(14); cprintf("DELETE : "); textcolor(15); cprintf("This function is used to delete the data. To delete data press"); gotoxy(3,8); cprintf("`Delete' key through your keyboard."); gotoxy(3,10); textcolor(14); cprintf("FIND : "); textcolor(15);

cprintf("This function is used to search the data by name. To find data press"); gotoxy(3,11); cprintf("`F' key through your keyboard."); gotoxy(3,13); textcolor(14); cprintf("DISPLAY : "); textcolor(15); cprintf("This function is used to display all data after loading a file. To"); gotoxy(3,14); cprintf("show or display all data press `D' key through your keyboard."); gotoxy(3,16); textcolor(14); cprintf("SAVE : "); textcolor(15); cprintf("This function is used to save all the data in a specified file in a"); gotoxy(3,17);

cprintf("specified drive. To save all data press `V' key through your keyboard."); gotoxy(3,19); textcolor(14); cprintf("APPEND : "); textcolor(15); cprintf("This function is used to append new data in a existing file. Press"); gotoxy(3,20); cprintf("`A' key through your keyboard to append new data."); gotoxy(3,22); textcolor(14); cprintf("REMOVE : "); textcolor(15); cprintf("This function is used to remove a file from a specified drive. Press"); gotoxy(3,23); cprintf("Back Space to remove a file through your keyboard."); gotoxy(1,24); cprintf("%c",200);

for(i=1;i<79;i++) { gotoxy(1+i,24); cprintf("%c",205); } gotoxy(80,27); cprintf("%c",188); getch(); } void student(void) { char response; char filename[80]; clrscr(); _setcursortype(0); begin=last=NULL; do { textbackground(15); response=stdmenu(); if(response=='R' || response=='r') senter();

if(response=='S' || response=='s') sdel(&begin,&last); if(response=='L' || response=='l') sload(); if(response=='D' || response=='d') slist(); if(response=='V' || response=='v') ssave(); if(response=='F' || response=='f') ssearch(); if(response=='A' || response=='a') sappend(); if(response=='\b') { clrscr(); fine(); gotoxy(4,13); printf("Input file name to remove: ");

gets(filename); clrscr(); fine(); gotoxy(31,13); printf("Please wait..."); delay(2000); if (remove(filename) == 0) { clrscr(); fine(); gotoxy(25,13); printf("%s removed sucessfully.",filename); getch(); } else { perror("remove"); clrscr(); fine(); gotoxy(29,13); printf("There is no such file."); getch(); }

} if(response=='H' || response=='h') { textbackground(3); stdhelp(); } if(response==27) break; }while(response>'A' || response<'Z'); } void libhelp(void) { int i; clrscr(); gotoxy(1,1); textcolor(15); cprintf("%c",201); for(i=1;i<37;i++) { gotoxy(1+i,1); cprintf("%c",205); }

textcolor(14); gotoxy(39,1); cprintf("HELP"); textcolor(15); for(i=43;i<79;i++) { gotoxy(1+i,1); cprintf("%c",205); } gotoxy(80,1); cprintf("%c",187); gotoxy(1,5); for(i=1;i<23;i++) { gotoxy(1,1+i); cprintf("%c",186); } gotoxy(80,1); for(i=1;i<23;i++) { gotoxy(80,1+i); cprintf("%c",186); } gotoxy(3,3); textcolor(14);

cprintf("REGISTRATION : "); textcolor(15); cprintf("This function is used to register a new account in the library"); gotoxy(3,4); cprintf("following the student's name, class roll no., stream, semestar & the library"); gotoxy(3,5); cprintf("registration number. To register a new account press the `Insert' key through"); gotoxy(3,6); cprintf("your keyboard."); gotoxy(3,8); textcolor(14); cprintf("ESSUE : "); textcolor(15); cprintf("This function is used to essue books under a registered account in"); gotoxy(3,9); cprintf("the library. To essue books press `E' key through your keyboard. One student");

gotoxy(3,10); cprintf("can essue maximum `4' books at a time."); gotoxy(3,12); textcolor(14); cprintf("SUBMIT : "); textcolor(15); cprintf("This function is used to submit books from students. To submit books"); gotoxy(3,13); cprintf("press `Delete' key through your keyboard."); gotoxy(3,15); textcolor(14); cprintf("SEARCH : "); textcolor(15); cprintf("This function is used to search an account details following the"); gotoxy(3,16); cprintf("the Membership number. To search an account press `Tab' key through your"); gotoxy(3,17);

cprintf("keyboard."); gotoxy(3,19); textcolor(14); cprintf("Un Registration : "); textcolor(15); cprintf("This function is used to close or unregister an account "); gotoxy(3,20); cprintf("following the Membership number. To unregister an account press `U' key"); gotoxy(3,21); cprintf("through your keyboard."); gotoxy(1,24); cprintf("%c",200); for(i=1;i<79;i++) { gotoxy(1+i,24); cprintf("%c",205); } gotoxy(80,27); cprintf("%c",188); getch(); }

void library(void) { char response=' '; char filename[80]; clrscr(); _setcursortype(0); do { textbackground(15); response=libmenu(); if(response=='R' || response=='r') resistration(); if(response=='E' || response=='e') essue(); if(response=='S' || response=='s') submit(&initiate,&terminate); if(response=='\t' || response=='\t') search(); if(response=='U' || response=='u')

{ clrscr(); libfine(); gotoxy(4,13); printf("Input the Membership No.: "); gets(filename); clrscr(); libfine(); gotoxy(31,13); printf("Please wait..."); delay(2000); if (remove(filename) == 0) { clrscr(); libfine(); gotoxy(25,13); printf("%s Unresistered sucessfully.",filename); getch(); } else { perror("remove"); clrscr();

libfine(); gotoxy(29,13); printf("Membership No. does not exists!"); getch(); } } if(response=='H' || response=='h') { textbackground(3); libhelp(); } if(response==27) break; }while(response>'A' || response<'Z'); } void chcolor(void) { char c; int i; gotoxy(4,6);

printf("Press the number key to change color."); gotoxy(4,8); printf(" "); } int main(void) { char choice=' '; clrscr(); _setcursortype(0); do { textbackground(15); choice=mainmenu(); if(choice=='S' || choice=='s') student(); if(choice=='B' || choice=='b') book(); if(choice=='L' || choice=='l') library(); if(choice=='A' || choice=='a') {

clrscr(); textcolor(1); gotoxy(28,8); cprintf("GREAT LIBRERIAN v 1.01"); gotoxy(20,14); cprintf("This Program is coded by `ABHRAJIT KUNDU'."); gotoxy(24,16); cprintf(" Department of IT, Techno India"); gotoxy(24,18); cprintf("Email: abhrajit06it@rediffmail.com"); gotoxy(27,20); cprintf("Contact(Mob.): 9434568272"); getch(); } if(choice==27) { clrscr(); gotoxy(36,13); textcolor(4); cprintf("Exiting....");

delay(2000); exit(0); break; } } while(choice>'A' || choice<'Z'); return 0; }

SNAPSHOTS

Future Scope
FUTURE SCOPE OF APPLICATION:
This application can be easily implemented under various situations. We can add new features as and when we require. Reusability is possible as and when require in this application. There is flexibility in all the modules.

SOFTWARE SCOPE:

Extensibility: This software is extendable in ways that its original developers may not expect. The following principles enhances extensibility like hide data structure, avoid traversing multiple links or methods, avoid case statements on object type and distinguish public and private operations. Reusability: Reusability is possible as and when require in this

application. We can update it next version. Reusable software reduces design, coding and testing cost by amortizing effort over several designs. Reducing the amount of code also simplifies understanding, which increases the likelihood that the code is correct. We follow up both types of reusability: Sharing of newly written code within a project and reuse of previously written code on new projects.

Understandability: A method is understandable if someone other than the creator of the method can understand the code (as well as the creator after a time lapse). We use the method, which small and coherent helps to accomplish this.

Cost-effectiveness: Its cost is under the budget and make within given time period. It is desirable to aim for a system with a minimum cost subject to the condition that it must satisfy the entire requirement. Scope: Scope of this document is to put down the requirements, clearly identifying the information needed by the user, the source of the information and outputs expected from the system.

Conclusion
From a proper analysis of positive points and constraints on the component, it can be safely concluded that the product is a highly efficient GUI based component. This application is working properly and meeting to all user requirements. This component can be easily plugged in many other systems.

Bibliography
Books: E BALAGAUSWAMI PROGRAMMING IN C YASHWANT KNITKAR LET US C DENISS RICHY C

: www.W3SCHOL.COM www.wikipedia.com

SIGNATURE OF STUDENT

You might also like