数据结构与算法课程设计(2015计科)
数据结构与算法课程设计题目[范文大全]
![数据结构与算法课程设计题目[范文大全]](https://img.taocdn.com/s3/m/4bf43dcd162ded630b1c59eef8c75fbfc77d940b.png)
数据结构与算法课程设计题目[范文大全]第一篇:数据结构与算法课程设计题目数据结构与算法课程设计题目1.成绩管理问题描述:给出n个学生的考试成绩表,成绩表包括学生的学号、姓名、考试成绩(高等数学、英语、物理),设计一个简单的成绩管理程序。
基本要求:(1)建立成绩表,能够插入、删除、修改学生的成绩记录;(2)按任一单科成绩排序;(3)计算每名学生的平均成绩;(4)统计任一单科成绩不及格的学生人数, 输出不及格人数及不及格的学生名单(5)根据平均成绩将成绩表按由高到低的次序排列,统计每名学生在考试中获得的名次,分数相同的为同一名次,按名次输出成绩表。
(6)成绩表保存在文件中, 可以从文件读取数据。
测试数据:学生可以根据自己班级的考试成绩单,任意截取一部分做为测试数据 2.一元多项式简单计算问题描述:设计一个简单一元多项式计算器。
基本要求:(1)输入并建立多项式;(2)输出多项式;(3)两个多项式相加,输出结果多项式;(4)两个多项式相减,输出结果多项式。
提高要求:可以根据输入变量的值,计算出多项式的结果,且算法的效率高。
测试数据:可任意选取两个一元多项式,可以是一般的多项式,也可以是稀疏多项式。
3.舞伴问题问题描述:一班有m个女生、n个男生(m不等于n), 举办一场舞会.男女生分别编号坐在舞池两边的椅子上,每曲开始时, 依次从男生和女生中各出一人配对跳舞, 本曲没成功配对者坐着等待下一曲找舞伴,设计一个程序模拟舞伴配对过程。
基本要求:输入男、女学生的姓名、性别,由程序自动为男女生编号,可以顺序编号,也可以随机编号,输出每曲配对情况(包括男、女生的姓名、性别和编号)。
原始数据和结果数据要保存到文件中。
测试数据:分别选择男生多于女生、女生多于男生、男女生相等的三组测试数据提高要求:计算出任意一位男生(编号为X)和任意一位女生(编号为Y), 在第K曲配对跳舞的情况。
4.文学研究助手(*)问题描述:文学研究人员需要统计某篇英文小说中某些形容词的出现次数和位置。
大二计算机科学教案数据结构与算法设计

大二计算机科学教案数据结构与算法设计大二计算机科学教案:数据结构与算法设计一、引言计算机科学作为一门重要的学科,对于计算机专业的学生来说具有重要的意义。
在大二的阶段,学生们需要深入了解计算机科学的核心概念和技术,其中数据结构与算法设计是必不可少的一部分。
本教案旨在帮助大二计算机科学专业的学生们全面掌握和应用数据结构与算法设计的知识。
二、教学目标1. 理解数据结构与算法设计的基本概念和原理;2. 掌握各种常见的数据结构,包括数组、链表、栈、队列、树等;3. 掌握常用的算法设计方法,如贪心算法、动态规划、回溯算法等;4. 能够分析和解决实际问题,并选择合适的数据结构和算法进行实现。
三、教学内容1. 数据结构的基本概念和分类1.1 数据结构的定义和作用1.2 数据结构的分类:线性结构、非线性结构、逻辑结构和物理结构等1.3 常见的数据结构:数组、链表、栈、队列、树、图等2. 数组与链表2.1 数组的定义和基本操作2.2 链表的定义和基本操作2.3 数组与链表的比较3. 栈与队列3.1 栈的定义和基本操作3.2 队列的定义和基本操作3.3 栈与队列的应用4. 树与二叉树4.1 树的定义和基本概念4.2 二叉树的定义和基本操作4.3 树与二叉树的遍历算法5. 图5.1 图的定义和基本概念5.2 图的表示方法:邻接矩阵和邻接表5.3 图的遍历算法6. 算法设计方法6.1 贪心算法的原理和应用6.2 动态规划的原理和应用6.3 回溯算法的原理和应用6.4 分治算法的原理和应用7. 实际问题解决7.1 利用数据结构和算法解决实际问题的步骤7.2 实例分析:如何利用数据结构和算法设计解决迷宫问题四、教学方法1. 理论授课:通过讲解和示例分析,详细介绍数据结构和算法设计的基本概念和原理。
2. 实践演练:设计课堂练习和实验项目,让学生动手实践,加深对于数据结构和算法的理解和应用能力。
3. 小组讨论:组织学生分组进行讨论和合作,解决实际问题,并分享思路和解决方法。
《数据结构与算法》课程设计报告范例1

《数据结构与算法》课程设计报告姓名:学号:专业:信息与计算科学一、课题:链表的维护与文件形式的保存以有序链表结构表示某家电商场的库存模型。
提/进货时,需对链表进行维护。
每个工作日结束后,应将该链表以文件形式保存;每日营业前,应从文件中恢复该有序链表结构。
链表接点的数据域包括家电名称,品牌,单价和数量,以单价的升序体现链表的有序性。
程序包括:初始化,创建表,插入,删除,更新数据,查询及链表数据与文件之间的转换等;二、功能、算法、体会描述:系统主要有两个界面,第一个界面是查看界面,任何人可以查看到多个库存或日志文件(050902--050905),如果某个库存文件丢失了,可以通过操作恢复,在这也可以也可以查看到某日的金额统计情况,第二个界面是操作界面,只有操作员可以通过密码进入,可以对某个指定的库存文件进行进货,提货,删货,排序,查询操作,操作的情况可以被系统随时保存,当您想退出此界面时可保存库存和日志情况,文件名可自定,保存完后,自动退回到第一个界面,您当然就可以在查看界面中查看到您刚刚保存的库存或者日志文件了。
1.库存查看功能:基本思想:利用SetupGoodsList( )函数,将库存文件内容先转成链表形式,然后利用TraverseList( )函数,遍历一个链表,就可以直接显示查看到了。
具体步骤:先将文件读到结构体中,读满一个结构体内容就将此结构体连到定义好的链表上,这儿利用了InsertRear( )函数,一直这样读下去只到文件里读不到内容为止,语句描述如下:while(ifstr>>g.code){ifstr>>>>g.mark>>g.minq>>g.curq;InsertRear(L,g);}2.日志查看功能:日志文件的内容看起来跟库存文件差不多,但是里面多了个“操作情况”这一览,所以在读的时候要注意这一点,实现这个功能的我编了rizhichakan( )函数基本思想:将文件内容独到结构体数组中,然后再显示出来具体步骤:先读一个字符串到数组d[ ]中,然后用strcmp( ),判断是不是“j”字符串,如果是就连读5个字符串到定义好的结构体数组中,因为这句话是放在while( )循环里的,要能够的起循环就要不断的给d[ ]赋新值,所以循环语句中还有一句:再读第6个字符串到d[ ]中,只要符合循环条件的都会被连续加到结构体数组中,语句描述为:ifstr>>d;//因为是比较两个字符串所以要一个数组while(strcmp(d,"j")==0){ifstr>>r[x].code>>r[x].name>>r[x].mark>>r[x].minq>>r[x].curq;ifstr>>d[0]; //数组赋不起来,所以改成了元素x++;}其它以“t”“s”开头的也同样的道理,这样就将处了开头的“j”“t”“s”字符以外的信息内容全分别存到三个结构体数组中,这样往外显示的时候可以更清楚方便准确,然后就到用for( )语句循环的将结构体内容显示了,语句描述为:for(p=1;p<x;p++){cout<<setw(8)<<"j";cout<<setw(9)<<r[p].code<<setw(16)<<r[p].name<<setw(16)<<r[p].mark<<setw(10)<<r[p]. minq<<setw(10)<<r[p].curq<<endl;体会:在这懂了strcmp( )是比较两个字符串的,不是单纯的字符,对while()循环有了更深刻的理解,明白了文件的内容要经过一个中间环节,才能够显示,这儿的中间环节就是结构体数组。
数据结构与算法应用课程设计

数据结构与算法应用综合课程设计要求与指导数据结构是一门实践性很强的课程,只靠读书和做习题是不能提高实践能力的,尤其是在数据结构中要解决的问题更接近于实际。
所以要求学生在学习过程中,结合实际问题进行相应的课程设计与实践,自己分析问题、设计数据结构和算法,再编写代码上机调试和测试程序,以达到解决实际问题,培养数据结构的应用能力与实践能力。
一、课程设计的要求1、熟练掌握各种数据结构的逻辑结构特性、存储结构与常用操作算法;2、能分析课程设计的相应题目,结合理论学习考虑用一种或多种数据结构来解决问题;3、能分析并设计在某种数据结构下解决问题的步骤即算法;4、熟练掌握面向对象程序设计思想方法与编译系统的使用方法,能较好地编写程序实现数据结构与算法,解决实际问题5、能较好地进行程序的静态检查与动态调试与测试6、能按要求写好课程设计报告二、课程设计的目的1、深入理解和掌握书本上的理论知识,将书本上的知识变“活”2、理论与实践相结合,学会如何把书本上的数据结构和算法的知识用于解决实际问题,培养数据结构的应用能力和软件工程所需要的实践能力3、进行软件工作的规范训练,初次体会软件开发的一般简单过程4、培养团队合作精神和良好的科学作风以及沟通能力三、课程设计的工作步骤1、明确课程设计小组构成与分工每一小组由2人组成,各同学可自由组合。
每小组选择后面课程设计备选题目中的一个,共同完成问题分析和任务定义、数据类型和系统设计后,2人协商分工进行程序设计与调试。
每个同学必须有明确而又互不相同的工作任务,并保证工作量一致。
在课程设计中还要注意两人的协调与合作。
2、问题分析和任务定义首先充分分析和理解问题,明确问题要求做什么,限制条件是什么,即明确“做什么”。
如:输入数据的类型、值的范围以及输入的形式;输出数据的类型、值的范围及输出的形式;若是会话式的输入,则结束标志是什么,是否接受非法的输入,对非法输入的回答方式是什么等等2、数据类型和系统设计1)逻辑设计:对问题描述中涉及的操作对象定义相应的数据类型,并定义主程序模块和各抽象数据类型,画出模块之间调用关系图2)详细设计:定义相应的存储结构(写出数据存储结构的类型定义)并写出各过程和函数的算法3、编码实现和静态检查1)编码实现:把算法设计的结果用程序设计语言程序写出来。
课程设计-算法与数据结构

