Can someone help me with this C program please? I\'ve been trying and I\'ve only
ID: 3805519 • Letter: C
Question
Can someone help me with this C program please? I've been trying and I've only gotten the struct working but not the rest.
The Problem
You are to produce an interface that reads a file called myContactsList.db and display it and allow for several actions.
You must use the following structure:
struct contact {
unsigned long phone_number; long first_name_posn;
long last_name_posn;
long company_name_posn; long email_posn;
long next;
};
*Important
This structure will be written to file. It will hold the phone number and the positions for first, last, company and email. After writing the structure to file you will then write the first name, last name, company name, and email to file. You will keep repeating this for as many times as the user wishes to input information. You should be able to scan the file for contacts based on the phone number.
- You must enter either a Last Name or a Company Name for each contact (as well as the phone number and email).
- You must check that the phone number has either 7 or 10 digits.
- The email address must have the following format: string@string.ccc
Your interface will allow the following to be done:
List all contacts in alphabetical (ascending) order by name (either last name or company name) – only displaying the name. Only 5 names will be displayed at a time. You can tell the interface to scroll down or up one name at a time.
Add a new contact.
Allow one of the contacts to be selected (by the number beside it on the display).
Display the full information for the selected contact.
Change the phone number or email for a selected contact.
Delete a selected contact.
Return to the full contacts list.
Exit the program (all changes to the myContactsList.db file must be written to disk).
Explanation / Answer
#include<iostream>
#include<cstdlib>
#include<cstdio>
using namespace std;
struct contact
{
unsigned long phone_number;
long first_name_posn;
long last_name_posn;
long company_name_posn;
long email_posn;
struct contact *next;
}*head;
class ll
{
public:
ll()
{head=NULL;}
contact* createnode(long phone_number1,long first_name_posn1,
long last_name_posn1,
long company_name_posn1,
long email_posn1);
void last(long phone_number1,long first_name_posn1,
long last_name_posn1,
long company_name_posn1,
long email_posn1);
void display();// Append node (to add new node at last position)
};
contact* ll::createnode(long phone_number1,long first_name_posn1,
long last_name_posn1,
long company_name_posn1,
long email_posn1)
{
struct contact * temp,* ptr;
temp=new(struct contact);
if(temp==NULL)
cout<<"no memory allocated"<<endl;
else
{
temp->phone_number=phone_number1;
temp->first_name_posn=first_name_posn1;
temp->last_name_posn=last_name_posn1;
temp->company_name_posn=first_name_posn1;
temp->email_posn=email_posn1;
temp->next=NULL;
return temp;
}
}
void ll::last(long phone_number1,long first_name_posn1,
long last_name_posn1,
long company_name_posn1,
long email_posn1)
{
struct contact *temp,*p;
temp=createnode(phone_number1,first_name_posn1,last_name_posn1,company_name_posn1,email_posn1);
if (head==NULL)
{
temp->phone_number=phone_number1;
temp->first_name_posn=first_name_posn1;
temp->last_name_posn=last_name_posn1;
temp->company_name_posn=first_name_posn1;
temp->email_posn=email_posn1;
head=temp;
}
else
{
p=head;
while(p->next!=NULL)
{
p=p->next;
}
p->next=temp;
temp->next=NULL;
}
}
void ll::display()
{
struct contact *ptr;
ptr=head;
if(head==NULL)
cout<<"empty"<<endl;
else
{
while(ptr!=NULL)
{
cout<<ptr->phone_number<<" "<<ptr->first_name_posn<<" "<<ptr->last_name_posn<<" "<<ptr->company_name_posn<<" "<<ptr->email_posn<<endl;;
ptr=ptr->next;
}
cout<<" "<<endl;
}
}
int main()
{
ll l0;
int k,t=0;
loop: cout<<"if you wish to enter another contact press 1 "<<endl;
cin>>k;
if(k==1)
{
long phone_number1;
long first_name_posn1;
long last_name_posn1;
long company_name_posn1;
long email_posn1;
cout<<"Enter:"<<endl;
cout<<"first name:"<<endl;
cin>>first_name_posn1;
cout<<"Last name:"<<endl;
cin>>last_name_posn1;
cout<<"company name: "<<endl;
cin>>company_name_posn1;
cout<<"phone number"<<endl;
cin>>phone_number1;
cout<<"email:"<<endl;
cin>>email_posn1;
l0.last(phone_number1,first_name_posn1,last_name_posn1,company_name_posn1,email_posn1);
t++;
}
if(t==1)
{
goto loop;
}
l0.display();
return 0;
}
note:- in c just use printf and scanf in place of cout and cin and the remaining program remains same and change the header file to #include<stdio.h>
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.