2017年数据结构课程设计题目及报告范例 下载本文

1. 运动会分数统计

【问题描述】

参加运动会的n个学校编号为1~n。比赛分成m个男子项目和w个女子项目,项目编号分别为1~m和m+1~m+w。由于各项目参加人数差别较大,有些项目取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。写一个统计程序产生各种成绩单和得分报表。 【基本要求】

1) 可以输入各个项目的前三名或前五名的成绩; 2) 能统计各学校总分,

3) 可以按学校编号或名称、学校总分、男女团体总分排序输出; 4) 可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前

三或前五名的学校。 5) 数据存入文件并能随时查询

6) 规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称 输出形式:有中文提示,各学校分数为整型。

界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。

存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。

测试数据: 【测试数据】

要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。

例如,对于n=4,m=3,w =2,编号为奇数的项目取前五名,编号为偶数的项目取前三名,设计一组实例数据。 【实现提示】

可以假设n≤20,m≤30,w≤20,姓名长度不超过 20 个字符。每个项目结束时,将其 编号、类型符(区分取前五名还是前三名) 输入,并按名次顺序输入

1

运动员姓名、校名(和成 绩)。 【选作内容】

允许用户指定某项目采取其他名次取法。

2. 集合的并、交和差运算

【问题描述】

编制一个能演示执行集合的并、交和差运算的程序。 【基本要求】

(1) 集合的元素限定为小写字母字符 [‘a’..’z’] 。 (2) 演示程序以用户和计算机的对话方式执行。 【测试数据】

(1)Set1=\,Set2=\,

Set1∪Set2=\,Setl ∩Set2=\,Set1-Set2=\。 (2)Set1= \,Set2=\,

Set1∪Set2=\,Setl ∩Set2=\,Set1-Set2=\。 【实现提示】

以有序链表表示集合。 【选作内容】

(1) 集合的元素判定和子集判定运算。 (2) 求集合的补集。

(3) 集合的混合运算表达式求值。

(4) 集合的元素类型推广到其他类型 , 甚至任意类型。

3. 一元稀疏多项式计算器

【问题描述】

设计一个一元稀疏多项式简单计算器。 【基本要求】

一元稀疏多项式简单计算器的基本功能是: (1) 输入并建立多项式 ;

2

(2) 输出多项式,输出形式为整数序列:n,cl,el,c2,e2,…,cn,en,其中n是多项式的项数,ci 和ei,分别是第 i 项的系数和指数,序列按指数降序排列;

(3) 多项式a和b相加,建立多项式a +b; (4) 多项式a和b相减,建立多项式a -b 。 【测试数据】

(1)(2x+5x8-3.1x11) + (7-5x8+11x9)=(-3.lx11+11x9+2x+7) (2)(6x-3-x+4.4x2-1.2x9) -(-6x-3+5.4x2-x2+7.8x15)

=(-7.8x15-1.2x9+12x-3-x)

(3)(1 +x + x2+x3+x4+x5)+(-x3-x4)=(1+x+x2+x5) (4)(x+x3)+(-x-x3)=0

(5)(x+x100)+(x100 +x200)=(x+2x100+x200) (6)(x+x2+x3)+0=x+x2+x3

(7) 互换上述测试数据中的前后两个多项式 【实现提示】

用带表头结点的单链表存储多项式。 【选作内容】

(1) 计算多项式在x处的值。 (2) 求多项式 a 的导函数a? 。 (3) 多项式a和b相乘,建立乘积多项式ab 。

(4) 多项式的输出形式为类数学表达式。例如 ,多项式 -3x8+6x3-18 的输出形式为

?3x?8?6x?3?18,x15+(-8)x7-14的输出形式为x?15?8x?7?14。注意,数

值为1的非零次项的输出形式中略去系数1,如项1x8的输出形式为x8,项 -1x3的输出形式为-x3。

(5) 计算器的仿真界。

3