Hi, this is my first post everyone. I have just recently switched over to Visual Studio 2005, not by choice. I am having trouble with this program when I try to run it in VS 2005. I can't figure out a solution to the problem. Could anyone please help me!?
Code:#include <malloc.h> #include <fstream> #include <iostream> #include <string.h> #include <conio.h> #include <stdlib.h> using namespace std; struct node { char item [20]; int a; float b; struct node *next; }; typedef struct node *NODEPTR; NODEPTR head; NODEPTR tail; NODEPTR previous; NODEPTR current; struct Data { char fruit[80]; float count; float wholesale; }; Data D; //prcedure pre-definitions int menu(); node *set_pointer(); void traverse_and_print(); void print_first(); void print_last(); void load_data(); void load_initial_data(); void get_data(); void save_file(); void load_file(); void look_me_up(); void out_of_stock(); void update_inventory(); //global variables int first_entry = 1; int need_to_save_file = 0; void main() { int x; while (x = menu()) { switch (x) { case 1: //load from file load_file(); break; case 2: //add daily purchases get_data(); if (first_entry) { load_initial_data(); } else { need_to_save_file = 1; } break; case 3: // to look up item if (!first_entry) { look_me_up(); } break; case 4: // delete items no longer in stock if (!first_entry) { out_of_stock(); need_to_save_file = 1; } break; case 5: // update current inventory list at end of day if (!first_entry) { update_inventory(); need_to_save_file = 1; } break; case 6: // review last entry if (!first_entry) { print_last(); } break; case 7: //save data to disk if (!first_entry) { save_file(); need_to_save_file = 0; } break; case 8: //print current inventory if(!first_entry) { traverse_and_print(); } break; } } if (need_to_save_file) { cout<<">>>Warning<<< Saving File! "<<endl; save_file(); } cout<<"done!"<<endl; } int menu() { int choice; cout<<"The Fruit Market " <<'\n' <<"Link List Processing " <<'\n' <<'\n' <<"0. to Exit" <<'\n' <<"1. to Load from File" <<'\n' <<"2. to Add daily purchases" <<'\n' <<"3. to Lookup item" <<'\n' <<"4. to Delete out of stock items" <<'\n' <<"5. to Update inventory" <<'\n' <<"6. to Reprint last entry" <<'\n' <<"7. to Save to File" <<'\n' <<"8. to Print Current Data" <<endl; cout<<"?"; cin>>choice; return (choice); } void print_first() { cout<<"Using head"<<endl; cout<< head->item<<'\n' << head->a<<'\n' << head->b<<endl; _getch(); } void print_last() { cout<<"Item Lbs Wholesale Cost" << endl; cout<< tail->item<<'\n' << tail->a <<'\n' << tail->b << endl; _getch(); } node *set_pointer() { node *p; p = new node; if(!p) { cout<<"OOOOOOOOOOOOOps"; _getch(); exit(-1); } return(p); } void traverse_and_print() { cout<<"Print List"<<endl; current=head; cout<<"Item LBS wholesale cost" << endl; while (current != NULL) { cout<<current->item<<'\n' <<current->a<<'\n' <<current->b<<endl; current = current->next; } _getch(); } void get_data() { char temp[80]; cout <<"Enter Fruit Name: "; cin >> D.fruit; cin.getline (temp,80); strcat_s(D.fruit,temp); D.fruit[0] = toupper(D.fruit[0]); if (D.fruit[strlen(D.fruit)-1] == 's') { cout<<"How many (whole) pounds of " <<D.fruit<<" did you buy? "<<endl; } else { cout<<"How many (whole) pounds of " <<D.fruit<<" did you buy? "<<endl; } cin>>D.count; cout<<"What is the wholesale cost of each pound of "<<D.fruit<<" ? "<<endl; cin>>D.wholesale; } void save_file() { ofstream FILE("fruit.txt",ios::out); current = head; while (current != NULL) { strcpy_s(D.fruit,current->item); D.count = current->a; D.wholesale = current->b; FILE<<D.fruit<<" "<<D.count<< " "<<D.wholesale<<endl; current = current->next; } } void load_intitial_data() { tail=head=current=set_pointer(); strcpy_s(current->item,D.fruit); current->a=D.count; current->b=D.wholesale; current->next = NULL; first_entry = false; } void load_data() { previous = tail; tail = current = set_pointer(); previous->next = current; strcpy_s(current->item,D.fruit); current->a = D.count; current->b = D.wholesale; current->next = NULL; } void load_file() { cout<<"Loading Data from Disk"<<endl; ifstream FILE("fruit.txt",ios::in); while (FILE>>D.fruit>>D.count>>D.wholesale) { cout<<D.fruit<<" "<<D.count<<" "<<D.wholesale<<endl; if (first_entry) { load_initial_data(); } else { load_data(); } } cout<<"Data Loaded! "<<endl; _getch(); } void look_me_up() { int x; char item[80]; char item1[80]; cout<<"Enter name or part of name of fruit: "; cin>> item; current=head; cout<<"Item LBS Wholesale cost"<< endl; while (current !=NULL) { strcpy_s(item1,current->item); for (x=0; x<strlen(item1);x++) { item[x]=tolower(item1[x]); } for (x=0; x<strlen(item); x++) { item[x]=tolower(item[x]); } if (strstr(item1,item) != NULL) { cout<<current->item<<" "<<current->a<<" " <<current->b<<endl; } current = current->next; } _getch(); } void out_of_stock() { int x; char y_n; char item[80]; char item1[80]; cout<<"Enter name or part of name of fruit: "; cin>>item; previous=current=head; cout<<"Item LBS Wholesale cost"<<endl; while (current != NULL) { strcpy_s(item1,current->item); for (x=0; x<strlen(item1);x++) { item1[x]=tolower(item1[x]); } for (x=0; x<strlen(item);x++) { item[x]=tolower(item[x]); } if (strstr(item1,item) != NULL) { cout<<current->item<<" "<<current->a<<" " <<current->b<<endl; cout<<'\n'<<"Are we now out of "<<current->item<<"s?"<<endl; cin>>y_n; y_n=tolower(y_n); if (y_n =='y') { if((current == head) & (current == tail)) { first_entry = true; } if (current == head) { head = current->next; } if (current == tail) { previous->next=NULL; tail = previous; } if ((current != head) & (current !=tail)) { previous->next=current->next; } } } previous = current; current = current->next; } } void update_inventory() { int x; char y_n; char item[80]; char item1[80]; cout<<"Enter name or part of name of fruit: "; cin>>item; previous = current = head; cout<<"Item LBS Wholesale cost"<<endl; while (current != NULL) { strcpy_s(item1,current->item); for(x=0;x<strlen(item1);x++) { item1[x]=tolower(item1[x]); } for (x=0;x<strlen(item);x++) { item[x]=tolower(item[x]); } if (strstr(item,item) !=NULL) { strcpy_s(D.fruit,current->item); D.count=current->a; D.wholesale=current->b; cout<<D.fruit<<" "<<D.count<<" "<<D.wholesale<<endl; if (D.fruit[strlen(D.fruit)-1] == 's') { cout<<'\n'<<"Do you want to update the number of" << current->item<<"?"<<endl; } else { cout<<'\n'<<"Do you want to update the number of" << current->item<<"s?"<<endl; } cin>>y_n; y_n=tolower(y_n); if (y_n == 'y') { cout<<'\n'<<"How many (whole) pounds of "<<D.fruit<<" do you have left? "; cin >> current->a; } } previous = current; current = current->next; } }
Thank you.
George



LinkBack URL
About LinkBacks


