电大数据结构课程实验报告_第1页
电大数据结构课程实验报告_第2页
电大数据结构课程实验报告_第3页
电大数据结构课程实验报告_第4页
电大数据结构课程实验报告_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据结构课程实验报告一线性表1、线性表的链式存储结构【问题描述】某项比赛中,评委们给某参赛者的评分信息存储在一个带头结点的单向链表中,编写程序:(1) 显示在评分中给出最高分和最低分的评委的有关信息(姓名、年龄、所给分数等)。(2) 在链表中删除一个最高分和一个最低分的结点。(3) 计算该参赛者去掉一个最高分和一个最低分后的平均成绩。【基本要求】(1) 建立一个评委打分的单向链表;(2) 显示删除相关结点后的链表信息。(3) 显示要求的结果。【实验步骤】(1) 运行PC中的MicrosoftVisualC++6.0程序,(2) 点击“文件”f“新建”f对话窗口中“文件”f"c++SourceFile"-在“文件名”中输入“sy1-1.cpp”f在“位置”中选择储存路径为“桌面”一“确定”,(3) 输入程序代码,程序代码如下#include#include#include#include#include#defineNUL0#definePWRS5structpw(charname[6];floatscore;intage;};typedefstructpwPW;structnode(structpwdata;structnode*next;};typedefstructnodeNODE;NODE*create(intm);intcalc(NODE*h);voidprint(NODE*h);voidinput(NODE*s);voidoutput(NODE*s);voidmain()(NODE*head;floatave=0;floatsum=0;head=create(PWRS);printf("所有评委打分信息如下:\n");print(head);calc(head);printf("\n去掉1个最高分和1个最低分后的有效评委成绩如下:\n");print(head);}voidinput(NODE*s)(printf("请输入评委的姓名:");scanf(〃%S〃,&s->/doc/9851b6a0f524ccbff1218455.html);printf("年龄:");scanf("%d",&s->data.age);printf("打分:");scanf("%f",&s->data.score);printf(〃\n〃);}voidoutput(NODE*s)(printf("评委姓名:%8s,年龄:%d,打分:%2.2f\n〃,s->http:///doc/9851b6a0f524ccbff1218455.html,s->data.age,s->data.score);}NODE*create(intm)(NODE*head,*p,*q;inti;p=(NODE*)malloc(sizeof(NODE));head=p;q=p;p->next=NUL;for(i=1;i<=m;i++)(p=(NODE*)malloc(sizeof(NODE));input(p);p->next=NUL;q->next=p;q=p;}return(head);}voidprint(NODE*h)(inti;for(i=1;i<=PWRS&&h->next!二NUL;i++)(h=h->next;output(h);}}intcalc(NODE*h)(NODE*q,*p,*pmin,*pmax;floatsum=0;floatave=0;p=h->next;pmin二pmax=p;//设置初始值sum+=p->data.score;p=p->next;for(;p!=NUL;p=p->next)(if(p->data.score>pmax->data.score)pmax=p;if(p->data.scoredata.score)pmin=p;sum+=p->data.score;}printf("给出最高分的评委姓名:%s年龄:%d分值:%f”,pmax->/doc/9851b6a0f524ccbff1218455.html,pmax->data.age,pmax->data.score);printf("\n");printf("给出最低分的评委姓名:%s年龄:%d分值:%f”,pmin->/doc/9851b6a0f524ccbff1218455.html,pmin->data.age,pmin->data.score);printf("\n\n");sum-=pmin->data.score;sum-=pmax->data.score;for(q=h,p=h->next;p!二NUL;q=p,p=p->next)(if(p==pmin){q->next=p->next;p=q;}if(p==pmax)(q->next=p->next;p=q;}}ave=sum/(PWRS-2);printf("该选手的最后得分是:%f”,ave);return1;}运行结果如下:C:\VIirD0TS\sys-teA32\cMd_exe1—xnJ-nJ-—lx

r-JJ7J74q.7.

23505

23243龄龄龄龄龄.•年年年年年平2021入----费分请年打的的分1—xnJ-nJ-—lx

r-JJ7J74q.7.

23505

23243龄龄龄龄龄.•年年年年年平2021入----费分请年打的的分委委打 评408评359未女名名名名名A--入.--霉姓姓姓姓馨分费分宴至i萋ws所评评评评评ft®分分2522■■■■龄龄年年aC■■■■名名姓姓评评分分ir取出出给给分分分3孑令令令3/2W-止154止ly8_低年年年nlR尸1广曰符bde的岑名名名

