Please I'm new to this forum and I need a help with my code.I have written it all and compiled but it doesnt seem to bring any output(I'm reading the input from a file on my system).Please bail me out, I need to turn it in soonest
#include<iostream>
#include<fstream>
#include <conio.h>
using namespace std;
struct node
{
string firstName; // firstName letters
string lastName; //lastName letters
string telnumber; // Telephone number
string housenumber; // fax number
string city; // city
string state; //state
string zipcode; //zipcode
node *link; // Pointer to next node
};
node *head = NULL;
//Function to add a node to the list
//Sets the list head to newNode if list is empty
//Add the newNOde to the next position in the list if list is not empty
void add_node_at_end (node & newNode)
{
node *temp, *temp2; // Temporary pointers
// fill the newNOde with the incoming data
temp = new node;
temp->firstName = newNode.firstName;
temp->lastName = newNode.lastName;
temp->telnumber = newNode.telnumber;
temp->housenumber = newNode.housenumber;
temp->city = newNode.city;
temp->state = newNode.state;
temp->zipcode = newNode.zipcode;
temp->link = NULL;
// Add this node to the list
if (head == NULL)
head = temp;
else
{
temp2 = head;
// if the list not empty!
while (temp2->link != NULL)
{ temp2 = temp2->link;
// Move to next link in chain
}
temp2->link = temp;
}
}
////////////////////////////////////////////
//Function ito displays the output file
////////////////////////////////////////////
void DisplayList(ofstream & outfile)
{
node * temp = head;
do
{ if (temp == NULL)
cout << "End of list" << endl;
else
{ // Display details for what temp points to
outfile << "firstName : " << temp->firstName << endl;
outfile << "lastName : " << temp->lastName << endl;
outfile << "telnumber : " << temp->telnumber << endl;
outfile << "housenumber : " << temp->housenumber << endl;
outfile << "city : " << temp->city << endl;
outfile << "state : " << temp->state << endl;
outfile << "zipcode : " << temp->zipcode << endl;
outfile << endl; // Blank line
// Move to next node (if present)
temp = temp->link;
}
}
while (temp != NULL);
}
//Deleting node at head
void delete_start_node()
{
node *temp;
temp = head;
head = head->link;
delete temp;
}
//deleting at end
void delete_end_node()
{
node *temp1, *temp2; // Temporary pointers
//Deleting a node at the end of the list
if (head == NULL)
cout << "The list is empty!" << endl;
else
{
temp1 = head;
if (temp1->link == NULL)
{
delete temp1;
head = NULL;
}
else
{
while (temp1->link != NULL)
{
temp2 = temp1;
temp1 = temp1->link;
}
delete temp1;
temp2->link = NULL;
}
}
}
void add_node_at_start (node & newNode)
{
node * temp = 0; // Temporary pointers
// Reserve space for new node and fill it with data
temp = new node;
temp->firstName = newNode.firstName;
temp->lastName = newNode.lastName;
temp->telnumber = newNode.telnumber;
temp->housenumber = newNode.housenumber;
temp->city = newNode.city;
temp->state = newNode.state;
temp->zipcode = newNode.zipcode;
temp->link = head;
head = temp;
}
void add_in_middle(node & newNode)
{
node * newNodePtr = 0; // Temporary pointers
// Reserve space for new node and fill it with data
newNodePtr = new node;
newNodePtr->firstName = newNode.firstName;
newNodePtr->lastName = newNode.lastName;
newNodePtr->telnumber = newNode.telnumber;
newNodePtr->housenumber = newNode.housenumber;
newNodePtr->city = newNode.city;
newNodePtr->state = newNode.state;
newNodePtr->zipcode = newNode.zipcode;
newNodePtr->link= head->link;
head->link =newNodePtr;
}
void delete_in_middle ()
{
node * temp; // Temporary pointer
// check to see if the list is empty
if (head!= NULL)
{
// check to see if there is more than 1 node in the list
if (head->link != NULL)
{
temp= head->link->link ;
delete head->link;
head->link = temp;
}
}
}
int main(void)
{
node inputNode;
ifstream infile; // input file
infile.open("c:\\pbinput.txt");
if (!infile)
{
cerr << "Unable to open file inputfile.txt";
exit(1); // call system to stop
}
ofstream outfile;
outfile.open("outputfile.txt");
if (!outfile)
{
cerr << "Unable to open file outputForPow.txt";
exit(1); // call system to stop
}
outfile << "This file contains the input and output for the Power function " << endl << endl;
int i = 0;
while (!infile.eof())
{
infile >> inputNode.lastName >> inputNode.firstName >> inputNode.telnumber >> inputNode.housenumber >> inputNode.city >> inputNode.state >> inputNode.zipcode ;
outfile << "Last name: " << inputNode.lastName << " first name: " << inputNode.firstName << " tel number: " << inputNode.telnumber << " house number: " << inputNode.housenumber << " city: " << inputNode.city << " state : " << inputNode.state << " zip code: " << inputNode.zipcode << endl;
if ((i % 3) == 0)
{
outfile << "Adding to end of list " << endl;
add_node_at_end (inputNode);
}
else if ((i %3) == 3)
{
outfile << "Adding to beginning of list " << endl;
add_node_at_start (inputNode);
}
else
{
outfile << "Adding to the middle of list " << endl;
add_in_middle(inputNode);
}
i++;
}
outfile << "displaying list after reading input: " << endl;
DisplayList(outfile);
getch();
outfile << "displaying list after deleting first node: " << endl;
delete_start_node();
DisplayList(outfile);
getch();
outfile << "displaying list after deleting last node: " << endl;
delete_end_node();
DisplayList(outfile);
getch();
outfile << "displaying list after deleting a node in the middle of the list: " << endl;
delete_in_middle();
DisplayList(outfile);
getch();
infile.close();
outfile.close();
return(1);
}