程序设计与问题求解下实验答案Word文件下载.docx

上传人:b****6 文档编号:19393958 上传时间:2023-01-05 格式:DOCX 页数:42 大小:24.53KB
下载 相关 举报
程序设计与问题求解下实验答案Word文件下载.docx_第1页
第1页 / 共42页
程序设计与问题求解下实验答案Word文件下载.docx_第2页
第2页 / 共42页
程序设计与问题求解下实验答案Word文件下载.docx_第3页
第3页 / 共42页
程序设计与问题求解下实验答案Word文件下载.docx_第4页
第4页 / 共42页
程序设计与问题求解下实验答案Word文件下载.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

程序设计与问题求解下实验答案Word文件下载.docx

《程序设计与问题求解下实验答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《程序设计与问题求解下实验答案Word文件下载.docx(42页珍藏版)》请在冰豆网上搜索。

程序设计与问题求解下实验答案Word文件下载.docx

*/

intGetFail(Studentstu[],intn)

inti,count;

printf("

Fail:

\nnumber--score\n"

);

count=0;

for(i=0;

i<

n;

i++)

if(stu[i].score<

60)

{

printf("

%ld------%.0f\n"

stu[i].num,stu[i].score);

count++;

}

returncount;

计算全班平均分

平均分

floatGetAver(Studentstu[],intn)

inti;

floatsum=0;

sum=sum+stu[i].score;

returnsum/n;

统计成绩在全班平均分及平均分之上的学生人数并打印其学生名单

成绩在全班平均分及平均分之上的学生人数

intGetAboveAver(Studentstu[],intn)

floataver;

aver=GetAver(stu,n);

aver=%f\n"

aver);

Aboveaver:

if(stu[i].score>

=aver)

统计各分数段的学生人数及所占的百分比

voidGetDetail(Studentstu[],intn)

inti,j,stuLevel[6];

6;

stuLevel[i]=0;

j=0;

else

j=((int)stu[i].score-50)/10;

stuLevel[j]++;

if(i==0)

<

60%d%.2f%%\n"

stuLevel[i],

(float)stuLevel[i]/(float)n*100);

elseif(i==5)

%d%d%.2f%%\n"

(i+5)*10,stuLevel[i],

%d--%d%d%.2f%%\n"

(i+5)*10,(i+5)*10+9,

stuLevel[i],(float)stuLevel[i]/(float)n*100);

2.成绩排名次

某班期末考试科目为数学(MT)、英语(EN)和物理(PH),有最多不超过30人参加考试。

要求:

(1)计算每个学生的总分和平均分;

(2)按总分成绩由高到低排出成绩的名次;

(3)打印出名次表,表格内包括学生编号、各科分数、总分和平均分;

(4)任意输入一个学号,能够查找出该学生在班级中的排名及其考试分数

#defineSTU30

andscoreas:

MTENPH\n"

Input(stu,n);

/*输入学生成绩*/

GetSumAver(stu,n);

/*计算总分和平均分*/

Beforesort:

\n"

Print(stu,n);

Sort(stu,n);

/*排名次*/

Aftersort:

Pleaseentersearchingnumber:

"

scanf("

%ld"

x);

/*以长整型格式输入待查找学生的学号*/

pos=Search(stu,n,x);

/*名次查询*/

if(pos!

=-1)

printf("

position:

\tNO\tMT\tEN\tPH\tSUM\tAVER\n"

%8d\t%4ld\t%4d\t%4d\t%4d\t%5d\t%\n"

pos+1,stu[pos].num,stu[pos].math,stu[pos].english,

stu[pos].physics,stu[pos].sum,stu[pos].aver);

else

Notfound!

/*函数功能:

输入某班学生期末考试三门课程成绩

函数参数:

结构体数组stu,存放学生信息

整型变量n,存放学生人数

函数返回值:

voidInput(Studentstu[],intn)

stu[i].num);

%d"

stu[i].math);

stu[i].english);

stu[i].physics);

计算每个学生的总分和平均分

整型变量n,存放学生人数

voidGetSumAver(Studentstu[],intn)

stu[i].sum=stu[i].english+stu[i].math+stu[i].physics;

stu[i].aver=(float)stu[i].sum/3;

按总分成绩由高到低排出成绩的名次

voidSort(Studentstu[],intn)

inti,j,k;

StudenttempStu;

n-1;

k=i;

for(j=i+1;

j<

j++)

if(stu[j].sum>

stu[k].sum)k=j;

if(k!

=i)

tempStu=stu[i];

stu[i]=stu[k];

stu[k]=tempStu;

打印名次表,表格内包括学生编号、各科分数、总分和平均分

voidPrint(Studentstu[],intn)

NO\t|MT\tEN\tPH\tSUM\tAVER\n"

----------------------------------------------------\n"

%ld\t|"

stu[i].num);

%4d\t%4d\t%4d\t"

stu[i].math,stu[i].english,stu[i].physics);

%5d\t%\n"

stu[i].sum,stu[i].aver);

查找学生的学号

长整型变量x,存放待查找学生的学号

找到时,返回学生学号在数组中的下标位置,否则返回值-1

intSearch(Studentstu[],intn,longx)

if(stu[i].num==x)return(i);

return(-1);

实验递归程序设计

求游戏人员的年龄

1.求游戏人员的年龄

intage(intn);

intmain()

intage5;

age5=age(5);

第5个人的年龄为%d\n"

age5);

intage(intn)

if(n==1)

return10;

returnage(n-1)+2;

求最大公约数

intgcd(intx,inty);

intx,y;

intgcdResult;

输入要计算最大公约数的两个数:

%d%d"

&

x,&

y);

gcdResult=gcd(x,y);

最大公约数为%d\n"

gcdResult);

intgcd(intx,inty)

if(x==y)

returnx;

elseif(x>

y)

returngcd(x-y,y);

elsereturngcd(x,y-x);

/*x<

y*/

