vasilopita
یک شنبه 28 آذر 1389, 16:44 عصر
چطور می تونم یه خونه از آرایه از کلاس ها رو حذف کنم؟ من این کار رو با تابع delete_student سعی کردم انجام بدم. ولی به این طریق خونه ی آرایه بکلی خذف نمی شه؟ مثل رشته ها هم نمیشه از strcpy استفاده کرد. لطفا راهنمایی بفرمایید:
#include<iostream>
#include<conio.h>
#include<string.h>
using namespace std;
class student_info
{
public:
char name[10],family[20];
long int id;
float avg;
void get_info(int i)
{
cout<<"\n"<<i+1<<"::\n";
cout<<"Name >>> ";
cin>>name;
cout<<"Family >>> ";
cin>>family;
cout<<"ID >>> ";
cin>>id;
cout<<"Averege >>> ";
cin>>avg;
cout<<".................................................. ........";
}
};
void find_max(student_info *,int );
void search(student_info *,int);
void print_all(student_info *,int);
void delete_student(student_info*,int);
void main()
{
cout<<"Please Enter number of student ... \n";
int number =0;
cin>>number;
student_info *stu;
stu=new student_info[number];
for(int i=0;i<number;i++)
{
//cout<<"\a";
stu[i].get_info(i);
}
//find maximum averege
find_max(stu,number);
//serch a student
search(stu,number);
//delete a student
delete_student(stu,number);
//print all student
print_all(stu,number);
}
void find_max(student_info *stu,int number)
{
float max=0;
int j;
for(int i=0;i<number;i++)
{
if(stu[i].avg > max)
{
max=stu[i].avg;
j=i;
}
}
cout<<"\a\a\n\t\t The best Student is: \n";
cout<<stu[j].name;
cout<<" "<<stu[j].family<<"\n";
cout<<"ID :"<<stu[j].id<<"\n";
cout<<"Averege :"<<stu[j].avg<<"\n\n";
}
void search(student_info *stu,int number)
{
int flag=0;
int i;
long int ID;
cout<<"\n\aPlease Enter The student ID To Search...\n";
cin>>ID;
for(i=0;i<number;i++)
{
if(ID==stu[i].id)
{
flag=1;
break;
}
}
if(flag==1)
{
cout<<" The Studen Has found... \n";
cout<<stu[i].name<<" "<<stu[i].family<<endl;
cout<<"averege: "<<stu[i].avg<<endl;
cout<<"ID :"<<stu[i].id<<"\n";
}
else
{
cout<<"THE STUDENT HAS NOT FOUND...\n";
}
}
void print_all(student_info *stu,int number)
{
cout<<" ++++++++++++++++++++++STUDENT LIST++++++++++++++++++++++++++++++++ \n";
for(int i=0;i<number;i++)
{
cout<<"************************************************** ***********************\n";
cout<<stu[i].name<<" "<<stu[i].family<<" "<<"Averege: "<<stu[i].avg<<" "<<"ID: "<<stu[i].id<<"\n";
}
}
void delete_student(student_info *stu,int number)
{
int ID;
int i;
bool flag=0;
cout<<"Please Enter The Student ID To Delete... \n";
cin>>ID;
for(i=0;i<number;i++)
{
if(ID==stu[i].id)
{
flag=1;
ID=i;
break;
}
}
if(flag==0)
{
cout<<"\nThis Id is not valid ....";
}
else
{
//stu[ID].name[10]=NULL;
delete stu[ID];
//stu[ID].avg='\0';
//stu[ID].id='\0';
}
}
#include<iostream>
#include<conio.h>
#include<string.h>
using namespace std;
class student_info
{
public:
char name[10],family[20];
long int id;
float avg;
void get_info(int i)
{
cout<<"\n"<<i+1<<"::\n";
cout<<"Name >>> ";
cin>>name;
cout<<"Family >>> ";
cin>>family;
cout<<"ID >>> ";
cin>>id;
cout<<"Averege >>> ";
cin>>avg;
cout<<".................................................. ........";
}
};
void find_max(student_info *,int );
void search(student_info *,int);
void print_all(student_info *,int);
void delete_student(student_info*,int);
void main()
{
cout<<"Please Enter number of student ... \n";
int number =0;
cin>>number;
student_info *stu;
stu=new student_info[number];
for(int i=0;i<number;i++)
{
//cout<<"\a";
stu[i].get_info(i);
}
//find maximum averege
find_max(stu,number);
//serch a student
search(stu,number);
//delete a student
delete_student(stu,number);
//print all student
print_all(stu,number);
}
void find_max(student_info *stu,int number)
{
float max=0;
int j;
for(int i=0;i<number;i++)
{
if(stu[i].avg > max)
{
max=stu[i].avg;
j=i;
}
}
cout<<"\a\a\n\t\t The best Student is: \n";
cout<<stu[j].name;
cout<<" "<<stu[j].family<<"\n";
cout<<"ID :"<<stu[j].id<<"\n";
cout<<"Averege :"<<stu[j].avg<<"\n\n";
}
void search(student_info *stu,int number)
{
int flag=0;
int i;
long int ID;
cout<<"\n\aPlease Enter The student ID To Search...\n";
cin>>ID;
for(i=0;i<number;i++)
{
if(ID==stu[i].id)
{
flag=1;
break;
}
}
if(flag==1)
{
cout<<" The Studen Has found... \n";
cout<<stu[i].name<<" "<<stu[i].family<<endl;
cout<<"averege: "<<stu[i].avg<<endl;
cout<<"ID :"<<stu[i].id<<"\n";
}
else
{
cout<<"THE STUDENT HAS NOT FOUND...\n";
}
}
void print_all(student_info *stu,int number)
{
cout<<" ++++++++++++++++++++++STUDENT LIST++++++++++++++++++++++++++++++++ \n";
for(int i=0;i<number;i++)
{
cout<<"************************************************** ***********************\n";
cout<<stu[i].name<<" "<<stu[i].family<<" "<<"Averege: "<<stu[i].avg<<" "<<"ID: "<<stu[i].id<<"\n";
}
}
void delete_student(student_info *stu,int number)
{
int ID;
int i;
bool flag=0;
cout<<"Please Enter The Student ID To Delete... \n";
cin>>ID;
for(i=0;i<number;i++)
{
if(ID==stu[i].id)
{
flag=1;
ID=i;
break;
}
}
if(flag==0)
{
cout<<"\nThis Id is not valid ....";
}
else
{
//stu[ID].name[10]=NULL;
delete stu[ID];
//stu[ID].avg='\0';
//stu[ID].id='\0';
}
}