Nothing Special   »   [go: up one dir, main page]

DSU MICRO PROJECT Final

Download as pdf or txt
Download as pdf or txt
You are on page 1of 23

DATA STRUCTURE USING ‘C’

PROPOSAL ON TELEPHONE DIRECTORY


USING DOUBLY-LINKED LIST

1.0 Brief Introduction:


In computer science, a doubly linked list is a linked data structure
that consists of a set of sequentially linked records called nodes. Each
node contains three fields: two link fields (references to the previous and
to the next node in the sequence of nodes) and one data field. The
beginning and ending nodes' previous and next links, respectively, point
to some kind of terminator, typically a sentinel node or null, to facilitate
traversal of the list. If there is only one sentinel node, then the list is
circularly linked via the sentinel node. It can be conceptualized as two
singly linked lists formed from the same data items, but in opposite
sequential orders.
Phone Directory can be efficiently implemented using Trie Data
Structure. We insert all the contacts into Trie.
Generally, search query on a Trie is to determine whether the string is
present or not in the trie, but in this case we are asked to find all the
strings with each prefix of ‘str’. This is equivalent to doing a DFS
traversal on a graph. From a Trie node, visit adjacent Trie nodes and do
this recursively until there are no more adjacent. This recursive function
will take 2 arguments one as Trie Node which points to the current Trie
Node being visited and other as the string which stores the string found so
far with prefix as ‘str’.Each Trie Node stores a Boolean variable ‘is Last’
which is true if the node represents end of a contact(word).

PVPIT
2.0 Aim of the Micro-Project:

➢ Save the data in file.

➢ Add numbers, delete number from the current list.

➢ Search & modify the given list

3.0 Intended Course Outcome:

➢ We define the problem on which we are working in the project.

➢ We understand the problem domain. the produce a model of the


system.

4.0 Literature Review:

The problem of determining a heuristic which maintains a doubly


linked list in approximately optimal order with respect to mean search
time is considered. Within a general framework of simple assumptions, it
is shown that in one particular case no such heuristic can be found, while
in many other situations heuristics for similarly maintaining sequential
lists should be used. In the remaining circumstances a heuristic known as
move to end is shown to reduce search time, on average, to at most twice
the minimum value determined by an optimal ordering of the list.

2
5.0 Proposed methodology:

1. Save numbers.

2. Can search and update the number.

3. When a number is off, you can delete it from your directory.

4. Can see all the list any time.

6.0 Resources Required:

No Name of Specifications Quantity Remarks


resources/material
1. Software Microsoft - 1
world
2. Operating system Windows 8.1 - 2

7.0 Action plan:

No Detail of Planned Planned Team of responsible


activity start date finish member
date
1. Information GIRISH DESAI
collection
2. Proposal SANSKRUTI
creation BHAKARE
3. Report SANSKRUTI
creation BHAKARE & GIRISH
DESAI

3
MICRO PROJECT REPORT
ON
DATA STRUCTURE USING ‘C’
Title of Micro-Project: Telephone Directory

1.0 Brief Description:


Phonebook is a very simple mini project in C that can help you
understand the basic concepts of functions, file handling and data
structure. This application will teach you how to add, list, modify or edit,
search and delete data to/from the file.

Adding new records, listing them, modifying them and updating, search
for contacts saved, and deleting the phonebook records are the basic
functions which make up the main menu of this Phonebook application (as
shown in the main menu screenshot below).

Personal information such as name, sex, father’s name, phone number,


citizenship number, email and address are asked while adding a record into
the Phonebook. These records can then be modified, listed, searched for
and removed.

This program “my phonebook” facility the user with different records
can add and search easily by using button tools & search options. There are
some features also like: - viewing data in data grid, and logout. Our project
has following: login form “add” button for adding data in database.
“delete” button for deleting data in database. “update” button for updating
data in database. “search” button for searching data in database.

4
2.0Aim of Micro Project:

The aim of developing the Telephone Directory are as given below:

• The main objective of this Telephone Directory System project is to


store the contact details of the desired persons in a database

• This application stores all the details like name, telephone number,
address,sex, and email id in a database.

