ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:227.28KB ,
资源ID:16527145      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16527145.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(东华大学 数据结构课程实验报告文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

东华大学 数据结构课程实验报告文档格式.docx

1、成绩输入/输出、查询结果、调用统计结果 输入数据 :学校编号、项目编号、取得的名次、哪些名次 采用结构体数据类型,利用冒泡法实现相应的排序;利用“switch”语句实现功能的选择; 利用“for”语句实现各个方式的 数据输入 。 详细设计: void inputinformation() 信息输入模块,开始输入信息* void output() 信息输出模块,选择按不同的方式输出信息*void inquiry() *查询模块,用来查询信息*流程图:源代码:#includemath.h#define n 2 /学校数目 #define m 1 /男子项目数目 #define w 1 /女子项目数

2、目typedef struct /typedef :为一种数据类型定义新名字。此数据类型为“自定义数据类型” int projectnum; /项目编号 int number; /项目取名次的数目,由用户定义3或5 int pic5; /名次 project in competition int mark5; /分数projectnode; /定义项目结点类型typedef struct int schoolnum; /学校编号 int score; /学校总分 int mscore; /男团体总分 int wscore; /女团体总分 projectnode cm+w; /项目数组schoo

3、lnode; /定义学校结点类型schoolnode hn;/定义一个学校结点数组void inputinformation() /*信息输入模块,开始输入信息* int i,j,k,s; for(i=0;in | hi.schoolnum=0); for(j=0;jm+w | hi.cj.projectnum do #取前3名or前5名:hi.cj.number); while(hi.cj.number!=3 & hi.cj.number!=5);#获得几个名次:k); /输入项目信息 for(s=0;s5;s+) hi.cj.pics=0, hi.cj.marks=0; /初始化排名和分数

4、k;#名次:hi.cj.pics); /输入所获名次信息/按取前三名还是取前五名分别记分、 if(hi.cj.number=3) / 取前三名 switch(hi.cj.pics) / 利用switch语句来输入名次所对应的分数 case 0: hi.cj.marks=0; break; case 1: hi.cj.marks=5; case 2: hi.cj.marks=3; case 3: hi.cj.marks=2; else /取前五名 switch(hi.cj.pics) hi.cj.marks=7; case 4: case 5: hi.cj.marks=1; hi.score=h

5、i.score+hi.cj.marks; /统计总分 if(j=m-1) hi.mscore=hi.mscore+hi.cj.marks; /是男子项目则记到男子分数里面去 else hi.wscore=hi.wscore+hi.cj.marks; /其他的是女子项目则记到女子项目里面去nvoid output() /*信息输出模块,选择按不同的方式输出信息* int choice,i,j,k; int FuZhun; /辅助数组 FuZhu n为学校个数 在程序开头给出 char sign;#1.按学校编号输出.#n#2.按学校总分输出.#n#3.按男团总分输出.#n#4.按女团总分输出.#

6、nnn# 请选择编号#nn:choice); switch(choice) /按编号顺序输出 for(i=0;nn#学校编号:%dn,hi.schoolnum);#学校总分: ,hi.score);#男团总分:,hi.mscore);#女团总分: %dnnn,hi.wscore); /按学校总分输出 FuZhui=i; /用辅助数组记住学校结点下标 for(j=i+1; if(hFuZhui.scorehj.score) k=FuZhui; FuZhui=FuZhuj; FuZhuj=k; / 用冒泡排序方法, nn#学校编号:,hFuZhui.schoolnum); ,hFuZhui.sco

7、re);,hFuZhui.mscore);,hFuZhui.wscore); /按所记下标顺序输出 /按男团总分输出 if(hFuZhui.scoren)错误:这个学校没有参加此次运动会!nn else要查询的项目编号:j); if(jm+w|j=0)此次运动会没有这个项目nnn /项目编号超出范围 elseprintf(这个项目取前 %d名,该学校的成绩如下:, h0.cj-1.number); for(k=0;km+w|s=0)此次运动会不包括这个项目.nnn /项目编号超出范围该项目取前 %d名,取得名次的学校n,h0.cs-1.number); i for(j=0; if(hi.cs-

8、1.picj!学校编号:%d,名次:,hi.schoolnum,hi.cs-1.picj); /输出该项目取得名次学校的成绩nnn继续 1,跳出 0n while(i=1); /*主函数*void main() int choice;=欢迎使用 O(_)O=nnn#运动会分数统计系统#nnn#1.输入信息#n#2.输出信息#n#3.查询信息#n#4.退出系统#nnn=nn#请选择要实现步骤的编号( 请先确保信息已经输入! ):switch(choice)输入信息:inputinformation();信息已存入档案!main(); /输入完毕后回到主界面输出信息: output();查询信息:

9、 inquiry();退出系统!谢谢使用! default: 输入错误!调试与执行结果:1 欢迎界面输入信息 输出信息按学校编号输出信息按学校总分输出按男团、女团分数输出信息 查询信息按学校查询按项目查询2、 迷宫问题求解:从给定的某一起点出发,向各个方向都有走动的可能,按照一定顺序进行。判断该方向上是否可以走(可以走的条件:不能重复,不是死路,不是迷宫外面)就走,然后记录。若不能走就换下一个方向。若各个方向都不可以走,说明到了死路,返回上一步走下一个方向。如此反复每走一步就要检测是否达到指定坐标(即终点)若达到终点就输出。若怎么走都达不到终点,即返回到最初起点也不能走了,说明无解。对一个任意

10、设定的迷宫求一条从入口到出口的道路,或得出无通道的结论。 设定一个二维数组mazeij表示迷宫,其中1iM, 1jN.。数组元素值为0表示可以通过,数组元素1表示遇到墙壁。假定统一入口为maze11,出口为mazeMN;移动方向为8个方向。用数字 5 表示该通路。pop函数draw 函数inimaze函数 path函数push函数# include # define M2 20# define N2 18# define maxlen M2# define True 1# define False 0# define Null 0typedef int Status;int M=M2-2,N=

11、N2-2; / 迷宫实际大小为 M=M2-2,N=N2-2; 两行外围 int x,y,dir; / x y direction elemtype; elemtype stackmaxlen; int top; /栈顶sqMAZE;struct moved int dx,dy; /direction x ; direction y;void inimaze(int mazeM2N2) int i,j,num; for(i=1;=M; for(j=1;=N; num=(800*(i+j)+1500)%327; /用随便的一个函数的不能走的路(墙壁 1) 其他的就是能走的 if (numtop=-

12、1; /栈 MAZE 的栈顶指针sint push(sqMAZE*s,elemtype x) /插入元素X 为新的栈顶元素 if(s-top=maxlen-1) /mazlen-1=M2-1 已经大于迷宫长度M=M2 return(False); s-stack+s-top=x; /x为新的栈顶元素 s+ return(True); /else/pushelemtype pop(sqMAZE*s)elemtype elem; if (s-topstacks-top+1); / s 指向新的栈顶元素的上面 s-x-(x-1) / pop /*开始走迷宫* void path(int mazeM2

13、N2,struct moved move,sqMAZE*s) int i,j,dir,x,y,f; elemtype elem; i=1,j=1;dir=0; /起点 x=1,y=1,第一个方向 maze11=-1; do x=i+movedir.dx; y=j+movedir.dy; if(mazexy=0) /如果这步可以走,则记录下来,变成新的栈顶 elem.x=i; elem.y=j; elem.dir=dir; f=push(s,elem); if(f=False)栈长度不够,没法继续走n else i=x; j=y; dir=0; mazexy=-1; else /如果这步不能走 则换下一方向 if(dirtop=-1)&(dir=7)|(x=M)

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

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