设计报告内容要求
1. 课程设计题目
2. 姓名、学号、班级、日期
3. 课程设计内容描述:
4. 需求(输入、输出、功能、测试数据)
5. 实现思想、算法描述
6. 使用说明
7. 调试说明
8. 实现代码(带注释)
1. 一元稀疏多项式计算器
问题描述
设计一个一元稀疏多项式简单计算器。
基本要求
一元稀疏多项式简单计算器的基本功能是:
(1)输入并建立多项式;
(2)输出多项式,输出形式为整数序列:n,c1,e1,c2,e2,…,c n,e n,其中n是多项式的项数,c i,e i,分别是第i项的系数和指数,序列按指数降序排序;
(3)多项式a和b相加,建立多项式a+b;
(4)多项式a和b相减,建立多项式a-b;
(5)计算多项式在x处的值;
(6)计算器的仿真界面(选做)
2. 迷宫问题
问题描述
以一个m*n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。
基本要求
(1)实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路一三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。
(2)编写递归形式的算法,求得迷宫中所有可能的通路;
(3)以方阵形式输出迷宫及其通路(选做)
3. 哈夫曼编/译码器
问题描述
利用哈夫曼编码进行信息通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码;在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。试为这样的信息收发站写一个哈夫曼码的编译码系统。
基本要求
一个完整的系统应具有以下功能:
(1)I:初始化(Initialization)。从终端读入字符集大小n及n个字符和m个权值,建立哈夫曼树,并将它存于文件hfmtree中。
(2)C:编码(Coding)。利用已建好的哈夫曼树(如不在内存,则从文件hfmtree中读入),对文件tobetrans中的正文进行编码,然后将结果存入文件codefile中。
(3)D:解码(Decoding)。利用已建好的哈夫曼树将文件codefile中的代码进行译码,结果存入文件textfile中。
(4)P:打印代码文件(Print)。将文件codefile以紧凑格式显示在终端上,每行50个代码。同时,将此字符形式的编码文件写入文件codeprint中。
(5)T:打印哈夫曼树(Tree printing)。将已在内存中的哈夫曼树以直观的方式(树或凹入表形式)显示在终端上,同时将此字符形式的哈夫曼树写入文件treeprint中。
4. 教学计划编制问题
问题描述
大学的每个专业都要制订教学计划。假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限值均相等。每个专业开设的课程都是确定的,可以有任意多门,也可以没有。每门课恰好占一个学期。试在这样的前提下设计一个教学计划编制程序。基本要求
(1)输入参数包括:学期总数,一学期的学分上限,每门课的课程号(固定占3位的字母数字串)、学分和直接先修课的课程号。
(2)允许用户指定下列两种编排策略之一:一是使学生在各学期中的学习负担尽量均匀;二是是课程尽可能地集中在前几个学期中。
(3)若根据给定的条件问题无解,则报告适当的信息;否则,将教学计划输出到用户指定的文件中。计划的表格格式自行设计。
5. 成绩分析问题
问题描述
录入、保存一个班级学生多门课程的成绩,并对成绩进行分析。
基本要求
(1)通过键盘输入个学生的多门课程的成绩,建立相应的文件input.dat。
(2)对文件input.dat中的数据进行处理,要求具有以下功能:
1)按各门课程成绩排序,并生成相应的文件输出。
2)计算每人的平均成绩,按平均成绩排序,并生成文件。
3)求出各门课程的平均成绩、最高分、最低分、不及格人数、60~69分人数、70~79分人数、80~89分人数、90分以上人数。
4)根据姓名或学号查询某人的各门课成绩,重名情况也能处理
(3)界面美观
6. 二叉排序树与平衡二叉树的实现
问题描述
分别采用二叉链表和顺序表作存储结构,实现对二叉排序树与平衡二叉树的操作。
基本要求
(1)用二叉链表作存储结构。
1)以回车符(‘\n’)为输入结束标志,输入数列L,生成一棵二叉排序树T;
2)对二叉排序树T作中序遍历,输出结果;
3)计算二叉排序树T查成功的平均查长度,输出结果;
4)输入元素x,查二叉排序树T,若存在含x的结点,则删除该结点,并作中序遍历(执行操作2);否则,输出信息“无x”;
5)用数列L,生成平衡的二叉排序树BT:当插入新元素之后,发现当前的二叉排序树BT 不是平衡的二叉排序树,则立即将它转换成新的平衡的二叉排序树BT;
6)计算平衡的二叉排序树BT的平均查长度,输出结果。
(2)用顺序表(一维数组)做存储结构。
1)以回车符(‘\n’)为输入结束标志,输入数列L,生成一棵二叉排序树T;
2)对二叉排序树T作中序遍历,输出结果;
3)计算二叉排序树T查成功的平均查长度,输出结果;
4)输入元素x,查二叉排序树T,若存在含x的结点,则删除该结点,并作中序遍历(执行操作2);否则,输出信息“无x”;
7. 图的基本操作与实现
问题描述
自选存储结构,实现对图的操作。
基本要求
(1)自选存储结构,输入含n个顶点(用字符表示顶点)和e条边的图G;
(2)求每个顶点的度,输出结果;
(3)指定任意顶点x为初始顶点,对图G作DFS遍历,输出DFS顶点序列(提示:使用一个栈实现DFS);
(4)指定任意顶点x为初始顶点,对图G作BFS遍历,输出BFS顶点序列(提示:使用一个队列实现BFS);
(5)输入顶点x,查图G:若存在含x的顶点,则删除该结点及与之相关联的边,并作DFS遍历(执行操作3);否则,输出信息“无x”;
(6)判断图G是否是连通图,输出信息“YES”/“NO”;
(7)如果选用的存储结构是邻接矩阵,则用邻接矩阵的信息生成图G的邻接表,即复制图G,然后再执行操作2);反之亦然。
(8)自选图的其他任意一种操作实现之。
8. 全国交通咨询模拟
问题描述
处于不同目的的旅客对交通工具有不同的要求。例如,因公出差的旅客希望在旅途中的时间尽可能地短,出门旅游的旅客则期望旅费尽可能省,而老年旅客则要求中转次数最少。编织一个全国城市间的交通资讯程序,为旅客提供两种或三种最优决策的交通咨询。
设计要求
(1)提供对城市信息进行编辑(如添加或删除)的功能。
(2)城市之间有两种交通工具:火车和飞机。提供对列车时刻表和飞机航班进行编辑(增设或删除)的功能。
(3)提供两种最优决策:最快到达和最省钱到达。全程只考虑一种交通工具。
(4)旅途中耗费的总时间应该包括中转站的等候时间。
(5)咨询以用户和计算机的对话方式进行。由用户输入起始站、终点站、最优决策原则和交通工具。输出信息:最快需要多长时间才能到达或者最少需要多少旅费才能到达,并详细说明依次于何时乘坐哪一趟列车或那一次班机到何地。
实现提示
(1)对全国城市交通图和列车时刻表及飞机航班表进行编辑,应该提供文件形式输入和键盘输入两种方式。飞机航班表的信息应包括:起始站的出发时间、终点站的到达时间和票价;列车时刻表则需根据交通图给出各个路段的详细信息,例如:对从北京到上海的火车,需给出北京至天津、天津至徐州及徐州至上海各段的出发时间、到达时间及票价等信息。
(2)以邻接表座交通图的存储结构,表示边的结构内除含有邻接点的信息外,还应包括交通工具、路程中耗费的时间和花费以及出发和到达的时间等多种属性。
(3)增加旅途中转次数最少的最优决策。
9. 内部排序算法的性能分析
问题描述
设计一个测试程序,比较几种内部排序算法的关键字比较次数和移动次数以取得直观感受。
基本要求
(1)对冒泡排序、直接排序、简单选择排序、快速排序、希尔排序、堆排序算法进行比较。(2)待排序表的表长不小于100,表中数据随机产生,至少用5组不同数据作比较,比较指标:关键字参加比较次数和关键字的移动次数(关键字交换记为3次移动)。
(3)输出比较结果。
选做内容
(1)对不同表长进行比较。
(2)验证各算法的稳定性。
(3)输出界面的优化。
10. 背包问题的求解
问题描述
假设有一个能装入总体积为T的背包和n件体积分别为w1,w2,…,wn的物品,能否从n件物品中挑选若干件恰好装满背包,即使w1+w2+…+wn=T,要求出所有满足上述条件的解。例如:当T=10,各件物品的体积{1,8,4,3,5,2}时,可到下列4组解:(1,4,3,2)
(1,4,5)
(8,2)
(3,5,2)
实现提示
可利用回溯法的涉及思想来解决背包问题。首先,将物品排成一列,然后顺序选取物品装入背包,假设一选取了前i件物品之后背包还没有装满,则继续选取第i+1件物品,若该件物品“太大”不能装入,则弃之而继续选取下一件,直至背包装满为止。但如果在剩余的物品中不到合适的物品以填满背包,则说明“刚刚”装入背包的那件物品“不适合”,应将它取出“弃之一边”,继续再从“它之后”的物品中选取,如此重复,直至求得满足条件的解,或者无解。
由于回溯求解的规则是“后进先出”因此自然要用到栈。
11. 简单个人图书管理系统的设计与实现
问题描述
学生在自己的学习和生活中会拥有很多的书籍,对购买的书籍进行分类和统计是一种良
好的习惯。这样可以便于对这些知识资料的整理和查询使用。如果用文件来存储相关书籍的各种信息,包括分类、购买日期、价格、简介等,辅之以程序来使用这些文件对里面的书籍信息进行统计和查询的工作将使这种书籍管理工作变得轻松而有趣。简单个人书籍管理系统的开发就是为了解决这个实际问题的。个人网页设计模板html免费
这个系统具备如下的功能:
(1)存储书籍各种相关信息。
(2)提供查功能,按照多种关键字查需要的书籍,查成功后可以修改记录的相关项。
(3)提供排序功能,按照多种关键字对所有的书籍进行排序,例如按照价格进行排序。
(4)其他辅助的维护工作。
数据结构设计
由于书籍的册数较多,而且要在程序不再运行的时候仍然要保持里面的数据,所以采用文件的形式放到外存储器中,需要操作时,从文件中调入内存来进行查和排序的工作。
12. 简易电子表格的设计
问题描述
设计一个支持基本计算统计功能和其他一些表格管理/处理功能的计算机软件,使用户可在该软件的支持下,用互交方式进行表格建立、数据输入、数据编辑及其他一些表格操作。基本要求
(1)建立表格:建立空白表格,同时在屏幕上显示,使其处于可输入数据状态。
(2)输入数据与编辑数据:通过键盘将数据输入到显示在屏幕上的电子表格上,同时要支持基本的数据输入编辑。
(3)基本统计计算:统计计算的种类包括:合计、求平均、求最大/小统计计算方式;表格按行/列统计计算;表格按块统计计算。
(4)排序:使任一行/列中的数据按大小(升或降)排列,对字符串型数据,还要可选大小写敏感。
(5)表格保存:使电子表格存储在磁盘上(磁盘文件),并可随时读入,供继续处理。(6)数据复制:将表格中任一块数据,复制到另一块中。复制到目标块时,对目标块中原内容,可选择下列几种处理方式:代替、相加、相减、按条件替换。
(7)公式支持:单元格内可输入公式(表达式),使对应单元格的最终内容为公式的计算结果,公式最基本的形式是算术计算公式,公式中可以按名引用其他单元格。
13. 停车场模拟管理程序的设计与实现
问题描述
设停车场只有一个可停放几辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆
到达的先后顺序依次排列,若车场内已停满几辆汽车,则后来的汽车只能在门外的便道上等候,一旦停车场内有车开走,则排在便道上的第一辆车即可进入;当停车场内某辆车要离开时,由于停车场是狭长的通道,在它之后开入的车辆必须先退出车场为它让路,待该车辆开出大门,为它让路的车辆再按原次序进入车场。在这里假设汽车不能从便道上开走,试设计这样一个停车厂模拟管理程序。为了以下描述的方便,停车厂的停车场用“停车位”进行叙述,停车厂的便道用“便道”进行叙述。
14. 农夫过河问题的求解
问题描述
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论