• This system was developed to reduce the errors that creep up in manual
systems.

• This software also allows to edit, update and search various contact
details.

3.0 Course Outcomes Integrated:

Outcome 1: Creative Process


Students will be able to use a variety of brainstorming techniques to
generate novel ideas of value to solve problems.
Outcome 2: Development of Skill and Technique
Students will have sufficient mastery of one or more media to complete
the technical and formal challenges pertinent to a body of original work.
Outcome 3: Development of Context and Concept
Students will be able to develop ideas that are relevant and responsive to
the world around them.
Outcome 4: Communication of Ideas and Context
Students will be able to clearly communicate the content, context, and
process of their work visually, orally and in writing.

5
4.0Actual Procedure Followed:

First, we discussed in group about to find the subject related to


project. After discussion finally, we selected the topic, the topic is
Telephone Directory Using ‘C’. Then we collected information related to
the subject. Afterwards, according to the standard format we started to do
the work on project. The group members decided to do work separately in
ways like collecting information, making proposal & report.
Mrs. Smita Ghorpade Mam, guide us how to collect the
information & how to work on the subject. According to his guidance we
followed the rule and after collecting information our project is
completed. Finally, our project is successfully completed. As per the
decision of all members complete the given work.

5.0 Actual Resources Used:

Sr. No. Name of Specifications Quantity Remarks


Resource/material

1. Software Turbo C++, 1


Microsoft -
Word

2. Operating system Window 10 1

6
6.0 Outputs of the Micro-projects:

SOURCE CODE:

#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
#include<windows.h>
struct person
{
char name[35];
char address[50];
char father_name[35];
char mother_name[30];
int mbleno;
char sex[50];
char mail[100];
char citision_no[10];
};
void menu ();
void got ();
void start ();
void back();
void addrecord();
void listrecord();
void modifyrecord();
void deleterecord();
7
void searchrecord();
int main()
{
system("color 5f");
start();
return 0;
}
void back()
{
start();
}
void start()
{
menu();
}
void menu()
{
system("cls");
printf("\t\t**********WELCOME TO PHONEBOOK*************");

printf("\n\n\t\t\t MENU\t\t\n\n");
printf("\t1.Add New \t2.List \t3.Exit \n\t4.Modify
\t5.Search\t6.Delete");

switch(getch())
{
case '1':addrecord();
break;
8
case '2': listrecord();
break;
case '3': exit(0);
break;
case '4': modifyrecord();
break;
case '5': searchrecord();
break;
case '6': deleterecord();
break;
default:
system("cls");
printf("\nEnter 1 to 6 only");
printf("\n Enter any key");
getch();

menu();
}
}
void addrecord()
{
system("cls");
FILE *f;
struct person p;
f=fopen("project","ab+");
printf("\n Enter name: ");
got(p.name);

9
printf("\nEnter the address: ");
got(p.address);
printf("\nEnter father name: ");
got(p.father_name);
printf("\nEnter mother name: ");
got(p.mother_name);
printf("\nEnter phone no.:");
scanf("%d",&p.mbleno);
printf("Enter sex:");
got(p.sex);
printf("\nEnter e-mail:");
got(p.mail);
printf("\nEnter citizen no:");
got(p.citision_no);
fwrite(&p,sizeof(p),1,f);

fflush(stdin);
printf("\nrecord saved");

fclose(f);

printf("\n\nEnter any key");

getch();
system("cls");
menu();
}

10
void listrecord()
{
struct person p;
FILE *f;
f=fopen("project","rb");
if(f==NULL)
{
printf("\nfile opening error in listing :");

exit(1);
}
while(fread(&p,sizeof(p),1,f)==1)
{
printf("\n\n\n YOUR RECORD IS\n\n ");
printf("\nName=%s\nAdress=%s\nFather name=%s\nMother
name=%s\nMobile no=%d\nSex=%s\nE-mail=%s\nCitizen
no=%s",p.name,p.address,p.father_name,p.mother_name,p.mbleno,p.sex,
p.mail,p.citision_no);

getch();
system("cls");
}
fclose(f);
printf("\n Enter any key");
getch();
system("cls");
menu();
}

11
void searchrecord()
{
struct person p;
FILE *f;
char name[100];

f=fopen("project","rb");
if(f==NULL)
{
printf("\n error in opening\a\a\a\a");
exit(1);

}
printf("\nEnter name of person to search\n");
got(name);
while(fread(&p,sizeof(p),1,f)==1)
{
if(strcmp(p.name,name)==0)
{
printf("\n\tDetail Information About %s",name);
printf("\nName:%s\naddress:%s\nFather name:%s\nMother
name:%s\nMobile no:%d\nsex:%s\nE-mail:%s\nCitision
no:%s",p.name,p.address,p.father_name,p.mother_name,p.mbleno,p.sex,p
.mail,p.citision_no);
}
else
printf("file not found");

12
}
fclose(f);
printf("\n Enter any key");

getch();
system("cls");
menu();
}
void deleterecord()
{
struct person p;
FILE *f,*ft;
int flag;
char name[100];
f=fopen("project","rb");
if(f==NULL)
{

printf("CONTACT'S DATA NOT ADDED YET.");

}
else
{
ft=fopen("temp","wb+");
if(ft==NULL)

printf("file opaning error");

13
else

printf("Enter CONTACT'S NAME:");


got(name);

fflush(stdin);
while(fread(&p,sizeof(p),1,f)==1)
{
if(strcmp(p.name,name)!=0)
fwrite(&p,sizeof(p),1,ft);
if(strcmp(p.name,name)==0)
flag=1;
}
fclose(f);
fclose(ft);
if(flag!=1)
{
printf("NO CONACT'S RECORD TO DELETE.");
remove("temp.txt");
}
else
{
remove("project");
rename("temp.txt","project");
printf("RECORD DELETED SUCCESSFULLY.");

14
}
}
}
printf("\n Enter any key");

getch();
system("cls");
menu();
}

