数据结构选题(5)

2019-04-16 14:46

选题二十一:拓扑排序和关键路径

【问题描述】

拓扑排序可判断AOV网络中是否存在回路,使的所有活动可排成一个线性序列,使用每个活动的所有前驱活动都排在该活动的前面。

关键路径的工期决定了整个项目的工期。任何关键路径上的终端元素的延迟将直接影响项目的预期完成时间(例如在关键路径上没有浮动时间)。 【任务要求】

构建AOV网络,并输出其拓扑序列结果,输出该图的关键路径和关键活动,存储结构自行选择。 【测试数据】

自行设定,注意边界等特殊情况。

选题二十二:仓库管理系统(线性表应用)

[问题描述]

建立一个仓库管理程序,可以按顺序和货物名称查询仓库存储情况,也可以增加或删除货物以及建立新的仓库存储系统。 [实现提示]

可以采用双向链表的存储结构,如可定义如下的存储结构: typedef struct dnode /*定义双向链表结构体*/ {int number; /*货物编号*/ char name[max]; /*货物名称*/ int counter; /*货物数量*/

struct dnode *prior,*next; /*定义两指针,分别指向其前驱和后继*/ }dlnode;

选题二十三:电话号码查询系统

问题描述:设计一个电话号码查询系统,要求采用哈希表方法实现查找,实现分别按电话号码排序和用户排序的功能 设计要求:

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

2 从键盘输入各记录,分别以电话号码和用户名为关键字建立哈希表。 3 采用再哈希法解决冲突。

4 查找并显示给定电话号码的记录。 5 查找并显示给定用户名的记录。 6 显示排序结果。

选题二十四:教学计划编制问题(图的应用)

[问题描述]

大学的每个专业都要制定教学计划。假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限值均相等。每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。每门课恰好占一个学期。试在这样的前提下设计一个教学计划编制程序。 [实现提示]

1、 输入参数应包括:学期总数,一学期的学分上限,每门课的课程号(可以是固定占

3位的字母数字串)、学分和直接先修课的课程号。 2、 应允许用户指定下列两种编排策略之一:一是使学生在各学期中的学习负担尽量均

匀;二是使课程尽可能地集中在前几个学期中。

3、 若根据给定的条件问题无解,则报告适当的信息;否则将教学计划输出到用户指定

的文件中。计划的表格格式可以自己设计。

4、 可设学期总数不超过12,课程总数不超过100。如果输入的先修课程号不在该专业

开设的课程序列中,则作为错误处理。

选题二十五:图书管理系统(查找应用)

[问题描述]

图书管理基本业务活动包括:对一本书的采编入库、清除库存、借阅和归还等等。试设计一个图书管理系统,将上述业务活动借助于计算机系统完成。 [实现提示]

1、 每种书的登记内容至少包括书号、书名、著者、现存量和总库存量等五项。

2、 由于图书管理的基本业务活动都是通过书号(即关键字)进行的,所以要用对书号

索引,以获得高效率。

3、 系统应实现的基本功能有:

? 采编入库:新购入一种书,经分类和确定书号之后登记到图书帐目中去。如果这

两种书在帐中已有,则只将总库存量增加。

? 清除库存:某种书已无保留价值,将它从图书帐目中注销。

? 借阅:如果一种书的现存量大于零,则借出一本,登记借阅者的图书证号和归还

期限。

? 归还:注销对借阅者的登记,改变该书的现存量。

? 显示:以凹入表的形式显示B树。这个操作是为了调试和维护的目的而设置的。

选题二十六 药店的药品销售统计系统(排序应用)

【问题描述】

设计一系统,实现医药公司定期对销售各药品的记录进行统计,可按药品的编号、单价、销售量或销售额做出排名。 【实现提示】

在本设计中,首先从数据文件中读出各药品的信息记录,存储在顺序表中。各药品的信息包括:药品编号、药名、药品单价、销出数量、销售额。药品编号共4位,采用字母和数字混合编号,如:A125,前一位为大写字母,后三位为数字,按药品编号进行排序时,可采用基数排序法。对各药品的单价、销售量或销售额进行排序时,可采用多种排序方法,如直接插入排序、冒泡排序、快速排序,直接选择排序等方法。在本设计中,对单价的排序采用冒泡排序法,对销售量的排序采用快速排序法,对销售额的排序采用堆排序法。 药品信息的元素类型定义: typedef struct node

