程序设计题目参考


             

题目一  运动会分数统计; 

任务:参加运动会有n个学校,学校编号为1……n.比赛分成m个男子项目,w个女子项目.项目编号为男子1......m,女子m+1......m+w.不同的项目取前五名或前三名积分;取前五名的积分分别为:75321,前三名的积分分别为:532;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20) 

功能要求: 

1.可以输入各个项目的前三名或前五名的学校; 

2.能统计各学校总分; 

3.可以按学校编号、学校总分、男女团体总分排序输出; 

4.可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。 

规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称) 

输出形式:有中文提示,各学校分数为整形 

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

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

 

题目二 校园导游咨询系统(至少包括10个景点); 

设计任务即要求: 

1、设计学校的校园平面图,所含景点不少于10个。以图中顶点表示校内个景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息; 

2、为来访客人提供图中任意景点相关信息的查询; 

3、为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径; 

 

题目三 .赫夫曼编码问题

要求给定一个文本文件,统计其中字符的是用频率,建立huffman树,设计huffman 编码与译码方案。

 

题目四 设计一元稀疏多项式简单计数器

1) 输入并建立多项式

2) 输出多项式,输出形式为整数序列:nc1e1c2e2……cnen,其中n是多项式的项数,ciei分别为第i项的系数和指数。序列按指数降序排列。

3) 多项式ab相加,建立多项式a+b,输出相加的多项式。

4) 多项式ab相减,建立多项式a-b,输出相减的多项式。

(5) 多项式ab乘,建立多项式a*b,输出相减的多项式。

 

要求:用带表头结点的单链表存储多项式。

设计思路:

首先,根据一元多项式的特点,定义描述多项式中每一项的数据类型;

定义一个一元多项式类:

其数据成员包括用来存储一元多项式的一个链表;

该类的基本操作包括:

一元多项式的创建(用头插法或尾插法创建链表)

一元多项式的遍历(输出,本质上是单链表的遍历)

一元多项式的加法运算(对两个单链表进行遍历,在遍历的过程中对指数相同的项目相加)

一元多项式的减法运算(对两个单链表进行遍历,在遍历的过程中对指数相同的项目相减)

一元多项式的乘法运算

 

题目五 表达式求值与表示

基本功能要求:

1能对表达式中括号进行匹配检查(即,简单的语法检查)

2计算中缀表达式的值

3)将中缀表达式转换成后缀表达式,并对后缀表达式求值

4)建立表达式的抽象语法树,并采用二叉链表的形式存储这棵树

 

题目六 狼羊白菜问题(设计算法,给出运送路线)

  问题:农夫带着狼、羊、白菜从河的左岸到河的右岸,农夫每次只能带一样东西多河,而且,没有农夫看管,狼会吃羊,羊会吃白菜。

提示:利用图论解决问题。(用农夫、狼、羊、白菜及其在左岸还是右岸等表示图中的顶点)

题目七 通讯网造价问题。

如果以无向网表示n个城市之间通信网络的建设计划,顶点表示城市,边上的权表示该线路的造价,设计一个方案,使这个通讯网的总造价最低。

 

提示:这是一个求最小生成树的问题。n个城市名和各边的权值由用户输入,建立图的邻接矩阵,然后以Prim算法来求最小生成树,然后输出方案。

 

题目八 学生成绩管理系统

现有学生成绩信息文件11.txt),内容如下

姓名    学号   语文  数学   英语     

张明明  01     67    78      82

李成友  02     78    91      88

张辉灿  03     68    82      56

王露    04     56    45      77

陈东明  05     67    38      47

学生成绩信息文件22.txt,内容如下:

姓名    学号   语文  数学   英语     

陈果    31     57    68      82

李华明  32     88    90      68

张明东  33     48    42      56

李明国  34     50    45      87

陈道亮  35     47    58      77

试编写一管理系统,要求如下:

1) 实现对两个文件数据进行合并,生成新文件3.txt

2) 抽取出三科成绩中有补考的学生并保存在一个新文件4.txt

3) 对合并后的文件3.txt中的数据按总分降序排序(至少采用两种排序方法实现)

4) 输入一个学生姓名后,能查找到此学生的信息并输出结果(至少采用两种查找方法实现)

5) 要求使用结构体,链或数组等实现上述要求.

 

题目十 设计一个平衡二叉树类, 

1)构造一棵平衡二叉树

2)在平衡二叉树中插入一个节点,使之仍然是一棵平衡二叉树

3)在平衡二叉树中删除一个节点,使之仍然是一棵平衡二叉树

