




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第 页数据结构与数据库原理大作业报告书姓名:XXX班级:XXX学号:XXX目录第 页一、题目 1二、任务定义 22.1 任务定义 22.2 全局变量 22.3 程序流程图 3三、详细设计及源程序 5四、上机调试 8五、总结 9 .六、参考文献10第 页一、题目1、joseph 环任务:编号是 1,2,,n 的 n 个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数) 。一开始任选一个正整数作为报数上限值 m,从第一个人开始顺时针方向自 1 开始顺序报数,报到 m 时停止报数。报 m 的人出列,将他的密码作为新的 m 值,从他在顺时针方向的下一个人开始重新从 1 报数,如此下去,直到所有人全部出列为止。设计一个程序来求出出列顺序。要求:利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。测试数据:n=7 ,7 个人的密码依次为 3,1,7,2,4,7,4,首先 m=6,则正确的输出是什么?要求:输入数据:建立输入处理输入数据,输入 m 的初值,n ,输入每个人的密码,建立单循环链表。输出形式:建立一个输出函数,将正确的输出序列2、以学生成绩为数据元素建立一个一维数组。一个学生的成绩信息包括学号、姓名以及数学、语文、英语 3 科的成绩。程序中预定义 10 位同学的成绩,这些记录按学号有序。在程序中实现下列功能:(1)统计每位同学 3 门课程的平均成绩;(2)按平均成绩高低进行冒泡排序并显示结果。第 页二、任务定义2.1 任务定义(1)程序中,利用单向循环链表存储约瑟夫环数据,模拟约瑟夫环的现实过程,按照出列的顺序引出个人的任务(2)演示程序以用户和计算机的对话方式执行。(3)程序执行的命令包括:1构造单向循环链表;2按照出列的顺序引出个人的编号(4)测试数据2.2 全局变量全 局 变 量 也 称 为 外 部 变 量 , 它 是 在 函 数 外 部 定 义 的 变 量 。 它 不 属于 哪 一 个 函 数 , 它 属 于 一 个 源 程 序 文 件 。 其 作 用 域 是 整 个 源 程 序 。 在 函 数 中使 用 全 局 变 量 , 一 般 应 作 全 局 变 量 说 明 。 只 有 在 函 数 内 经 过 说 明 的 全 局 变量 才 能 使 用 。 全 局 变 量 的 说 明 符 为 extern。 , 但 在 一 个 函 数 之 前 定 义 的 全局 变 量 , 在 该 函 数 内 使 用 可 不 再 加 以 说 明 。第 页1.2 程序流程图(1)是 否建立单循环链表长度为 nm=(m%n=0)?n:m%nm=p-passwordn-peletenodei=1p=p-NOi+开始结束输入 mi #include typedef struct data /定义一个结构体“data” int num; /用于存放人的序号 int val; /用于存放密码 typedata; typedef struct node /定义一个结构体(结点),其中包含一个数据域和一个指针域 typedata data; /结构体的嵌套 struct node *next; listnode; typedef listnode *linklist; linklist head; void main()/ 进入主函数 int n,i,b,m,j; linklist head=(listnode *)malloc(sizeof(listnode); /申请一个空间(头结点 head) listnode *p,*q; /定义两个可以指向结点的指针 printf(“输入总人数:“); scanf(“%d“, q=head; /用指针 q 指向头结点 for(j=1;jnext=(listnode *)malloc(sizeof(listnode); /将头结点的 next 域指向刚生成的一个结点 q=q-next; q-data.val=b; /输入密码 第 页q-data.num=j; /输入序号 q-next=head-next; /将尾结点的 next 域指向第一个结点,构成循环链表 printf(“请任意输入一个数 m:“); scanf(“%d“, if(mnext; i+; p=q-next; /p 指向输出结点 q-next=p-next; /将输出结点的前结点的 next 域指向输出结点的后结点 printf(“num:%dtval:%dn“,p-data.num,p-data.val); /输出 m=p-data.val; /取得输出结点的密码 free(p); while(q-next!=q); /只剩最后一个结点时结束 printf(“num:%dtval:%dn“,q-data.num,q-data.val); /输出最后一个结点 free(q); /释放最后一个结点 free(head); /释放头结点 printf(“约瑟夫环结束,欢迎下次光临n“); /程序结束(2)学生成绩#includestruct stuint num;char *name;float score3;第 页student10=101,“AAA“,70,87,90,102,“BBB“,71,81,61,103,“CCC“,72,82,92,104,“DDD“,73,83,73,105,“EEE“,94,84,94,106,“FFF“,75,45,95,107,“GGG“,75,76,77,108,“HHH“,76,86,96,109,“JJJ“,79,89,99,110,“KKK“,82,80,60;main()int i,j;float ave10,ave210,s10,t;for(i=0;i 保存为 c 或 c+文件2 根据断点调试找到错误处。3 采用 F10 或 F11 单步调试找到精确的错误处。其中 f10 是跳过函数盗用,f11 是进入函数体调试。一般是先用 f10,确定函数输入输出是否正确(与自己想的一样),如不一样,则用 f11 进入函数体一步一步调试。4 在调试过程中,肯定得监视程序中的变量。在 vc6.0 的右下角有一个 watch窗口,专门用来设置监视变量。具体怎样设置自己体会吧。在调试过程中,鼠标轻轻放在变量上也会显示该变量的值5 vc6.0 专门为调试设置了工具箱以方便调试的进行,打开的方法如下。右键在 debug(或调试)选择项的勾勾上。第 页总结1、编程中遇到的几个问题由于对题目的理解度不够,参考实验任务中对 joseph 环的介绍,知道了joseph 环的存储结构就是一个单向循环链表,在其每个节点分别存储每个人的号码和密码,这样就完成了 joseph 环的建立。在 joseph 环输出时遇到困难,不知道输出的算法是什么,于是向编程能力较强的同学请教,结合自己的理解,完成了。2、算法设计、调试的经验和体会刚开始难道问题时,感到无从下手,加之对题目理解不够,自己对如何设计没有一点头绪。后来网上查询,找到了类似的题目,但它主要使用编写的程序,跟我们数据库这门课程设计要求不太相符。我向能力较强的同学请教,结合自己的理解,画出了各程序流程图,很快编写出了程序和输出结果,和同学讨论改正了所有错误,最终得出正确的结果。通过这次的课程设计,我深知自己学习的知识远远不够。这是一种全面全面综合的训练,是与课堂听讲,自学和练习相辅相成的,必不可少的一个教学环节。这次的课程设计为以后的学习打下了坚实的基础。感谢老师给予了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 46024-2025色漆和清漆用流出杯测定流出时间
- GB/T 45856-2025真空技术真空计皮拉尼真空计的规范、校准和测量不确定度
- GB/T 45895-2025麻醉和呼吸设备医用气体不可互换螺纹(NIST)低压接头的尺寸
- 森林防火知识培训必要性
- 森林火灾知识培训内容
- 森林法基础知识培训课件
- 幼儿园培训教学课件
- 2025年老年护理专业招聘考试预测题
- 风湿疾病试题及答案
- 2025健康照护技师考试题库及答
- 住院病人防止走失课件
- 2025年临床助理医师考试试题及答案
- 2025年南康面试题目及答案
- 汽车标定工程师培训课件
- 速叠杯教学课件
- GB/T 45767-2025氮化硅陶瓷基片
- 2025年第十届“学宪法、讲宪法”活动知识竞赛题库及答案
- 地产直播活动方案
- 广东省安装工程综合定额(2018)Excel版
- 2025年云南省初中学业水平考试物理及答案
- 留疆战士考试试题及答案
评论
0/150
提交评论