数据结构选题

更新时间:2024-06-02 00:36:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数据结构课程设计题目及要求

一、要求

本次课程设计可以从以下的题目中任选其一,或者自拟题目,但必须报老师同意后才行,选题原则上一人一题,也可以小组合作,但每组不超过3人,且标明各人负责的内容。每个题目基本实现的要求是:

1、 有菜单功能

2、 有读写数据存盘功能

3、 有数据图形显示或动画显示。 成品应包括以下内容:

1、 程序设计书(Word格式,电子稿和打印纸质稿)。

包括程序设计目标、问题描述、需求分析、概要设计、详细设计、源程序清单(要求格式整齐400行以上,要有注释说明)、软件说明书(给出软件如何使用,使用时的注意事项)、测试报告(每个函数的功能测试,输入条件,输出结果)和课程设计总结。

2、可执行程序源代码。

3、答辩时使用的ppt(根据各人负责内容抽查)。 4、第十八周之前必须上交,否则记0分。

选题一:迷宫与栈问题

【问题描述】

以一个mXn的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 【任务要求】

1) 首先实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。

求得的通路以三元组(i,j,d)的形式输出。其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。如,对于下列数据的迷宫,输出一条通路为:(1,1,1),(1,2,2),(2,2,2),(3,2,3),(3,1,2),?。 2) 编写递归形式的算法,求得迷宫中所有可能的通路。 3) 以方阵形式输出迷宫及其通路。 【测试数据】

迷宫的测试数据如下:左上角(0,1)为入口,右下角(8,9)为出口。

入口00123456789出口123456789入口001234567891111111111100000000112100010110131110100101410001101015100100000161001001101711100001018100000000191111111101出口

选题二:算术表达式与二叉树

【问题描述】

一个表达式和一棵二叉树之间,存在着自然的对应关系。写一个程序,实现基于二叉树表示的算术表达式的操作。 【任务要求】

假设算术表达式Expression内可以含有变量(a~z)、常量(0~9)和二元运算符(+,-,*,/,^(乘幂))。实现以下操作:

1) ReadExpre(E)—以字符序列的形式输入语法正确的前缀表达式并构造表达式E。 2) WriteExpre(E)—用带括弧的中缀表达式输出表达式E。 3) Assign(V,c)—实现对变量V的赋值(V=c),变量的初值为0。 4) Value(E)—对算术表达式E求值。

5) CompoundExpr(P,E1,E2)--构造一个新的复合表达式(E1)P(E2) 【测试数据】

1) 分别输入0;a;-91;+a*bc;+*5^x2*8x;+++*3^x3*2^x2x6并输出。 2) 每当输入一个表达式后,对其中的变量赋值,然后对表达式求值。

选题三:银行业务模拟与离散事件模拟

【问题描述】

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

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

间。

2) 建议有如下设置:

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

由随机数产生器生成

选题四:文学研究助手与模式匹配算法KMP

【问题描述】

文学研究人员需要统计某篇英文小说中某些形容词的出现次数和位置。试写一个实现这一目标的文字统计系统 【任务要求】

1) 英文小说存于一个文本文件中。待统计的词汇集合要一次输入完毕,即统计工作必

须在程序的一次运行之后就全部完成。程序的输出结果是每个词的出现次数和出现位置所在的行的行号,格式自行设计。待统计的“单词”在文本串中不跨行出现,它或者从行首开始,或者前置以一个空格符。 2) 模式匹配要基于KMP算法。

3) 推广到更一般的模式集匹配问题,并设待查模式串可以跨行(提示:定义操作

GetAChar)。

【测试数据】

1) 文本文件为testword.c

2) 待统计的词集:if、else、for、while、return、void、int、char、typedef、struct

选题五:衡阳师院校园导游咨询与最短路径

【问题描述】

1) 从衡阳师院的平面图中选取有代表性景点(10-15个),抽象成一个无向带权图。

以图中顶点表示景点,边上的权值表示两地之间距离。