4)从大到小输出平衡二叉树中所有关键字不小于X的数据元素

 

题目十一 迷宫问题问题:

设计任务:迷宫实验是取自心理学的一个古典实验。在该实验中,把一只老鼠从一个无顶大盒子的门放入,在盒中设置了许多墙,对行进方向形成了多处阻挡。盒子仅有一个出口,在出口处放置一块奶酪,吸引老鼠在迷宫中寻找道路以到达出口。对同一只老鼠重复进行上述实验,一直到老鼠从入口到出口,而不走错一步。老鼠经多次试验终于得到它学习走迷宫的路线。设计一个计算机程序对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 

要求:在给出入口和出口的前提下,给出动态的迷宫行走路线。

 

题目十三  通讯录管理系统

编写一个通讯录管理系统(通迅录以文本文件的形式存放。)。本系统应完成一下几方面的功能:

1) 输入信息

2) 显示信息
3) 查找以姓名作为关键字
4) 删除信息

5) 存盘(将数据写入文件)

6) 装入(将存放在文件中的数据读到内存中);

题目十四 拓扑排序及关键路径的计算

要求:分别采用邻接矩阵和邻接表实现图的拓扑排序,并计算关键路径

题目十四 公交站点的综合查询

要求:采用图结构保存某市3条以上公交线路的站点数据,给出指定起点和终点的多条路径及换乘方案,计算最短路径,并实现模糊查询。

题目十五 背包问题的求解

假设有一个能装入总体积为T的背包和n件体积分别为w1 , w2 , … , wn 的物品,能否从n件物品中挑选若干件恰好装满背包,即使w1 +w2 + … + wn=T,要求找出所有满足上述条件的解。例如:当T=10,各件物品的体积{184352}时,可找到下列4组解:(1432

145

82

352)。

提示:可利用回溯法的设计思想来解决背包问题。首先将物品排成一列,然后顺序选取物品装入背包,假设已选取了前件物品之后背包还没有装满,则继续选取第i+1件物品,若该件物品"太大"不能装入,则弃之而继续选取下一件,直至背包装满为止。但如果在剩余的物品中找不到合适的物品以填满背包,则说明"刚刚"装入背包的那件物品"不合适",应将它取出"弃之一边",继续再从"它之后"的物品中选取,如此重复,直至求得满足条件的解,或者无解。

由于回溯求解的规则是"后进先出"因此自然要用到栈。

 

题目十六  内部排序算法的性能分析

设计一个测试程序比较几种内部排序算法的关键字比较次数和移动次数以取得直观感受。

基本要求:

(1)对冒泡排序、直接排序、简单选择排序、快速排序、希尔排序、堆排序算法进行比较;

(2)待排序表的表长不小于100,表中数据随机产生,至少用5组不同数据作比较,比较指标有:关键字参加比较次数和关键字的移动次数(关键字交换记为3次移动);

(3)输出比较结果。

(4)对不同表长进行比较;

(5)验证各算法的稳定性

 

题目十七 实现有序集合

以单链表或双链表表示集合,提供集合插入元素、删除元素、比较相等、包含、并、交、差等运算

 

题目十八:树

要求:设计树类,采用孩子链表或孩子兄弟链表存储,实现以下操作

以树的广义表表示构造一棵树

树的先根、后跟和层次次序对树进行遍历

插入、删除操作

题目十九:以二叉排序树表示集合

要求: 提供集合插入元素、删除元素、比较相等、包含、并、交、差等运算

  

题目二十:程序规格化处理

要求:

1. 每行只有一行语句

2. 删除注释语句

3. 每个控制结构(循环和分支)都以“{”开始,以“}”结束(分别占用1行)

4. 按锯齿形缩进

题目二十一:程序中变量的识别

要求:对.cpp文件中声明的变量及其类型(只限于基本的数据类型),并输出结果。

   例如:程序中有声明语句:int a,b,c; 则输出 

a int

  b int

  c int 

题目二十二:哈希表的设计与实现   

  问题描述:   设计哈希表实现电话号码查询系统。   

  基本要求:   

1. 设每个记录有下列数据项:电话号码、用户名、地址;   

2. 从键盘输入各记录,分别以电话号码和用户名为关键字建立哈希表;   

3. 采用链地址法解决冲突;   

4. 查找并显示给定电话号码的记录;   

5. 查找并显示给定用户名的记录。   

 


 

posted @ 2015-07-30 18:26  tiantsing  阅读(2131)  评论(0编辑  收藏  举报