中央电大数据结构形成性考核册实验报告.doc
《中央电大数据结构形成性考核册实验报告.doc》由会员分享,可在线阅读,更多相关《中央电大数据结构形成性考核册实验报告.doc(23页珍藏版)》请在咨信网上搜索。
1、中央电大本科数据结构形成性考核册实验报告实验名称:实验一 线性表线性表的链式存储结构【问题描述】某项比赛中,评委们给某参赛者的评分信息存储在一个带头结点的单向链表中,编写程序:(1) 显示在评分中给出最高分和最低分的评委的有关信息(姓名、年龄、所给分数等)。(2) 在链表中删除一个最高分和一个最低分的结点.(3) 计算该参赛者去掉一个最高分和一个最低分后的平均成绩。【基本要求】(1) 建立一个评委打分的单向链表;(2) 显示删除相关结点后的链表信息.(3) 显示要求的结果.【实验步骤】(1) 运行PC中的Microsoft Visual C+ 6.0程序,(2) 点击“文件”“新建” 对话窗口
2、中“文件” “c+ Source File” 在“文件名”中输入“X1。cpp” 在“位置”中选择储存路径为“桌面” “确定,(3) 输入程序代码,程序代码如下:#include stdio。h include stdlib。h include include #define NULL 0 #define PWRS 5 /定义评委人数struct pw /定义评委信息 char name6; float score; int age; ; typedef struct pw PW; struct node /定义链表结点 struct pw data; struct node next; ;t
3、ypedef struct node NODE; NODE *create(int m); /创建单链表 int calc(NODE h); /计算、数据处理 void print(NODE h); /输出所有评委打分数据 void input(NODE *s);/输入评委打分数据 void output(NODE s);/输出评委打分数据 void main() NODE *head; float ave=0; float sum=0; head=create(PWRS); printf(”所有评委打分信息如下:n); print(head);/显示当前评委打分 calc(head);/计算
4、成绩 printf(该选手去掉 1 最高分和 1 最低分后的有效评委成绩:n); print(head);/显示去掉极限分后的评委打分 void input(NODE *s) printf(”请输入评委的姓名: ”); scanf(S”,s-data。name); printf(年龄: ”); scanf(”d,&sdata.age); printf(”打分: ”); scanf(”f”,sdata。score); printf(n”); void output(NODE *s) printf(”评委姓名: %8s ,年龄: %d,打分: 2。2fn”,s-data.name,sdata.ag
5、e,sdata.score); NODE create(int m) NODE head,*p,q; int i; p=(NODE)malloc(sizeof(NODE); head=p; q=p; pnext=NULL; for(i=1;i=m;i+) p=(NODE)malloc(sizeof(NODE); input(p); pnext=NULL; qnext=p; q=p; return (head); void print(NODE h) for(int i=1;((idata。score; p=pnext; for(;p!=NULL;p=pnext) if(pdata.scorep
6、max-data.score) pmax=p; if(pdata。scorepmin-data.score) pmin=p; sum+=pdata.score; coutdata.name年龄: ”data。scoreendl; cout给出最低分的评委姓名:pmindata。namedata。scoreendl; printf(”n); sum=pmin-data.score; sum=pmaxdata。score; for (q=h,p=h-next;p!=NULL;q=p,p=pnext) if(p=pmin)qnext=pnext; p=q;/删除最低分结点 if(p=pmax) qn
7、ext=p-next; p=q;/删除最高分结点 ave=sum/(PWRS2); cout”该选手的最后得分是:”aveendl; return 1; 程序运行结果如下:线性表的顺序存储结构【问题描述】用顺序表A记录学生的信息,编写程序:(1)将A表分解成两个顺序表B和C,使C表中含原A表中性别为男性的学生,B表中含原表中性别为女性的学生,要求学生的次序与原A表中相同。(2)分别求男生和女生的平均年龄【基本要求】(1) 建立学生信息的顺序表A。(2) 显示B表和C表中的相关信息.(3) 显示计算结果。【实验步骤;】(1)运行PC中的Microsoft Visual C+ 6。0程序,(2)点
8、击“文件”“新建” 对话窗口中“文件” “c+ Source File” 在“文件名中输入“X1。cpp” 在“位置中选择储存路径为“桌面” “确定,(3) 输入程序代码,程序代码如下:include stdio。hinclude #include malloc.hinclude iostream.h#include include string。h /包含库函数strcpy的头文件#define NULL 0struct student /定义学生信息 char name8; int sex; /0 女: 1:男 int age;;typedef struct student STD;int
9、 create(STD *m); /创建顺序表int calc(STD m,STD n,STD r,float Fage,float &Mage); /计算、数据处理void print(STD *m);const int MAX=100; /定义人数void main() STD AMAX; STD BMAX; STD CMAX; float age1=0,age2=0; /age1男 age2女 create(A); printf(”学生总表A记录如下: n”); print(A); calc(A,B,C,age1,age2); printf(”女生名册B记录如下: n”); print(
10、B); printf(”男生名册C记录如下: n); print(C);int create(STD *m)int n;printf (”请输入班级总人数:n ”);scanf (”d”,&n);m0.age=n; /置顺序表 长度printf(”请输入学生信息:n); for(int i=1;i=n;i+) printf(”姓名: ”); scanf(%s”,mi。name); printf(”性别0女1男: ); scanf(d,&mi。sex); printf(年龄: ”); scanf(”d”,mi.age); printf(n”); return 1;int calc(STD *m,
11、STD n,STD *r,float &Fage,float Mage) int i,j=1,k=1; n0。age=r0。age=0; for( i=1;i=m0。age;i+) if(mi。sex=0) strcpy(nj。name,mi.name); nj。sex=mi。sex; nj。age=mi.age; n0.age+; Mage+=mi。age;j+; else strcpy(rk。name,mi。name);rk.sex=mi。sex; rk。age=mi.age; r0。age+;Fage+=mi。age;k+; Mage=Mage/n0.age; Fage=Fage/r0.
12、age; cout女生的平均年龄是:”Magenext; q-next=p; 尾插法:指针变量 q 始终指向尾结点,p 指针开辟单元,生成结 点: qnext=p; q=p; ?插入:p 所指向结点的后面插入新结点 s 所指结点 s-next=pnext; p-next=s; ?删除:p,q 指向相邻结点,q 所指结点是 p 所指结点的后继,删除 q 所指结点, pnext=q-next; ?遍历:p=pnext;实验名称:实验二 栈、列队、递归程序设计2。1 栈和队列的基本操作【问题描述】编写一个算法,输出指定栈中的栈底元素,并使得原栈中的元素倒置。【基本要求】(1)正确理解栈的先进后出的操
13、作特点,建立初始栈,通过相关操作显示栈底元素。(2)程序中要体现出建栈过程和取出栈底元素后恢复栈的入栈过程,按堆栈的操作规则打印结果栈中的元素。【实验步骤;】(4) 运行PC中的Microsoft Visual C+ 6。0程序,(5) 点击“文件”“新建” 对话窗口中“文件” “c+ Source File” 在“文件名”中输入“X1。cpp” 在“位置中选择储存路径为“桌面” “确定,(6) 输入程序代码,程序代码如下:include stdio。h#include malloc。hdefine MaxSize 100typedef char ElemType;typedef struct
14、 ElemType dataMaxSize;int top;/栈顶指针 SeqStack;/定义栈typedef struct ElemType elemMaxSize;int front,rear;/队首和队尾指针 SqQueue;/定义队列/初始栈函数void InitStack(SeqStack *s)s=(SeqStack )malloc(sizeof(SeqStack);stop=-1;/-进栈函数int Push(SeqStack &s,ElemType e)if (stop=MaxSize-1)return 0;s-top+;sdatas-top=e;return 1;/-显示栈
15、函数void DispStack(SeqStack *s)int i;for (i=stop;i=0;i-)printf(”%c ,s-datai);printf(”n”);/-显示栈底元素void DispBottomStack(SeqStack s)printf(”c ,sdata0);/先进后出,栈底元素为第一个元素,即data0printf(”n”);/-判空栈函数int StackEmpty(SeqStack s)return(s-top=1);/-出栈函数int Pop(SeqStack &s,ElemType e)if (s-top=1)return 0;e=sdatastop;
16、stop-;return 1;/初始队列函数void InitQueue(SqQueue *q)q=(SqQueue )malloc (sizeof(SqQueue);q-front=q-rear=0;/-入队列函数int InQueue(SqQueue q,ElemType e)if (q-rear+1)MaxSize=qfront) /队满return 0;qrear=(qrear+1)MaxSize;qelemqrear=e;return 1;/-出队列函数int OutQueue(SqQueue &q,ElemType e)if (q-front=q-rear) /队空return 0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中央电大 数据结构 形成 考核 实验 报告
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。