2) 本程序的目的是为用户提供路径咨询。根据用户指定的始点和终点输出相应路径,

或者根据用户指定的景点输出景点的信息。

【任务要求】

1) 从衡阳师院的平面图中选取有代表性景点(10-15个),抽象成一个无向带权图。

以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等信息。

2) 为来访客人提供图中任意景点相关信息的查询。 3) 为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的

简单路径。

4) 区分汽车线路与步行线路。 【测试数据】

衡阳师院导游图(距离可估计)。

选题六:B-树与B+树及其操作

【问题描述】

学习并研究B-树与B+树,并编写演示它们操作的程序。 【任务要求】

1) B-树构建、查找、插入和删除操作程序。 2) B+树构建、查找、插入和删除操作程序。 【测试数据】

选题七:哈夫曼(Huffman)编/译码器

【问题描述】

利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。试为这样的信息收发站写一个哈夫曼码的编/译码系统。 【任务要求】

一个完整的系统应具有以下功能: 1) I:初始化(Initialization)。从终端读入字符集大小n,以及n个字符和n个权值,

建立哈夫曼树,并将它存于文件hfmTree中。 2) E:编码(Encoding)。利用以建好的哈夫曼树(如不在内存,则从文件hfmTree中

读入),对文件ToBeTran中的正文进行编码,然后将结果存入文件CodeFile中。 3) D:译码(Decoding)。利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,

结果存入文件TextFile中。 4) P:印代码文件(Print)。将文件CodeFile以紧凑格式显示在终端上,每行50个代

码。同时将此字符形式的编码文件写入文件CodePrin中。 5) T:印哈夫曼树(Tree Printing)。将已在内存中的哈夫曼树以直观的方式(树或凹

入表形式)显示在终端上,同时将此字符形式的哈夫曼树写入文件TreePrint中。

【测试数据】

1) 利用教科书例6-2(严蔚敏《数据结构》P148)中的数据调试程序。 2) 用下表给出的字符集和频度的实际统计数据建立哈夫曼树,并实现以下报文的编码

和译码:“THIS PROGRAM IS MY FAVORITE”。 字符 频度 字符 频度 空格 A B 186 64 13 N 57 O P 63 15 C 22 Q 1 D 32 R 48 E 103 S 51 F 21 T 80 G 15 U 23 H 47 V 8 I 57 W 18 J 1 X 1 K 5 Y 16 L 32 Z 1 M 20 选题八:内部排序算法比较

【问题描述】

在教科书中,各种内部排序算法的时间复杂度分析结果只给出了算法执行时间的阶,或大概执行时间。试通过随机数据比较各种算法的关键字比较次数和关键字移动次数,以取得直观感受。 【任务要求】

1) 对以下7种常用的内部排序算法进行比较:冒泡排序、直接插入排序、简单选择排

序、希尔排序、堆排序、归并排序、快速排序。

2) 待排序表的表长不小于100;其中的数据要用伪随机数程序产生;至少要用5组不

同的输入数据作比较;比较的指标为有关键字参加的比较次数和关键字的移动次数(关键字交换计为3次移动)。

3) 最后要对结果作出简单分析,包括对各组数据得出结果波动大小的解释。 【测试数据】

由随机数产生器生成

选题九:简单行编辑程序

【问题描述】

文本编辑器程序是利用计算机进行文字加工的基本软件工具,实现对文本文件的插入、删除等修改操作。限制这些操作以行为单位进行的编辑程序称为行编辑程序。

被编辑的文本文件可能很大,全部读入编辑程序的数据空间(内存)的作法既不经济,也不总能实现。一种解决办法是逐段地编辑。任何时刻只把待编辑文件的一段放在内存,利为活区。试按照这种方法实现一个简单的行编辑程序。设文件每行不超过320个字符,很少超过80个字符。 【任务要求】

实现以下4条基本编辑命令:

1) 行插入:格式:i<行号><回车><文本><回车>