《算法与数据结构》(课程设计)教学大纲课程代码:2109020360课程名称:算法与数据结构课程设计Course Design of Data Structure学分: 1学时:16先修课程:2109020210算法与数据结构适用对象:信息与计算科学一、教学目标《算法与数据结构》是信息与计算科学专业中一门重要的专业基础课程,是一门关键性核心课程。
本课程较系统地介绍了软件设计中常用的数据结构以及相应的存储结构和实现算法,介绍了常用的多种查找和排序技术。
本课程将为整个专业的学习以及软件设计水平的提高打下良好的基础。
《数据结构》是一门实践性较强的课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践,设置《数据结构课程设计》实践环节十分重要。
本课程设计的目标就是要达到理论与实际应用相结合,提高学生组织数据及编写大型程序的能力,并培养基本的、良好的程序设计技能以及合作能力。
二、教学内容及基本要求根据教材选择下列与实际应用紧密结合的较综合性的题目,也可由学生自行选择题目,但选题内容、难度要适当,要有一定的实际意义。
要求通过设计,在数据结构的逻辑特性和物理表示、数据结构的选择应用、算法的设计及其实现等方面加深对课程基本内容的理解和综合运用。
以下列出一些可供选择的题目:1.一元多项式的代数运算设计要求:计算任意两个一元多项式的加法、减法以及乘法。
2.算术表达式求值设计要求:将任意一个算术表达式转化为逆波兰表示,并根据逆波兰表示计算表达是的值。
3.舞伴问题假定在一舞会上,男士排成一队,女士排成一队。
跳舞开始时,依次从男队和女队的队头各出一人配成舞伴。
若两队初始人数不相同,则较长的那一队中未配对者等待下一轮舞曲。
设计要求:模拟上述舞伴系统,并能计算对于任何男士A和女士B在哪一轮舞曲中的k次跳舞?4.集合的等价划分设计要求:对于任何一个集合及其上的一个等价关系(要验证此关系的等价性),给出该集合的等价划分。
大学计算机科学教案:数据结构与算法的分析与设计

