在这个函数中,我使用了 2 个条件,对于 response == 1 ,指针由注册号返回,并且该函数工作得很好,另一方面,如果 response==2 ,指针由字符串名称返回,在这种情况下它采用新的输入名称,但程序突然结束,
我已经添加了指针返回功能和编辑功能!请帮忙
// edit student function , helping functions , pointer by registration and name
// at end
void LAB_PROJECT::edit_student()
{
int response = 0;
string search_name;
int search_reg = 0;
cout << "\n \n -- Select Search Option 1 or 2 Accordingly" << endl;
cout << "\n 1--Registration ";
cout << "\n 2--Student's Name" << " >> " ;
cin >> response;
if (response==1)
{
cout << "\n \n Enter Registration No: ";
cin >> search_reg;
Node*temp1;
temp1 = pointer_by_registration(search_reg);
cin.ignore(1,'\n');
string new_name;
cout << "\n \n Enter New Name ";
getline(cin,new_name,'\n');
temp1->student_name = new_name;
return;
}
else if(response==2)
{
cout << "\n \n Enter Student's Name , that you want to search " << endl;
getline(cin,search_name,'\n');
cin.ignore(1,'\n');
Node*temp2;
temp2 = pointer_by_name(search_name);
string new_name;
cout << "\n \n Enter New Name";
getline(cin,new_name,'\n');
cin.ignore(1,'\n');
temp2->student_name=new_name;
return;
}
}
Node* LAB_PROJECT::pointer_by_name(string getin)
{
string checker;
checker = getin;
Node*temp1;
temp1 = startptr;
while(temp1 != NULL)
{
if (checker == temp1->student_name)
{
return (temp1);
}
temp1=temp1->nextptr;
}
}
Node* LAB_PROJECT::pointer_by_registration(int reg_key)
{
int key = 0;
key = reg_key;
Node* temp1;
temp1 = startptr;
while(temp1 !=NULL)
{
if(key == temp1->registration)
{
return(temp1);
}
temp1=temp1->nextptr;
}
}