本人大一菜鸟,写一个题目写了一下午还没过,真的很崩溃,有哪个大佬可以帮忙看看,万分感谢!
switch(a)
{
case 1:
addastudent();break;
case 2:
revise();break;
case 3:
Delete();break;
case 4:
SearchById();break;
case 5:
arrangebyId();
SearchByName();break;
case 6:
arrangebyId();
print();break;
case 7:
arrangebygrades();
print();
}
cin>>a;
}
return 0;
}
void addastudent()
{
information* p=phead->next;
if(p==NULL)
{p=new information;
cin>>p->id>>p->grade1>>p->grade2>>p->grade3;
cin.getline(p->name,51);
p->last=phead;p->next=NULL;phead->next=p;
}
else {
information* tmp=NULL;
for(;p!=NULL;p=p->next)tmp=p;
p=new information;
cin>>p->id>>p->grade1>>p->grade2>>p->grade3;
cin.getline(p->name,51);
p->last=tmp;p->next=NULL;p->last->next=p;
}
}
void revise()
{
int id1;
cin>>id1;
information* p=phead->next;
for(;p!=NULL;p=p->next)
{
if(p->id==id1){p->id=id1;
cin>>p->grade1>>p->grade2>>p->grade3;
cin.getline(p->name,51);
}
}
}
void Delete()
{
int id2;
cin>>id2;
information* p=phead->next;
for(;p!=NULL;p=p->next)
{
if(p->id==id2){
p->last->next=p->next;
p->next->last=p->last;
delete p;
}
}
}
void SearchById()
{
int id3;cin>>id3;
information* p=phead->next;
for(;p!=NULL;p=p->next)
{
if(p->id==id3){
cout<id<<" "<name<<" "<grade1<<" "<grade2<<" "<grade3<<endl;break;
}
}
}
void SearchByName()
{
char name1[51];cin.getline(name1,51);;
information* p=phead->next;
for(;p!=NULL;p=p->next)
{
if(strcmp(p->name,name1)==0){
cout<id<<" "<name<<" "<grade1<<" "<grade2<<" "<grade3<<endl;
}
}
}
void print()
{
information* p=phead->next;
for(;p!=NULL;p=p->next)
{
cout<id<<" "<name<<" "<grade1<<" "<grade2<<" "<grade3<<endl;
}
}
void arrangebyId()
{
information* p=phead->next;
for(;p!=NULL;p=p->next)
{
information* p0=p,tmpp=p;int tmpid=p->id;
for(;p0->next!=NULL;p0=p0->next)
{
if(tmpid>p0->next->id){
tmpp=p0->next;tmpid=p0->next->id;
}
}
tmpp->last->next=tmpp->next;tmpp->next->last=tmpp->last;
tmpp->last=p->last;tmpp->next=p;
p->last->next=tmpp;p->last=tmpp;
}
}
void arrangebygrades()
{
information p=phead->next;int sumofgrades;
for(;p!=NULL;p=p->next)
{
information* p0=p,*tmpp=p;int sumofgrades=p->grade1+p->grade2+p->grade3;
for(;p0->next!=NULL;p0=p0->next)
{
int sumofgrades0=p0->next->grade1+p0->next->grade2+p0->next->grade3;
if(sumofgrades<sumofgrades0){
tmpp=p0->next;sumofgrades=sumofgrades0;
}
}
tmpp->last->next=tmpp->next;tmpp->next->last=tmpp->last;
tmpp->last=p->last;tmpp->next=p;
p->last->next=tmpp;p->last=tmpp;
}
}