大学计算机科学教案:数据结构与算法的分析与设计引言大学计算机科学教学中,数据结构与算法是非常重要的一门课程。
数据结构与算法的分析与设计是计算机科学领域中的核心内容,掌握了这门课程的知识,对于学生在编程、软件设计以及解决复杂计算问题时具有重要的指导意义。
本文将介绍大学计算机科学教案中数据结构与算法的分析与设计的重要性以及具体内容,并通过分析实例和解决问题的方式来帮助读者更好地理解。
重要性数据结构与算法的分析与设计在计算机科学中具有重要的地位。
首先,良好的数据结构和高效的算法可以显著提高程序的性能和效率。
例如,在处理大规模数据时,合理选择数据结构和算法可以极大地缩短处理时间。
此外,数据结构和算法还可以优化程序的内存使用,减少不必要的资源浪费。
其次,数据结构与算法的分析与设计是计算机科学思维的重要组成部分。
通过学习数据结构与算法,学生能够培养抽象思维、逻辑推理和问题解决的能力。
这些能力对于学生在实际工作中分析、设计和实现复杂的计算系统至关重要。
最后,数据结构与算法的分析与设计是学习其他计算机科学领域的基础。
无论是数据库系统、人工智能还是网络安全等领域,都离不开数据结构与算法的支持。
掌握了数据结构与算法,学生在学习其他课程时会事半功倍。
数据结构数据结构是指数据元素之间的关系以及在计算机中组织和存储这些数据元素的方式。
常见的数据结构包括线性表、树、图等。
在数据结构的学习中,我们需要了解每种数据结构的基本概念、特点、操作和存储方式。
线性表线性表是最简单的数据结构之一,它包括线性存储结构和链式存储结构。
在线性表中,数据元素之间存在一对一的前后关系,例如数组和链表。
学习线性表时,我们需要掌握插入、删除、查找等基本操作,并分析其时间复杂度和空间复杂度。
树树是一种具有层次关系的数据结构,它由节点和边组成。
在树的学习中,我们需要了解树的基本概念、遍历方式、常见应用以及各种树结构(二叉树、平衡树、B树等)的特点和操作。
数据结构课程设计题目及要求(2015-2016-2)概论