{ char num[4]; /*药品编号*/ char name[10]; /*药品名称*/ float price; /*药品单价*/ int count; /*销售数量*/ float sale; /*本药品销售额*/ }DataType;

存储药品信息的顺序表的定义: typedef struct

{ DataType r[MaxSize]; int length; }SequenList;

选题二十七 电视大赛观众投票及排名系统(排序应用)

【问题描述】

在很多的电视大赛中,通常当选手表演结束后,现场观众通过手中的按键对参赛选手进行投票,然后对选手获得的票数进行统计,从高到低进行降序排序,从而自动产生冠军、亚军和季军。现在要求编写一程序模拟实现上述系统的功能。 【实现提示】

在本例中,首先输入参赛选手的人数(范围为1-9个),然后根据人数通过malloc函数来开辟存放选手信息的顺序表。将选手的编号和姓名依此存入顺序表单元中,观众通过按键进行投票,按’1’为1号选手投票,按’2’为2号选手投票,以此类推,以按’0’作为投票结束标志。投票结束后进行排序,在此采用希尔排序,然后为每个选手计算名次,得票相同的名次也相同, (1)存储类型的定义

参赛选手信息存储类型的定义: typedef struct node{

char name[8]; /*选手姓名*/ int num; /*选手编号*/ int score; /*选手得分*/ int tax; /*选手名次*/ }Node;

选题二十八:一元多项式简单计算

问题描述:设计一个一元多项式简单的计算器。 基本要求:一元多项式简单计算器的基本功能为:

(1) 输入并建立多项式; (2)输出多项式;

(3)两个多项式想加,建立并输出和多项式; (4)两个多项式相减,建立并输出差多项式。

实现提示:可选择带头结点的单向循环链表或单链表存储多项式,头结点可存放多项式的参数,如项数等。

选题二十九:车站购票业务模拟

【问题描述】

假设某车站有4个窗口对外接待客户,一天24小时不断有客户进入车站。由于每个窗口在某个时刻只能接待一个客户,因此在客户人数众多时需要在每个窗口前顺次排队,对于刚进入车站的客户(建议:客户进入时间使用随机函数产生),如果某个窗口的业务员正空闲,则可上前办理业务;反之,若4个窗口均有窗户所占,他便会排在人数最少的队伍后面。 【任务要求】

1) 编制一个程序以模拟车站的这种业务活动并计算一天中客户在车站逗留的平均时

间。

2) 建议有如下设置:

a) 客户到达时间随机产生,一天客户的人数设定为100人。 b) 业务员处理时间随机产生,平均处理时间10分钟。 3) 将一天的数据(包括业务员和客户)以文件方式输出。 【测试数据】

由随机数产生器生成

选题三十:任意长的整数加法

设计一个程序实现两个任意长的整数的求和运算。

基本要求:利用双向循环链表,设计一个实现任意长的整数进行加法运算的演示程序。要求输入和输出每四位一组,组间用逗号隔开。如:1,0000,0000,0000,0000。

选题三十一:马的遍历问题

问题描述:在中国象棋棋盘上,对任一位置上放置的一个“马”.均能选择一个合适的路线,使得该棋子能按象棋的规则不重复地走过棋盘上的每一位置。

选题三十二:五子棋游戏

设计程序实现一个人机对奕的五子棋游戏,棋盘大小为19×19.

选题三十三:

有一人要将自己的兔子、蔬菜和狐狸等三件物品运过河,但过河所用的船每次只能装其中的两件,两这三件物品之间又存在一定的制约关系:兔子不能单独和狐狸以及不能和蔬菜在一起,因为狐狸会吃兔子、兔子会吃蔬菜。试构造出问题模型并编程求解。

选题三十四:交通灯问题 通常十字路口只需设红绿灯,多叉路口则需设几种颜色的灯才能维持秩序,如下图所示路口,E、C是单行线,有的可以同时通告,如A→B和E→C,有的则不行,如E→B和A→D。试建立模型并解决。

选题三十五:九宫问题

在一个3×3的九宫中有1—8这8个数及一个空格随机摆放,如下面左图所示,现要求实现这样的问题:将该九宫格调整为如下右图所示。调整规则是:每次只能将与空格(上、下、左、右)相邻的一个数字平移到空格中。

