建立一个顺序表表中元素为学生每个学生信息包含姓名学号和成绩三部分对该表实现输出插入删除.docx
《建立一个顺序表表中元素为学生每个学生信息包含姓名学号和成绩三部分对该表实现输出插入删除.docx》由会员分享,可在线阅读,更多相关《建立一个顺序表表中元素为学生每个学生信息包含姓名学号和成绩三部分对该表实现输出插入删除.docx(11页珍藏版)》请在冰豆网上搜索。
![建立一个顺序表表中元素为学生每个学生信息包含姓名学号和成绩三部分对该表实现输出插入删除.docx](https://file1.bdocx.com/fileroot1/2022-10/12/1e181bc1-161d-4e67-a1ae-dfd63ce89027/1e181bc1-161d-4e67-a1ae-dfd63ce890271.gif)
建立一个顺序表表中元素为学生每个学生信息包含姓名学号和成绩三部分对该表实现输出插入删除
建立一个顺序表-表中元素为学生-每个学生信息包含姓名、学号和成绩三部分-对该表实现输出、插入、删除、
云南大学物理实验教学中心
实验报告
课程名称:
计算机软件技术基础
实验项目:
实验二、线性表(顺序存储)及其应用
学生姓名:
学号:
学院系级专业
成绩
指导教师:
实验时间:
年日时分至时分
实验地点:
实验类型:
教学(演示□验证□综合█设计□)学生科研□
课外开放□测试□其它□
一、实验目的:
掌握顺序表的建立及基本操作。
二、问题:
建立一个顺序表,表中元素为学生,每个学生信息包含姓名、学号和成绩三部分,对该表实现:
①输出、②插入、③删除、④查找功能,并计算出平均成绩和总成绩。
三、程序的编写与调试
1、原程序:
#include
usingnamespacestd;
typedefstruct
{longdoublenum;charname[10];intscore;}STUDENT;
classsq_LList
{private:
intmm;
intnn;
STUDENT*v;
public:
sq_LList(int);
voidprt_sq_LList();
voidins_sq_LList(int,STUDENT);
voiddel_sq_LList(int);
voidsea_num_sq_LList(int);
};
voidsea_name_sq_LList(int,char批注[A2]);
voidcal_sq_LList(int);
/*输出*/
分数:
"<}
/*插入*/voidsq_LList:
:
ins_sq_LList(inti,STUDENTb){intk;
if(nn==mm)
{cout<<"overflow";return;}
if(i>nn)i=nn+1;
if(i<1)i=1;
for(k=nn;k>=i;k--)v[k]=v[k-1];
v[i-1]=b;nn=nn+1;
}
/*删除*/
voidsq_LList:
:
del_sq_LList(inti){intk;
if(nn==0)
{cout<<"underflow"<if((i<1)||(i>nn)){cout<<"Notthiselementinthelist!
"<}
for(k=i;knn=nn-1;
}
/*按学号查找*/
voidsq_LList:
:
sea_num_sq_LList(inti){intk,t;
t=0;
for(i=0;i{if(v[i].num==k)
{t=t+1;
cout<<"学号:
"<"<"<<"分数:
"<}
}
if(t==0)
cout<<"Nothisstudentinthelist!
"<}
/*按姓名查找*/
voidsq_LList:
:
sea_name_sq_LList(inti,chary[])
{intt;
t=0;
for(i=0;i{if(strcmp(y,v[i].name)=0)
{t=t+1
cout<<"学号:
"<"<"<}
}
if(t==0)cout<<"Nothisstudentinthelist!
"<}
/*计算*/
voidsq_LList:
:
cal_sq_LList(intm)
{inti;
floatsum,avr;
{sum=0;
for(i=0;i{sum=sum+v[i].score;
avr=sum/(i+1);
}
}
cout<<"总分:
"<cout<<"平均分:
"<}
intmain()
{intmx;sq_LLists1(100);
while
(1)
{cout<<"1.输出2.插入3.删除4.查找5出\n";
cout<<"输入0-5:
";
cin>>mx;
switch(mx)
{case1:
s1.prt_sq_LList();break;
case2:
inti;STUDENTb;
cout<<"输入插入点位置和插入元素值:
";cin>>i>>b.num>>b.name>>b.score;
s1.ins_sq_LList(i,b);s1.prt_sq_LList();case3:
cout<<"请输入删除学生的位置:
";
cin>>i;s1.del_sq_LList(i);s1.prt_sq_LList();
case4:
intmain(){intmx;
while
(1)
{cout<<"1.按学号查找2.按姓名查找0.cout<<"输入0-2:
";
计算0.退
break;
break;
返"<cin>>mx;
switch(mx)
{
case1:
longdoublek;批注[A1]:
删除cout<<"请输入要查找学生的学号
cin>>k;批注[A1]:
删除s1.sea_num_sq_LList(i);break;case2:
chary[10];批注[A3]
cout<<"请输入要查找学生的姓名:
";cin>>y;批注[A3]
s1.sea_name_sq_LList();break;
case0:
cout<<"返回"<}
}return0;
}break;
case5:
s1.cal_sq_LList();break;
case0:
cout<<"程序结束"<}
}
return0;
}
2、正确程序:
#includeusingnamespacestd;
typedefstruct
{longdoublenum;charname[10];intscore;}STUDENT;classsq_LList
{private:
intmm;
intnn;
STUDENT*v;
public:
sq_LList(int);
voidprt_sq_LList();
voidins_sq_LList(int,STUDENT);
voiddel_sq_LList(int);
voidsea_num_sq_LList(int);
voidsea_name_sq_LList();
voidcal_sq_LList(int);
};
/*输出*/sq_LList:
:
sq_LList(intm)
{mm=m;
v=newSTUDENT[mm];
v[0].num=970156;strcpy(v[0].name,"张小明");v[0].score=87;
v[1].num=970157;strcpy(v[1].name,"v[2].num=970158;strcpy(v[2].name,"v[3].num=970159;strcpy(v[3].name,"v[4].num=970160;strcpy(v[4].name,"nn=5;
李小青");v[1].score=96;刘华");v[2].score=85;王伟");v[3].score=93;李启明");v[4].score=88;
}
voidsq_LList:
:
prt_sq_LList()
{inti;
if(i>nn)i=nn+1;
for(i=0;iif(i<1)i=1;
for(k=nn;k>=i;k--)
v[k]=v[k-1];
v[i-1]=b;nn=nn+1;
}
/*删除*/
voidsq_LList:
:
del_sq_LList(inti)
{intk;
if(nn==0)
{cout<<"underflow"<if((i<1)||(i>nn))
{cout<<"Notthiselementinthelist!
"<return;
}
for(k=i;kv[k-1]=v[k];
nn=nn-1;
}
/*按学号查找*/
voidsq_LList:
:
sea_num_sq_LList(inti)
{intk,t;
cin>>k;
t=0;
for(i=0;i{if(v[i].num==k)
{t=t+1;
cout<<"学号:
"<"<"<<"分数:
"<}
}
if(t==0)
cout<<"Nothisstudentinthelist!
"<}
/*按姓名查找*/
voidsq_LList:
:
sea_name_sq_LList()
{chary[10];inti,t;
cin>>y;
t=0;
for(i=0;i{if(strcmp(y,v[i].name)==0)
{t=t+1;
cout<<"学号:
"<"<"<if(t==0)cout<<"Nothisstudentinthelist!
"<}
/*计算*/
voidsq_LList:
:
cal_sq_LList(intm)
{inti;
floatsum,avr;
{sum=0;
for(i=0;i{sum=sum+v[i].score;
avr=sum/(i+1);
}
}
cout<<"总分:
"<cout<<"平均分:
"<}
intmain()
{intmx;sq_LLists1(100);
while
(1)
{cout<<"1.输出2.插入3.删除4.查找5.计算0.退出\n";