课程设计题目每位同学在本次课程设计期间须选择两道题目(1,2任选一题,3.4任选一题)并按照要求完成。
1考试报名管理系统1.1题目简介考试报名工作给各髙校报名工作带来了新的挑战,给教务管理部门增加了很大的工作量,报名数据手工录入既费时又会不可避免地出现错误,同时也给不少学生以可乘之机。
本项目是对考试报划管理的简单模拟,用菜单选择方式完成下列功能:输入考生信息:输出考生信息;査询考生信息:添加考生信息:修改考生信息;删除考生信息。
1.2设计思路本项目的实质是完成对考生信息的建立、查找、插入、修改、删除等功能,可以首先泄义项目的数据结构,然后将每个功能写成一个函数来完成对数据的操作,最后完成主函数以验证各个函数功能并得出运行结果。
1.3数据结构本项目的数据是一组考生信息,每条考生信息由准考证号、姓名、性别、年龄、报考类别等信息组成,这组考生信息具有相同特性,属于同一数据对象,相邻数据元素之间存在序偶关系。
由此可以看出,这些数据也具有线性表中数据元素的性质,所以该系统的数据可以采用线性表来存储。
我们知道,线性表的顺序存储结构的特点是逻辑关系相邻的两个元素在物理位豊上也相邻, 因此可以随机存储表中任一元素,它的存储位置可用一个简单、直观的公式来表示。
然而,从另一个方而来看,这个特点也铸成了这种存储结构的弱点:在做插入或删除操作时,需要移动大量元素。
为克服这一缺点,我们引入另一种存储形式一一链式存储。
链式存储是线性表的列一种表示方法,由于它不要求逻辑上相邻的元素在物理位置上也相邻,因此它没有顺序存储结构的弱点,但同时也失去了顺序表可随机存取的特点。
链式存储的优点是插入或删除元素时很方便,使用灵活。
缺点是存储密度小,存储空间利用率低。
事实上,链表插入、删除运算的快捷是以空间代价来换取时间。
顺序表适宜于做查找这样的静态操作:链表宜于做插入、删除这样的动态操作。
若线性表的长度变化不大,且其主要操作是查找,则采用顺序表;若线性表的长度变化较大,且其主要操作是插入、删除操作,则采用链表。
计算机科学优质课数据结构与算法设计

