计算机 数据结构实验汇总.docx

上传人:b****1 文档编号:2574222 上传时间:2023-05-04 格式:DOCX 页数:83 大小:31.25KB
下载 相关 举报
计算机 数据结构实验汇总.docx_第1页
第1页 / 共83页
计算机 数据结构实验汇总.docx_第2页
第2页 / 共83页
计算机 数据结构实验汇总.docx_第3页
第3页 / 共83页
计算机 数据结构实验汇总.docx_第4页
第4页 / 共83页
计算机 数据结构实验汇总.docx_第5页
第5页 / 共83页
计算机 数据结构实验汇总.docx_第6页
第6页 / 共83页
计算机 数据结构实验汇总.docx_第7页
第7页 / 共83页
计算机 数据结构实验汇总.docx_第8页
第8页 / 共83页
计算机 数据结构实验汇总.docx_第9页
第9页 / 共83页
计算机 数据结构实验汇总.docx_第10页
第10页 / 共83页
计算机 数据结构实验汇总.docx_第11页
第11页 / 共83页
计算机 数据结构实验汇总.docx_第12页
第12页 / 共83页
计算机 数据结构实验汇总.docx_第13页
第13页 / 共83页
计算机 数据结构实验汇总.docx_第14页
第14页 / 共83页
计算机 数据结构实验汇总.docx_第15页
第15页 / 共83页
计算机 数据结构实验汇总.docx_第16页
第16页 / 共83页
计算机 数据结构实验汇总.docx_第17页
第17页 / 共83页
计算机 数据结构实验汇总.docx_第18页
第18页 / 共83页
计算机 数据结构实验汇总.docx_第19页
第19页 / 共83页
计算机 数据结构实验汇总.docx_第20页
第20页 / 共83页
亲,该文档总共83页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

计算机 数据结构实验汇总.docx

《计算机 数据结构实验汇总.docx》由会员分享,可在线阅读,更多相关《计算机 数据结构实验汇总.docx(83页珍藏版)》请在冰点文库上搜索。

计算机 数据结构实验汇总.docx

计算机数据结构实验汇总

实验0

#include

#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:

:

~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

#include

structListNode//定义单向链表的学生信息结点结构

{

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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2