《数据结构》课程设计报告-运动会分数统计 一元多项式 迷宫求解 文章编辑 纸牌游戏等
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据结构》课程设计报告-运动会分数统计一元多项式迷宫求解文章编辑纸牌游戏等
南京林业大学
数据结构课程设计报告
专业:计算机科学与技术
课程名称:数据结构
姓名:
学号:090801126
指导老师:
时间: 2011年1月
目录要点:
一.具体内容(题目) (1)
二.需求分析(功能要求) (2)
三.概要设计(程序设计思想) (3)
四.详细设计(源代码) (6)
五.调试分析(运行结果显示及说明) (31)
六.课设总结 (34)
题目1: 运动会分数统计**
任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7,5,3,2,1,取前三名的积分分别为:5,3,2,;哪些取前五名或前三名由学生自己设定。(m〈=20,n〈=20);
题目2:一元多项式**
任务:能够按照指数降序排列建立并输出多项式;
能够完成两个多项式的相加,相减,并将结果输入;
题目4:迷宫求解
任务:可以输入一个任意大小的迷宫数据,用非递归的方法求出一条走出迷宫的路径,并将路径输出;
题目5:文章编辑**
功能:输入一页文字,程序可以统计出文字、数字、空格的个数。
静态存储一页文章,每行最多不超过80个字符,共N行;
题目6:Joseph环
任务:编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有的人出列为止。设计一个程序来求出出列的顺序。
2
题目7:猴子选大王**
任务:一堆猴子都有编号,编号是1,2,3 ...m ,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。
题目8:建立二叉树,层序、先序遍历(用递归或非递归的方法都可以) **
任务:要求能够输入树的各个结点,并能够输出用不同方法遍历的遍历序列;
题目9:纸牌游戏**
任务:编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后…从第4张开始,以4为基数,是4的倍数的牌翻一次,直到最后一张牌;...再依次5的倍数的牌翻一次,6的,7的直到以52为基数的翻过,输出:这时正面向上的牌有哪些?
运动会分数统计
1)可以输入前三名或前五名的成绩;
2)能统计各学校总分;
3)可以按学校编号,学校总分,男女团体总分排序输出;
4) 可以按学校编号查询学校某个项目的情况;可以按项目编号查询查询取得前三名或前五名的学校。
规定:输入数据形式和范围:20以内的整数
输出形式:有中文提示,各学校分数为整形
界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求;
一元多项式计算
能够完成两个多项式的相加,相减,并将结果输入;
迷宫求解
要求:在上交资料中请写明:存储结构、基本算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;
文章编辑
(1)分别统计出其中英文字母数和空格数及整篇文章总字数;
(2)统计某一字符串在文章中出现的次数并输出该次数,用函数letter_num(),figure_num(),space_num(),total_num()来实现。
(3)删除某一子串,并将后面的字符前移,用delstr()来实现。
存储结构使用线性表,分别用几个子函数实现相应的功能;
2
输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。
输出形式:(1)分行输出用户输入的各行字符;
(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"
(3)输出删除某一字符串后的文章;
Joseph环
利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。
输入数据:建立输入处理数据,输入m的初值,n,输入每个人的密码,建立单循环链表。
输出是什么:建立一个输出函数,将正确的输出序列;
猴子选大王
输入数据:输入m,n m,n 为整数,n 输出形式:中文提示按照m个猴子,数n 个数的方法,输出为大王的猴子是几号,建立一个函数来实现此功能;首先用一个数组来存放猴子的编号,从1到m,然后用hzxdw()按题目要求,用两个双重循环来实现猴子大王的选举. 建立二叉树 typedef struct node 是定义二叉树的存储结构 creat(bitree *bt)是用来建立二叉树的输入的 levelorder(bitnode *bt,int m)是用来建立层序遍历序列的 preorder(bitree bt)是用来实现非递归先序遍历的 main是主函数 纸牌游戏 直接用函数main()按照题目要求的规则,只使用数组和用几个循环来实现. 运动会分数统计: 先分配存储的空间;输入运动项目个数、参加的学校的个数、男子比赛项目的个数、女子比赛项目的个数;循环每个项目的输入;自行选择取前三名还是前五名,循环输入姓名、成绩、学校;通过调用子函数进行计算;输出结果。 一元多项式计算: 通过typedef struct polynode来定义单链表存储多项式的结点结构。 利用尾插法建立一元多项式的链表,先建立多项式的头结点,当表不为空的时候,申请新的结点, 2