计算机科学优质课数据结构与算法设计计算机科学优质课:数据结构与算法设计数据结构与算法是计算机科学中的核心学科,深入理解和掌握数据结构与算法的设计原理与实践应用,对于计算机科学学习和软件开发具有重要意义。
本文将介绍数据结构与算法设计的基本概念和原则,并探讨其在计算机科学优质课上的重要性。
一、数据结构的基本概念与原则数据结构是计算机中用于存储和组织数据的方式。
常见的数据结构包括线性表、树、图等。
数据结构的设计需要考虑以下几个基本概念和原则:1.1 概念:1.1.1 数据的逻辑结构:数据之间的关系和连接方式。
1.1.2 数据的物理结构:数据在计算机内存中的存储方式。
1.1.3 数据的操作:对数据进行的增、删、改、查等操作。
1.2 原则:1.2.1 抽象性:将数据抽象成逻辑上的单元,而不考虑具体的物理存储方式。
1.2.2 清晰性:数据结构的定义和操作应该清晰明确,方便理解和使用。
1.2.3 高效性:数据结构的设计应该追求高效的存储和操作方式。
二、算法设计的基本原则与技巧算法是解决问题的具体步骤和方法。
好的算法设计可以提高程序的运行效率和执行速度。
在算法设计中,需要遵循以下几个基本原则与技巧:2.1 基本原则:2.1.1 正确性:算法设计应该满足问题的要求,得到正确的结果。
2.1.2 清晰性:算法的设计和实现应该清晰明确,易于理解和调试。
2.1.3 高效性:算法的执行效率应该尽可能高,节约计算资源。
2.2 技巧:2.2.1 分而治之:将大问题分解成若干个小问题,然后分别解决。
2.2.2 动态规划:将大问题分解成一系列的子问题,利用已经解决过的子问题的解来求解更大的问题。
2.2.3 贪心算法:每一步选择当前最优解,最终得到全局最优解。
2.2.4 回溯算法:通过尝试不同的可能解决方案来求解问题。
三、数据结构与算法在计算机科学优质课中的重要性数据结构与算法是计算机科学优质课中的重要内容,具有以下几个方面的重要性:3.1 提高程序效率:合理选择和使用数据结构与算法可以提高程序的执行效率和运行速度,减少资源的消耗。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据结构与算法课程设计》要求 一、课程设计报告应包括封面、中英文摘要、目录、题目、1、问题分析和任务定义、2、数据结构的选择和概要设计、3、详细设计和编码、4、上机调试过程、5、测试结果及其分析、6、用户使用说明、附录、参考文献、致谢这几个部分和顺序; 二、文档格式为A4纸、页边距上下2.5cm,左右2.5cm; 三、图、表应有标号和名称,且图名位于图下,表名位于表格上方; 四、参考文献格式为: 序号作者.书名.出版地:出版社名称,出版社年份 序号作者.论文题名.期刊名称,年份,卷号(期号):起至页码 五、附录中的源代码应有适当的注释; 六、按照格式要求填写《课程设计报告封面》、《课程设计评分表》中学生应填写的内容。 七、课程设计结束后,学生应提交的文档包括纸质文档和电子文档。纸质文档包括: 1、《课程设计任务书》一份; 2、《课程设计报告》1份(用塑料拉杆夹装订好); 3、《课程设计评分表》1份; 纸质文档装入“课程设计资料袋”上交。 电子文档包括: 1、课程设计报告 2、课程设计评分表 3、课程设计任务书 4、源程序 5、程序的可执行文件(.exe) 将这些电子档形成一个压缩文件,文件名为:学号-姓名-课程设计名,发送至指导老师的邮箱。 课程设计内容:从以下题目中任选2题 1. 运动会分数统计 【问题描述】 参加运动会的n个学校编号为1~n。比赛分成m个男子项目和w个女子项目,项目编号分别为1~m和m+1~m+w。由于各项目参加人数差别较大,有些项目取前五名,得分顺序为8,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。写一个统计程序产生各种成绩单和得分报表。 【基本要求】 1) 可以输入各个项目的前三名或前五名的成绩; 2) 能统计各学校总分, 3) 可以按学校编号或名称、学校总分、男女团体总分排序输出; 4) 可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。 5) 数据存入文件并能随时查询 6) 规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称 输出形式:有中文提示,各学校分数为整型。 界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。 存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。 测试数据: 【测试数据】 要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。 例如,对于n=4,m=3,w =2,编号为奇数的项目取前五名,编号为偶数的项目取前三名,设计一组实例数据。 【实现提示】 可以假设n≤20,m≤30,w≤20,姓名长度不超过 20 个字符。每个项目结束时,将其编号、类型符(区分取前五名还是前三名) 输入,并按名次顺序输入运动员姓名、校名(和成绩)。 【选作内容】 允许用户指定某项目采取其他名次取法。
2. 魔王语言解释 【问题描述】 有一个魔王总是使用自己的一种非常精练而抽象的语言讲话,没有人能听得懂,但他的语言是可以逐步解释成人能听懂的语言,因为他的语言是由以下两种形式的规则由人的语言逐步抽象上去的: (1)m21 (2)1121)(nnn 在这两种形式中,从左到右均表示解释。试写一个魔王语言的解释系统,把他的话解释成人能听得懂的话。 【基本要求】 用下述两条具体规则和上述规则形式(2)实现。设大写字母表示魔王语言的词汇;小写字母表示人的语言词汇;希腊字母表示可以用大写字母或小写字母代换的变量。魔王语言可含人的词汇。 (1)tAdAB (2)saeA 【测试数据】 B(ehnxgz)B解释成tsaedsaeezegexenehetsaedsae 若将小写字母与汉字建立下表所示的对应关系,则魔王说的话是“天上一只鹅地上一只鹅鹅追鹅赶鹅下鹅蛋鹅恨鹅天上一只鹅地上一只鹅”。 t d s a e z g x n h 天 地 上 一只 鹅 追 赶 下 蛋 恨 【实现提示】 将魔王的语言自右至左进栈,总是处理栈顶字符。若是开括号,则逐一出栈,将字母顺序入队列,直至闭括号出栈,并按规则要求逐一出队列再处理后入栈。其他情形较简单,请读者思考应如何处理。应首先实现栈和队列的基本操作。
3. 银行业务模拟 【问题描述】 客户业务分为两种。第一种是申请从银行得到一笔资金,即取款或借款。第二种是向银行投入一笔资金,即存款或还款。银行有两个服务窗口,相应地有两个队列。客户到达银行后先排第一个队。处理每个客户业务时,如果属于第一种,且申请额超出银行现存资金总额而得不到满足,则立刻排入第二个队等候,直至满足时才离开银行;否则业务处理完后立刻离开银行。每接待完一个第二种业务的客户,则顺序检查和处理(如果可能)第二个队列中的客户,对能满足的申请者予以满足,不能满足者重新排到第二个队列的队尾。注意,在此检查过程中,一旦银行资金总额少于或等于刚才第一个队列中最后一个客户(第二种业务)被接待之前的数额,或者本次已将第二个队列检查或处理了一遍,就停止检查(因为此时已不可能还有能满足者)转而继续接待第一个队列的客户。任何时刻都只开一个窗口。假设检查不需要时间。营业时间结束时所有客户立即离开银行。 写一个上述银行业务的事件驱动模拟系统,通过模拟方法求出客户在银行内逗留的平均时间。 【基本要求】 利用动态存储结构实现模拟。 【测试数据】 一天营业开始时银行拥有的款额为10000(元),营业时间为600(分钟)。其他模拟参量自定,注意测定两种极端的情况:一是两个到达事件之间的间隔时间很短,而客户的交易时间很长,另一个恰好相反,设置两个到达事件的间隔时间很长,而客户的交易时间很短。 【实现提示】 事件有两类:到达银行和离开银行。初始时银行现存资金总额为total。开始营业后的第一事件是客户到达,营业时间从0到closetime。到达事件发生时随机地设置此客户的交易时间和距下一到达事件之间的时间间隔。每个客户要办理的款额也是随机确定的,用负值和正值分别表示第一类和第二类业务。变量total,closetime以及上述两个随机量的上下界均交互地从终端读入,作为模拟参数。 两个队列和一个事件表均要用动态存储结构实现。注意弄清应该在什么条件下设置离开事件,以及第二个队列用怎样的存储结构实现时可以获得较高的效率。注意:事件表是按时间顺序有序的。
4. 一元稀疏多项式计算器 【问题描述】 设计一个一元稀疏多项式简单计算器。 【基本要求】 一元稀疏多项式简单计算器的基本功能是: (1) 输入并建立多项式; (2) 输出多项式,输出形式为整数序列:n,cl,el,c2,e2,…,cn,en,其中n是多项式的项数,ci和ei,分别是第 i 项的系数和指数,序列按指数降序排列; (3) 多项式a和b相加,建立多项式a+b; (4) 多项式a和b相减,建立多项式a -b。 【测试数据】 (1)(2x+5x8-3.1x11) + (7-5x8+11x9)=(-3.lx11+11x9+2x+7) (2)(6x-3-x+4.4x2-1.2x9) -(-6x-3+5.4x2-x2+7.8x15) =(-7.8x15-1.2x9+12x-3-x) (3)(1 +x+x2+x3+x4+x5)+(-x3-x4)=(1+x+x2+x5) (4)(x+x3)+(-x-x3)=0 (5)(x+x100)+(x100+x200)=(x+2x100+x200) (6)(x+x2+x3)+0=x+x2+x3 (7) 互换上述测试数据中的前后两个多项式 【实现提示】 用带表头结点的单链表存储多项式。 5. 航空客运订票系统 【问题描述】 航空客运订票的业务活动包括:查询航线、客票预订和办理退票等。试设计一个航空客运订票系统,以使上述业务可以借助计算机来完成。 【基本要求】 (1)每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行周日(星期几)、乘员定额、余票量、已订票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需票量); (2)系统能实现的操作和功能如下: ①录入:可以录入航班情况,全部数据可以只放在内存中,最好存储在文件中; ②查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额; ③承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则需重新询问客户要求。若需要,可登记排队候补; ④承办退票业务:根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队候补的客户。 【测试数据】 由读者自行指定。 【实现提示】 两个客户名单可分别由线性表和队列实现。为查找方便,已订票客户的线性表应按客户姓名有序,并且,为插入和删除方便,应以链表作存储结构。由于预约人数无法预计,队列也应以链表作存储结构。整个系统需汇总各条航线的情况登录在一张线性表上,由于航线基本不变,可采用顺序存储结构,并按航班有序或按终点站名有序。每条航线是这张表上的一个记录,包含上述8个域、其中乘员名单域为指向乘员名单链表的头指针,等候替补的客户名单域为分别指向队头和队尾的指针。