this is a simple program to store vehicles and their parts for a small 4x4 breakers yard, the parts and their corrosponding details are stored in a text file and read in when a vehicle is created. it also stores details of customers includint their orders etc.
can sombody spot why my Get_Order_Quote() wont work, it doesnt seem to display an output when there should be a clear match in the array.
this is an example of whats in FreeLanderParts.dat,Code:#include <cstdlib> #include <iostream> #include <string> #include <windows.h> #include <cstdio> #include <fstream> using namespace std; struct Part_Struct //decleration of data structure for parts { int Part_ID; char Description[15]; char Condition[10]; float Guide_Price; int Origin_Vehicle_ID; bool Present; }; struct Vehicle_Struct //decleration of data structure for vehicles { int Vehicle_ID; char Model[10]; char Colour[10]; int Mileage; float Purchase_Price; Part_Struct Parts[323]; }; struct Order_Struct //decleration of data structure for orders { int Order_ID; int Customer_ID; int Part_ID[10]; bool Paid; }; struct Customer_Struct //decleration of data structure for customers details { int Customer_ID; char Name[15]; char Address[15]; char Addresstwo[15]; char Town[10]; char County[10]; char Postcode[6]; char TelNo[12]; Order_Struct Orders[10]; }; int Program; int Number_of_Vehicles = 0, Number_of_Customers = 0; Customer_Struct Customers[10]; //arrayed data structures Vehicle_Struct Vehicles[10]; int Show_Main_Menu(); //function prototypes void Get_Order_Quote(); void Input_New_Customer(); void Check_Order_Details(); void Look_Up_Customer(); void Place_New_Order(); void Enter_New_Vehicle(); void Save_Customers(); void Save_Vehicles(); void Update_Master_File(); void Fill_Customers_Array(); void Fill_Vehicles_Array(); void Read_in_Freelander(); void Update_Program(); void Load_Information(); int main(int argc, char *argv[]) { while(Program != 8) {//while 'program' Load_Information(); switch (Show_Main_Menu()) { //switch //------------------------------------------------------------------------------ case 1: {//case 1 cout << Vehicles[0].Model << endl; Get_Order_Quote(); break; }//case 1 //------------------------------------------------------------------------------ case 2: {//case 2 Place_New_Order(); break; }//case 2 //------------------------------------------------------------------------------ case 3: {//case 3 Check_Order_Details(); break; }//case 3 //------------------------------------------------------------------------------ case 4: {//case 4 Input_New_Customer(); Save_Customers(); break; }//case 4 //------------------------------------------------------------------------------ case 5: {//case 5 cout << "Print Bills" << endl; Read_in_Freelander(); break; }//case 5 //------------------------------------------------------------------------------ case 6: {//case 6 Look_Up_Customer(); break; }//case 6 //------------------------------------------------------------------------------ case 7: {//case 7 Enter_New_Vehicle(); break; }//case 7 //------------------------------------------------------------------------------ case 8: {//case 7 return 0; break; }//case 7 //------------------------------------------------------------------------------ }//switch statement }//while 'program' }//int main //XXXXXXXXXXXXXXXXXXXXXXX FUNCTIONS XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX int Show_Main_Menu() //OK and tested! { int Main_Menu_Option; string buffer; system("cls"); cout << " ** Main Menu **" << endl; cout << endl; cout << "Orders: " << endl; cout << endl; cout << "1) Order Quote" << endl; cout << "2) New Order" << endl; cout << "3) Check Order Details" << endl; cout << endl; cout << endl; cout << "Customers: " << endl; cout << endl; cout << "4) Enter New Customer" << endl; cout << "6) Look Up Customer" << endl; cout << "5) Print Bills" << endl; cout << "7) Enter New Vehicle" << endl; cout << "8) Quit Program" << endl; cout << endl; cout << "Option : "; getline(cin,buffer,'\n'); Main_Menu_Option = atoi(buffer.c_str()); system("cls"); return Main_Menu_Option; }; //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX void Input_New_Customer() //looks OK but not tested! { system("cls"); cout << "Enter New Customer" << endl; cout << endl; cout << "Name : "; cin.getline(Customers[Number_of_Customers].Name,200); cout << "Address : "; cin.getline(Customers[Number_of_Customers].Address,200); cout << "Address line two : "; cin.getline(Customers[Number_of_Customers].Addresstwo,200); cout << "Town : "; cin.getline(Customers[Number_of_Customers].Town,200); cout << "County : "; cin.getline(Customers[Number_of_Customers].County,200); cout << "Postcode : "; cin.getline(Customers[Number_of_Customers].Postcode,200); cout << "Customer ID : " << Number_of_Customers << endl; cout << endl; Number_of_Customers ++; system("PAUSE"); system("cls"); }; //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX void Check_Order_Details() //Looks OK but not tested! { int Order_ID, i, x, y; string buffer; system("cls"); cout << "Check Order Details" << endl; cout << endl; cout << "Enter Order ID : "; getline(cin,buffer,'\n'); Order_ID = atoi(buffer.c_str()); for(i=0; i<Number_of_Customers; i++) //loops through all customers { for(x=0; x<10; x++) //loops through all orders that customer has { if(Customers[i].Orders[x].Order_ID == Order_ID) //checks each order for a match on Order_ID {//if statement cout << Customers[i].Orders[x].Part_ID << endl; //displays details of the order cout << Customers[i].Orders[x].Paid << endl; cout << Customers[i].Orders[x].Customer_ID << endl; for(y=0; y<Number_of_Customers; y++) //loops through all customers {//for loop if(Customers[y].Customer_ID == Customers[i].Orders[x].Customer_ID) //checks for match on Customers ID {//if statement cout << Customers[y].Name << endl; //displays name of customer above }//if statement }//for loop }//if statement }//for loop x }//for loop i cout << endl; system("PAUSE"); };//function //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX void Get_Order_Quote() //OK but not tested! { int ID, Part_ID, i; string buffer; cout << "Order Quote" << endl; cout << endl; cout << "Input Part ID : "; getline(cin,buffer,'\n'); Part_ID = atoi(buffer.c_str()); for(i=0; i<Number_of_Vehicles; i++) //loops through all vehicles catalogued {//for loop ID for(ID=0; ID<323; ID++) //loops through parts available on vehicle { //for loop i if(Part_ID == Vehicles[i].Parts[ID].Part_ID && Vehicles[i].Parts[ID].Present == 1 )//checks for a match on the parts ID {//if cout << Vehicles[i].Parts[ID].Part_ID << " is on Vehicle " << i << endl; cout << Vehicles[i].Parts[ID].Description << " is " << Vehicles[i].Parts[ID].Guide_Price << endl; }//if }//for loop i }//for loop system("PAUSE"); }; //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX void Place_New_Order() {//func place_new_order int Sub_Opt, Customer_ID, Part_ID; int x, i; string buffer; cout << "New Order" << endl; cout << endl; cout << "1) Create New Customer" << endl; cout << "2) Enter Customer ID" << endl; cout << endl; cout << "Option : "; getline(cin,buffer,'\n'); Sub_Opt = atoi(buffer.c_str()); switch(Sub_Opt) {//switch subopt //------------------------------------------------------------------------------ case 1: {//case 1 Input_New_Customer(); Save_Customers(); break; }//case 1 //------------------------------------------------------------------------------ case 2: {//case 2 cout << "Customer ID : "; getline(cin,buffer,'\n'); Customer_ID = atoi(buffer.c_str()); cout << "Enter Part ID"; getline(cin,buffer,'\n'); Part_ID = atoi(buffer.c_str()); for(i=0; i<Number_of_Vehicles; i++)//loops through all vehicles {//for loop i for(x=0; x<323; x++)//loops through all parts in specific vehicle {//for loop x if(Part_ID == Vehicles[i].Parts[x].Part_ID && Vehicles[i].Parts[x].Present == 1)//test for a match of part_id and that its present on vehicle {//if statement cout << Vehicles[i].Parts[x].Description << endl; }//if statement }//for loop x }//for loop i break; }//case 2 //------------------------------------------------------------------------------ }//switch subopt };//func place_new_order //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX void Look_Up_Customer() //OK and tested! { int ID; string buffer; cout << "Look up Customer" << endl; cout << endl; cout << "Please Enter Customer ID : "; getline(cin,buffer,'\n'); ID = atoi(buffer.c_str()); cout << "Name : " << Customers[ID].Name << endl; cout << "Address : " << Customers[ID].Address << endl; cout << " " << Customers[ID].Addresstwo << endl; cout << " " << Customers[ID].Town << endl;; cout << " " << Customers[ID].County << endl; cout << " " << Customers[ID].Postcode << endl; cout << "Telephone : " << Customers[ID].TelNo << endl; system("PAUSE"); }; //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX void Enter_New_Vehicle() {//func Enter_New_Vehicle int i, Part_ID; string buffer; cout << "Enter New Vehicle For Breaking" << endl; cout << endl; cout << "Model : "; cin.getline(Vehicles[Number_of_Vehicles].Model,200); cout << "Colour : "; cin.getline(Vehicles[Number_of_Vehicles].Colour,200); cout << "Mileage : "; getline(cin,buffer,'\n'); Vehicles[Number_of_Vehicles].Mileage = atoi(buffer.c_str()); cout << "Purchase Price : "; getline(cin,buffer,'\n'); Vehicles[Number_of_Vehicles].Purchase_Price = atoi(buffer.c_str()); cout << "Vehicle ID : " << Number_of_Vehicles << endl; //------------------------------------------------------------------------------ Read_in_Freelander(); //------------------------------------------------------------------------------ cout << "What Parts Are Missing or Damaged?" << endl; cout << endl; cout << "Enter 8 When Finished" << endl; cout << endl; cout << "Part ID('s) Which are Missing or Damaged : "; getline(cin,buffer,'\n'); Part_ID = atoi(buffer.c_str()); if(Part_ID != 8) {//if statment for(i=0; i<323; i++) {//for loop if(Vehicles[Number_of_Vehicles].Parts[i].Part_ID == Part_ID) {//if statment Vehicles[Number_of_Vehicles].Parts[i].Present == 0; }//if statement }//for loop }//if statement Number_of_Vehicles++; };//func Enter_New_Vehicle //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX void Save_Customers() { int i, x; ofstream Customers_file ("d:\\CustomersDetails"); for(i=0; i<Number_of_Customers; i++) {//for loop i Customers_file << Customers[i].Customer_ID << endl; Customers_file << Customers[i].Name << endl; Customers_file << Customers[i].Address << endl; Customers_file << Customers[i].Addresstwo << endl; Customers_file << Customers[i].Town << endl; Customers_file << Customers[i].County << endl; Customers_file << Customers[i].Postcode << endl; Customers_file << Customers[i].TelNo << endl; for(x=0; i<10; x++) {//for loop x Customers_file << Customers[i].Orders[x].Order_ID << endl; Customers_file << Customers[i].Orders[x].Customer_ID << endl; Customers_file << Customers[i].Orders[x].Part_ID << endl; Customers_file << Customers[i].Orders[x].Paid << endl; }//for loopx }//for loop i Customers_file.close(); }; //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX void Save_Vehicles() { int i,x; ofstream Vehicles_file ("d:\\VehiclesDetails"); for(i=0; i<Number_of_Vehicles; i++) {//for loop i Vehicles_file << Vehicles[i].Vehicle_ID << endl; Vehicles_file << Vehicles[i].Model << endl; Vehicles_file << Vehicles[i].Colour << endl; Vehicles_file << Vehicles[i].Mileage << endl; Vehicles_file << Vehicles[i].Purchase_Price << endl; for(x=0; x<323; x++) {//for loop x Vehicles_file << Vehicles[i].Parts[x].Part_ID << endl; Vehicles_file << Vehicles[i].Parts[x].Description << endl; Vehicles_file << Vehicles[i].Parts[x].Condition << endl; Vehicles_file << Vehicles[i].Parts[x].Guide_Price << endl; Vehicles_file << Vehicles[i].Parts[x].Origin_Vehicle_ID << endl; Vehicles_file << Vehicles[i].Parts[x].Present << endl; }//for loop x }//for loop i Vehicles_file.close(); };//funtion //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX void Update_Master_File() { ofstream Update_Master_file("d://MasterFile"); Update_Master_file << Number_of_Customers << endl; Update_Master_file << Number_of_Vehicles << endl; }; //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX void Fill_Vehicles_Array() { int i,x; ifstream Vehicles_file ("d:\\VehiclesDetails"); for(i=0; i<Number_of_Vehicles; i++) {//for loop i Vehicles_file >> Vehicles[i].Vehicle_ID; Vehicles_file >> Vehicles[i].Model; Vehicles_file >> Vehicles[i].Colour; Vehicles_file >> Vehicles[i].Mileage; Vehicles_file >> Vehicles[i].Purchase_Price; for(x=0; x<323; x++) {//for loop x Vehicles_file >> Vehicles[i].Parts[x].Part_ID; Vehicles_file >> Vehicles[i].Parts[x].Description; Vehicles_file >> Vehicles[i].Parts[x].Condition; Vehicles_file >> Vehicles[i].Parts[x].Guide_Price; Vehicles_file >> Vehicles[i].Parts[x].Origin_Vehicle_ID; Vehicles_file >> Vehicles[i].Parts[x].Present; }//for loop x }//for loop i Vehicles_file.close(); };//function //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX void Fill_Customers_Array() { int i, x; ifstream Customers_file ("d:\\CustomersDetails"); for(i=0; i<Number_of_Customers; i++) {//for loop i Customers_file >> Customers[i].Customer_ID; Customers_file >> Customers[i].Name; Customers_file >> Customers[i].Address; Customers_file >> Customers[i].Addresstwo; Customers_file >> Customers[i].Town; Customers_file >> Customers[i].County; Customers_file >> Customers[i].Postcode; Customers_file >> Customers[i].TelNo; for(x=0; i<10; x++) {//for loop x Customers_file >> Customers[i].Orders[x].Order_ID; Customers_file >> Customers[i].Orders[x].Customer_ID; // Customers_file >> Customers[i].Orders[x].Part_ID; //wont compile??? Customers_file >> Customers[i].Orders[x].Paid; }//for loopx }//for loop i Customers_file.close(); }; //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX void Read_in_Freelander() { int i; char General_Condition[200]; cout << "General Condition of Parts : "; cin.getline(General_Condition,200); system("PAUSE"); ifstream FreeLanderPart; FreeLanderPart.open("h:\\FreeLanderPart.dat"); char temp[200]; for(i=0; i<323; i++) { //for loop i FreeLanderPart.getline(temp,5); Vehicles[Number_of_Vehicles].Parts[i].Part_ID = atoi(temp); //turns temp into an integer FreeLanderPart.getline(Vehicles[Number_of_Vehicles].Parts[i].Description,40); //reads part description Vehicles[Number_of_Vehicles].Parts[i].Condition == General_Condition; //add general condition ^^ FreeLanderPart.getline(temp,5); Vehicles[Number_of_Vehicles].Parts[i].Guide_Price = atoi(temp); //reads in guide price Vehicles[Number_of_Vehicles].Parts[i].Origin_Vehicle_ID = Number_of_Vehicles; //adds vehicle id of origin Vehicles[Number_of_Vehicles].Parts[i].Present = 1; //indicates that the part is present on the vehicle //cout << Vehicles[Number_of_Vehicles].Parts[i].Part_ID << endl; //cout << Vehicles[Number_of_Vehicles].Parts[i].Description << endl; //cout << Vehicles[Number_of_Vehicles].Parts[i].Guide_Price << endl; // Vehicles[Number_of_Vehicles].Parts[i].Condition = General_Condition; // FreeLanderPart >> Vehicles[Number_of_Vehicles] .Parts[i].Guide_Price; }//for loop i FreeLanderPart.close(); system("PAUSE"); }; //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX void Update_Program() { ifstream Update_Program("d://MasterFile"); Update_Program >> Number_of_Customers; Update_Program >> Number_of_Vehicles; }; //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX void Load_Information() { Update_Master_File(); Fill_Customers_Array(); Fill_Vehicles_Array(); };
1
Abs Control Unit
2
Abs Ecu
3
Abs Modulator
4
Abs Pump
5
Abs Pump Modulator Combined
6
Abs Sensor
7
Aerial
8
Aerial Roof
9
Air Bag
10
Air Filter Box
11
Air Flow Mass Meter
12
Air Flow Meter
13
Air Mass Meter
14
Air Metering Unit
15
Airbag (roof)
16
Airbag (seat)
thanks,



LinkBack URL
About LinkBacks