? 将<文本>插入活区中第<行号>行之后。

2) 行删除。格式:d<行号1>[<空格><行号2>]<回车>

? 删除活区中第<行号1>(到第<行号2>行)。例如“d10”和“d10 14” 3) 活区切换。格式:n<回车>

? 将活区写入输出文件,并从输入文件中读入下一段,作为新的活区。 4) 活区显示。模式:p<回车>

? 逐页地(每页20行)显示活区内容,每显示一页之后请用户决定是继续显示

以后各页(如果存在)。印出的每一行要前置行号和一个空格符,行号固定占4位,增量为1。

各条命令中的行号均须在活区中各行行号范围之内,只有插入命令的行号可以等于活区第一行行号减1,表示插入当前屏幕中第一行之前,否则命令参数非法。 【测试数据】

自行设定,注意测试将活区删空等特殊情况。

选题十:一元多项式计算

【问题描述】

1.能够按照指数降序排列建立并输出多项式;

2.能够完成两个多项式的相加、相减,并将结果输入;

【任务要求】

1.存储结构;

2.多项式相加的基本过程的算法(可以使用程序流程图) 3.可以提出算法的改进方法; 【测试数据】

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

选题十一:集合的交、并、差运算

【问题描述】

编制一个能演示执行集合的交、并和差运算的程序。 【任务要求】

1) 集合元素用小写英文字母,执行各种操作应以对话方式执行。 2) 算法要点:利用单链表表示集合;理解好三种运算的含 【测试数据】

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

选题十二:动态查找表

【问题描述】

利用二叉排序树完成动态查找表的建立、指定关键字的查找、插入与删除指定关键字结点。

【任务要求】

算法输入:指定一组数据。

算法输出:显示二叉排序树的中序遍历结果、查找成功与否的信息、插入和删除后的中序遍历结果(排序结果)。

算法要点:二叉排序树建立方法、动态查找方法,对树进行中序遍历。 【测试数据】

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

选题十三:学生成绩管理

【问题描述】

本例对学生的成绩管理做一个简单的模拟,用菜单选择方式完成下列功能: 登记学生成绩;查询学生成绩;插入学生成绩;删除学生成绩。 【任务要求】

算法输入:操作要求,学生信息

算法输出:操作结果

算法要点:把问题看成是对线性表的操作。将学生成绩组织成顺序表,则登记学生成绩即是建立顺序表操作;查询学生成绩、插入学生成绩、删除学生成绩即是在顺序表中进行查找、插入和删除操作。 【测试数据】

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

选题十四:马踏棋盘

【问题描述】

将马随机放在国际象棋的8* 8棋盘Bord[8Ⅱ8]的某个方格中,马按走棋规则进行移动。要求每个方格上只进入一次,走遍棋盘上全部64个方格。 【任务要求】

编制非递归程序,求出马的行走路线 ,并按求出的行走路线,将数字1,2,…,64依次填入一个8* 8的方阵,输出之。

测试数据:由读者指定,可自行指定一个马的初始位置。

实现提示:每次在多个可走位置中选择一个进行试探,其余未曾试探过的可走位置必须用适当结构妥善管理,以备试探失败时的“回溯”(悔棋)使用。 【测试数据】

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

选题十五: joseph环

【问题描述】

编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计一个程序来求出出列顺序。

【任务要求】

利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。

测试数据: m的初值为20,n=7 ,7个人的密码依次为3,1,7,2,4,7,4,首先m=6,则正确的输出是什么? 要求:

输入数据:建立输入处理输入数据,输入m的初值,n ,输入每个人的密码,建立单循环链表。

输出形式:建立一个输出函数,将正确的输出序列 【测试数据】

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

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

【问题描述】

拓扑排序可判断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) 尽量设计出多种算法及程序

目标与要求:

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

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

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

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

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

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

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

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

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

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

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

本文来源:https://www.bwwdw.com/article/cun6.html

Top