《2022级数据结构课程设计任务书.docx》由会员分享,可在线阅读,更多相关《2022级数据结构课程设计任务书.docx(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2022级数据结构课程设计任务书 98 修改起泡排序 试修改起泡排序,以交替的正、反两个方向进行扫描。即第一趟把排序码最大的记录放到最末尾,第二趟把排序码最小的记录放到最头上。如此反复进行。 99求出mn矩阵的所有马鞍点。 矩阵A中的元素若满足:Ai,j是第i行中值最小的元素,且又是第j列中值最大的元素,则称元素Ai,j为该矩阵的一个马鞍点。求出mn矩阵的所有马鞍点。 100迷宫求解 在迷宫中求一条路径的算法,基本思想:若当前、位置可通过,则压入栈中,否则探索下一位置,若走不通,则回溯,迷宫大小:M*N。迷宫设置自定义。 101用密钥K对密文C解密得到明文P 设明文P=P0P1P2Pn和密钥K
2、=K0K1K2Km(n=m)中的字符Pi(17FH) 解密: Pi=Ci-Kj (j=i mod (m+1) (当Ci=Kj) Pi=Ci-Kj+80H (j=i mod (m+1) (当CiKj) 102求二叉树中指定两个结点共同的祖先。 求二叉树中指定两个结点共同的祖先。 103 内存分配算法 处理器中有一就绪队列,若干个进程依到达的时刻依次进入就绪队列,每个进程有进程名和处理器处理此进程的所需空间,仿静态链表形式分配内存所需空间,编程序实现内存分配算法。 104 货物进栈、出栈算法 商店货架以栈的形式摆放商品,生产日期越近的越靠近栈底,出栈是从栈顶取货,一天营业结束,如果货架不满,则需上
3、货,如果直接将商品摆放到货架上,则会使生产日期越近的越靠近栈顶.这就需要倒货架,仍使生产日期越近的越靠近栈底。写出货物进栈、出栈算法。 105银行业务模拟问题描述 客户业务分为两种。第一种是申请从银行得到一笔资金,即取款或借款。第二种是向银行投入一笔资金,即存款或还款。银行有两个服务窗口,相应的有两个队列。客户到达银行后先排第一个队。处理每个客户业务时,如果属于第一种,且申请额超出银行现存资金总额而得不到满足,则立即排入第二队等候,直至满足时才离开银行,否则业务处理完后立即离开银行。每接待完一个第二种业务的客户,则顺序检查和处理(如果可能)第二个队列的客户,对能满足的申请者予以满足,不能满足者
4、重新排到第二个队列的队尾。注意,在此检查过程中,一旦银行资金总额少于或等于刚才第一个队列中最后一个客户(第二种业务)被接待之前的数额,或者本次已将第二个队列检查或处理了一遍,就停止检查(因为此时已不可能还有能满足者)转而继续接待第一个队列的客户。任何时刻都只开一个窗口。假设检查不需要时间。营业时间结束时所有客户立即离开银行。写一个上述银行业务的事件驱动模拟系统,通过模拟方法求出客户在银行内逗留的平均时间。 106文章编辑 功能:输入一页文字,程序可以统计出文字、数字、空格的个数。 静态存储一页文章,每行最多不超过80个字符,共N行;要求(1)分别统计出其中英文字母数和空格数及整篇文章总字数;(
5、2)统计某一字符串在文章中出现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。 存储结构使用线性表,分别用几个子函数实现相应的功能; 输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。输出形式:(1)分行输出用户输入的各行字符;(2)分4行输出全部字母数、数字个数、空格个数、文章总字数(3)输出删除某一字符串后的文章; 107英文文章检索 该题目是对字符串和文件方面知识的运用,对英文文章实现查找、插入、删除、替换、定位等操作。 要求:对英文文章实现字符串模式匹配算法和文件操作算法。 108 哈希查找 哈希查找是一种有效的查找方法,是与内存地址有关的查找。该题
6、目是对一组任意的关键字进行哈希设置,并且利用多种方式解决冲突。 要求:用不同的方式建立哈希函数,并且用不同的方法解决冲突。 109 B-树模拟实现 该题目是考察 B-树的插入、删除、检索等操作,实现对关键字进行查找的功能。要求:用图形方式对该问题进行模拟。 110基数排序的实现 基数排序是排序算法中一个比较特殊的方法,是对多关键字进行排序有效方法。要求:使用图形模拟基数排序过程。 111外部排序模拟 该题目是考察学生对排序知识的了解,并且对内部排序和外部排序的区别和方法有一定的了解,并能够用文件的知识对其实现和模拟。 要求:用文件的知识模拟外部排序,考虑内存和外存之间的关系。 112中国邮路问
7、题 问题描述:一个邮递员从邮局选好邮件去投递,然后回到邮局。当然他必须经过他所管辖的每条街至少一次。请为他设计一条投递路线,使其所行的路程尽可能地短。 基本要求: (1)设计邮递员的辖区,并将其抽象成图结构进行表示,建立其存储结构。 (注:数据输入可以是键盘输入和文件输入两种方式) (2)按照输入邮局所在位置,为邮递员设计一条最佳投递路线,要能考虑到辖区一般情况。 (3)界面要求:有合理的提示和人机交互。 113八数码 问题描述: 在一个33的九宫中有18这8个数及一个空格随机的摆放在其中的格子里,用户设定一个初始状态和设定一个最终状态,要求动态给出采用A*算法找出的从初始状态变化到最终状态的
8、最优路径,并显示出该算法下所有可能的路径节点。各状态之间变化的调整规则是:每次只能将与空格(上、下、左、右)相邻的一个数字平移到空格中。 A*算法描述:在所有结点对应的f(n) = h(n) + g(n) 中选择f(n)最小值,作为下次选择路径的起点。其中: n:结点的编号。 h(n):与目标状态相比,该状态数码的错位个数。 g(n):搜索的深度,一般根节点(初始状态)的深度是为0, 其他子节点深度为父结点深度加1。 基本要求: (1)从终端输入的8数码的初始状态和最终状态。 如: (2) 显示求解中 的所有结点,并输出 各结点对应的f (n)值; (3) 要求输出从初态移动到终态的最优移动过
9、程(路径)。 (4) 界面友好,函数功能要划分好。 114关键路径问题 问题描述:当一项工程划分为若干个子任务或活动后,人们不仅需要确定这些活动的先后次序,而且需要进一步计算完成整个工程的时间,确定哪些活动是影响工程进度的关键活动,以便合理地组织人力、物力、财力,加快这些活动的进度,为按时或提前完成整个工程提供保证,这就是关键路径问题。关键路径问题相应的网称为AOE 网,其中:顶点表示事件,边表示活动,边上的权表示活动持续的时间。 基本要求: (1)对一个描述工程的AOE 网,建立其存储结构;(注:数据的输入可以是键盘输入或文件输入两种方式) (2)判断该AOE 网是否能够顺利进行。 (3)若
10、该工程能顺利进行,输出完成整项工程至少需要多少时间,以及每一个关键活动所依附的两个顶点、最早发生时间、最迟发生时间。(注:结果的输出可以是屏幕输出和文件输出两种方式) 115最小生成树问题 问题描述:已知一个无向连通网表示n 个城市以及城市间可能设置的通信线路,其中网的顶点表示城市,边表示两个城市之间的线路,赋于边上的权值表示相应的代价。对于n 个点的连通网可以建立许多不同的生成树,每一棵生成树都可以是一个通信网。现在,我们要选择这样一棵生成树,使总的耗费最小。即构造连通网的最小生成树的问题。 基本要求: (1)建立城市交通网的存储结构。(注:数据输入可以是键盘输入或文件输入两种方式) (2)
11、分别用Prim 算法和Kruskal 算法构造最小生成树,并输出最小生成树的代价及生成树的边。(注:结果的输出可以是屏幕输出和文件输出两种方式) (a)初态 5 7 4 6 1 3 8 2 (b)终态 5 6 7 4 8 3 2 1 116校园导游系统 问题描述:设计一个校园导游程序,完成校园信息的维护以及为来访的客人提供信息查询等 服务功能。 基本要求: (1)设计学校的校园平面图,所含景点不少于10个,以图中顶点表示校内各景点,顶点的信息包括:景点名称、代号、简介等,以边表示道路,边上信息包括:两点 距离、所需时间等相关信息。(注:数据的输入可以是键盘输入或文件输入两种方 式) (2)提供
12、对校园景点信息的编辑(如:添加、删除、修改等)的功能; (3)为来访客人提供图中任意景点相关信息的查询(可提供多种查询方式); (4)为来访客人提供从校门口到图中任意景点的问路查询(最短路径); 为来访客人提供图中任意景点间的问路查询。 117文件目录管理系统 问题描述:文件是管理用户信息和应用程序的一种工具。每个文件有唯一的文件名,可 以通过文件名访问文件,同时可对文件进行生成、删除及文件名修改等操作。文件系统 对若干文件进行管理时将所有的文件目录组合在一起构成一个目录文件。通过对目录文 件的管理达到“按名存取”的目的,目录文件常采用的组织结构是树型目录结构。 基本要求: 函数功能要划分好,
13、程序要有必要的注释。 用户通过界面菜单选择以下操作: (1)生成文件,选择路径和文件名,实现对文件的生成。 (2)删除文件,对指定文件进行删除操作。 (3)修改文件,对指定文件进行内容修改或者文件名修改。 (4)输出该目录结构。 118哈夫曼树编码/译码系统 问题描述:哈夫曼编码在通讯、网络、数据压缩、图像处理中的得到广泛应用,在一个通讯 系统中,采用图形界面设计m叉哈夫曼树(m2),对通讯信息进行编码和解码。 基本要求: a)从终端读入字符集大小n,以及n个字符和n个权值,建立m叉哈夫曼树,并将哈夫 曼树以直观的方式(如树形)显示在终端上; b)利用已经建好的哈夫曼树,对终端输入的字符串或者
14、文件ToBeTran中的正文进行编 码,然后将结果存入文件CodeFile中,并输出结果,将文件CodeFile以紧凑格式显示 在终端上,每行50个代码。同时将此字符串形式的编码文件写入文件CodePrint中。 c)利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件TextFile中, 并输出结果。 119电梯运行仿真程序 问题描述:编写一个程序,模拟办公大楼中全部电梯的工作过程。该仿真程序可以用来监测 系统运行情况,改善大楼管理,它也可以看成是一种游戏程序。 系统初步描述: (1)办公大楼有若干层(例如,10层),每层都有电梯可到达,全楼有若干部(例如,不多于10 部
15、)电梯同时供使用,电梯容量为24人,电梯运行每上下一层需5 秒,在 某一层停下至少需15 秒。其运行状态可分:向上、向下、停止,当前乘客数,当前 所在层数。它设有一个“按钮数组”,例如第五层的按钮按下,意味着有乘客在第5 层到达目标层,等等。 (2)在楼的每一层,有电梯数,有按钮表示有人等待向上或向下,由若干人在等待,有若干电梯在本层停下,等等。 (3)在大楼中(包括进出)的总人数不超过500 人,每个人站在电梯前有个目标层,他有一个最大的忍受等待时间,因为他可以选择电梯或是步行走楼梯,等等。 (4)还有下面若干假设:在每个时间段要进大楼的人数在0199 之间随机取值; (5)用电梯的每个人的
16、目标层在110 之间取值;一个人在进电梯或改走楼梯之前的等待时间在180360 秒范围内随机发生;一个人到达目标层后第二次再乘电梯中间的 工作时间在4006600 秒间随机取值。 120迷宫问题 问题描述:用一个字符类型的二维数组表示迷宫,数组中的每个元素表示一个小方格,取值“0”(通道)或“1”(阻塞物)。设计一个模拟小老鼠走迷宫的程序,为小老鼠寻找一条从迷宫入口到迷宫出口的途径小方格最少的最短通路。 基本要求: (1)用随机函数设置迷宫; (2)选择合适的数据结构表示迷宫。 (3)迷宫入口处的下标是(x0,y0),出口处的下标是(x1,y1),由键盘输入。 (4)输出从入口到出口的最短通路
17、(如存在)或不存在通路的信息。 设计出友好的图形化界面,做到很好的人机交互。 基本要求:设计出如上图所示的图形化界面,模拟电梯运行。 121停车场管理系统 问题描述:设计一个停车场管理系统,模拟停车场的运作。 基本要求: (1)要求以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序 列进行模拟管理; (2)要求处理的数据元素包括如下数据项:汽车“到达”或“离去”信息、汽车牌照及“到达”或“离去”的时刻; (3)若是车辆到达,就输出汽车在停车场内或便道上的停车位置;若是车离去,就输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。 (4)完成该停车场的一些信息
18、统计功能(如每天到达/离开的车次,停车总时数、每天的停车费用等)。 122实用的小型通讯录 问题描述:设计一个管理个人通讯录的程序,完成下列基本功能。 1)“文件”管理 a)导入通讯录 要求: 采用手工输入方式,C盘下建立一个通讯录文件,存放与用户相关的人员通讯 信息 通过合并方式,将用户选定通讯录文件与C盘下已有通讯录文件合并,产生新 的通讯录。(注意:新通讯录中不能出现重复的人员通讯信息) 每条通讯信息由姓名、手机号码、家庭号码、工作单位、家庭住址、与本人关 系组成,每个数据项以字符串形式定义。 b)导出通讯录 要求: 将所有通讯信息导出在EXCEL表中存放。 将部分满足条件的通讯信息导出
19、EXCEL表中存放 c)备份通讯录 要求: 在默认的C:BackUp文件夹中,定期备份通讯录中所有信息。 备份文件以“BackUp当前日期.txt”命名 2)通讯录管理 a)通讯录信息浏览 要求: 所有通讯信息浏览。 某个类别的通讯信息浏览。其中类别有家庭、朋友、同学、同事和其他四类。 b)通讯录信息添加 要求: 按照类别添加通讯信息,如果类别缺省,则属于“其他”类中。 添加后,需要及时更新通讯录文件。 c)通讯录信息删除 要求: 删除后,需要及时更新通讯录文件。 d)通讯录信息查询:按照姓名、电话号码等字段,进行精确、模糊查询,并在屏幕上 输出查询结果。 要求: 精确查询结果演示 如查询“姓
20、名是刘梅”同学信息,则输出 学号姓名数学英语语文. 2022112022 刘梅88 90 78 . 模糊查询结果演示 如查询“姓刘”的同学信息,则输出 学号姓名数学英语语文. 2022112022 刘梅88 90 78 . 2022112022 刘强87 80 98 . 2022112022 刘星86 70 58 . 能够实现连续多次查询 e)通讯录信息修改 要求: 修改后,需要及时更新通讯录文件。 f)通讯录类别管理 类别添加 类别删除 类别修改 要求: 类别删除后,下属的所有通讯信息,应该归为“其他”类中。 123哈希表的设计与实现 问题描述:设计一个哈希表,实现个人电话号码查询系统。 基
21、本要求: (1)设每个记录有下列数据项:电话号码、用户名、用户住址; (2)从键盘输入各记录,分别以电话号码和用户名为关键字建立哈希表; a)设计不同的哈希函数,比较冲突率; b) 在哈希函数确定的前提下,尝试各种不同类型处理冲突的方法,考察平均查找长度 的变化。 查找并显示给定电话号码/用户名的记录; 124学生信息管理系统 问题描述:设计一个学生信息管理系统,实现对学生基本信息的添加、删除、修改和查询等操作。 基本要求:程序采用图形界面下进行交互的工作方式,完成如下功能:(1)多种方式建立学生信息 每个学生信息由学号、姓名、数学、英语和语文组成; 可以通过手工录入每个学生信息,并在C盘下以
22、StudentFile.txt保存; 也可以导入某个路径下存放学生信息的文本文件。 (2)浏览所有学生信息。 (3)按照学号对所有学生信息进行升序、降序排列,并输出 可选用冒泡、选择、快速排序等算法; 不仅输出屏幕显示,还需要写入存放学生信息的文件。 (4)按姓名、学号等方式,实现对学生信息精确查询、模糊查询,并输出屏幕显示 精确查询结果演示 查询“姓名是刘梅”同学信息,则输出 学号姓名数学英语语文. 2022112022 刘梅88 90 78 . 模糊查询结果演示 查询“姓刘”的同学信息,则输出 学号姓名数学英语语文. 2022112022 刘梅88 90 78 . 2022112022 刘强87 80 98 . 2022112022 刘星86 70 58 . 能够实现连续多次查询 (5)学生信息的插入、删除、修改。 通过插入、删除和修改后,保持所有学生信息的有序性; 插入、删除和修改后,对存放所有学生信息的文件及时更新。 (6)数据的统计功能 统计每个学生的平均分和总分; 统计每个科目的平均分和最高分、最低分; 将上述统计结果,写入存放学生信息的文件。