计算机 数据结构实验汇总.docx
《计算机 数据结构实验汇总.docx》由会员分享,可在线阅读,更多相关《计算机 数据结构实验汇总.docx(83页珍藏版)》请在冰点文库上搜索。
计算机数据结构实验汇总
实验0
#include
#defineMaxListSize100
structSTUDENT{
charname[19];
longintserial_number;
charsex[10];
intage;
chardptment[20];
charhealth[10];
}stu[MaxListSize];
classSeqList{
private:
structSTUDENT*listitem;
intMaxSize;
intsize;
intNum;
public:
SeqList(constintNum2);
~SeqList();
intDelete(void);//删除函数
intInsert(void);//插入函数
intModify(void);//修改学生信息
voidInput();//输入学生信息数据
voidOutput(void);//输入数据
intLocate(void);//按值查找函数
intListSize(void);//求表长
intClearList(void);//清空表函数
voidWrite(void);
intReaddoc();
intGetData(inti);//取表中元素函数
intIsEmpty(void);//判别空函数
voidchuchu(void);
};
SeqList:
:
SeqList(constinti)
{
MaxSize=i;
Num=0;
size=0;
listitem=newSTUDENT;
listitem[i];
}
~SeqList()
cout<<""<<'\n';
cout<<"****************谢谢你使用学生健康信息查询系统****************"<<'\n';
voidSeqList:
Input()//输入学生信息数据
cout<<"请你输入你要输入的人数"<cin>>Num;inta=size+1;size=size+Num;for(listitem=&stu[a-1];listitem{cout<<"请输入第"<a++;cout<<"请输入姓名:";cin>>listitem->name;cout<<"请输入学号:";cin>>listitem->serial_number;cout<<"请输入性别:";cin>>listitem->sex;cout<<"请输入年龄:";cin>>listitem->age;cout<<"请输入所在院系:";cin>>listitem->dptment;cout<<"学生身体状况:";cin>>listitem->health;cout<<""<<'\n';}}intSeqList::Delete()//删除函数{cout<<"请输入你要删除的位置"<<'\n';cin>>Num;if((Num<1)||(Num>size)){cout<<"对不起,你要删除的位置不存在!"<<'\n';return0;}else{stu[99]=stu[Num-1];for(intj=Num;j{stu[j-1]=stu[j];}size=size-1;return1;}}intSeqList::Insert()//插入函数{listitem=&stu[90];cout<<"请输入姓名:";cin>>listitem->name;cout<<"请输入学号:";cin>>listitem->serial_number;cout<<"请输入性别:";cin>>listitem->sex;cout<<"请输入年龄:";cin>>listitem->age;cout<<"请输入所在院系:";cin>>listitem->dptment;cout<<"学生身体状况:";cin>>listitem->health;cout<<"请输入你要插入的位置"<<'\n';cin>>Num;if(size==MaxSize){cout<<"对不起,你插入的位置不存在!"<<'\n';return0;}if((Num<1)||(Num>size+1)){cout<<"对不起,你插入的位置不存在!"<<'\n';return0;}for(intj=size;j>=Num;j--)stu[j]=stu[j-1];stu[Num-1]=stu[90];size++;return1;}intSeqList::Locate()//按学号查找函数{cout<<"请输入你要查找的学生的学号"<<'\n';cin>>Num;cout<<""<<'\n';for(listitem=stu;;listitem++){while(listitem->serial_number==Num){cout<name<<'\t'<serial_number<<'\t'<sex<<'\t'<<listitem->dptment<<'\t'<age<<'\t'<health<<'\t'<<'\n';break;}if(listitem>=stu+size){cout<<"对不起,你要查找的学生学号不存在!"<<'\n';break;}}return1;}intSeqList::Modify()//修改信息函数{cout<<"请输入你要更改信息的学生的学号"<<'\n';cin>>Num;cout<<""<<'\n';for(listitem=stu;;listitem++){while(listitem->serial_number==Num){stu[99]=stu[Num-1];cout<name<<'\t'<serial_number<<'\t'<sex<<'\t'<<listitem->dptment<<'\t'<age<<'\t'<health<<'\t'<<'\n';cout<<"请输入姓名:";cin>>listitem->name;cout<<"请输入学号:";cin>>listitem->serial_number;cout<<"请输入性别:";cin>>listitem->sex;cout<<"请输入年龄:";cin>>listitem->age;cout<<"请输入所在院系:";cin>>listitem->dptment;cout<<"学生身体状况:";cin>>listitem->health;cout<name<<'\t'<serial_number<<'\t'<sex<<'\t'<<listitem->dptment<<'\t'<age<<'\t'<health<<'\t'<<'\n';break;}if(listitem>=stu+size){cout<<"对不起,你要修改的学生学号不存在!"<<'\n';break;}}return1;}intSeqList::ClearList()//清空表函数{size=0;cout<<"数据已经被清空"<<'\n';return1;}intSeqList::ListSize()//求表长{cout<return1;}voidSeqList::Write(){ofstreamoutput_file;output_file.open("SALARY.txt",ios::out);for(listitem=stu;listitem{output_file<name<<'\t'<serial_number<<'\t'<sex<<'\t'<<listitem->dptment<<'\t'<age<<'\t'<health<<'\t'<<"\n";}output_file.close();}intSeqList::Readdoc(){ifstreaminput_file;listitem=stu;size=0;cout<<""<<'\n';input_file.open("SALARY.txt");cout<<"Name\tNo.\tsex\tDptment\tage\thealth\t\n";while(input_file.good()){input_file>>listitem->name>>listitem->serial_number>>listitem->sex>>listitem->dptment>>listitem->age>>listitem->health;if(input_file.good()){cout<name<<'\t'<serial_number<<'\t'<sex<<'\t'<<listitem->dptment<<'\t'<age<<'\t'<health<<'\t'<<'\n';listitem++;size++;}else{cout<<""<<'\n';cout<<"文件夹已经读取完毕!"<<"\n";}}input_file.close();cout<<""<<'\n';return1;}intmain(){charchoice;cout<<"***********************欢迎你使用学生健康信息查询系统***************************"<<'\n';SeqListobj(MaxListSize);obj.Readdoc();for(inti=1;i>0;){cout<<"********************************请按照正确提示操作!****************************"<<'\n';cout<<""<<'\n';cout<<"输入学生信息0、删除按1、插入按2、更改信息按3、查找按4、清空按5、求链长6、结束7:"<<'\n';cin>>choice;cout<<""<<'\n';switch(choice){case'0':obj.Input();obj.Write();obj.Readdoc();break;case'1':obj.Delete();obj.Write();obj.Readdoc();break;case'2':obj.Insert();obj.Write();obj.Readdoc();break;case'3':obj.Modify();obj.Write();obj.Readdoc();break;case'4':obj.Locate();break;case'5':obj.ClearList();obj.Write();obj.Readdoc();break;case'6':obj.ListSize();break;case'7':i=-1;break;default:cout<<"Yourchoicearewrong!Pleaseenterrightchoice!"<<'\n';break;}}return0;}实验一#include#include#includestructListNode//定义单向链表的学生信息结点结构{charname[20];charnumber[20];charsex[20];intage;chardptment[20];charhealth[20];charcharacter[100];structListNode*next;};classLinkList//定义单向链表类{private:intNum;intsize;//计数学生人数ListNode*head;//链头结点ListNode*currptr;//当前结点ListNode*tail;//链尾结点ListNode*p;public:LinkList();//定义构造函数,初始化为不带表头结点的空链~LinkList();//析构函数intFindOrder();//按序号查找intFindname();//按姓名查找intFindNumber();//按学号查找intFindCharacter();//按特征查找intInserttail();//尾插入voidInsertHead();//头插入intInsertAfter();//后插入intInsertBefore();//前插入intDelete();//删除当前节点voidListSize();//求节点个数voidClearlist();//清空链表intStoreDoc();//向文件中写入数据intReaddoc();//从文件中读取信息voidOutput();//输出整个单向链表中的学生信息voidSwitchInsert(LinkList&two);//选择插入方式voidSwitchFind(LinkList&three);//选择查找方式voidModify(void);//修改学生信息};////////////////////////////////////////////////////////////////////////////////构造函数//函数功能:将链头指针初始化为不带表头结点的空链//函数参数:无//参数返回值:无LinkList::LinkList(){size=0;currptr=head=tail=NULL;}////////////////////////////////////////////////////////////////////////////////析构函数//函数功能:将链表所有结点的空间释放//函数参数:无//参数返回值:无LinkList::~LinkList(){while(head!=NULL){p=head;head=head->next;deletep;}cout<<"********************************谢谢你的使用!**********************************"<<'\n';}////////////////////////////////////////////////////////////////////////////////插入选择函数//函数功能:选择插入的方式//函数参数:ListList&two(拷贝构造函数)//参数返回值:无voidLinkList::SwitchInsert(LinkList&two){charchoice;for(inti=1;i<2;){cout<<"********************************请按照正确提示操作!***************************"<<'\n';cout<<""<<'\n';cout<<"头插入0、尾插入1、前插入2、后插入3、退出按4"<<'\n';cout<<""<<'\n';cin>>choice;switch(choice){case'0':two.InsertHead();two.Output();break;case'1':two.Inserttail();two.Output();break;case'2':two.InsertBefore();two.Output();break;case'3':two.InsertAfter();two.Output();break;case'4':i=9;break;default:cout<<"Yourchoicearewrong!Pleaseenterrightchoice!"<<'\n';break;}}}intLinkList::Inserttail()//尾插入{cout<<""<<'\n';cout<<"请你输入你要输入的人数"<cin>>Num;cout<<"Name\tNo.\t\tSex\tDptment\t\tAge\tHealth\tCharacter\t\n";for(inti=0;i{currptr=newListNode;size++;cin>>currptr->name>>currptr->number>>currptr->sex>>currptr->dptment>>currptr->age>>currptr->health>>currptr->character;currptr->next=NULL;if(tail==NULL){head=currptr;tail=head;}elsetail->next=currptr;tail=currptr;}cout<<""<<'\n';return1;}////////////////////////////////////////////////////////////////////////////////头插入建立链表函数//函数功能:用头插入建立链表方法生成一个具有n个结点的链表//函数参数://n表示结点个数//参数返回值:无voidLinkList::InsertHead()//头插入{cout<<""<<'\n';cout<<"请你输入你要输入的人数"<cin>>Num;cout<<"Name\tNo.\tSex\tDptment\tAge\tHealth\tcharacter\t\n";for(inti=0;i{currptr=newListNode;size++;cin>>currptr->name>>currptr->number>>currptr->sex>>currptr->dptment>>currptr->age>>currptr->health>>currptr->character;if(head==NULL)tail=currptr;currptr->next=head;head=currptr;}cout<<""<<'\n';}////////////////////////////////////////////////////////////////////////////////前插入信息链表函数//函数功能:用前插入插入学生信息进链表//函数参数:无//1:表示插入成功//0:表示插入失败intLinkList::InsertBefore()//前插入{ListNode*T;cout<<"请你输入你要插入的位置"<cin>>Num;cout<<""<<'\n';if((Num<1)||(Num>size)){cout<<""<<'\n';cout<<"对不起,无法插入!"<<'\n';return0;}else{p=newListNode;cout<<"请输入这位同学的信息"<<'\n';cout<<"Name\tNo.\tSex\tDptment\tAg
cin>>Num;
inta=size+1;
size=size+Num;
for(listitem=&stu[a-1];listitem{cout<<"请输入第"<a++;cout<<"请输入姓名:";cin>>listitem->name;cout<<"请输入学号:";cin>>listitem->serial_number;cout<<"请输入性别:";cin>>listitem->sex;cout<<"请输入年龄:";cin>>listitem->age;cout<<"请输入所在院系:";cin>>listitem->dptment;cout<<"学生身体状况:";cin>>listitem->health;cout<<""<<'\n';}}intSeqList::Delete()//删除函数{cout<<"请输入你要删除的位置"<<'\n';cin>>Num;if((Num<1)||(Num>size)){cout<<"对不起,你要删除的位置不存在!"<<'\n';return0;}else{stu[99]=stu[Num-1];for(intj=Num;j{stu[j-1]=stu[j];}size=size-1;return1;}}intSeqList::Insert()//插入函数{listitem=&stu[90];cout<<"请输入姓名:";cin>>listitem->name;cout<<"请输入学号:";cin>>listitem->serial_number;cout<<"请输入性别:";cin>>listitem->sex;cout<<"请输入年龄:";cin>>listitem->age;cout<<"请输入所在院系:";cin>>listitem->dptment;cout<<"学生身体状况:";cin>>listitem->health;cout<<"请输入你要插入的位置"<<'\n';cin>>Num;if(size==MaxSize){cout<<"对不起,你插入的位置不存在!"<<'\n';return0;}if((Num<1)||(Num>size+1)){cout<<"对不起,你插入的位置不存在!"<<'\n';return0;}for(intj=size;j>=Num;j--)stu[j]=stu[j-1];stu[Num-1]=stu[90];size++;return1;}intSeqList::Locate()//按学号查找函数{cout<<"请输入你要查找的学生的学号"<<'\n';cin>>Num;cout<<""<<'\n';for(listitem=stu;;listitem++){while(listitem->serial_number==Num){cout<name<<'\t'<serial_number<<'\t'<sex<<'\t'<<listitem->dptment<<'\t'<age<<'\t'<health<<'\t'<<'\n';break;}if(listitem>=stu+size){cout<<"对不起,你要查找的学生学号不存在!"<<'\n';break;}}return1;}intSeqList::Modify()//修改信息函数{cout<<"请输入你要更改信息的学生的学号"<<'\n';cin>>Num;cout<<""<<'\n';for(listitem=stu;;listitem++){while(listitem->serial_number==Num){stu[99]=stu[Num-1];cout<name<<'\t'<serial_number<<'\t'<sex<<'\t'<<listitem->dptment<<'\t'<age<<'\t'<health<<'\t'<<'\n';cout<<"请输入姓名:";cin>>listitem->name;cout<<"请输入学号:";cin>>listitem->serial_number;cout<<"请输入性别:";cin>>listitem->sex;cout<<"请输入年龄:";cin>>listitem->age;cout<<"请输入所在院系:";cin>>listitem->dptment;cout<<"学生身体状况:";cin>>listitem->health;cout<name<<'\t'<serial_number<<'\t'<sex<<'\t'<<listitem->dptment<<'\t'<age<<'\t'<health<<'\t'<<'\n';break;}if(listitem>=stu+size){cout<<"对不起,你要修改的学生学号不存在!"<<'\n';break;}}return1;}intSeqList::ClearList()//清空表函数{size=0;cout<<"数据已经被清空"<<'\n';return1;}intSeqList::ListSize()//求表长{cout<return1;}voidSeqList::Write(){ofstreamoutput_file;output_file.open("SALARY.txt",ios::out);for(listitem=stu;listitem{output_file<name<<'\t'<serial_number<<'\t'<sex<<'\t'<<listitem->dptment<<'\t'<age<<'\t'<health<<'\t'<<"\n";}output_file.close();}intSeqList::Readdoc(){ifstreaminput_file;listitem=stu;size=0;cout<<""<<'\n';input_file.open("SALARY.txt");cout<<"Name\tNo.\tsex\tDptment\tage\thealth\t\n";while(input_file.good()){input_file>>listitem->name>>listitem->serial_number>>listitem->sex>>listitem->dptment>>listitem->age>>listitem->health;if(input_file.good()){cout<name<<'\t'<serial_number<<'\t'<sex<<'\t'<<listitem->dptment<<'\t'<age<<'\t'<health<<'\t'<<'\n';listitem++;size++;}else{cout<<""<<'\n';cout<<"文件夹已经读取完毕!"<<"\n";}}input_file.close();cout<<""<<'\n';return1;}intmain(){charchoice;cout<<"***********************欢迎你使用学生健康信息查询系统***************************"<<'\n';SeqListobj(MaxListSize);obj.Readdoc();for(inti=1;i>0;){cout<<"********************************请按照正确提示操作!****************************"<<'\n';cout<<""<<'\n';cout<<"输入学生信息0、删除按1、插入按2、更改信息按3、查找按4、清空按5、求链长6、结束7:"<<'\n';cin>>choice;cout<<""<<'\n';switch(choice){case'0':obj.Input();obj.Write();obj.Readdoc();break;case'1':obj.Delete();obj.Write();obj.Readdoc();break;case'2':obj.Insert();obj.Write();obj.Readdoc();break;case'3':obj.Modify();obj.Write();obj.Readdoc();break;case'4':obj.Locate();break;case'5':obj.ClearList();obj.Write();obj.Readdoc();break;case'6':obj.ListSize();break;case'7':i=-1;break;default:cout<<"Yourchoicearewrong!Pleaseenterrightchoice!"<<'\n';break;}}return0;}实验一#include#include#includestructListNode//定义单向链表的学生信息结点结构{charname[20];charnumber[20];charsex[20];intage;chardptment[20];charhealth[20];charcharacter[100];structListNode*next;};classLinkList//定义单向链表类{private:intNum;intsize;//计数学生人数ListNode*head;//链头结点ListNode*currptr;//当前结点ListNode*tail;//链尾结点ListNode*p;public:LinkList();//定义构造函数,初始化为不带表头结点的空链~LinkList();//析构函数intFindOrder();//按序号查找intFindname();//按姓名查找intFindNumber();//按学号查找intFindCharacter();//按特征查找intInserttail();//尾插入voidInsertHead();//头插入intInsertAfter();//后插入intInsertBefore();//前插入intDelete();//删除当前节点voidListSize();//求节点个数voidClearlist();//清空链表intStoreDoc();//向文件中写入数据intReaddoc();//从文件中读取信息voidOutput();//输出整个单向链表中的学生信息voidSwitchInsert(LinkList&two);//选择插入方式voidSwitchFind(LinkList&three);//选择查找方式voidModify(void);//修改学生信息};////////////////////////////////////////////////////////////////////////////////构造函数//函数功能:将链头指针初始化为不带表头结点的空链//函数参数:无//参数返回值:无LinkList::LinkList(){size=0;currptr=head=tail=NULL;}////////////////////////////////////////////////////////////////////////////////析构函数//函数功能:将链表所有结点的空间释放//函数参数:无//参数返回值:无LinkList::~LinkList(){while(head!=NULL){p=head;head=head->next;deletep;}cout<<"********************************谢谢你的使用!**********************************"<<'\n';}////////////////////////////////////////////////////////////////////////////////插入选择函数//函数功能:选择插入的方式//函数参数:ListList&two(拷贝构造函数)//参数返回值:无voidLinkList::SwitchInsert(LinkList&two){charchoice;for(inti=1;i<2;){cout<<"********************************请按照正确提示操作!***************************"<<'\n';cout<<""<<'\n';cout<<"头插入0、尾插入1、前插入2、后插入3、退出按4"<<'\n';cout<<""<<'\n';cin>>choice;switch(choice){case'0':two.InsertHead();two.Output();break;case'1':two.Inserttail();two.Output();break;case'2':two.InsertBefore();two.Output();break;case'3':two.InsertAfter();two.Output();break;case'4':i=9;break;default:cout<<"Yourchoicearewrong!Pleaseenterrightchoice!"<<'\n';break;}}}intLinkList::Inserttail()//尾插入{cout<<""<<'\n';cout<<"请你输入你要输入的人数"<cin>>Num;cout<<"Name\tNo.\t\tSex\tDptment\t\tAge\tHealth\tCharacter\t\n";for(inti=0;i{currptr=newListNode;size++;cin>>currptr->name>>currptr->number>>currptr->sex>>currptr->dptment>>currptr->age>>currptr->health>>currptr->character;currptr->next=NULL;if(tail==NULL){head=currptr;tail=head;}elsetail->next=currptr;tail=currptr;}cout<<""<<'\n';return1;}////////////////////////////////////////////////////////////////////////////////头插入建立链表函数//函数功能:用头插入建立链表方法生成一个具有n个结点的链表//函数参数://n表示结点个数//参数返回值:无voidLinkList::InsertHead()//头插入{cout<<""<<'\n';cout<<"请你输入你要输入的人数"<cin>>Num;cout<<"Name\tNo.\tSex\tDptment\tAge\tHealth\tcharacter\t\n";for(inti=0;i{currptr=newListNode;size++;cin>>currptr->name>>currptr->number>>currptr->sex>>currptr->dptment>>currptr->age>>currptr->health>>currptr->character;if(head==NULL)tail=currptr;currptr->next=head;head=currptr;}cout<<""<<'\n';}////////////////////////////////////////////////////////////////////////////////前插入信息链表函数//函数功能:用前插入插入学生信息进链表//函数参数:无//1:表示插入成功//0:表示插入失败intLinkList::InsertBefore()//前插入{ListNode*T;cout<<"请你输入你要插入的位置"<cin>>Num;cout<<""<<'\n';if((Num<1)||(Num>size)){cout<<""<<'\n';cout<<"对不起,无法插入!"<<'\n';return0;}else{p=newListNode;cout<<"请输入这位同学的信息"<<'\n';cout<<"Name\tNo.\tSex\tDptment\tAg
cout<<"请输入第"<a++;cout<<"请输入姓名:";cin>>listitem->name;cout<<"请输入学号:";cin>>listitem->serial_number;cout<<"请输入性别:";cin>>listitem->sex;cout<<"请输入年龄:";cin>>listitem->age;cout<<"请输入所在院系:";cin>>listitem->dptment;cout<<"学生身体状况:";cin>>listitem->health;cout<<""<<'\n';}}intSeqList::Delete()//删除函数{cout<<"请输入你要删除的位置"<<'\n';cin>>Num;if((Num<1)||(Num>size)){cout<<"对不起,你要删除的位置不存在!"<<'\n';return0;}else{stu[99]=stu[Num-1];for(intj=Num;j{stu[j-1]=stu[j];}size=size-1;return1;}}intSeqList::Insert()//插入函数{listitem=&stu[90];cout<<"请输入姓名:";cin>>listitem->name;cout<<"请输入学号:";cin>>listitem->serial_number;cout<<"请输入性别:";cin>>listitem->sex;cout<<"请输入年龄:";cin>>listitem->age;cout<<"请输入所在院系:";cin>>listitem->dptment;cout<<"学生身体状况:";cin>>listitem->health;cout<<"请输入你要插入的位置"<<'\n';cin>>Num;if(size==MaxSize){cout<<"对不起,你插入的位置不存在!"<<'\n';return0;}if((Num<1)||(Num>size+1)){cout<<"对不起,你插入的位置不存在!"<<'\n';return0;}for(intj=size;j>=Num;j--)stu[j]=stu[j-1];stu[Num-1]=stu[90];size++;return1;}intSeqList::Locate()//按学号查找函数{cout<<"请输入你要查找的学生的学号"<<'\n';cin>>Num;cout<<""<<'\n';for(listitem=stu;;listitem++){while(listitem->serial_number==Num){cout<name<<'\t'<serial_number<<'\t'<sex<<'\t'<<listitem->dptment<<'\t'<age<<'\t'<health<<'\t'<<'\n';break;}if(listitem>=stu+size){cout<<"对不起,你要查找的学生学号不存在!"<<'\n';break;}}return1;}intSeqList::Modify()//修改信息函数{cout<<"请输入你要更改信息的学生的学号"<<'\n';cin>>Num;cout<<""<<'\n';for(listitem=stu;;listitem++){while(listitem->serial_number==Num){stu[99]=stu[Num-1];cout<name<<'\t'<serial_number<<'\t'<sex<<'\t'<<listitem->dptment<<'\t'<age<<'\t'<health<<'\t'<<'\n';cout<<"请输入姓名:";cin>>listitem->name;cout<<"请输入学号:";cin>>listitem->serial_number;cout<<"请输入性别:";cin>>listitem->sex;cout<<"请输入年龄:";cin>>listitem->age;cout<<"请输入所在院系:";cin>>listitem->dptment;cout<<"学生身体状况:";cin>>listitem->health;cout<name<<'\t'<serial_number<<'\t'<sex<<'\t'<<listitem->dptment<<'\t'<age<<'\t'<health<<'\t'<<'\n';break;}if(listitem>=stu+size){cout<<"对不起,你要修改的学生学号不存在!"<<'\n';break;}}return1;}intSeqList::ClearList()//清空表函数{size=0;cout<<"数据已经被清空"<<'\n';return1;}intSeqList::ListSize()//求表长{cout<return1;}voidSeqList::Write(){ofstreamoutput_file;output_file.open("SALARY.txt",ios::out);for(listitem=stu;listitem{output_file<name<<'\t'<serial_number<<'\t'<sex<<'\t'<<listitem->dptment<<'\t'<age<<'\t'<health<<'\t'<<"\n";}output_file.close();}intSeqList::Readdoc(){ifstreaminput_file;listitem=stu;size=0;cout<<""<<'\n';input_file.open("SALARY.txt");cout<<"Name\tNo.\tsex\tDptment\tage\thealth\t\n";while(input_file.good()){input_file>>listitem->name>>listitem->serial_number>>listitem->sex>>listitem->dptment>>listitem->age>>listitem->health;if(input_file.good()){cout<name<<'\t'<serial_number<<'\t'<sex<<'\t'<<listitem->dptment<<'\t'<age<<'\t'<health<<'\t'<<'\n';listitem++;size++;}else{cout<<""<<'\n';cout<<"文件夹已经读取完毕!"<<"\n";}}input_file.close();cout<<""<<'\n';return1;}intmain(){charchoice;cout<<"***********************欢迎你使用学生健康信息查询系统***************************"<<'\n';SeqListobj(MaxListSize);obj.Readdoc();for(inti=1;i>0;){cout<<"********************************请按照正确提示操作!****************************"<<'\n';cout<<""<<'\n';cout<<"输入学生信息0、删除按1、插入按2、更改信息按3、查找按4、清空按5、求链长6、结束7:"<<'\n';cin>>choice;cout<<""<<'\n';switch(choice){case'0':obj.Input();obj.Write();obj.Readdoc();break;case'1':obj.Delete();obj.Write();obj.Readdoc();break;case'2':obj.Insert();obj.Write();obj.Readdoc();break;case'3':obj.Modify();obj.Write();obj.Readdoc();break;case'4':obj.Locate();break;case'5':obj.ClearList();obj.Write();obj.Readdoc();break;case'6':obj.ListSize();break;case'7':i=-1;break;default:cout<<"Yourchoicearewrong!Pleaseenterrightchoice!"<<'\n';break;}}return0;}实验一#include#include#includestructListNode//定义单向链表的学生信息结点结构{charname[20];charnumber[20];charsex[20];intage;chardptment[20];charhealth[20];charcharacter[100];structListNode*next;};classLinkList//定义单向链表类{private:intNum;intsize;//计数学生人数ListNode*head;//链头结点ListNode*currptr;//当前结点ListNode*tail;//链尾结点ListNode*p;public:LinkList();//定义构造函数,初始化为不带表头结点的空链~LinkList();//析构函数intFindOrder();//按序号查找intFindname();//按姓名查找intFindNumber();//按学号查找intFindCharacter();//按特征查找intInserttail();//尾插入voidInsertHead();//头插入intInsertAfter();//后插入intInsertBefore();//前插入intDelete();//删除当前节点voidListSize();//求节点个数voidClearlist();//清空链表intStoreDoc();//向文件中写入数据intReaddoc();//从文件中读取信息voidOutput();//输出整个单向链表中的学生信息voidSwitchInsert(LinkList&two);//选择插入方式voidSwitchFind(LinkList&three);//选择查找方式voidModify(void);//修改学生信息};////////////////////////////////////////////////////////////////////////////////构造函数//函数功能:将链头指针初始化为不带表头结点的空链//函数参数:无//参数返回值:无LinkList::LinkList(){size=0;currptr=head=tail=NULL;}////////////////////////////////////////////////////////////////////////////////析构函数//函数功能:将链表所有结点的空间释放//函数参数:无//参数返回值:无LinkList::~LinkList(){while(head!=NULL){p=head;head=head->next;deletep;}cout<<"********************************谢谢你的使用!**********************************"<<'\n';}////////////////////////////////////////////////////////////////////////////////插入选择函数//函数功能:选择插入的方式//函数参数:ListList&two(拷贝构造函数)//参数返回值:无voidLinkList::SwitchInsert(LinkList&two){charchoice;for(inti=1;i<2;){cout<<"********************************请按照正确提示操作!***************************"<<'\n';cout<<""<<'\n';cout<<"头插入0、尾插入1、前插入2、后插入3、退出按4"<<'\n';cout<<""<<'\n';cin>>choice;switch(choice){case'0':two.InsertHead();two.Output();break;case'1':two.Inserttail();two.Output();break;case'2':two.InsertBefore();two.Output();break;case'3':two.InsertAfter();two.Output();break;case'4':i=9;break;default:cout<<"Yourchoicearewrong!Pleaseenterrightchoice!"<<'\n';break;}}}intLinkList::Inserttail()//尾插入{cout<<""<<'\n';cout<<"请你输入你要输入的人数"<cin>>Num;cout<<"Name\tNo.\t\tSex\tDptment\t\tAge\tHealth\tCharacter\t\n";for(inti=0;i{currptr=newListNode;size++;cin>>currptr->name>>currptr->number>>currptr->sex>>currptr->dptment>>currptr->age>>currptr->health>>currptr->character;currptr->next=NULL;if(tail==NULL){head=currptr;tail=head;}elsetail->next=currptr;tail=currptr;}cout<<""<<'\n';return1;}////////////////////////////////////////////////////////////////////////////////头插入建立链表函数//函数功能:用头插入建立链表方法生成一个具有n个结点的链表//函数参数://n表示结点个数//参数返回值:无voidLinkList::InsertHead()//头插入{cout<<""<<'\n';cout<<"请你输入你要输入的人数"<cin>>Num;cout<<"Name\tNo.\tSex\tDptment\tAge\tHealth\tcharacter\t\n";for(inti=0;i{currptr=newListNode;size++;cin>>currptr->name>>currptr->number>>currptr->sex>>currptr->dptment>>currptr->age>>currptr->health>>currptr->character;if(head==NULL)tail=currptr;currptr->next=head;head=currptr;}cout<<""<<'\n';}////////////////////////////////////////////////////////////////////////////////前插入信息链表函数//函数功能:用前插入插入学生信息进链表//函数参数:无//1:表示插入成功//0:表示插入失败intLinkList::InsertBefore()//前插入{ListNode*T;cout<<"请你输入你要插入的位置"<cin>>Num;cout<<""<<'\n';if((Num<1)||(Num>size)){cout<<""<<'\n';cout<<"对不起,无法插入!"<<'\n';return0;}else{p=newListNode;cout<<"请输入这位同学的信息"<<'\n';cout<<"Name\tNo.\tSex\tDptment\tAg
a++;
cout<<"请输入姓名:
";
cin>>listitem->name;
cout<<"请输入学号:
cin>>listitem->serial_number;
cout<<"请输入性别:
cin>>listitem->sex;
cout<<"请输入年龄:
cin>>listitem->age;
cout<<"请输入所在院系:
cin>>listitem->dptment;
cout<<"学生身体状况:
cin>>listitem->health;
intSeqList:
Delete()//删除函数
cout<<"请输入你要删除的位置"<<'\n';
if((Num<1)||(Num>size)){
cout<<"对不起,你要删除的位置不存在!
"<<'\n';
return0;
}else{
stu[99]=stu[Num-1];
for(intj=Num;j{stu[j-1]=stu[j];}size=size-1;return1;}}intSeqList::Insert()//插入函数{listitem=&stu[90];cout<<"请输入姓名:";cin>>listitem->name;cout<<"请输入学号:";cin>>listitem->serial_number;cout<<"请输入性别:";cin>>listitem->sex;cout<<"请输入年龄:";cin>>listitem->age;cout<<"请输入所在院系:";cin>>listitem->dptment;cout<<"学生身体状况:";cin>>listitem->health;cout<<"请输入你要插入的位置"<<'\n';cin>>Num;if(size==MaxSize){cout<<"对不起,你插入的位置不存在!"<<'\n';return0;}if((Num<1)||(Num>size+1)){cout<<"对不起,你插入的位置不存在!"<<'\n';return0;}for(intj=size;j>=Num;j--)stu[j]=stu[j-1];stu[Num-1]=stu[90];size++;return1;}intSeqList::Locate()//按学号查找函数{cout<<"请输入你要查找的学生的学号"<<'\n';cin>>Num;cout<<""<<'\n';for(listitem=stu;;listitem++){while(listitem->serial_number==Num){cout<name<<'\t'<serial_number<<'\t'<sex<<'\t'<<listitem->dptment<<'\t'<age<<'\t'<health<<'\t'<<'\n';break;}if(listitem>=stu+size){cout<<"对不起,你要查找的学生学号不存在!"<<'\n';break;}}return1;}intSeqList::Modify()//修改信息函数{cout<<"请输入你要更改信息的学生的学号"<<'\n';cin>>Num;cout<<""<<'\n';for(listitem=stu;;listitem++){while(listitem->serial_number==Num){stu[99]=stu[Num-1];cout<name<<'\t'<serial_number<<'\t'<sex<<'\t'<<listitem->dptment<<'\t'<age<<'\t'<health<<'\t'<<'\n';cout<<"请输入姓名:";cin>>listitem->name;cout<<"请输入学号:";cin>>listitem->serial_number;cout<<"请输入性别:";cin>>listitem->sex;cout<<"请输入年龄:";cin>>listitem->age;cout<<"请输入所在院系:";cin>>listitem->dptment;cout<<"学生身体状况:";cin>>listitem->health;cout<name<<'\t'<serial_number<<'\t'<sex<<'\t'<<listitem->dptment<<'\t'<age<<'\t'<health<<'\t'<<'\n';break;}if(listitem>=stu+size){cout<<"对不起,你要修改的学生学号不存在!"<<'\n';break;}}return1;}intSeqList::ClearList()//清空表函数{size=0;cout<<"数据已经被清空"<<'\n';return1;}intSeqList::ListSize()//求表长{cout<return1;}voidSeqList::Write(){ofstreamoutput_file;output_file.open("SALARY.txt",ios::out);for(listitem=stu;listitem{output_file<name<<'\t'<serial_number<<'\t'<sex<<'\t'<<listitem->dptment<<'\t'<age<<'\t'<health<<'\t'<<"\n";}output_file.close();}intSeqList::Readdoc(){ifstreaminput_file;listitem=stu;size=0;cout<<""<<'\n';input_file.open("SALARY.txt");cout<<"Name\tNo.\tsex\tDptment\tage\thealth\t\n";while(input_file.good()){input_file>>listitem->name>>listitem->serial_number>>listitem->sex>>listitem->dptment>>listitem->age>>listitem->health;if(input_file.good()){cout<name<<'\t'<serial_number<<'\t'<sex<<'\t'<<listitem->dptment<<'\t'<age<<'\t'<health<<'\t'<<'\n';listitem++;size++;}else{cout<<""<<'\n';cout<<"文件夹已经读取完毕!"<<"\n";}}input_file.close();cout<<""<<'\n';return1;}intmain(){charchoice;cout<<"***********************欢迎你使用学生健康信息查询系统***************************"<<'\n';SeqListobj(MaxListSize);obj.Readdoc();for(inti=1;i>0;){cout<<"********************************请按照正确提示操作!****************************"<<'\n';cout<<""<<'\n';cout<<"输入学生信息0、删除按1、插入按2、更改信息按3、查找按4、清空按5、求链长6、结束7:"<<'\n';cin>>choice;cout<<""<<'\n';switch(choice){case'0':obj.Input();obj.Write();obj.Readdoc();break;case'1':obj.Delete();obj.Write();obj.Readdoc();break;case'2':obj.Insert();obj.Write();obj.Readdoc();break;case'3':obj.Modify();obj.Write();obj.Readdoc();break;case'4':obj.Locate();break;case'5':obj.ClearList();obj.Write();obj.Readdoc();break;case'6':obj.ListSize();break;case'7':i=-1;break;default:cout<<"Yourchoicearewrong!Pleaseenterrightchoice!"<<'\n';break;}}return0;}实验一#include#include#includestructListNode//定义单向链表的学生信息结点结构{charname[20];charnumber[20];charsex[20];intage;chardptment[20];charhealth[20];charcharacter[100];structListNode*next;};classLinkList//定义单向链表类{private:intNum;intsize;//计数学生人数ListNode*head;//链头结点ListNode*currptr;//当前结点ListNode*tail;//链尾结点ListNode*p;public:LinkList();//定义构造函数,初始化为不带表头结点的空链~LinkList();//析构函数intFindOrder();//按序号查找intFindname();//按姓名查找intFindNumber();//按学号查找intFindCharacter();//按特征查找intInserttail();//尾插入voidInsertHead();//头插入intInsertAfter();//后插入intInsertBefore();//前插入intDelete();//删除当前节点voidListSize();//求节点个数voidClearlist();//清空链表intStoreDoc();//向文件中写入数据intReaddoc();//从文件中读取信息voidOutput();//输出整个单向链表中的学生信息voidSwitchInsert(LinkList&two);//选择插入方式voidSwitchFind(LinkList&three);//选择查找方式voidModify(void);//修改学生信息};////////////////////////////////////////////////////////////////////////////////构造函数//函数功能:将链头指针初始化为不带表头结点的空链//函数参数:无//参数返回值:无LinkList::LinkList(){size=0;currptr=head=tail=NULL;}////////////////////////////////////////////////////////////////////////////////析构函数//函数功能:将链表所有结点的空间释放//函数参数:无//参数返回值:无LinkList::~LinkList(){while(head!=NULL){p=head;head=head->next;deletep;}cout<<"********************************谢谢你的使用!**********************************"<<'\n';}////////////////////////////////////////////////////////////////////////////////插入选择函数//函数功能:选择插入的方式//函数参数:ListList&two(拷贝构造函数)//参数返回值:无voidLinkList::SwitchInsert(LinkList&two){charchoice;for(inti=1;i<2;){cout<<"********************************请按照正确提示操作!***************************"<<'\n';cout<<""<<'\n';cout<<"头插入0、尾插入1、前插入2、后插入3、退出按4"<<'\n';cout<<""<<'\n';cin>>choice;switch(choice){case'0':two.InsertHead();two.Output();break;case'1':two.Inserttail();two.Output();break;case'2':two.InsertBefore();two.Output();break;case'3':two.InsertAfter();two.Output();break;case'4':i=9;break;default:cout<<"Yourchoicearewrong!Pleaseenterrightchoice!"<<'\n';break;}}}intLinkList::Inserttail()//尾插入{cout<<""<<'\n';cout<<"请你输入你要输入的人数"<cin>>Num;cout<<"Name\tNo.\t\tSex\tDptment\t\tAge\tHealth\tCharacter\t\n";for(inti=0;i{currptr=newListNode;size++;cin>>currptr->name>>currptr->number>>currptr->sex>>currptr->dptment>>currptr->age>>currptr->health>>currptr->character;currptr->next=NULL;if(tail==NULL){head=currptr;tail=head;}elsetail->next=currptr;tail=currptr;}cout<<""<<'\n';return1;}////////////////////////////////////////////////////////////////////////////////头插入建立链表函数//函数功能:用头插入建立链表方法生成一个具有n个结点的链表//函数参数://n表示结点个数//参数返回值:无voidLinkList::InsertHead()//头插入{cout<<""<<'\n';cout<<"请你输入你要输入的人数"<cin>>Num;cout<<"Name\tNo.\tSex\tDptment\tAge\tHealth\tcharacter\t\n";for(inti=0;i{currptr=newListNode;size++;cin>>currptr->name>>currptr->number>>currptr->sex>>currptr->dptment>>currptr->age>>currptr->health>>currptr->character;if(head==NULL)tail=currptr;currptr->next=head;head=currptr;}cout<<""<<'\n';}////////////////////////////////////////////////////////////////////////////////前插入信息链表函数//函数功能:用前插入插入学生信息进链表//函数参数:无//1:表示插入成功//0:表示插入失败intLinkList::InsertBefore()//前插入{ListNode*T;cout<<"请你输入你要插入的位置"<cin>>Num;cout<<""<<'\n';if((Num<1)||(Num>size)){cout<<""<<'\n';cout<<"对不起,无法插入!"<<'\n';return0;}else{p=newListNode;cout<<"请输入这位同学的信息"<<'\n';cout<<"Name\tNo.\tSex\tDptment\tAg
stu[j-1]=stu[j];
size=size-1;
return1;
Insert()//插入函数
listitem=&stu[90];
cout<<"请输入你要插入的位置"<<'\n';
if(size==MaxSize){
cout<<"对不起,你插入的位置不存在!
return0;}
if((Num<1)||(Num>size+1)){
for(intj=size;j>=Num;j--)
stu[j]=stu[j-1];
stu[Num-1]=stu[90];
size++;
Locate()//按学号查找函数
cout<<"请输入你要查找的学生的学号"<<'\n';
for(listitem=stu;;listitem++){
while(listitem->serial_number==Num){
cout<name<<'\t'<serial_number<<'\t'<sex<<'\t'<<
listitem->dptment<<'\t'<age<<'\t'<health<<'\t'<<'\n';
break;
if(listitem>=stu+size){
cout<<"对不起,你要查找的学生学号不存在!
Modify()//修改信息函数
cout<<"请输入你要更改信息的学生的学号"<<'\n';
while(listitem->serial_number==Num)
{stu[99]=stu[Num-1];
cout<<"对不起,你要修改的学生学号不存在!
}return1;
ClearList()//清空表函数
cout<<"数据已经被清空"<<'\n';
ListSize()//求表长
cout<return1;}voidSeqList::Write(){ofstreamoutput_file;output_file.open("SALARY.txt",ios::out);for(listitem=stu;listitem{output_file<name<<'\t'<serial_number<<'\t'<sex<<'\t'<<listitem->dptment<<'\t'<age<<'\t'<health<<'\t'<<"\n";}output_file.close();}intSeqList::Readdoc(){ifstreaminput_file;listitem=stu;size=0;cout<<""<<'\n';input_file.open("SALARY.txt");cout<<"Name\tNo.\tsex\tDptment\tage\thealth\t\n";while(input_file.good()){input_file>>listitem->name>>listitem->serial_number>>listitem->sex>>listitem->dptment>>listitem->age>>listitem->health;if(input_file.good()){cout<name<<'\t'<serial_number<<'\t'<sex<<'\t'<<listitem->dptment<<'\t'<age<<'\t'<health<<'\t'<<'\n';listitem++;size++;}else{cout<<""<<'\n';cout<<"文件夹已经读取完毕!"<<"\n";}}input_file.close();cout<<""<<'\n';return1;}intmain(){charchoice;cout<<"***********************欢迎你使用学生健康信息查询系统***************************"<<'\n';SeqListobj(MaxListSize);obj.Readdoc();for(inti=1;i>0;){cout<<"********************************请按照正确提示操作!****************************"<<'\n';cout<<""<<'\n';cout<<"输入学生信息0、删除按1、插入按2、更改信息按3、查找按4、清空按5、求链长6、结束7:"<<'\n';cin>>choice;cout<<""<<'\n';switch(choice){case'0':obj.Input();obj.Write();obj.Readdoc();break;case'1':obj.Delete();obj.Write();obj.Readdoc();break;case'2':obj.Insert();obj.Write();obj.Readdoc();break;case'3':obj.Modify();obj.Write();obj.Readdoc();break;case'4':obj.Locate();break;case'5':obj.ClearList();obj.Write();obj.Readdoc();break;case'6':obj.ListSize();break;case'7':i=-1;break;default:cout<<"Yourchoicearewrong!Pleaseenterrightchoice!"<<'\n';break;}}return0;}实验一#include#include#includestructListNode//定义单向链表的学生信息结点结构{charname[20];charnumber[20];charsex[20];intage;chardptment[20];charhealth[20];charcharacter[100];structListNode*next;};classLinkList//定义单向链表类{private:intNum;intsize;//计数学生人数ListNode*head;//链头结点ListNode*currptr;//当前结点ListNode*tail;//链尾结点ListNode*p;public:LinkList();//定义构造函数,初始化为不带表头结点的空链~LinkList();//析构函数intFindOrder();//按序号查找intFindname();//按姓名查找intFindNumber();//按学号查找intFindCharacter();//按特征查找intInserttail();//尾插入voidInsertHead();//头插入intInsertAfter();//后插入intInsertBefore();//前插入intDelete();//删除当前节点voidListSize();//求节点个数voidClearlist();//清空链表intStoreDoc();//向文件中写入数据intReaddoc();//从文件中读取信息voidOutput();//输出整个单向链表中的学生信息voidSwitchInsert(LinkList&two);//选择插入方式voidSwitchFind(LinkList&three);//选择查找方式voidModify(void);//修改学生信息};////////////////////////////////////////////////////////////////////////////////构造函数//函数功能:将链头指针初始化为不带表头结点的空链//函数参数:无//参数返回值:无LinkList::LinkList(){size=0;currptr=head=tail=NULL;}////////////////////////////////////////////////////////////////////////////////析构函数//函数功能:将链表所有结点的空间释放//函数参数:无//参数返回值:无LinkList::~LinkList(){while(head!=NULL){p=head;head=head->next;deletep;}cout<<"********************************谢谢你的使用!**********************************"<<'\n';}////////////////////////////////////////////////////////////////////////////////插入选择函数//函数功能:选择插入的方式//函数参数:ListList&two(拷贝构造函数)//参数返回值:无voidLinkList::SwitchInsert(LinkList&two){charchoice;for(inti=1;i<2;){cout<<"********************************请按照正确提示操作!***************************"<<'\n';cout<<""<<'\n';cout<<"头插入0、尾插入1、前插入2、后插入3、退出按4"<<'\n';cout<<""<<'\n';cin>>choice;switch(choice){case'0':two.InsertHead();two.Output();break;case'1':two.Inserttail();two.Output();break;case'2':two.InsertBefore();two.Output();break;case'3':two.InsertAfter();two.Output();break;case'4':i=9;break;default:cout<<"Yourchoicearewrong!Pleaseenterrightchoice!"<<'\n';break;}}}intLinkList::Inserttail()//尾插入{cout<<""<<'\n';cout<<"请你输入你要输入的人数"<cin>>Num;cout<<"Name\tNo.\t\tSex\tDptment\t\tAge\tHealth\tCharacter\t\n";for(inti=0;i{currptr=newListNode;size++;cin>>currptr->name>>currptr->number>>currptr->sex>>currptr->dptment>>currptr->age>>currptr->health>>currptr->character;currptr->next=NULL;if(tail==NULL){head=currptr;tail=head;}elsetail->next=currptr;tail=currptr;}cout<<""<<'\n';return1;}////////////////////////////////////////////////////////////////////////////////头插入建立链表函数//函数功能:用头插入建立链表方法生成一个具有n个结点的链表//函数参数://n表示结点个数//参数返回值:无voidLinkList::InsertHead()//头插入{cout<<""<<'\n';cout<<"请你输入你要输入的人数"<cin>>Num;cout<<"Name\tNo.\tSex\tDptment\tAge\tHealth\tcharacter\t\n";for(inti=0;i{currptr=newListNode;size++;cin>>currptr->name>>currptr->number>>currptr->sex>>currptr->dptment>>currptr->age>>currptr->health>>currptr->character;if(head==NULL)tail=currptr;currptr->next=head;head=currptr;}cout<<""<<'\n';}////////////////////////////////////////////////////////////////////////////////前插入信息链表函数//函数功能:用前插入插入学生信息进链表//函数参数:无//1:表示插入成功//0:表示插入失败intLinkList::InsertBefore()//前插入{ListNode*T;cout<<"请你输入你要插入的位置"<cin>>Num;cout<<""<<'\n';if((Num<1)||(Num>size)){cout<<""<<'\n';cout<<"对不起,无法插入!"<<'\n';return0;}else{p=newListNode;cout<<"请输入这位同学的信息"<<'\n';cout<<"Name\tNo.\tSex\tDptment\tAg
Write()
ofstreamoutput_file;
output_file.open("SALARY.txt",ios:
out);
for(listitem=stu;listitem{output_file<name<<'\t'<serial_number<<'\t'<sex<<'\t'<<listitem->dptment<<'\t'<age<<'\t'<health<<'\t'<<"\n";}output_file.close();}intSeqList::Readdoc(){ifstreaminput_file;listitem=stu;size=0;cout<<""<<'\n';input_file.open("SALARY.txt");cout<<"Name\tNo.\tsex\tDptment\tage\thealth\t\n";while(input_file.good()){input_file>>listitem->name>>listitem->serial_number>>listitem->sex>>listitem->dptment>>listitem->age>>listitem->health;if(input_file.good()){cout<name<<'\t'<serial_number<<'\t'<sex<<'\t'<<listitem->dptment<<'\t'<age<<'\t'<health<<'\t'<<'\n';listitem++;size++;}else{cout<<""<<'\n';cout<<"文件夹已经读取完毕!"<<"\n";}}input_file.close();cout<<""<<'\n';return1;}intmain(){charchoice;cout<<"***********************欢迎你使用学生健康信息查询系统***************************"<<'\n';SeqListobj(MaxListSize);obj.Readdoc();for(inti=1;i>0;){cout<<"********************************请按照正确提示操作!****************************"<<'\n';cout<<""<<'\n';cout<<"输入学生信息0、删除按1、插入按2、更改信息按3、查找按4、清空按5、求链长6、结束7:"<<'\n';cin>>choice;cout<<""<<'\n';switch(choice){case'0':obj.Input();obj.Write();obj.Readdoc();break;case'1':obj.Delete();obj.Write();obj.Readdoc();break;case'2':obj.Insert();obj.Write();obj.Readdoc();break;case'3':obj.Modify();obj.Write();obj.Readdoc();break;case'4':obj.Locate();break;case'5':obj.ClearList();obj.Write();obj.Readdoc();break;case'6':obj.ListSize();break;case'7':i=-1;break;default:cout<<"Yourchoicearewrong!Pleaseenterrightchoice!"<<'\n';break;}}return0;}实验一#include#include#includestructListNode//定义单向链表的学生信息结点结构{charname[20];charnumber[20];charsex[20];intage;chardptment[20];charhealth[20];charcharacter[100];structListNode*next;};classLinkList//定义单向链表类{private:intNum;intsize;//计数学生人数ListNode*head;//链头结点ListNode*currptr;//当前结点ListNode*tail;//链尾结点ListNode*p;public:LinkList();//定义构造函数,初始化为不带表头结点的空链~LinkList();//析构函数intFindOrder();//按序号查找intFindname();//按姓名查找intFindNumber();//按学号查找intFindCharacter();//按特征查找intInserttail();//尾插入voidInsertHead();//头插入intInsertAfter();//后插入intInsertBefore();//前插入intDelete();//删除当前节点voidListSize();//求节点个数voidClearlist();//清空链表intStoreDoc();//向文件中写入数据intReaddoc();//从文件中读取信息voidOutput();//输出整个单向链表中的学生信息voidSwitchInsert(LinkList&two);//选择插入方式voidSwitchFind(LinkList&three);//选择查找方式voidModify(void);//修改学生信息};////////////////////////////////////////////////////////////////////////////////构造函数//函数功能:将链头指针初始化为不带表头结点的空链//函数参数:无//参数返回值:无LinkList::LinkList(){size=0;currptr=head=tail=NULL;}////////////////////////////////////////////////////////////////////////////////析构函数//函数功能:将链表所有结点的空间释放//函数参数:无//参数返回值:无LinkList::~LinkList(){while(head!=NULL){p=head;head=head->next;deletep;}cout<<"********************************谢谢你的使用!**********************************"<<'\n';}////////////////////////////////////////////////////////////////////////////////插入选择函数//函数功能:选择插入的方式//函数参数:ListList&two(拷贝构造函数)//参数返回值:无voidLinkList::SwitchInsert(LinkList&two){charchoice;for(inti=1;i<2;){cout<<"********************************请按照正确提示操作!***************************"<<'\n';cout<<""<<'\n';cout<<"头插入0、尾插入1、前插入2、后插入3、退出按4"<<'\n';cout<<""<<'\n';cin>>choice;switch(choice){case'0':two.InsertHead();two.Output();break;case'1':two.Inserttail();two.Output();break;case'2':two.InsertBefore();two.Output();break;case'3':two.InsertAfter();two.Output();break;case'4':i=9;break;default:cout<<"Yourchoicearewrong!Pleaseenterrightchoice!"<<'\n';break;}}}intLinkList::Inserttail()//尾插入{cout<<""<<'\n';cout<<"请你输入你要输入的人数"<cin>>Num;cout<<"Name\tNo.\t\tSex\tDptment\t\tAge\tHealth\tCharacter\t\n";for(inti=0;i{currptr=newListNode;size++;cin>>currptr->name>>currptr->number>>currptr->sex>>currptr->dptment>>currptr->age>>currptr->health>>currptr->character;currptr->next=NULL;if(tail==NULL){head=currptr;tail=head;}elsetail->next=currptr;tail=currptr;}cout<<""<<'\n';return1;}////////////////////////////////////////////////////////////////////////////////头插入建立链表函数//函数功能:用头插入建立链表方法生成一个具有n个结点的链表//函数参数://n表示结点个数//参数返回值:无voidLinkList::InsertHead()//头插入{cout<<""<<'\n';cout<<"请你输入你要输入的人数"<cin>>Num;cout<<"Name\tNo.\tSex\tDptment\tAge\tHealth\tcharacter\t\n";for(inti=0;i{currptr=newListNode;size++;cin>>currptr->name>>currptr->number>>currptr->sex>>currptr->dptment>>currptr->age>>currptr->health>>currptr->character;if(head==NULL)tail=currptr;currptr->next=head;head=currptr;}cout<<""<<'\n';}////////////////////////////////////////////////////////////////////////////////前插入信息链表函数//函数功能:用前插入插入学生信息进链表//函数参数:无//1:表示插入成功//0:表示插入失败intLinkList::InsertBefore()//前插入{ListNode*T;cout<<"请你输入你要插入的位置"<cin>>Num;cout<<""<<'\n';if((Num<1)||(Num>size)){cout<<""<<'\n';cout<<"对不起,无法插入!"<<'\n';return0;}else{p=newListNode;cout<<"请输入这位同学的信息"<<'\n';cout<<"Name\tNo.\tSex\tDptment\tAg
output_file<name<<'\t'<serial_number<<'\t'<sex<<'\t'<<
listitem->dptment<<'\t'<age<<'\t'<health<<'\t'<<"\n";
output_file.close();
Readdoc()
ifstreaminput_file;
listitem=stu;
input_file.open("SALARY.txt");
cout<<"Name\tNo.\tsex\tDptment\tage\thealth\t\n";
while(input_file.good()){
input_file>>listitem->name>>listitem->serial_number>>listitem->sex>>
listitem->dptment>>listitem->age>>listitem->health;
if(input_file.good()){
listitem++;
cout<<"文件夹已经读取完毕!
"<<"\n";
input_file.close();
intmain()
charchoice;
cout<<"***********************欢迎你使用学生健康信息查询系统***************************"<<'\n';
SeqListobj(MaxListSize);
obj.Readdoc();
for(inti=1;i>0;){
cout<<"********************************请按照正确提示操作!
****************************"<<'\n';
cout<<"输入学生信息0、删除按1、插入按2、更改信息按3、查找按4、清空按5、求链长6、结束7:
cin>>choice;
switch(choice){
case'0':
obj.Input();
obj.Write();
case'1':
obj.Delete();
case'2':
obj.Insert();
case'3':
obj.Modify();
case'4':
obj.Locate();
case'5':
obj.ClearList();
case'6':
obj.ListSize();
case'7':
i=-1;
default:
cout<<"Yourchoicearewrong!
Pleaseenterrightchoice!
实验一
structListNode//定义单向链表的学生信息结点结构
charname[20];
charnumber[20];
charsex[20];
charhealth[20];
charcharacter[100];
structListNode*next;
classLinkList//定义单向链表类
intsize;//计数学生人数
ListNode*head;//链头结点
ListNode*currptr;//当前结点
ListNode*tail;//链尾结点
ListNode*p;
LinkList();//定义构造函数,初始化为不带表头结点的空链
~LinkList();//析构函数
intFindOrder();//按序号查找
intFindname();//按姓名查找
intFindNumber();//按学号查找
intFindCharacter();//按特征查找
intInserttail();//尾插入
voidInsertHead();//头插入
intInsertAfter();//后插入
intInsertBefore();//前插入
intDelete();//删除当前节点
voidListSize();//求节点个数
voidClearlist();//清空链表
intStoreDoc();//向文件中写入数据
intReaddoc();//从文件中读取信息
voidOutput();//输出整个单向链表中的学生信息
voidSwitchInsert(LinkList&two);//选择插入方式
voidSwitchFind(LinkList&three);//选择查找方式
voidModify(void);//修改学生信息
//////////////////////////////////////////////////////////////////////////////
//构造函数
//函数功能:
将链头指针初始化为不带表头结点的空链
//函数参数:
无
//参数返回值:
LinkList:
LinkList()
currptr=head=tail=NULL;
//析构函数
将链表所有结点的空间释放
~LinkList()
while(head!
=NULL)
p=head;
head=head->next;
deletep;
cout<<"********************************谢谢你的使用!
**********************************"<<'\n';
//插入选择函数
选择插入的方式
ListList&two(拷贝构造函数)
voidLinkList:
SwitchInsert(LinkList&two)
for(inti=1;i<2;){
***************************"<<'\n';
cout<<"头插入0、尾插入1、前插入2、后插入3、退出按4"<<'\n';
switch(choice)
two.InsertHead();
two.Output();
two.Inserttail();
two.InsertBefore();
two.InsertAfter();
i=9;
intLinkList:
Inserttail()//尾插入
cout<<"请你输入你要输入的人数"<cin>>Num;cout<<"Name\tNo.\t\tSex\tDptment\t\tAge\tHealth\tCharacter\t\n";for(inti=0;i{currptr=newListNode;size++;cin>>currptr->name>>currptr->number>>currptr->sex>>currptr->dptment>>currptr->age>>currptr->health>>currptr->character;currptr->next=NULL;if(tail==NULL){head=currptr;tail=head;}elsetail->next=currptr;tail=currptr;}cout<<""<<'\n';return1;}////////////////////////////////////////////////////////////////////////////////头插入建立链表函数//函数功能:用头插入建立链表方法生成一个具有n个结点的链表//函数参数://n表示结点个数//参数返回值:无voidLinkList::InsertHead()//头插入{cout<<""<<'\n';cout<<"请你输入你要输入的人数"<cin>>Num;cout<<"Name\tNo.\tSex\tDptment\tAge\tHealth\tcharacter\t\n";for(inti=0;i{currptr=newListNode;size++;cin>>currptr->name>>currptr->number>>currptr->sex>>currptr->dptment>>currptr->age>>currptr->health>>currptr->character;if(head==NULL)tail=currptr;currptr->next=head;head=currptr;}cout<<""<<'\n';}////////////////////////////////////////////////////////////////////////////////前插入信息链表函数//函数功能:用前插入插入学生信息进链表//函数参数:无//1:表示插入成功//0:表示插入失败intLinkList::InsertBefore()//前插入{ListNode*T;cout<<"请你输入你要插入的位置"<cin>>Num;cout<<""<<'\n';if((Num<1)||(Num>size)){cout<<""<<'\n';cout<<"对不起,无法插入!"<<'\n';return0;}else{p=newListNode;cout<<"请输入这位同学的信息"<<'\n';cout<<"Name\tNo.\tSex\tDptment\tAg
cout<<"Name\tNo.\t\tSex\tDptment\t\tAge\tHealth\tCharacter\t\n";
for(inti=0;i{currptr=newListNode;size++;cin>>currptr->name>>currptr->number>>currptr->sex>>currptr->dptment>>currptr->age>>currptr->health>>currptr->character;currptr->next=NULL;if(tail==NULL){head=currptr;tail=head;}elsetail->next=currptr;tail=currptr;}cout<<""<<'\n';return1;}////////////////////////////////////////////////////////////////////////////////头插入建立链表函数//函数功能:用头插入建立链表方法生成一个具有n个结点的链表//函数参数://n表示结点个数//参数返回值:无voidLinkList::InsertHead()//头插入{cout<<""<<'\n';cout<<"请你输入你要输入的人数"<cin>>Num;cout<<"Name\tNo.\tSex\tDptment\tAge\tHealth\tcharacter\t\n";for(inti=0;i{currptr=newListNode;size++;cin>>currptr->name>>currptr->number>>currptr->sex>>currptr->dptment>>currptr->age>>currptr->health>>currptr->character;if(head==NULL)tail=currptr;currptr->next=head;head=currptr;}cout<<""<<'\n';}////////////////////////////////////////////////////////////////////////////////前插入信息链表函数//函数功能:用前插入插入学生信息进链表//函数参数:无//1:表示插入成功//0:表示插入失败intLinkList::InsertBefore()//前插入{ListNode*T;cout<<"请你输入你要插入的位置"<cin>>Num;cout<<""<<'\n';if((Num<1)||(Num>size)){cout<<""<<'\n';cout<<"对不起,无法插入!"<<'\n';return0;}else{p=newListNode;cout<<"请输入这位同学的信息"<<'\n';cout<<"Name\tNo.\tSex\tDptment\tAg
currptr=newListNode;
cin>>currptr->name>>currptr->number>>currptr->sex>>currptr->dptment>>currptr->age>>currptr->health>>currptr->character;
currptr->next=NULL;
if(tail==NULL){
head=currptr;
tail=head;
elsetail->next=currptr;
tail=currptr;
//头插入建立链表函数
用头插入建立链表方法生成一个具有n个结点的链表
//n表示结点个数
InsertHead()//头插入
cout<<"请你输入你要输入的人数"<cin>>Num;cout<<"Name\tNo.\tSex\tDptment\tAge\tHealth\tcharacter\t\n";for(inti=0;i{currptr=newListNode;size++;cin>>currptr->name>>currptr->number>>currptr->sex>>currptr->dptment>>currptr->age>>currptr->health>>currptr->character;if(head==NULL)tail=currptr;currptr->next=head;head=currptr;}cout<<""<<'\n';}////////////////////////////////////////////////////////////////////////////////前插入信息链表函数//函数功能:用前插入插入学生信息进链表//函数参数:无//1:表示插入成功//0:表示插入失败intLinkList::InsertBefore()//前插入{ListNode*T;cout<<"请你输入你要插入的位置"<cin>>Num;cout<<""<<'\n';if((Num<1)||(Num>size)){cout<<""<<'\n';cout<<"对不起,无法插入!"<<'\n';return0;}else{p=newListNode;cout<<"请输入这位同学的信息"<<'\n';cout<<"Name\tNo.\tSex\tDptment\tAg
cout<<"Name\tNo.\tSex\tDptment\tAge\tHealth\tcharacter\t\n";
for(inti=0;i{currptr=newListNode;size++;cin>>currptr->name>>currptr->number>>currptr->sex>>currptr->dptment>>currptr->age>>currptr->health>>currptr->character;if(head==NULL)tail=currptr;currptr->next=head;head=currptr;}cout<<""<<'\n';}////////////////////////////////////////////////////////////////////////////////前插入信息链表函数//函数功能:用前插入插入学生信息进链表//函数参数:无//1:表示插入成功//0:表示插入失败intLinkList::InsertBefore()//前插入{ListNode*T;cout<<"请你输入你要插入的位置"<cin>>Num;cout<<""<<'\n';if((Num<1)||(Num>size)){cout<<""<<'\n';cout<<"对不起,无法插入!"<<'\n';return0;}else{p=newListNode;cout<<"请输入这位同学的信息"<<'\n';cout<<"Name\tNo.\tSex\tDptment\tAg
if(head==NULL)tail=currptr;
currptr->next=head;
//前插入信息链表函数
用前插入插入学生信息进链表
//1:
表示插入成功
//0:
表示插入失败
InsertBefore()//前插入
ListNode*T;
cout<<"请你输入你要插入的位置"<cin>>Num;cout<<""<<'\n';if((Num<1)||(Num>size)){cout<<""<<'\n';cout<<"对不起,无法插入!"<<'\n';return0;}else{p=newListNode;cout<<"请输入这位同学的信息"<<'\n';cout<<"Name\tNo.\tSex\tDptment\tAg
if((Num<1)||(Num>size))
cout<<"对不起,无法插入!
p=newListNode;
cout<<"请输入这位同学的信息"<<'\n';
cout<<"Name\tNo.\tSex\tDptment\tAg
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2