C++ probably something simple

Soldato
Joined
5 Jul 2005
Posts
17,995
Location
Brighton
Code:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "IVAU.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{

int arrayNo;
arrayNo = 0;
still_looking=false;





        while (arrayNo < 36)
// Declaring values
        {

                array[arrayNo].SnapResult1 = -1;
                array[arrayNo].SnapResult2 = -1;
                array[arrayNo].SnapResult3 = -1;
                array[arrayNo].CribbageResult1 = -1;
		array[arrayNo].CribbageResult2 = -1;
		array[arrayNo].CribbageResult3 = -1;
                array[arrayNo].SpillikinsResult1 = -1;
		array[arrayNo].SpillikinsResult2 = -1;
		array[arrayNo].SpillikinsResult3 = -1;
                array[arrayNo].JuniorScrabbleResult1 = -1;
		array[arrayNo].JuniorScrabbleResult2 = -1;
		array[arrayNo].JuniorScrabbleResult3 = -1;
                array[arrayNo].SpillikinsOpp = "";
                array[arrayNo].SnapOpp = "";
                array[arrayNo].CribbageOpp = "";
                array[arrayNo].JuniorScrabbleOpp = "";
                arrayNo = arrayNo + 1;
		
       }

        array[0].Name = "Albert";
        array[1].Name = "Arnold";
        array[2].Name =  "Aswan";
        array[3].Name =  "Bertha";
        array[4].Name =  "Betty";
        array[5].Name =  "Bella";
        array[6].Name =  "Charles";
        array[7].Name =  "Colin";
        array[8].Name =  "Denise";
        array[9].Name =  "Debra";
        array[10].Name =  "Edward";
        array[11].Name =  "Elias";
        array[12].Name =  "Earl";
        array[13].Name =  "Felicity";
        array[14].Name =  "Freda";
        array[15].Name =  "Fiona";
        array[16].Name =  "George";
        array[17].Name =  "Gilbert";
        array[18].Name =  "Gerry";
        array[19].Name =  "Gwyn";
        array[20].Name =  "Harriet";
        array[21].Name =  "Hebe";
        array[22].Name =  "Helen";
        array[23].Name =  "Hilary";
        array[24].Name =  "Ian";
        array[25].Name =  "Idris";
        array[26].Name =  "Isaac";
        array[27].Name =  "Jane";
        array[28].Name =  "Jenny";
        array[29].Name =  "Jasmine";
        array[30].Name =  "Keith";
        array[31].Name =  "Kenny";
        array[32].Name =  "Kevin";
        array[33].Name =  "Laura";
        array[34].Name =  "Leila";
        array[35].Name =  "Linda";



        array[0].House = 'Y';
        array[1].House = 'G';
        array[2].House = 'Y';
        array[3].House = 'G';
        array[4].House = 'Y';
        array[5].House = 'G';
        array[6].House = 'G';
        array[7].House = 'Y';
        array[8].House = 'G';
        array[9].House = 'Y';
        array[10].House = 'G';
        array[11].House = 'Y';
        array[12].House = 'G';
        array[13].House = 'Y';
        array[14].House = 'G';
        array[15].House = 'Y';
        array[16].House = 'G';
        array[17].House = 'Y';
        array[18].House = 'G';
        array[19].House = 'Y';
        array[20].House = 'G';
        array[21].House = 'Y';
        array[22].House = 'G';
        array[23].House = 'Y';
        array[24].House = 'G';
        array[25].House = 'Y';
        array[26].House = 'G';
        array[27].House = 'Y';
        array[28].House = 'G';
        array[29].House = 'Y';
        array[30].House = 'G';
        array[31].House = 'Y';
        array[32].House = 'G';
        array[33].House = 'Y';
        array[34].House = 'G';
        array[35].House = 'Y';



        array[0].Group = 1;
        array[1].Group = 1;
        array[2].Group = 1;
        array[3].Group = 1;
        array[4].Group = 1;
        array[5].Group = 1;
        array[6].Group = 2;
        array[7].Group = 2;
        array[8].Group = 2;
        array[9].Group = 2;
        array[10].Group = 3;
        array[11].Group = 3;
        array[12].Group = 3;
        array[13].Group = 3;
        array[14].Group = 3;
        array[15].Group = 3;
        array[16].Group = 4;
        array[17].Group = 4;
        array[18].Group = 4;
        array[19].Group = 4;
        array[20].Group = 4;
        array[21].Group = 4;
        array[22].Group = 4;
        array[23].Group = 4;
        array[24].Group = 5;
        array[25].Group = 5;
        array[26].Group = 5;
        array[27].Group = 5;
        array[28].Group = 5;
        array[29].Group = 5;
        array[30].Group = 6;
        array[31].Group = 6;
        array[32].Group = 6;
        array[33].Group = 6;
        array[34].Group = 6;
        array[35].Group = 6;

        Index1=0;
 	while (Index1 < 36)
        {
           if (array[Index1].SnapOpp == "")
           {
                still_looking=true;
           }

           Index2=Index1+1;
	   while (Index2 < 36 && still_looking == true)
           {
	      if ( still_looking == true &&
                   ( array[Index1].House == array[Index2].House) ||

                 (array[Index1].Group == array[Index2].Group) ||


		 (array[Index2].Name == array[Index1].CribbageOpp) ||


 		 (array[Index2].Name == array[Index1].SnapOpp) ||


		 (array[Index2].Name == array[Index1].JuniorScrabbleOpp) ||


		 (array[Index2].Name == array[Index1].SpillikinsOpp) ||

                 (array[Index2].SnapOpp != ""))
                {
                        Index2 = Index2+1;
                }
                else
                {
                        still_looking == false;

	                array[Index1].SnapOpp = array[Index2].Name;
	                array[Index2].SnapOpp = array[Index1].Name;


                }
           }

           Index1 = Index1 + 1;
	}

        Index1=0;

        while (Index1 < 36)
        {

           if (array[Index1].SpillikinsOpp == "")
           {
            still_looking=true;
            }
           Index2=Index1+1;
	   while (Index2 < 36 && still_looking == true)
           {
	      if ( still_looking == true &&
                   ( array[Index1].House == array[Index2].House) ||

	           (array[Index1].Group == array[Index2].Group) ||

                 (array[Index2].Name == array[Index1].CribbageOpp) ||


 		 (array[Index2].Name == array[Index1].SnapOpp) ||


		 (array[Index2].Name == array[Index1].JuniorScrabbleOpp) ||


		 (array[Index2].Name == array[Index1].SpillikinsOpp) ||

                 (array[Index2].SpillikinsOpp != "") )
                {
                        Index2 = Index2+1;
                }
                else
                {
                        still_looking == false;

	                array[Index1].SpillikinsOpp = array[Index2].Name;
	                array[Index2].SpillikinsOpp = array[Index1].Name;


                }
           }
          Index1 = Index1 + 1;

	}

       Index1=0;

        while (Index1 < 36)
        {
            if (array[Index1].CribbageOpp == "")
        {
            still_looking=true;
        }
           Index2=Index1+1;
	   while (Index2 < 36 && still_looking == true)
           {
	      if ( still_looking == true &&
                   ( array[Index1].House == array[Index2].House) ||

	           (array[Index1].Group == array[Index2].Group) ||

                 (array[Index2].Name == array[Index1].CribbageOpp) ||


 		 (array[Index2].Name == array[Index1].SnapOpp) ||


		 (array[Index2].Name == array[Index1].JuniorScrabbleOpp) ||


		 (array[Index2].Name == array[Index1].SpillikinsOpp) ||

                 (array[Index2].CribbageOpp != "") )
                {
                        Index2 = Index2+1;
                }
                else
                {
                        still_looking == false;

                        array[Index1].CribbageOpp = array[Index2].Name;
	                array[Index2].CribbageOpp = array[Index1].Name;


                }
           }
                Index1 = Index1 + 1;

	}

        Index1=0;

        while (Index1 < 36)
        {
           if (array[Index1].JuniorScrabbleOpp == "")
           {
            still_looking=true;
            }
         Index2=Index1+1;
         while (Index2 < 36 && still_looking == true)
           {
	      if ( still_looking == true &&
                   ( array[Index1].House == array[Index2].House) ||

	           (array[Index1].Group == array[Index2].Group) ||

                 (array[Index2].Name == array[Index1].CribbageOpp) ||


 		 (array[Index2].Name == array[Index1].SnapOpp) ||


		 (array[Index2].Name == array[Index1].JuniorScrabbleOpp) ||


		 (array[Index2].Name == array[Index1].SpillikinsOpp) ||

                 (array[Index2].JuniorScrabbleOpp != "") )
                {
                 Index2 = Index2 + 1;
                }
                else
                {
                        still_looking == false;


                        array[Index1].JuniorScrabbleOpp = array[Index2].Name;
	                array[Index2].JuniorScrabbleOpp = array[Index1].Name;


                }
           }

            Index1 = Index1 + 1;

	}


        Edit1->Text =  array[0].Name;
        Edit2->Text =  array[0].SpillikinsOpp;
        Edit3->Text =  array[0].CribbageOpp;
        Edit4->Text =  array[0].SnapOpp;
        Edit5->Text =  array[0].JuniorScrabbleOpp;


