本次课程设计完成如下模块(前六题,每个小组必做,每个小组三人,每人两题。后面为选做,多做可以加分)。
基本题。1、 约瑟夫环(josehus)问题
任务:编号是1,2,……n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始顺时针方向自1开始顺序报数,报到m时停止报数。
报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计一个程序来求出出列顺序。
要求1: 利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。
测试数据:m的初值为20,n=7 ,7个人的密码依次为3,1,7,2,4,7,4,首先m=6,则正确的输出是什么?
要求2:输入数据:建立输入处理输入数据,输入m的初值,n ,输入每个人的密码,建立单循环链表。
输出形式:建立一个输出函数,将正确的输出序列。
2、 文章编辑。
任务:输入一页文字,程序可以统计出文字、数字、空格的个数。
静态存储一页文章,每行最多不超过80个字符,共n行;
要求:1)分别统计出其中英文字母数和空格数及整篇文章总字数;
2)统计某一字符串在文章**现的次数,并输出该次数;
3)删除某一子串,并将后面的字符前移。
存储结构使用线性表,分别用几个子函数实现相应的功能;
输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。
输出形式:1) 分行输出用户输入的各行字符;
2) 分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数";
3) 输出删除某一字符串后的文章;
3、n阶魔阵问题。
任务:给定一奇数n,构造一个n阶魔阵。n阶魔阵是一个n阶方阵,其元素由自然数1,2,3,…,n2组成。
魔阵的每行元素之和,每列元素之和以及主、副对角线之和均相等。既对于给定的奇数n以及i=1,2,3,…,n。魔阵a满足以上条件。
要求:要求输出结果的格式要具有n阶方阵的形式。
提示:依次将自然数填入方阵中,共填n轮,每轮填n次。第一轮的第一次,将1填入方阵的中间一行的最后一列位置。设前一次填入的位置是aij。
1) 每轮中第2至第n次将数填入ai+1,j+1,若遇到下列情况之一,则填写位置按以下规则调整:
. aij是最后一列(即j=n)位置,则将下一个数填入ai+1,1;
. aij是最后一行(即i=n)位置,则将下一个数填入a1,j+1;
2) 新一轮的第一次填入a1,j-1.
4、 赫夫曼树编码问题
任务 :假设用于通信的电文仅由8个字母组成,字母在电文**现的频率分别为7,19,2,6,32,3,21,10。试为这8个字母设计哈夫曼编码。
要求:这8个字母任意,输出各个字母的编码值。
5、无向网应用问题。
任务:如果以无向网表示n个城市之间通信网络的建设计划,顶点表示城市,边上的权表示该线路的造价,设计一个方案,使这个通讯网的总造价最低。
提示:这是一个求最小生成树的问题。n个城市名和各边的权值由用户输入,建立图的邻接矩阵,然后以prim算法来求最小生成树,然后输出方案。
6、统计成绩。
任务:给出n个学生的考试成绩表,每条信息有姓名与分数组成,1) 分数高低次序,打印出每个学生在考试中获得的名次,分数相同的为同一名次;
2) 按名次列出每个学生的姓名与分数。
要求:学生的考试成绩表必须通过键盘输入数据而建立,同时要对输出进行格式控制。
选做题。1. 统计成绩。
在上面第6题的基础上,统计一个班级中每一个学生多门课程的成绩及排名(按各门课程及总分排名)。
2.一元多项式简单计算。
问题描述:设计一个一元多项式简单的计算器。
基本要求:一元多项式简单计算器的基本功能为:
1) 输入并建立多项式;
2) 输出多项式;
3) 两个多项式相加,建立并输出和多项式;
4) 两个多项式相减,建立并输出差多项式。
实现提示:可选择带头结点的单向循环链表或单链表存储多项式,头结点可存放多项式的参数,如项数等。
3.停车场管理。
设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。
停车场内如有某辆车要开走,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。如果停留在便道上的车未进停车场就要离去,允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。
编制一程序模拟停车场管理。
实现提示:
汽车的模拟输入信息格式可以是:(到达/离去,汽车牌照号码,到达/离去的时刻)。例如:
(‘a’,1,5)表示一号牌照车在5这个时刻到达,而(‘d’,5,20)表示5号牌照的车在20这个时刻离去。整个程序可以在输入信息为(‘e’0,0)时结束。
基本要求:要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场时应交纳的费用和它在停车场内停留的时间。
4.订票系统。
任务: 通过此系统可以实现如下功能:
录入: 可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)
查询: 可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);
可以输入起飞抵达城市,查询飞机航班情况;
订票: (订票情况可以存在一个数据文件中,结构自己设定)
可以订票,如果该航班已经无票,可以提供相关可选择航班;
退票: 可退票,退票后修改相关数据文件;
客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
修改航班信息: 当航班信息改变可以修改航班数据文件。
要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;
设计和调试过程的规范化要求。
1. 对每个题目要有需求分析。
在需求分析中,将题目中要求的功能进行叙述分析,并且设计解决此问题的数据存储结构,(有些题目已经指定了数据存储的,按照指定的设计),设计或叙述解决此问题的算法,描述算法建议使用流程图。给出实现功能的一组或多组测试数据,程序调试后,将按照此测试数据进行测试的结果列出来 。
如果程序不能正常运行,写出实现此算法中遇到的问题,和改进方法;
2. 对每个题目要有相应的源程序(可以是一组源程序,即详细设计部分):
源程序要按照写程序的规则来编写。要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。程序能够运行,要有基本的容错功能。尽量避免出现操作错误时出现死循环;
3. 最后提供的主程序可以象一个应用系统一样有主窗口,通过主菜单和分级菜单调用课程设计中要求完成的各个功能模块,调用后可以返回到主菜单,继续选择其他功能进行其他功能的选择。
数据结构课程设计题目
题目1实现两个链表的合并。要求 编一程序将a表和b表归并成一个新的递增有序的单链表c 值相同的元素均保留在c表中 并要求利用原表的空间存放c。测试数据 1 a表 30,41,15,12,56,80 b表 23,56,78,23,12,33,79,90,55 2 a表 30,41,15,12,56,8...
数据结构课程设计题目
题目1 图的遍历。功能 实现图的深度优先,广度优先遍历算法,并输出原图结构及遍历结果。分步实施 1 初步完成总体设计,搭好框架 2 完成最低要求 两种必须都要实现,写出画图的思路 3 进一步要求 画出图的结构,有兴趣的同学可以进一步改进图的效果。要求 1 界面友好,函数功能要划分好。2 总体设计应画...
数据结构课程设计题目
数据结构课程设计 题目与要求。一 实验学时 两周。二 要求 1 题目从以下题目中选择,完成程序设计及设计文档。2 程序的要求 实现的功能要求尽量完善。完善基本功能的基础上,再扩充其它功能。3 课程设计说明书的格式要求 a4纸打印,格式设置统。一 规范 美观。三 题目。1.运动会分数统计 限1 人完成...