实验链表编程

//注:

该程序并没有出错控制,假设用户输入都是正常的范围内

iostream>

usingnamespacestd;

structNode

intdata;

Node*next;

};

voidcreateList(Node*head,intnum);

intfindByNo(Node*head,intnum);

intfindByData(Node*head,intdata);

voidinsertData(Node*head,intdata,intnum);

voiddeleteData(Node*head,intnum);

voidprintOut(Node*head);

voidmain()

//inta[6]={21,23,25,27,29,31};

intnum;

Node*head=newNode();

cout<

请输入6个结点的值:

;

createList(head,6);

该链表为:

printOut(head);

请输入要查找的结点的序号(1-6):

cin>

num;

data=findByNo(head,num);

查找到的结点的值为"

data<

endl;

请输入要查找的结点的值:

data;

num=findByData(head,data);

查找到的结点的序号为:

num<

插入结点位置:

插入结点的值:

insertData(head,data,num);

请输入要删除的结点序号:

deleteData(head,num);

intfindByNo(Node*head,intnum)

intcount=0;

Node*p=head;

while(p->

next!

=NULL)

{

p=p->

next;

count++;

if(count==num)

returnp->

intfindByData(Node*head,intdata)

if(p->

data==data)

returncount;

//输入序号num和值data。

在序号为num的结点后插入data,并输出该链表

voidinsertData(Node*head,intdata,intnum)

Node*q=newNode();

q->

data=data;

next=p->

p->

next=q;

printOut(head);

return;

//输入序号num,删除序号为num的结点,并输出该链表

voiddeleteData(Node*head,intnum)

Node*p=head->

Node*pre=head;

while(p!

if(count==num)//删除节点

pre->

deletep;

pre=p;

p=p->

voidprintOut(Node*head)

%d"

p->

data);

voidcreateList(Node*head,intnum)

Node*p;

Node*q=head;

for(inti=0;

i<

i++)

p=newNode();

cin>

p->

p->

next=NULL;

q->

next=p;

q=q->

实验结构、链表综合编程

注意:

下面的代码用到了文件,但是学生编程并不要求使用文件

【编写程序】:

建立多个班级学生成绩链表,其中,每个结点包含下面这些信息:

学号、姓名、成绩

要求完成下面的功能:

1.建立2个班学生成绩的无序链表,其中每个班包含10个结点数据(输入或从文件中读取每个同学的信息),将每个班的成绩链表按成绩高低排序后分别输出该链表;

2.将2个班级学生成绩合并(按成绩高低排序)后输出;

3.查找学生成绩:

通过输入同学的学号,将该同学从链表中找出,并输出该同学信息;

如果找不到,则输出“无此学生”。

//

101a56

102b78

103c69

104d26

105e60

106f66

107g70

108h90

109i92

110j99

201aa26

202bb55

203cc78

204dd46

205ee89

206ff65

207gg99

208hh85

209ii73

210jj96

代码如下:

fstream>

charno[5];

charname[6];

doubleperform;

cout<

no<

"

name<

perform<

Node*q;

//读入班级1,构成链表

Node*headClass1=newNode();

q=headClass1;

ifstreamfin1("

if(!

fin1)

文件1打开失败!

return;

10;

fin1>

no>

name>

perform;

班级1原始数据为:

printOut(headClass1);

//读入班级2,构成链表

Node*headClass2=newNode();

q=headClass2;

ifstreamfin2("

fin2)

fin2>

班级2原始数据为:

printOut(headClass2);

//排序--------------------------------------------------------------

//对班级1高低排序输出

q=headClass1->

Node*temp=newNode();

Node*max;

while(q!

temp->

perform=q->

max=q;

p=q->

while(p!

if(p->

perform>

temp->

perform)

{

max=p;

temp->

perform=p->

}

strcpy(temp->

no,q->

no);

name,q->

name);

strcpy(q->

no,max->

name,max->

perform=max->

strcpy(max->

no,temp->

name,temp->

max->

perform=temp->

deletetemp;

temp=NULL;

班级1排序后数据为:

//对班级2高低排序输出

q=headClass2->

temp=newNode();

te

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

当前位置:首页 > 幼儿教育 > 少儿英语

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

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