手1-f姓姓姓

选堇荃K

该去评评评Ppessanykeytocontinue2、线性表的顺序存储结构【问题描述】用顺序表A记录学生的信息,编写程序:将A表分解成两个顺序表B和C,使C表中含原A表中性别为男性的学生,B表中含原表中性别为女性的学生,要求学生的次序与原A表中相同。分别求男生和女生的平均年龄【基本要求】建立学生信息的顺序表A。显示B表和C表中的相关信息。显示计算结果。【实验步骤;】运行PC中的MicrosoftVisualC++6.0程序,点击“文件”f“新建”f对话窗口中“文件”f"c++SourceFile"-在“文件名”中输入“sy1-2.cpp”f在“位置”中选择储存路径为“桌面”一“确定”,(3)输入程序代码,程序代码如下:#include"stdio.h”#include"stdlib.h”#include"malloc.h"#include"iostream.h”#include"conio.h"#include"string.h”structstudent(charname[8];intsex;//0女:1:男intage;};typedefstructstudentSTD;intcreate(STD*m);intcalc(STD*m,STD*n,STD*r,float&Fage,float&Mage);voidprint(STD*m);constintMAX=100;//定义人数voidmain()(STDA[MAX];STDB[MAX];STDC[MAX];floatage1=0,age2=0;//age1男age2女create(A);printf("学生总表A记录如下:\n");print(A);calc(A,B,C,age1,age2);printf("\n\n女生名册B记录如下:\n");print(B);printf("\n男生名册C记录如下:\n");print(C);}intcreate(STD*m)(intn;printf(〃请输入班级总人数:");scanf("%d",&n);m[0].age=n;//置顺序表长度printf("请输入学生信息:\n\n");inti;for(i=1;i<=n;i++)(printf("第%d位学生信息:\n",i);printf("姓名:");scanf(〃%s〃,&m[i].name);printf("性别0女1男:");scanf("%d",&m[i].sex);printf("年龄:");scanf("%d",&m[i].age);printf(〃\n〃);}return1;}intcalc(STD*m,STD*n,STD*r,float&Fage,float&Mage)(inti,j=1,k=1;n[0].age=r[0].age=0;for(i=1;i<=m[0].age;i++)(if(m[i].sex==0)(strcpy(n[j].name,m[i].name);n[j].sex=m[i].sex;n[j].age=m[i].age;n[0].age++;Mage+=m[i].age;j++;}else(strcpy(r[k].name,m[i].name);r[k].sex=m[i].sex;r[k].age=m[i].age;r[0].age++;Fage+=m[i].age;k++;}}Mage二Mage/n[0].age;Fage二Fage/r[0].age;printf("女生的平均年龄是:%f,男生的平均年龄是:%f”,Mage,Fage);return1;}voidprint(STD*m)(for(inti=1;i<=m[0].age;i++)(printf(〃姓名:%3s,性别(0女1男):%d,年龄:%d\n”,m[i].name,m[i].sex,m[i].age);}}运行结果如下:

第坪学生信息:|g1第2位学生信息,茬嬴搭男"年龄:30第3位学生信息=姓名:c性肿女1男:i年龄:阴第4位学生信息=姓名:d性剧政1男;0年副21希篓学生信息=生名雷名名生

学姓售姓蔓第坪学生信息:|g1第2位学生信息,茬嬴搭男"年龄:30第3位学生信息=姓名:c性肿女1男:i年龄:阴第4位学生信息=姓名:d性剧政1男;0年副21希篓学生信息=生名雷名名生

学姓售姓蔓t;A【j加c,d.e,

总 mnmpmr^mnmn.■写王E『---g与一耳_-■011X112T=女女女女女..k<<<^IZL性性性叶平的年年年年年日 踮龄噫2龄沮龄:24,男生的平均年龄是:23.S039OS女生名册瓦己录如下=姓名:b,性别W女1姓名:L性别E女1>:G,年龄:河>:0,年磅*1曩姓姓illy:女女女一00rt--i-cc财别别别有性性悴c・*卅ace生容套:1,年龄:23>:1,年韶^24Pi'bsea.ny><eytccointinns3、实验结论实验结论:线性表采用链式存储(链表)时:以结构变量存储结点,动态生成结点,以指针链接结点,能有效利用存储空间,插入删除方便,但不能随机访问.单向链表可从某结点访问到后继结点。单向链表操作的关键步骤:建立

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论