实验报告.docx
- 文档编号:27776562
- 上传时间:2023-07-04
- 格式:DOCX
- 页数:11
- 大小:16.09KB
实验报告.docx
《实验报告.docx》由会员分享,可在线阅读,更多相关《实验报告.docx(11页珍藏版)》请在冰豆网上搜索。
实验报告
北京理工大学珠海学院实验报告
ZHUHAICAMPAUSOFBEIJINGINSTITUTEOFTECHNOLOGY
一、实验内容
定义一个包含学生信息(学号,姓名,成绩)的的顺序表和链表,使其具有如下功能:
(1)根据指定学生个数,逐个输入学生信息;
(2)逐个显示学生表中所有学生的相关信息;
(3)根据姓名进行查找,返回此学生的学号和成绩;
(4)根据指定的位置可返回相应的学生信息(学号,姓名,成绩);
(5)给定一个学生信息,插入到表中指定的位置;
(6)删除指定位置的学生记录;
(7)统计表中学生个数。
二、实验要求:
(1)程序要添加适当的注释,程序的书写要采用缩进格式。
(2)程序要具在一定的健壮性,即当输入数据非法时,程序也能适当地做出反应,如插入删除时指定的位置不对等等。
(3)程序要做到界面友好,在程序运行时用户可以根据相应的提示信息进行操作。
(4)根据实验报告模板详细书写实验报告,在实验报告中给出链表根据姓名进行查找的算法和插入算法的流程图。
(5)上传源程序和实验报告到教师机的相应班级所在文件夹。
顺序表的源程序保存为,链表的源程序保存为,实验报告命名为:
实验报告。
源程序和实验报告压缩为一个文件(如果定义了头文件则一起压缩),按以下方式命名:
15数字媒体技术X班——学号——姓名.rar,如15数字媒体技术X班0薛力.rar。
二、程序实现(内容、步骤、程序)
顺序表
#include<>
#include
#include<>
#include<>
usingnamespacestd;
#defineTRUE1
#defineFALSE0
#defineOK1
#defineERROR0
#defineOVERFLOW-2
typedefintStatus;
typedefstruct
{
charno[8];
charname[10];
intprice;
}Student;据指定学生个数,逐个输入学生信息\n";
cout<<"2.逐个显示学生表中所有学生的相关信息\n";
cout<<"3.根据姓名进行查找,返回此学生的学号和成绩\n";
cout<<"4.根据指定的位置可返回相应的学生信息(学号,姓名,成绩)\n";
cout<<"5.给定一个学生信息,插入到表中指定的位置\n";
cout<<"6.删除指定位置的学生记录\n";
cout<<"7.统计表中学生个数\n";
cout<<"\n";
cout<<"请输入你的选择:
\n";
cin>>k;
switch(k)
{
case1:
cout<<"请输入学生人数:
\n";
cin>>n;
for(inti=1;i<=n;i++)
{
cout<<"请录入第"<
cout<<"输入学生学号:
\n";
cin>>;
cout<<"输入学生姓名:
\n";
cin>>;
cout<<"输入学生成绩:
\n";
cin>>;
ListInsert(L,i,e);
}
break;
case2:
cout<<"学号\t姓名\t成绩\t\n";
ListTraverse(L,print);
break;
case3:
cout<<"输入要查找学生的姓名:
\n";
cin>>;
j=LocateElem(L,e,namecompare);
if(j)
{
GetElem(L,j,e);
cout<<"学号\t姓名\t成绩\t\n";
print(e);
}
else
cout<<"没有符合条件的元素\n";
break;
case4:
cout<<"输入待查找的学生的位置:
\n";
cin>>i;
j=GetElem(L,i,e);
if(j)
{
GetElem(L,i,e);
cout<<"学号\t姓名\t成绩\t\n";
print(e);
}
else
cout<<"查找失败!
\n";
break;
case5:
cout<<"输入待插入学生的位置:
\n";
cin>>i;
cout<<"输入待插入学生的学号:
\n";
cin>>;
cout<<"输入学生姓名:
\n";
cin>>;
cout<<"输入学生成绩:
\n";
cin>>;
ListInsert(L,i,e);
break;
case6:
cout<<"输入待删除学生的位置:
\n";
cin>>i;
j=GetElem(L,i,e);
if(j)
{
ListDelete(L,i,e);
cout<<"删除成功,删除学生为:
\n";
cout<<"学号\t姓名\t成绩\t\n";
print(e);
}
else
cout<<"没有该位置,无法删除!
\n";
break;
case7:
len=ListLength(L);
cout<<"表中学生个数为"< cout<<"\n"; break; case0: exit(0); default: cout<<"选择错误,重新开始! \n"; } } } 单链表 #include<> #include #include<> #include<> usingnamespacestd; #defineTRUE1 #defineFALSE0 #defineOK1 #defineERROR0 #defineOVERFLOW-2 typedefintStatus; typedefstruct { charno[8]; charname[10]; intprice; }Student; typedefstructLNode { Studentdata; structLNode*next; }LNode,*LinkList; voidInitList(LinkList&L)据指定学生个数,逐个输入学生信息\n"; cout<<"2.逐个显示学生表中所有学生的相关信息\n"; cout<<"3.根据姓名进行查找,返回此学生的学号和成绩\n"; cout<<"4.根据指定的位置可返回相应的学生信息(学号,姓名,成绩)\n"; cout<<"5.给定一个学生信息,插入到表中指定的位置\n"; cout<<"6.删除指定位置的学生记录\n"; cout<<"7.统计表中学生个数\n"; cout<<"\n"; cout<<"请输入你的选择: \n"; cin>>k; switch(k) { case1: printf("请输入学生人数: \n"); cin>>n; for(i=1;i<=n;i++) { printf("请录入第%d个学生信息\n",i); printf("输入学生学号: \n"); cin>>; printf("输入学生姓名: \n"); cin>>; printf("输入学生成绩: \n"); cin>>; ListInsert(L,i,e); cout<<"\n"; } break; case2: printf("学号\t姓名\t成绩\t\n"); ListTraverse(L,print); cout<<"\n"; break; case3: printf("输入要查找学生的名字: \n"); cin>>; j=LocateElem(L,e,namecompare); if(j) { GetElem(L,j,e); printf("学号\t姓名\t成绩\t\n"); print(e); } else printf("没有符合条件的元素\n"); cout<<"\n"; break; case4: cout<<"输入待查找的学生的位置: \n"; cin>>i; j=GetElem(L,i,e); if(j) { GetElem(L,i,e); cout<<"学号\t姓名\t成绩\t\n"; print(e); } else cout<<"查找失败! \n"; cout<<"\n"; break; case5: cout<<"输入待插入学生的位置: \n"; cin>>i; cout<<"输入待插入学生的学号: \n"; cin>>; cout<<"输入学生姓名: \n"; cin>>; cout<<"输入学生成绩: \n"; cin>>; ListInsert(L,i,e); cout<<"\n"; break; case6: cout<<"输入待删除学生的位置: \n"; cin>>i; j=GetElem(L,i,e); if(j) { ListDelete(L,i,e); cout<<"删除成功,删除学生为: \n"; cout<<"学号\t姓名\t成绩\t\n"; print(e); } else cout<<"没有该位置,无法删除! \n"; cout<<"\n"; break; case7: len=ListLength(L); cout<<"表中学生个数为"< cout<<"\n"; break; case0: exit(0); default: printf("选择错误,重新开始! \n"); } } } 3、调试与运行 顺序表: 单链表: 四、实验总结: 1、学到了如何利用顺序表和单链表建立学生管理程序。 2、当插入学生时数据结构算法不对,查阅了课本找到了问题。 3、实验中需要特别注意输入学生算法,指针域、前驱结点和后继结点不能弄错,否则后面的功能都无法实现了。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 报告