选题三十六:飞机订票业务系统

每条航班所涉及的信息有:航班号,航班机型,起飞机场,降落机场,日期(星期几),起飞时间,降落时间,飞行时长,价格,乘员定额,余票量,订定票的客户名单(包括姓名,订票量,舱位等级(头等舱、公务舱、经济仓)以及等候替补的客户名单(包括姓名、所需数量)。采用链式存储结构。 系统能实现的操作和功能如下:(1)航班信息管理。 (2)查询航线,按以下几种方式查询:按航班号查询;按起点站查询;按终点站查询;按日期查询;每种查询方式中,查询后输出如下信息:航班号,航班机型,起飞机场,降落机场,日期(星期几),起飞时间,降落时间,飞行时长,价格,余票量。 (3)承办订票业务:根据客户提出的要求(航班号,订票数额)查询该航班票额情况,若有余票,则为客户办理订票手续,输出座位号;若已满员或余票少于订票额,则需重新询问客户要求。若需要,可登记排队候补。 (4)承办退票业务:根据客户提出的情况(日期,航班号),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其它排队候补的客户。

选题三十七 :纸牌游戏

编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后?从第4张开始,以4为基数,是4的倍数的牌翻一次, 直到最后一张牌;...再依次5的倍数的牌翻一次,6的,7的 直到 以52为基数的 翻过,输出:这时正面向上的牌有哪些?

选题三十八:学校超市选址问题

设计要求:对于某一学校超市,其他各单位到其的距离不同,同时各单位人员去超市的频度也不同。请为超市选址,要求实现总体最优。

选题三十九:猴子吃桃子问题

有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10天就只余下一个桃子。用多种方法实现求出原来这群猴子共摘了多少个桃子。 要求:

1)采用数组数据结构实现上述求解 2)采用链式数据结构实现上述求解 3)采用递归实现上述求解

选题四十:病人就医管理

目标与要求:

编写一个程序定义行医类,反映病人到医院看病,排队看医生的情况,在病人排队过程中,主要发生两件事:

(1) 病人到达诊室,将病历本交给护士,排到等待队列中候诊。 (2) 护士从等待队列中取出一位病人的病历,该病人进入诊室就诊。 要求程序采用菜单方式,其选项及功能说明如下:

(1) 排队------输入病人的病历号,加入到病人排队队列中

(2) 就诊-------病人排队队列中最前面的病人就诊,并将其从队列中删除。 (3) 查看排队------从队首到队尾列出所有的排队病人的病历号。 (4) 下班---------退出运行。

选题四十一:活期储蓄帐目管理

活期储蓄处理中,储户开户、销户、存入、支出活动频繁,系统设计要求: 1)能比较迅速地找到储户的帐户,以实现存款、取款记账;

2)能比较简单,迅速地实现插入和删除,以实现开户和销户的需要。 选题四十二:敢死队问题

有M个敢死队员要炸掉敌人的一碉堡,谁都不想去,排长决定用轮回数数的办法来决定哪个战士去执行任务。如果前一个战士没完成任务,则要再派一个战士上去。现给每个战士编一个号,大家围坐成一圈,随便从某一个战士开始计数,当数到5时,对应的战士就去执行任务,且此战士不再参加下一轮计数。如果此战士没完成任务,再从下一个战士开始数数,被数到第5时,此战士接着去执行任务。以此类推,直到任务完成为止。

排长是不愿意去的,假设排长为1号,请你设计一程序,求出从第几号战士开始计数才能让排长最后一个留下来而不去执行任务。

选题四十二:学生搭配问题

一班有m个女生,有n个男生(m不等于n),现要开一个舞会. 男女生分别编号坐在舞池的两边的椅子上.每曲开始时,依次从男生和女生中各出一人配对跳舞, 本曲没成功配对者坐着等待下一曲找舞伴. 请设计一系统模拟动态地显示出上述过程,要求如下: 1) 输出每曲配对情况 2) 计算出任何一个男生(编号为X)和任意女生(编号为Y),在第K曲配对跳舞的情况.至少求出K的两个值. 3) 尽量设计出多种算法及程序


数据结构选题(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:毛主席论教育革命

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: