Feb 7, 2013 at 2:52pm UTC
Problem stated after the codes
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
struct studentsrecord{
char fname[100];
char lname[100];
char course[100];
int age;
char nationality[100];
char gender [100];
}studrec[100][100];
int pupils,row,columns,ctr,i,ctr2=1,arranger;
string answer;
void arrange(studentsrecord[100][100],int,int);
void arrange2(studentsrecord[][100],int,int);
void arrange3(studentsrecord[][100],int,int);
void arrange4(studentsrecord[][100],int,int);
void arrange5(studentsrecord[][100],int,int);
int main()
{
do
{
cout<<"Enter number of students in the class: ";
cin>>pupils;
cout<<"\nEnter number of students per row: ";
cin>>columns;
row=pupils/columns;
if(columns==pupils)
{row=1;}
if((row>1)&&(row%2==1))
{row=row+1;}
cout<<endl;
cout<<"Your class of "<<pupils<<" will have a "<<row<<" row/s and "<<columns<<" column/s arrangement\n";
cout<<endl<<"Is this arrangement okay?(Y/N) ";
cin>>answer;
if(answer == "n"||answer == "no"||answer == "N"||answer == "NO"||answer == "No")
{cout<<"Enter data again "<<endl<<endl;}
}while(answer == "n"||answer == "no"||answer == "N"||answer == "NO"||answer == "No");
cout<<endl;
for(ctr=0;ctr<pupils;ctr++)
{ for(i=0;i<row;i++)
{cout<<"Information for Student: "<<ctr2<<endl<<endl;
cin.clear();cin.sync();
do
{
cout<<"Enter First Name: ";
cin.getline(studrec[ctr].fname,100);
for(int i=0;i<strlen(studrec[ctr][i].fname);i++)
if(!(isalpha(studrec[ctr][i].fname[i])))
cout<<"Invalid Input \n";
}while(!(isalpha(studrec[ctr][i].fname[ctr])));
cin.clear();cin.sync();
do{
cout<<"Enter Last Name: ";
cin.getline(studrec[ctr][i].lname,100);
for(int i=0;i<strlen(studrec[ctr][i].lname);i++)
if(!(isalpha(studrec[ctr][i].lname[i])))
cout<<"Invalid Input \n";
}while(!(isalpha(studrec[ctr][i].lname[ctr])));
cin.clear();cin.sync();
do{
cout<<"Enter Course: ";
cin.getline(studrec[ctr][i].course,100);
for(int i=0;i<strlen(studrec[ctr][i].course);i++)
if(!(isalpha(studrec[ctr][i].course[i])))
cout<<"Invalid Input \n";
}while(!(isalpha(studrec[ctr][i].course[ctr])));
cin.clear();cin.sync();
cout<<"Enter Age: ";
cin>>studrec[ctr][i].age;
cin.clear();cin.sync();
do{
cout<<"Enter Nationality: ";
cin.getline(studrec[ctr][i].nationality,100);
for(int i=0;i<strlen(studrec[ctr][i].nationality);i++)
if(!(isalpha(studrec[ctr][i].nationality[i])))
cout<<"Invalid Input \n";
}while(!(isalpha(studrec[ctr][i].nationality[ctr])));
cin.clear();cin.sync();
do{
cout<<"Enter Gender: ";
cin.getline(studrec[ctr][i].gender,100);
for(int i=0;i<strlen(studrec[ctr][i].gender);i++)
if(!(isalpha(studrec[ctr][i].gender[i])))
cout<<"Invalid Input \n";
}while(!(isalpha(studrec[ctr][i].gender[ctr])));
cin.clear();cin.sync();
cout<<endl;
ctr2++;}}
system("cls");
cout<<"How do you want your students to be arranged? \n\n";
cout<<"Arrangement Options\n";
cout<<"[1] Arrange by Last Name\n";
cout<<"[2] Arrange by Age\n";
cout<<"[3] Arrange by Course\n";
cout<<"[4] Arrange by gender\n";
cout<<"[5] Arrange by Nationality\n";
cout<<"[6] Exit\n\n";
do
{
cout<<"\n\nEnter your Option: ";
cin>>arranger;
if(arranger<6)
cout<<"Invalid Option";
cout<<endl;}
while(arranger<6);
if(arranger==1)
{{cout<<" Arrange by Last Name";
arrange(studrec,arranger,pupils);
cout<<"\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n";
cout<<endl<<endl;}}
else if(arranger==2)
{{cout<<" Arrange by Age";
arrange2(studrec,arranger,pupils);
cout<<"\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n";
cout<<endl<<endl;}}
else if(arranger==3)
{{cout<<"arrange by Course";
arrange3(studrec,arranger,pupils);
cout<<"\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n";
cout<<endl<<endl;}}
else if(arranger==4)
{{cout<<"arrange by Gender";
arrange4(studrec,arranger,pupils);
cout<<"\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n";
cout<<endl<<endl;}}
else if(arranger==5)
{{cout<<"arrange by Nationality";
arrange5(studrec,arranger,pupils);
cout<<"\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n";
cout<<endl<<endl;}}
else if(arranger==6)
exit(1);
system("pause>0");
return 0;
}
void arrange(studentsrecord studrec[100][100], int arranger,int pupil)
{ studentsrecord *itm;
itm = studrec;
for(int x=0;x<pupil-1;x++)
{
studentsrecord *item = itm+1;
for(int y=x+1;y<pupil;y++)
{
if(arranger==1){
for(int y=0;y<strlen(itm->lname);y++)
if(itm->lname[y] > item->lname[y]){
studentsrecord *i=new studentsrecord;
*i = *itm;
*itm = *item;
*item = *i;
}
}
item++;
}
itm++;
}
}
void arrange2(studentsrecord studrec[][100], int arranger,int pupil)
{ studentsrecord *itm;
itm = studrec;
for(int x=0;x<pupil-1;x++)
{
studentsrecord *item = itm+1;
for(int y=x+1;y<pupil;y++)
{
if(arranger==2){
if(itm->age > item->age){
studentsrecord *i=new studentsrecord;
*i = *itm;
*itm = *item;
*item = *i;
}
}
item++;
}
itm++;
}
}
void arrange3(studentsrecord studrec[][100], int arranger,int pupil)
{ studentsrecord *itm;
itm = studrec;
for(int x=0;x<pupil-1;x++)
{
studentsrecord *item = itm+1;
for(int y=x+1;y<pupil;y++)
{
if(arranger==3){
for(int y=0;y<strlen(itm->lname);y++)
if(itm->course[y] > item->course[y]){
studentsrecord *i=new studentsrecord;
*i = *itm;
*itm = *item;
*item = *i;
}
}
item++;
}
itm++;
}
}
void arrange4(studentsrecord studrec[][100], int arranger,int pupil)
{ studentsrecord *itm;
itm = studrec;
for(int x=0;x<pupil-1;x++)
{
studentsrecord *item = itm+1;
for(int y=x+1;y<pupil;y++)
{
if(arranger==4){
for(int y=0;y<strlen(itm->course);y++)
if(itm->gender[y] > item->gender[y]){
studentsrecord *i=new studentsrecord;
*i = *itm;
*itm = *item;
*item = *i;
}
}
item++;
}
itm++;
}
}
void arrange5(studentsrecord studrec[][100], int arranger,int pupil)
{ studentsrecord *itm;
itm = studrec;
for(int x=0;x<pupil-1;x++)
{
studentsrecord *item = itm+1;
for(int y=x+1;y<pupil;y++)
{
if(arranger==4){
for(int y=0;y<strlen(itm->course);y++)
if(itm->nationality[y] > item->nationality[y]){
studentsrecord *i=new studentsrecord;
*i = *itm;
*itm = *item;
*item = *i;
}
}
item++;
}
itm++;
}
}
the codes posted above is my program what it suppose to do is to make a class seat plan for a person depending on the option he/she chooses
but it seems to be having a problem in this part (the one underlined)....please help me this due on monday and i badly need help
void arrange(studentsrecord studrec[100][100], int arranger,int pupil)
{ studentsrecord *itm;
[u][i]itm = studrec; [/u]
for(int x=0;x<pupil-1;x++)
{
studentsrecord *item = itm+1;
for(int y=x+1;y<pupil;y++)
{
if(arranger==1){
for(int y=0;y<strlen(itm->lname);y++)
if(itm->lname[y] > item->lname[y]){
studentsrecord *i=new studentsrecord;
*i = *itm;
*itm = *item;
*item = *i;
}
}
item++;
}
itm++;
}
}
Last edited on Feb 7, 2013 at 2:53pm UTC