Header
Code:
//---------------------------------------------------------------------------

#ifndef IVAUH
#define IVAUH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1: public TForm

{
__published:	// IDE-managed Components
        TEdit *Edit1;
        TEdit *Edit2;
        TEdit *Edit3;
        TEdit *Edit4;
        TEdit *Edit5;
        TEdit *Edit6;
        void __fastcall FormCreate(TObject *Sender);
private:	// User declarations
struct pupil
{
                int score;
                AnsiString Name;
                char House;
                int Group;
                AnsiString SnapOpp;
                int SnapResult1;
                int SnapResult2;
                int SnapResult3;
                AnsiString CribbageOpp;
                int CribbageResult1;
                int CribbageResult2;
                int CribbageResult3;
                AnsiString SpillikinsOpp;
                int SpillikinsResult1;
                int SpillikinsResult2;
                int SpillikinsResult3;
                AnsiString JuniorScrabbleOpp;
                int JuniorScrabbleResult1;
                int JuniorScrabbleResult2;
                int JuniorScrabbleResult3;
		
};

pupil array[36];
bool still_looking;
int Index1;
int Index2;

public:		// User declarations
        __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

The basic idea is to come up with competitors based on a set of criteria, I know there are better more efficient ways to do this but I have to do it this way. Currently it generates competitors but the wrong ones, for some reaosn it comes up with array[32], array[30], array[35] and array.[28] rather than 6, 8, 10 and 12.

If anyone can help me find out why it is doing this you'll get an e-cookie :p

P.S I'm aware you lot don't like people asking you to do their work for them but even my teacher is completely stumped -_-
 
but even my teacher is completely stumped -_-

I'm not really surprised by that. Your code... :confused:

I can't really see what's going on, I'm afraid. Although, I have a few suggestions;

Try streaming data in from a file.

If you have access to a debugger, try stepping through and see what happens.

Even if you don't change your algorithms, try neatening the code up a bit. Including comments!
 
don't really know c++ but is this correct?

else
{
still_looking == false;

array[Index1].CribbageOpp = array[Index2].Name;
array[Index2].CribbageOpp = array[Index1].Name;


your testing if still_lookin is false but your not doing anything with the result ie it's not part of an if block or anything, were you trying to assign it to false? = is for assignment and == for condition testing I assume in c++
 
At a quick glance, I think pinkaardvark is right, you have 'still_looking == false;' several times, and I'm sure you meant to have a single '=' in each case. If your teacher didn't spot it, then they should be ashamed. Stepping through in a debugger is your friend!
 
Caustic said:
you have 'still_looking == false;' several times, and I'm sure you meant to have a single '=' in each case.

That was my teacher rather than me who 'corrected' it :/

PanMaster said:
Thats a logic error so the debugger won't help a lot. still_looking which seems to be a binary variable hasn't been declared, you need a bool declaration.

bool still_looking; in the header file?
 
Raikiri said:
That was my teacher rather than me who 'corrected' it :/



bool still_looking; in the header file?

think he means

int arrayNo;
arrayNo = 0;
still_looking=false;


should be

int arrayNo;
arrayNo = 0;
bool still_looking;
still_looking=false;
 
Back
Top Bottom