void modifyrecord()
{
int c;
FILE *f;
int flag=0;
struct person p,s;
char name[50];
f=fopen("project","rb+");
if(f==NULL)
{

printf("CONTACT'S DATA NOT ADDED YET.");


exit(1);

}
else

15
{
system("cls");
printf("\nEnter CONTACT'S NAME TO MODIFY:\n");
got(name);
while(fread(&p,sizeof(p),1,f)==1)
{
if(strcmp(name,p.name)==0)
{

printf("\n Enter name:");


got(s.name);
printf("\nEnter the address:");
got(s.address);
printf("\nEnter father name:");
got(s.father_name);
printf("\nEnter mother name:");
got(s.mother_name);
printf("\nEnter phone no:");
scanf("%d",&s.mbleno);
printf("\nEnter sex:");
got(s.sex);
printf("\nEnter e-mail:");
got(s.mail);
printf("\nEnter citizen no\n");
got(s.citision_no);
fseek(f,-sizeof(p),SEEK_CUR);
fwrite(&s,sizeof(p),1,f);
16
flag=1;
break;

}
fflush(stdin);

}
if(flag==1)
{
printf("\n your data id modified");

}
else
{
printf(" \n data is not found");

}
fclose(f);
}
printf("\n Enter any key");
getch();
system("cls");
menu();

}
void got(char *name)
{
17
int i=0,j;
char c,ch;
do
{
c=getch();
if(c!=8&&c!=13)
{
*(name+i)=c;
putch(c);
i++;
}
if(c==8)
{
if(i>0)
{
i--;
}
// printf("h");
system("cls");
for(j=0;j<i;j++)
{
ch=*(name+j);
putch(ch);

18
}
}while(c!=13);
*(name+i)='\0';
}

OUTPUT:

1) Display:

19
2) Add New:

3) List:

20
4) Modify:

5) Search:

21
6) Delete:

7) Exit:

22
7.0 Skill Developed/ learning out of this Micro-Project:

➢ Time Management.
➢ Stress Management.
➢ Study Skills.
➢ Money Management.
➢ Assertiveness Skills.
➢ Well-Developed Self Care Skills.
➢ Keeping Safe and Avoiding Risky Behaviors.
➢ Seeking Assistance When Needed.

23

You might also like