建立一个顺序表表中元素为学生每个学生信息包含姓名学号和成绩三部分对该表实现输出插入删除.docx

上传人:b****5 文档编号:7499592 上传时间:2023-01-24 格式:DOCX 页数:11 大小:20.33KB
下载 相关 举报
建立一个顺序表表中元素为学生每个学生信息包含姓名学号和成绩三部分对该表实现输出插入删除.docx_第1页
第1页 / 共11页
建立一个顺序表表中元素为学生每个学生信息包含姓名学号和成绩三部分对该表实现输出插入删除.docx_第2页
第2页 / 共11页
建立一个顺序表表中元素为学生每个学生信息包含姓名学号和成绩三部分对该表实现输出插入删除.docx_第3页
第3页 / 共11页
建立一个顺序表表中元素为学生每个学生信息包含姓名学号和成绩三部分对该表实现输出插入删除.docx_第4页
第4页 / 共11页
建立一个顺序表表中元素为学生每个学生信息包含姓名学号和成绩三部分对该表实现输出插入删除.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

建立一个顺序表表中元素为学生每个学生信息包含姓名学号和成绩三部分对该表实现输出插入删除.docx

《建立一个顺序表表中元素为学生每个学生信息包含姓名学号和成绩三部分对该表实现输出插入删除.docx》由会员分享,可在线阅读,更多相关《建立一个顺序表表中元素为学生每个学生信息包含姓名学号和成绩三部分对该表实现输出插入删除.docx(11页珍藏版)》请在冰豆网上搜索。

建立一个顺序表表中元素为学生每个学生信息包含姓名学号和成绩三部分对该表实现输出插入删除.docx

建立一个顺序表表中元素为学生每个学生信息包含姓名学号和成绩三部分对该表实现输出插入删除

建立一个顺序表-表中元素为学生-每个学生信息包含姓名、学号和成绩三部分-对该表实现输出、插入、删除、

云南大学物理实验教学中心

实验报告

 

课程名称:

计算机软件技术基础

实验项目:

实验二、线性表(顺序存储)及其应用

学生姓名:

学号:

 

学院系级专业

 

 

指导教师:

 

实验时间:

年日时分至时分

实验地点:

实验类型:

教学(演示□验证□综合█设计□)学生科研□课外开放□测试□其它□

一、实验目的:

掌握顺序表的建立及基本操作。

二、问题:

建立一个顺序表,表中元素为学生,每个学生信息包含姓名、学号和成绩三部分,对该表实现:

①输出、②插入、③删除、④查找功能,并计算出平均成绩和总成绩。

三、程序的编写与调试

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);

};

/*输出*/

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[1].score=96;

v[2].num=970158;strcpy(v[2].name,"刘华");v[2].score=85;

v[3].num=970159;strcpy(v[3].name,"王伟");v[3].score=93;v[4].num=970160;strcpy(v[4].name,"李启明");v[4].score=88;

nn=5;

}

voidsq_LList:

:

prt_sq_LList()

{inti;

for(i=0;i

{cout<<"学号:

"<

"<

"<

}

}

/*插入*/

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;k

v[k-1]=v[k];

nn=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.计算0.退出\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();break;

case3:

cout<<"请输入删除学生的位置:

";

cin>>i;

s1.del_sq_LList(i);s1.prt_sq_LList();break;

case4:

intmain()

{intmx;

while

(1)

{cout<<"1.按学号查找2.按姓名查找0.返"<

cout<<"输入0-2:

";

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、正确程序:

#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();

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[1].score=96;

v[2].num=970158;strcpy(v[2].name,"刘华");v[2].score=85;

v[3].num=970159;strcpy(v[3].name,"王伟");v[3].score=93;v[4].num=970160;strcpy(v[4].name,"李启明");v[4].score=88;

nn=5;

}

voidsq_LList:

:

prt_sq_LList()

{inti;

for(i=0;i

{cout<<"学号:

"<

"<

"<

}

}

/*插入*/

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;k

v[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";

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();break;

case3:

cout<<"请输入删除学生的位置:

";

cin>>i;

s1.del_sq_LList(i);s1.prt_sq_LList();break;

case4:

{intmx;

while

(1)

{cout<<"1.按学号查找2.按姓名查找0.返"<

cout<<"输入0-2:

";

cin>>mx;

switch(mx)

{

case1:

cout<<"请输入要查找学生的学号:

";

s1.sea_num_sq_LList(i);break;

case2:

cout<<"请输入要查找学生的姓名:

";

s1.sea_name_sq_LList();break;

case0:

cout<<"返回"<

}

}

return0;

}break;

case5:

s1.cal_sq_LList(i);break;

case0:

cout<<"程序结束"<

}

}

return0;

}

四、实验总结

通过此次试验,我对线性表(顺序存储)有了全面的认识,知道了什么是线性表,以及线性表有什么作用;并学会了如何根据要求建立一个实际的线性表,包括线性表的输出、插入、删除、查找、计算等功能的编写。

另外,通过此次试验,自己的编程能力得到了一定的提高,对编程中常犯的错误以及如何更正有了更加深入的认识和了解等等。

 

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

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1