当前位置:文档之家› 数据结构课程设计任务书及题目2012

数据结构课程设计任务书及题目2012

数据结构课程设计任务书及题目2012
数据结构课程设计任务书及题目2012

上海电力学院

课程设计(大型作业)任务书

(2011 /2012学年第二学期)

课题名称数据结构课程设计

课题代码 1305309

院(系)计算机与信息工程学院

专业计算机科学与技术、信息安全

班级2010级

学生

时间2012年6月25日---6月29日

叶文、张安勤、周平、田秀霞、彭媛、楼越焕、刘小洛、老师签名:珺

刘辉、邓莎莎、陈忠民

教研室主任(系主任)签名:

一、设计目的

《数据结构》是计算机相关专业的一门重要的专业基础课。它是学习操作系统、编译原理、数据库原理等计算机专业核心课程的基础,掌握好这门课程的内容,是学习计算机其他相关课程的必备条件,通过实验使学生更进一步了解数据结构的算法设计思想及实现方法,从而达到锻炼学生理论与实践相结合的能力。

本课程设计以设计综合性实验为主,培养学生灵活利用所学的综合知识,提高设计数据结构的能力和根据数据结构设计算法的能力;同时进一步培养学生利用C++面向对象的编程思想进行编程和调试程序的能力,以培养学生能够利用C++编写较复杂的程序的能力。

二、设计内容、要求及组织形式

1、基本要求

从培养一个软件工作者所应具备的科学工作的方法和作风的角度出发,通过本次课程实践,需要学生针对一个具体的问题和要求,掌握并完成如下步骤:1)、问题分析和任务定义

在进行设计之前,应该充分地分析和理解问题,明确题目要求做什么,限制条件是什么。对问题的描述应该避开算法和所涉及的数据类型,应对所需完成的任务作出明确的规定。

2)、数据类型和系统设计

分为逻辑设计和详细设计两个步骤实现。逻辑设计指的是,对问题描述中涉及的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主程序模块和各抽象数据类型;详细设计则为定义相应的存储结构并写出各函数的伪码算法。作为逻辑设计的结果,应写出每个抽象数据类型的定义,各主要模块的算法,并画出模块之间的调用关系图;详细设计的结果是对数据结构的基本操作的规格说明作出进一步的求精,写出数据存储结构的类型定义,按照算法书写规范写出函数形式的算法框架。

3)、编码实现和静态检查

要求程序的每行一般不要超过60个字符,每个函数体一般不超过40行,最长不超过60行,否则应分割成较小的函数;要控制if语句的深度。上机之前静态检查是必不可少的。可以用一组测试数据手工执行程序,也可以通过阅读或给别人讲解自己的程序而深入全面地了解程序逻辑。

2、课程设计题目

1人1题,选题参见附录2。由学生自由选题,但指导老师可以根据选题情况进行调整。

三、考核形式及成绩评定办法

考勤要求:

周一到周四,每天考勤1-2次。若缺课超过2次,取消答辩资格。

课程设计结束,每个同学必须上交如下资料:

1、一份打印的课程设计报告。格式见附录1。

2、提供源程序、课程设计报告电子文档。

3、教师要当面逐个答辩检查每个同学的完成情况,如发现抄袭或由其他同学代为完成,按不及格处理。

4、参加了课程设计但未答辩者,成绩按旷考处理。

5、每位同学独立完成题目,最后成绩和题目难度及完成程度相关。

6、评分细则:报告成绩占20%,答辩成绩占80%,分别以百分制给出,最终课程设计成绩以五分制给出。

附录1: 课程设计报告的书写格式

上海电力学院

数结构据(C++课设计)程

题 目:

姓 名: 学 号: 院 系: 计算机与信息工程学院 专业年级:

2012 年 06月 29日

一、设计题目

二、需求分析

1)运行环境(软、硬件环境)

2)输入的形式和输入值的范围

3)输出的形式描述

4)功能描述

5)测试数据

三、概要设计

1)抽象数据类型定义描述

(对各类的成员及成员函数进行抽象描述,参见书或ppt及实验)

2)功能模块设计(如主程序模块设计)

3)模块层次调用关系图

四、详细设计

实现概要设计中定义的所有的类的定义及类中成员函数,并对主要的模块写出伪码算法。

五、调试分析

包括调试过程中遇到的问题及解决的方法、算法的时间空间复杂性分析、经验体会。

六、测试结果

七、附录:程序设计源代码

附录2:课程设计题目

综合实验1 程序源代码的相似性 (7)

综合实验2 马踏棋盘 (8)

综合实验3 迷宫问题 (9)

综合实验4 病人就医管理系统 (10)

综合实验5 离散事件模拟 (11)

综合实验6 宿舍管理查询系统 (13)

综合实验7 集合的并、交和差运算 (14)

综合实验8 一元稀疏多项式计算器 (15)

综合实验9 简单的职工管理系统 (17)

综合实验10 供货信息管理系统 (18)

综合实验11 通讯录管理系统 (19)

综合实验12 停车场管理 (20)

综合实验13 学生成绩管理系统 (22)

综合实验14 运动会分数统计 (23)

综合实验15 基于BST(二叉排序树)的城市信息管理 (24)

综合实验16 社会网络分析系统的设计和实现 (25)

综合实验17 航空客运订票系统 (26)

综合实验18 文学研究助手 (27)

综合实验19 校园导游咨询 (28)

综合实验20 最小生成树问题 (29)

综合实验21 教学计划编制问题 (30)

综合实验22 全国交通咨询模拟 (31)

综合实验1 程序源代码的相似性

一、实验目的

(1)熟练掌握哈希查找表的建立及查找方式。

(2)利用哈希查找表实现程序源代码的相似性判定程序。

二、实验内容:

【问题描述】:

对于两个Java语言的源程序代码,用哈希表的方法分别统计两个程序中使用Java语言关键字的情况,并最终按定量的计算结果,得出两份程序的相似性。

【基本要求】

建立Java语言关键字的哈希表,统计在每个源程序中Java关键字出现的频度, 得到两个向量X1和X2,通过计算向量X1和X2的相对距离来判断两个源程序的相似性。

例如:

关键字Void Int For Char if else while do break class

程序1关键字频度 4 3 0 4 3 0 7 0 0 2

程序2关键字频度 4 2 0 5 4 0 5 2 0 1

X1=[4,3,0,4,3,0,7,0,0,2]

X2=[4,2,0,5,4,0,5,2,0,1]

设s是向量X1和X2的相对距离,s=sqrt( ∑(xi1-xi2) 2 ),当X1=X2时,s=0, 反映出可能是同一个程序;s值越大,则两个程序的差别可能也越大。

【测试数据】

选择若干组编译和运行都无误的Java程序,程序之间有相近的和差别大的,用上述方法求s, 对比两个程序的相似性。

【选作内容】

建立源代码用户标识符表,比较两个源代码用户标识符出现的频度,综合关键字频度和用户标识符频度判断两个程序的相似性。

综合实验2 马踏棋盘

一、实验目的:

(1)熟练掌握栈的基本操作及应用。

(2)利用栈的基本操作,编制实现一个国际象棋的马踏遍棋盘的非递归演示程序。二、实验内容:

【问题描述】

设计一个国际象棋的马踏遍棋盘的演示程序。

【基本要求】

将马随机放在国际象棋的88棋盘Board88的某个方格中,马按走棋规则进行移动。要求每个方格只进入一次,走遍棋盘上全部64个方格。编制非递归程序,求出马的行走路线,并按求出的行走路线,将数字1,2,…,64依次填入一个88的阵,输出之。

【测试数据】

由读者指定。可自行指定一个马的初始位置

【实现提示】

下页图显示了马位于方格(2,3)时,8个可能的移动位置。

一般来说,当马位于位置(i,j)时,可以走到下列8个位置之一

(I-2,j+1),(I-1,j+2),(I+1,j+2),(I+2,j+1),(I+2,j-1),(I+1,j-2),(I -1,j-2),(I-2j+1)

但是,如果(i,j)靠近棋盘的边缘,上述有些位置可能超出棋盘范围,成为不允许的位置。8个可能位置可以用两个一维数组Htry[10..7]和Htry[20..7]来表示。

位于(I,j)的马可以走到的新位置是在棋盘范围内的(I+Htry1[h],j+Htry2[h]),其中h =0,1, (7)

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

【选作内容】

(1)求出从某一起点出发的多条以至全部行走路线。

(2)探讨每次选择位置的“最佳策略”,以减少回溯的次数。

(3)演示寻找行走路线的回溯过程。

综合实验3 迷宫问题

一、实验目的:

(1)熟练掌握链栈的基本操作及应用。

(2)利用链表作为栈的存储结构,设计实现一个求解迷宫的非递归程序。

二、实验内容:

【问题描述】

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

【基本要求】

首先实现一个链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。如:对于下列数据的迷宫,输出的一条通路为:(1,1,1),(1,2,2),(2,2,2),(3,2,3),(3,1,2),……。

【测试数据】

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

1 2 3 4 5 6 7 8

0 0 1 0 0 0 1 0

0 0 1 0 0 0 1 0

0 0 0 0 1 1 0 1

0 1 1 1 0 0 1 0

0 0 0 1 0 0 0 0

0 1 0 0 0 1 0 1

0 1 1 1 1 0 0 1

1 1 0 0 0 1 0 1

1 1 0 0 0 0 0 0

【实现提示】

计算机解迷宫通常用的是“穷举求解”方法,即从入口出发,顺着某一个方向进行探索,若能走通,则继续往前进;否则沿着原路退回,换一个方向继续探索,直至出口位置,求得一条通路。假如所有可能的通路都探索到则未能到达出口,则所设定的迷宫没有通睡。

可以二维数组存储迷宫数据,通常设定入口点的下标为(1,1),出口点的下标为(n,n)。为处理方便起见,可以迷宫的四周加一圈障碍。对于迷宫任一位置,均可约定有东、南、西、北四个方向可通。

【选作内容】

(1)编写递归形式的算法,求得迷宫中所有可能的通路;

(2)以方阵形式输出迷宫及其通路。

综合实验4 病人就医管理系统

一、实验目的

(1)熟练掌握队列的两种存储方式。

(2)掌握队列的基本操作及应用。

(3)利用队列实现病人就医管理模拟程序。

二、实验内容:

【问题描述】

设计一个病人就医管理系统

【基本要求】

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

(1)病人到达诊室,将病历本交给护士,排到等待队列中候诊。

(2)护士从等待队列中取出一位病人的病历,该病人进入诊室就诊。

要求程序采用菜单方式,其选项及功能说明如下:

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

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

(4)下班---------退出运行。

【实现提示】

病人到达诊室,输入病人的病历号,加入到病人排队队列中。-病人排队队列中最前面的病人就诊,并将其从队列中删除。

【测试数据】

自己指定。

综合实验5 离散事件模拟

一、实验目的:

(1)熟练掌握队列的两种存储方式。

(2)掌握队列的基本操作及应用。

(3)利用链式存储线性表和队列实现银行业务模拟程序。

二、实验内容:

【问题描述】

客户业务分为两种。第一种是申请从银行得到一笔资金,即取款或借款。第二种是向银行投入一笔资金,即存款或还款。银行有两个服务窗口,相应地有两个队列。客户到达银行后先排第一个队。处理每个客户业务时,如果属于第一种,且申请额超出银行现存资金总额而得不到满足,则立刻排入第二个队等候,直至满足时才离开银行;否则业务处理完后立刻离开银行。每接待完一个第二种业务的客户,则顺序检查和处理(如果可能)第二个队列中的客户,对能满足的申请者予以满足,不能满足者重新排到第二个队列的队尾。注意,在此检查过程中,一旦银行资金总额少于或等于刚才第一个队列中最后一个客户(第二种业务)被接待之前的数额,或者本次已将第二个队列检查或处理了一遍,就停止检查(因为此时已不可能还有能满足者)转而继续接待第一个队列的客户。任何时刻都只开一个窗口。假设检查不需要时间。营业时间结束时所有客户立即离开银行。

写一个上述银行业务的事件驱动模拟系统,通过模拟方法求出客户在银行内逗留的平均时间。

【基本要求】

利用动态存储结构实现模拟。

【测试数据】

一天营业开始时银行拥有的款额为10000(元),营业时间为600(分钟)。其他模拟参量自定,注意测定两种极端的情况:一是两个到达事件之间的间隔时间很短,而客户的交易时间很长,另一个恰好相反,设置两个到达事件的间隔时间很长,而客户的交易时间很短。【实现提示】

事件有两类:到达银行和离开银行。初始时银行现存资金总额为total。开始营业后的第一个事件是客户到达,营业时间从0到closetime。到达事件发生时随机地设置此客户的交易时间和距下一到达事件之间的时间间隔。每个客户要办理的款额也是随机确定的,用负值和正值分别表示第一类和第二类业务。变量total, closetime以及上述两个随机量的上下界均交互地从终端读入,作为模拟参数。

两个队列和一个事件表均要用动态存储结构实现。注意弄清应该在什么条件下设置离开事件,以及第二个队列用怎样的存储结构实现时可以获得较高的效率。注意:事件表是按时间顺序有序的。

【选作内容】

自己实现动态数据类型。例如对于客户结点,定义pool为

CustNode pool[MAX];

//结构类型CustNode含四个域:arrtime, durtime, amount, next

或者定义四个同样长的,以上述域名为名字的数组。初始时,将所有分量的next域链接起来,形成一个静态链栈,设置一个栈顶元素下标指示量top,tip=0表示栈空。动态存储分配函数可以取名为myMalloc,其作用是出栈,将栈顶元素的下标返回。若返回的值为0,则表示无空间可分配。归还函数可取名为myFree,其作用是把该分量入栈。用FORTRAN 和BASIC等语言实现时只能如此地自行组织。

综合实验6 宿舍管理查询系统

一、实验目的

(1)熟练掌握排序算法。

(2)熟练掌握二分查找算法。

(3)利用二分查找实现宿舍管理查询系统。

二、实验内容:

【问题描述】

设计一个宿舍管理查询系统

【基本要求】

程序设计要求:

A. 采用交互工作方式

B. 建立数据文件,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种)

2) 查询菜单: (用二分查找实现以下操作)

A. 按姓名查询

B. 按学号查询

C. 按房号查询

3) 打印任一查询结果(可以连续操作)

【测试数据】

自己指定。

综合实验7 集合的并、交和差运算

一、实验目的:

(1)熟练掌握线性表顺序或链式存储

(2)掌握有序链表的操作。

(3)以有序链表表示集合,编制一个能演示执行集合的并、交和差运算的程序。

二、实验内容:

【问题描述】

编制一个能演示执行集合的并、交和差运算的程序。允许采用顺序存储或链式存储来实现。【基本要求】

(1)集合的元素限定为小写字符〔a. .z〕。

(2)演示程序以用户和计算机的对话方式执行。

【测试数据】

(1) Set1=magazine ,Set2=paper,

∪=aeginmprz,Set1∩Set2=ae,Set1-Set2=gimnz。

Set1Set2

(2) Set1=0120per4a6tion89,Set2=error data,

∪,Set1∩Set2aeort,Set1-Set2=inp。

Set1Set2adeinoprt

【实现提示】

以有序链表表示集合。

【选作内容】

(1)集合的元素判定和子集判定运算。

(2)求集合的补集。

(3)集合的混合运算表达式求值。

(4)集合的元素类型推广到其他类型,甚至任意类型。

综合实验8 一元稀疏多项式计算器

一、实验目的:

(1)熟练掌握线性表链式存储

(2)掌握有序链表的操作及应用。

(3)利用带表头结点的单链表存储多项式,设计一个一元稀疏多项式简单计算器实现多项式的加减运算。

二、实验内容:

【问题描述】

设计一个一元稀疏多项式简单计算器。

【基本要求】

一元稀疏多项式简单计算器的基本功能是:

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

(2)输出多项式,输出形式为整数序列:n,c1,e1,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.1x11+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) 互换上述测试数据中的前后两个多项式

【实现提示】

用带表头结点的单链表存储多项式。

【选作内容】

(1)计算多项式在x处的值。

(2)求多项式a的导函数a1。

(3)多项式a和b相乘,建立乘积多项式ab。

(4)多项式的输出形式为类数学表达式。例如,多项式-3x8+6x3-18的输出形式为-3x^8+6x^3-18,x15+(-8)x7-14的输出形式为x^15-8x^7-14。注意,系数值为1的非零次项的输出形式中略去系数1,如项1x8的输出形式为x8,项-x3的输出形式为-x3。

(5)计算器的仿真界面。

综合实验9 简单的职工管理系统

一、实验目的

(1)熟练掌握线性表基本操作及应用。

(2)利用线性表实现简单的职工管理系统。

二、实验内容:

【问题描述】

对单位的职工进行管理,包括插入、删除、查找、排序等功能。

【基本要求】

职工对象包括姓名、性别、出生年月、工作年月、学历、职务、住址、电话等信息。

(1)新增一名职工:将新增职工对象按姓名以字典方式职工管理文件中。(2)删除一名职工:从职工管理文件中删除一名职工对象。

(3)查询:从职工管理文件中查询符合某些条件的职工。

(4)修改:检索某个职工对象,对其某些属性进行修改。

(5)排序:按某种需要对职工对象文件进行排序。

【测试数据】

自己指定。注意尽量覆盖算法的各种情况。

【实现提示】

职工对象数不必很多,便于一次读入内存,所有操作不经过内外存交换。(1)由键盘输入职工对象,以文件方式保存。程序执行时先将文件读入内存。(2)对职工对象中的"姓名"按字典顺序进行排序。

(3)对排序后的职工对象进行增、删、查询、修改、排序等操作。

【选作内容】

将职工对象按散列法存储,并设计解决冲突的方法。在此基础上实现增、删、查询、修改、排序等操作。

综合实验10 供货信息管理系统

一、实验目的:

(1)熟练掌握栈的基本操作及应用。

(2)利用栈的基本操作,设计实现一个供货信息管理系统。

二、实验内容:

【问题描述】:

实现一个供货信息管理系统。

【基本要求】

系统功能包括取货、上货、倒货架以及对商品进行查询。取货是从货架拿商品,上货是把商品放到货架上。一天营业结束,如果货架不满,则需上货。如果直接将商品摆放到货架上,则会使生产日期越近的越靠上.这就需要倒货架。【测试数据】

自己指定。

【实现提示】

商店货架以栈的形式摆放商品,生产日期越近的越靠近栈底,出栈是从栈顶取货,一天营业结束,如果货架不满,则需上货。如果直接将商品摆放到货架上,则会使生产日期越近的越靠近栈顶.这就需要倒货架,仍使生产日期越近的越靠近栈底。写出货物进栈、出栈算法。

【选作内容】

用栈的两种存储结构实现。

综合实验11 通讯录管理系统

一、实验目的

(1)熟练掌握线性表基本操作及应用。

(2)利用线性表实现简单的通讯录管理系统。

二、实验内容:

【问题描述】

实现一个简单通讯录管理系统。

【基本要求】

通讯录内容包括每个人的姓名及电话、QQ、E_mail四项内容;

通讯录中的内容按姓名顺序(升序)存放;

插入一项新的信息或修改一项信息后通讯录任然有序;

查询某人的信息时,如果找到了,则显示该人的信息,如果未找到,则提示通讯录中没有此人的信息;

修改某人的信息,如果未找到要修改的人,则提示通讯录中没有此人的信息;

删除某人的信息,如果未找到要删除的人,则提示通讯录中没有此人的信息;

能显示通讯录中的所有记录;

采用菜单操作。

【测试数据】

自己指定。

【选作内容】

通讯录的内容保存到数据文件中。

综合实验12 停车场管理

一、实验目的:

(1)熟练掌握栈顺存和链存两种存储方式。

(2)掌握栈的基本操作及应用。

(3)以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。

二、实验内容:

【问题描述】

设停车场是一个可停放n辆汽车的长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车信放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场院,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。

【基本要求】

以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表结构实现。【测试数据】

设n=2,输入数据为:(A,1,5),(A,1,15),(A,3,20),(A,4,25),(A,5,30),(D,2,35),(D,4,40),(E,0,0)。其中:A表示到达(Arrival);D表示离去(Departure);E表示输入结束(End)。

【实现提示】

需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。输入数据按到达或离去的时刻有序。栈中每个元素表示一辆汽车,包含两个数据项:汽车的牌照号码和进入停车场的时刻。

【选作内容】

(1)两个栈共享空间,思考应开辟数组的空间是多少?

(2)汽车可有不同种类,则他们的占地面积不同收费标准也不同,如1辆客车和1。5辆小汽车的占地面积相同,1辆十轮卡车占地面积相当于3辆小汽车的占地面积。

(3)汽车可以直接从便道开走,此时排在它前面的汽车要先开走让路,然后再依次排到队尾。

数据结构课程设计参考题目

数据结构课程设计题目 数据结构课程设计题目(大题目).doc 一、公司销售管理系统 项目开发基本要求 1.客户信息管理:对客户的基本信息进行添加、修改和删除。 2.产品信息管理:对产品的基本信息进行添加、修改和删除。 3.供应商信息管理:对供应商的基本信息进行添加、修改和删除。 4.订单信息管理:对订单的基本信息进行添加、修改和删除。 二、高校科研管理系统 系统主要用于帮助高校或科研单位管理和维护各项科研相关资料 项目开发基本要求 1.系统用户管理模块:为系统新用户设置用户名及口令;操作员更改自己的系统口令。2.数据字典管理模块:管理项目性质包括:分为国家自然科学基金、863、部省科委及企业集团四种情况;范围包括:分为全国、国际、地方三种情况;检索源包括:分为EI、SCI、核心和一般四种情况。 3.项目参加人员管理模块包括:显示添加修改删除查询。 4.项目基本情况模块包括:显示添加修改删除查询。 5.项目获奖情况模块包括:显示添加修改删除查询。 6.期刊论文管理模块包括:显示添加修改删除查询。 7.著作管理模块包括:显示添加修改删除查询。 8.科研工作量统计模块:按照学校科研工作量计算办法,为每位科研人员进行科研工作量的计算和统计。 9.科研积分统计模块:按照学校科研积分计算办法,为每位科研人员进行科研计分的计算和统计。 三、网络五子棋对战 四、不同排序算法模拟 五、科学计算器 数据结构课程设计题目 1.运动会分数统计 任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n< =20) 功能要求: 1)可以输入各个项目的前三名或前五名的成绩; 2)能统计各学校总分,

数据结构课程设计报告模板

《数据结构I》三级项目报告 大连东软信息学院 电子工程系 ××××年××月

三级项目报告注意事项 1. 按照项目要求书写项目报告,条理清晰,数据准确; 2. 项目报告严禁抄袭,如发现抄袭的情况,则抄袭者与被抄袭者均 以0分计; 3. 课程结束后报告上交教师,并进行考核与存档。 三级项目报告格式规范 1. 正文:宋体,小四号,首行缩进2字符,1.5倍行距,段前段后 各0行; 2. 图表:居中,图名用五号字,中文用宋体,英文用“Times New Roman”,位于图表下方,须全文统一。

目录 一项目设计方案 (3) 二项目设计分析 (4) 三项目设计成果 (4) 四项目创新创业 (5) 五项目展望 (6) 附录一:项目成员 (6) 附录二:相关代码、电路图等 (6)

一项目设计方案 1、项目名称: 垃圾回收 2、项目要求及系统基本功能: 1)利用数据结构的知识独立完成一个应用系统设计 2)程序正常运行,能够实现基本的数据增加、删除、修改、查询等功能3)体现程序实现算法复杂度优化 4)体现程序的健壮性 二项目设计分析 1、系统预期实现基本功能: (结合本系统预期具体实现,描述出对应基本要求(增、删、改、查等)的具体功能) 1. 2. 3. 4. 5. 6. 7. 2、项目模块功能描述 (基本分为组织实施组织、程序功能模块编写、系统说明撰写等。其中程序功能子模块实现) 模块一: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 模块二: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 模块n: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

数据结构课程设计_学生搭配问题

数据结构课程设计 题目: 学生搭配问题 学院: 班级: 学生姓名: 学生学号: 指导教师: 2012 年 12 月 3 日 课程设计任务书

摘要 针对学生搭配问题,循环队列是一种重要的链式结构,其特殊性在于需附设两个指针front和rear分别指示对头元素及队尾元素的位置且对头和队尾相邻接。在程序的设计过程中,运用了各种基本的算法,有判断队空及队满,出队,入队等.循环队列是在队列的顺序存储结构中,除了用乙组地址连续的存储单元依次存放从队列头到队列尾的元素外,尚需附设两个指针front和rear分别指示队列头元素和队列尾元素的位置。学生搭配问题是典型的只有采用循环队列才能解决的问题,实验表明该算法的空间复杂度优于其他算法。 本文用循环队列会很好的把这个程序设计出来,会有很好的效果。得出的程序运行结果能够很形象的把结果表示出来。 关键词:学生配对,数据结构,循环队列。

目录 摘要................................................... I 1 设计题目 (1) 2 运行环境 (1) 3 算法设计的思想 (1) 4 算法的流程图 (2) 5 算法设计分析 (2) 6 源代码 (3) 7 运行结果分析 (8) 8 收获及体会 (8) 参考文献 (9) 致 (9)

学生搭配问题 1.设计题目 一班有m个女生,有n个男生(m不等于n),现要开一个舞会. 男女生分别编号坐在舞池的两边的椅子上.每曲开始时,依次从男生和女生中各出一人配对跳舞, 本曲没成功配对者坐着等待下一曲找舞伴。请设计一系统模拟动态地显示出上述过程,要求如下: (1)输出每曲配对情况 (2)计算出任何一个男生(编号为X)和任意女生(编号为Y),在第K曲配对跳舞的情况.至少求出K的两个值。 2.运行环境 本课题的程序设计和测试等环节都是在Windows7操作系统下完成,软件的编译测试环境为vc6.0 以c语言编写的。软件的硬件运行需求非常低,任何计算机都可运行。 3.算法设计的思想 基本思路:队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表。 循环队列是在队列的顺序存储结构中,除了用乙组地址连续的存储单元依次存放从队列头到队列尾的元素外,尚需附设两个指针front和rear分别指示队列头元素和队列尾元素的位置。 循环队列(两个),将男生、女生两组人分别存放,以实现循环配对输出。循环队列的入队,出队,判队满,判队空。 (1)要模拟动态地显示出现题目中所要求的循环,我们要先建立两个循环队列SqQueue和SqQueue2。 (2)将男生、女生两组人分别存入这两个队列。以实现他们的循环配对输出,这是循环队列固有的特性。 (3)利用循环队列的特性,将男女生分别进行入队列和出队列操作,且实现搭配输出。 (4)循环队列的长度分别设为男女生的个数即可。 (5)在计算机终端输出的结果是:根据要求输出男生女生搭配情况 关键问题: 循环队列的应用 解决方法:数据模型(逻辑结构): 循环队列(两个),将男生、女生两组人分别存放,以实现循环配对输出。 存储结构: 循环链表

数据结构课程设计报告

《数据结构与算法》课程设计报告 学号: 班级序号: 姓名: 指导教师: 成绩: 中国地质大学信息工程学院地理信息系统系 2011年12 月

1.需求规格说明 【问题描述】 利用哈夫曼编码进行对已有文件进行重新编码可以大大提高减小文件大小,减少存储空间。但是,这要求在首先对一个现有文件进行编码行成新的文件,也就是压缩。在文件使用时,再对压缩文件进行解压缩,也就是译码,复原原有文件。试为完成此功能,写一个压缩/解压缩软件。 【基本要求】 一个完整的系统应具有以下功能: (1)压缩准备。读取指定被压缩文件,对文件进行分析,建立哈夫曼树,并给出分析结果(包括数据集大小,每个数据的权值,压缩前后文件的大小),在屏幕上输出。 (2)压缩。利用已建好的哈夫曼树,对文件进行编码,并将哈夫曼编码及文件编码后的数据一起写入文件中,形成压缩文件(*.Haf)。 (3)解压缩。打开已有压缩文件(*.Haf),读取其中的哈夫曼编码,构建哈夫曼树,读取其中的数据,进行译码后,写入文件,完成解压缩。 (4)程序使用命令行方式运行 压缩命令:SZip A Test.Haf 1.doc 解压缩命令:SZip X Test.Haf 2.doc或SZip X Test.Haf 用户输入的命令不正确时,给出提示。 (5)使用面向对象的思想编程,压缩/解压缩、哈夫曼构建功能分别构建类实现。 2.总体分析与设计 (1)设计思想: 1、压缩准备:1> 读文件,逐个读取字符,统计频率 2> 建立哈夫曼树 3> 获得哈弗曼编码 2、压缩过程: 1> 建立一个新文件,将储存权值和字符的对象数组取存储在文件头

东北大学秦皇岛分校2012级数据结构课程设计任务书-2班题目

34. 教学计划编制问题 设计要求:针对计算机系本科课程,根据课程之间的依赖关系(如离散数学应在数据结构之前开设)制定课程安排计划,并满足各学期课程数目大致相同。 35. 散列法的实验研究 散列法中,散列函数构造方法多种多样,同时对于同一散列函数解决冲突的方法也可以不同。两者是影响查询算法性能的关键因素。对于几种典型的散列函数构造方法,做实验观察,不同的解决冲突方法对查询性能的影响。 36. 括号匹配的检验 [问题描述] 假设表达式中允许有两种括号:圆括号和方括号,其嵌套的顺序随意,即(()[ ])或[([ ] [ ])]等为正确格式,[(])或(((]均为不正确的格式。检验括号是否匹配的方法可用“期待的紧迫程度”这个概念来描述。例如:考虑下列的括号序列: [([][])] 12345678 当计算机接受了第1个括号以后,他期待着与其匹配的第8个括号的出现,然而等来的却是第2个括号,此时第1个括号“[”只能暂时靠边,而迫切等待与第2个括号相匹配的第7个括号“)”的出现,类似的,因只等来了第3个括号“[”,此时,其期待的紧迫程度较第2个括号更紧迫,则第2个括号只能靠边,让位于第3个括号,显然第3个括号的期待紧迫程度高于第2个括号,而第2个括号的期待紧迫程度高于第1个括号;在接受了第4个括号之后,第3个括号的期待得到了满足,消解之后,第2个括号的期待匹配就成了最急迫的任务了,…… ,依次类推。可见这个处理过程正好和栈的特点相吻合。 [基本要求] 读入圆括号和方括号的任意序列,输出“匹配”或“此串括号匹配不合法”。 [测试数据] 输入([ ]()),结果“匹配” 输入[()],结果“此串括号匹配不合法” [实现提示] 设置一个栈,每读入一个括号,若是左括号,则作为一个新的更急迫的期待压入栈中;若是右括号,并且与当前栈顶的左括号相匹配,则将当前栈顶的左括号退出,继续读下一个括号,如果读入的右括号与当前栈顶的左括号不匹配,则属于不合法的情况。在初始和结束时,栈应该是空的。 [选作内容] 考虑增加大括号的情况。

课程设计任务书

广东工业大学课程设计任务书 题目名称 带式运输机传动装置 学生学院 材料与能源学院 专业班级 10金材(2)班 姓 名 张泽添 学 号 3110006711 一、课程设计的内容 设计一带式运输机传动装置(见 图1)。设计内容应包括:两级传动装置的总体设计;传动零件、轴、轴承、联轴器等的设计计算和选择;减速器装配图和零件工作图设计;设计计算说明书的编写。 图2为参考传动方案。 二、课程设计的要求与数据 已知条件: (1)运输带工作拉力:F =2.7 kN ; (2)运输带工作速度:v = 2 m/s ; (3)卷筒直径: D = 320 mm ; (4)使用寿命: 8年; (5)工作情况:两班制,连续单向运转,载荷较平稳; 动力及传动装置 D v F 图1 带式运输机传动装置 图2 参考传动方案

(6)制造条件及生产批量:一般机械厂制造,小批量; (7)工作环境:室内,轻度污染环境; (8)边界连接条件:原动机采用一般工业用电动机,传动装置与工作机分别在不同底座上,用弹性联轴器连接。 三、课程设计应完成的工作 (1)减速器装配图1张; (2)零件工作图1张; (3)设计说明书1份。 四、课程设计进程安排

五、应收集的资料及主要参考文献 (1)杨可桢、程光蕴主编. 机械设计基础[M]. 北京:高等教育出版社,1999年6月第4版 (2)林怡青、谢宋良、王文涛编著. 机械设计基础课程设计指导书[M]. 北京:清华大学出版社,2008年11月第1版 (3)机械制图、机械设计手册等。 发出任务书日期:2012年 04月16 日指导教师签名: 计划完成日期: 2012年 04月27 日基层教学单位责任人签章: 主管院长签章:

数据结构课程设计独立题目

题目2:运动会分数统计 1.问题描述 参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20) 2.功能要求 1)可以输入各个项目的前三名或前五名的成绩; 2)能统计各学校总分; 3)可以按学校编号、学校总分、男女团体总分排序输出; 4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。 存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。 。 题目6:哈夫曼编/译码器 1.问题描述 利用哈夫曼编码进行信息通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(复原)。对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。试为这样的信息收发站写一个哈夫曼编/译码系统。 2.功能要求 I:初始化(Initialization)。从终端读入字符集大小n,以及n个字符和n个权值,建立哈夫曼树,并将它存于文件hfmTree中。 E:编码(Encoding)。利用已建好的哈夫曼树(如不在内存,则从文件htmTree 中读入),对文件ToBeTran中的正文进行编码,然后将结果存入文件CodeFile 中。 D:译码(Decoding)。利用已建好的哈夫曼树将文件CodeFile中的代码进行译码,结果存入文件TextFile中。 P:印代码文件(Print)。将文件CodeFile以紧凑格式显示在终端上,每行50个代码。同时将此字符形式的编码写入文件CodePrint中。 T:印哈夫曼树(Tree Printing)。将已在内存中的哈夫曼树以直观的方式(树或凹入表形式)显示在终端上,同时将此字符形式的哈夫曼树写入文件TreePrint 中。 题目9:构造可以使n个城市连接的最小生成树 1.问题描述 给定一个地区的n个城市间的距离网,用Prim算法或Kruskal算法建立最小生成树,并计算得到的最小生成树的代价。 2.功能要求 城市间的距离网采用邻接矩阵表示,邻接矩阵的存储结构定义采用课本中给出的定义,若两个城市之间不存在道路,则将相应边的权值设为自己定义的无穷大值。要求在屏幕上显示得到的最小生成树中包括了哪些城市间的道路,并显示得到的最小生成树的代价。

数据结构课程设计报告模板

课程设计说明书 课程名称:数据结构 专业:班级: 姓名:学号: 指导教师:成绩: 完成日期:年月日

任务书 题目:黑白棋系统 设计内容及要求: 1.课程设计任务内容 通过玩家与电脑双方的交替下棋,在一个8行8列的方格中,进行棋子的相互交替翻转。反复循环下棋,最后让双方的棋子填满整个方格。再根据循环遍历方格程序,判断玩家与电脑双方的棋子数。进行大小判断,最红给出胜负的一方。并根据y/n选项,判断是否要进行下一局的游戏。 2.课程设计要求 实现黑白两色棋子的对峙 开发环境:vc++6.0 实现目标: (1)熟悉的运用c语言程序编写代码。 (2)能够理清整个程序的运行过程并绘画流程图 (3)了解如何定义局部变量和整体变量; (4)学会上机调试程序,发现问题,并解决 (5)学习使用C++程序来了解游戏原理。 (6)学习用文档书写程序说明

摘要 本文的研究工作在于利用计算机模拟人脑进行下黑白棋,计算机下棋是人工智能领域中的一个研究热点,多年以来,随着计算机技术和人工智能技术的不断发展,计算机下棋的水平得到了长足的进步 该程序的最终胜负是由棋盘上岗双方的棋子的个数来判断的,多的一方为胜,少的一方为负。所以该程序主要运用的战术有削弱对手行动战术、四角优先战术、在游戏开局和中局时,程序采用削弱对手行动力战术,即尽量减少对手能够落子的位置;在游戏终局时则采用最大贪吃战术,即尽可能多的吃掉对手的棋子;而四角优先战术则是贯穿游戏的始终,棋盘的四角围稳定角,不会被对手吃掉,所以这里是兵家的必争之地,在阻止对手进角的同时,自己却又要努力的进角。 关键词:黑白棋;编程;设计

数据结构课程设计要求

一、数据结构课程设计要求 1. 学生必须仔细阅读《数据结构》课程设计方案,认真主动完成课设的要求。有问题及时主动通过各种方式与教师联系沟通。 2. 学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况, 二、数据结构课程设计题目 1. 运动会分数统计(限 1 人完成) 任务:参加运动会有n个学校,学校编号为 1 n。比赛分成m个男子项目,和w个女子项目。项目编号为男子 1 ............................ m,女子m+1??…m+w。不同的项目取前五名或前三名积 分;取前五名的积分分别为:7、5、3、2、1 ,前三名的积分分别为:5、3、2;哪些取前五 名或前三名由学生自己设定。(m<=20,n<=20 ) 功能要求: 1)可以输入各个项目的前三名或前五名的成绩; 2)能统计各学校总分, 3)可以按学校编号或名称、学校总分、男女团体总分排序输出; 4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。 5)数据存入文件并能随时查询 6)规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称输出形式:有中文提示,各学校分数为整形 界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。 存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在 c 语言程序设计的书上,请自学解决) 请在最后的上交资料中指明你用到的存储结构; 测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明; 2. 飞机订票系统(限1 人完成)任务:通过此系统可以实现如下功能:录入:可以录入航 班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)查询: 可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓); 可以输入起飞抵达城市,查询飞机航班情况;订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。修改航班信息: 当航班信息改变可以修改航班数据文件要求: 根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能; 3. 文章编辑(限 1 人完成)功能:输入一页文字,程序可以统计出文字、数字、空格的个数。静态存储一页文章,每行最多不超过80 个字符,共N 行;要求(1)分别统计出其中英文字母数和空格数及整篇文章总字数;(2)统计某一字符串在文章中出现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。 存储结构使用线性表,分别用几个子函数实现相应的功能;输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。输出形式:(1)分行输出用户输入的各行字符;(2)分 4 行输出"全部字母数"、"数字个数" 、"空格个数"、"文章总字数" (3)输出删除某一字符串后的文章;

数据结构课程设计题目

《数据结构》课程设计题目 1. 排序算法的性能分析 问题描述 设计一个测试程序,比较几种内部排序算法的关键字比较次数和移动次数以取得直观感受。 基本要求 (1)对冒泡排序、直接排序、选择排序、箱子排序、堆排序、快速排序及归并排序算法进行比较。 (2)待排序表的表长不小于100,表中数据随机产生,至少用5组不同数据作比较,比较指标:关键字参加比较次数和关键字的移动次数(关键字交换记为3次移动)。 (3)输出比较结果。 选做内容 (1)对不同表长进行比较。 (2)验证各算法的稳定性。 (3)输出界面的优化。 2. 排序算法思想的可视化演示—1 基本要求 排序数据随机产生,针对随机案例,对冒泡排序、箱子排序、堆排序、归并算法,提供排序执行过程的动态图形演示。 3. 排序算法思想的可视化演示—2 基本要求 排序数据随机产生,针对随机案例,,对插入排序、选择排序、基数排序、快速排序算法,提供排序执行过程的动态图形演示。 4. 线性表的实现与分析 基本要求 ①设计并实现线性表。 ②线性表分别采取数组(公式化描述)、单链表、双向链表、间接寻址存储方 式 ③针对随机产生的线性表实例,实现线性表的插入、删除、搜索操作动态演示(图 形演示)。 5. 等价类实现及其应用 问题描述:某工厂有一台机器能够执行n个任务,任务i的释放时间为r i(是一个整数),最后期限为d i(也是整数)。在该机上完成每个任务都需要一个单元的时间。一种可行的调

度方案是为每个任务分配相应的时间段,使得任务i的时间段正好位于释放时间和最后期限之间。一个时间段不允许分配给多个任务。 基本要求: 使用等价类实现以上机器调度问题。 等价类分别采取两种数据结构实现。 6. 一元稀疏多项式计算器 问题描述 设计一个一元稀疏多项式简单计算器。 基本要求 一元稀疏多项式简单计算器的基本功能是: (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)计算器的仿真界面(选做) 7. 长整数的代数计算 问题描述 应用线性数据结构解决长整数的计算问题。设计数据结构完成长整数的表示和存储,并编写算法来实现两长整数的加、减、乘、除等基本代数运算。 基本要求 ①长整数长度在一百位以上。 ②实现两长整数在取余操作下的加、减、乘、除操作,即实现算法来求解a+b mod n, a-b mod n, a?b mod n, a÷b mod n。 ③输入输出均在文件中。 ④分析算法的时空复杂性。 8. 敢死队问题。 有M个敢死队员要炸掉敌人的一碉堡,谁都不想去,排长决定用轮回数数的办法来决定哪个战士去执行任务。如果前一个战士没完成任务,则要再派一个战士上去。现给每个战士编一个号,大家围坐成一圈,随便从某一个战士开始计数,当数到5时,对应的战士就去执行任务,且此战士不再参加下一轮计数。如果此战士没完成任务,再从下一个战士开始数数,被数到第5时,此战士接着去执行任务。以此类推,直到任务完成为止。排长是不愿意去的,假设排长为1号,请你设计一程序,求出从第几号战士开始计数才能让排长最后一个留下来而不去执行任务。 要求:至少采用两种不同的数据结构的方法实现。 9. 简单计算器

数据结构课程设计报告

编号 课程设计 题目 1、一元稀疏多项式计算器 2、模拟浏览器操作程序 3、背包问题的求解 4、八皇后问题 二级学院计算机科学与工程学院 专业计算机科学与技术 班级 2011级 37-3班 学生姓名 XX 学号 XXXXXXXXXX 指导教师 XXXXX 评阅教师 时间 1、一元稀疏多项式计算器 【实验内容】 一元稀疏多项式计算器。

【问题描述】 设计一个一元稀疏多项式简单计算器。 【需求分析】 其基本功能包括: (1)输入并建立多项式; (2)输出多项式,输出形式为整数序列为:n,c1,e1,c2,e2,……,cn,en,其中n 是多项式的项数,ci,ei分别是第i项的系数和指数,序列按指数降序排序;(3)多项式a和b相减,建立多项a+b; (4)多项式a和b相减,建立多项式a-b; (5)计算多项式在x处的值; (6)计算器的仿真界面(选做); 【概要设计】 -=ADT=- { void input(Jd *ha,Jd *hb); void sort(dnode *h)

dnode *operate(dnode *a,dnode *b) float qiuzhi(int x,dnode *h) f",sum); printf("\n"); } 【运行结果及分析】 (1)输入多项式:

(2)输出多项式(多项式格式为:c1x^e1+c2x^e2+…+cnx^en): (3)实现多项式a和b相加: (4)实现多项式a和b相减: (5)计算多项式在x处的值:

2、模拟浏览器操作程序 【实验内容】 模拟浏览器操作程序 【问题描述】 标准Web浏览器具有在最近访问的网页间后退和前进的功能。实现这些功能的一个方法是:使用两个栈,追踪可以后退和前进而能够到达的网页。在本题中,要求模拟实现这一功能。 【需求分析】 需要支持以下指令: BACK:将当前页推到“前进栈”的顶部。取出“后退栈”中顶端的页面,使它成为当前页。若“后退栈”是空的,忽略该命令。 FORWARD:将当前页推到“后退栈”的顶部。取出“前进栈”中顶部的页面,使它成为当前页。如果“前进栈”是空的,忽略该命令。 VISIT:将当前页推到“后退栈”的顶部。使URL特指当前页。清空“前进栈”。 QUIT:退出浏览器。 假设浏览器首先加载的网页URL是:http:

数据结构课程设计

福建工程学院课程设计 课程:数据结构课程设计 题目: 1.综合应用 2.折半查找 3.快速排序 专业:软件工程 班级:1101 座号:3110305129 姓名:潘聪 2012 年 6 月26 日

设计题目1:综合应用 一、问题描述 有N名学生,每名学生含有如下信息:学号、姓名、某四门课的成绩,并计算其总分,用一结构数组表示之。然后实现以下功能: (1)将这些数据存放至文件stuf.dat中; (2)将文件中的数据读出至结构数组中,并显示之; (3)输出总分最高分和最低分的名字; (4)输出总分在340分,单科成绩不低于80分的名单; (5)求出各科平均分数; (6)按总分排名; (7)输出补考名单。 二、解决问题的算法思想描述 (1)子函数:首先确定需要的子函数,总共7个,对应的功能分别是题目要求的七项(2)主函数:主函数中,要设计出易于使用的人机界面,就必须要用到switch 。 (3)文件的存放读取,必须要用到文件的函数,fopen,fread,fclose等。 (4)把每个学生的信息定义在一个结构数组中,利用结构数组更加方便。 (5)各科成绩排名用冒泡排序即可。 (6)输出总分,补考名单,各科的平均分都比较简单。 三、设计 1. 数据结构的设计和说明 //定义结构体 typedef struct { int num; //学号 char name[10]; //姓名 int score1; //语文 int score2; //数学 int score3; //物理 int score4; //化学 }student; student stu[MAX]; //结构数组 2.模块结构图及各模块的功能:

数据结构课程设计题目表

《数据结构》课程设计课题表 课题1:设计出链表结构的相关函数库,以便在程序设计中调用。要求: (1)包括线性表的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。 (2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。 (3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。 课题2:设计出顺序表结构的相关函数库,以便在程序设计中调用。要求: (1)包括线性表的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。 (2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。 (3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。 课题3:设计程序以实现任意两个高次多项式的加法和乘法运算。 要求: (1)所设计的数据结构应尽可能节省存储空间。 (2)程序的运行时间应尽可能少。 课题4:设计一个模拟计算器的程序,要求能对包含加、减、乘、除、括号运算符及SQR和ABS函数的任意整型表达式进行求解。 要求:要检查有关运算的条件,并对错误的条件产生报警。 课题5:设计出二叉链表结构的相关函数库,以便在程序设计中调用。要求: (1)包括二叉树的各种基本函数以及常用函数(自己确定函数、函数形式及理由)。 (2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。 (3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。 课题6:设计出树结构的相关函数库,以便在程序设计中调用。要求: (1)包括树结构的存储结构及各种基本函数以及常用函数(自己确定函数、函数形式及理由)。 (2)最好能借助语言环境实现图形显示功能,以便能将抽象的数据结构以图形方式显示出来,将复杂的运行过程以动态方式显示出来。 (3)给出若干例程,演示通过调用自己的库函数来实现相关问题的求解。 课题7:选择合适的存储结构表示广义表,并能实现下列运算要求: (1)用大写字母表示广义表,用小写字母表示原子,并提供设置广义表的值的功能。 (2)取广义表L的表头和表尾的函数head(L)和tail(L)。

数据结构课程设计报告

数据结构课程设计 设计说明书 TSP 问题 起止日期:2016 年 6 月27 日至2016 年7 月 1 日 学生姓名 班级 学号 成绩 指导教师( 签字) 2016 年7 月 1 日

目录 第1 章需求分析.................................................................................1... 1.1 简介 (1) 1.2 系统的开发背景 (1) 1.3 研究现状 (1) 第2 章概要设计.................................................................................2... 2.1 系统开发环境和技术介绍 (2) 2.2 系统需求分析 (2) 2.2.1 总体功能分析 (2) 2.2.2 核心功能分析 (3) 第3 章详细设计...................................................................................4... 3.1 系统开发流程 (4) 3.2 系统模块设计 (4) 3.3 系统结构 (6) 3.2 系统流程图 (6) 第4 章调试分析...................................................................................7... 4.1 程序逻辑调试 (7) 4.2 系统界面调试 (8) 第5 章测试结果...................................................................................9... 5.1 测试环境 (9) 5.2 输入输出测试项目 (9) 5.3 测试结果 (10) 结论.....................................................................................................1..1.. 参考文献................................................................................................1..1. 附录.......................................................................................................1..2..

数据结构课程设计报告要求及模板2012-2013(1)

数据结构课程设计报告撰写要求 (一)纸张与页面要求 1.采用国际标准A4型打印纸或复印纸,纵向打印。 2.封页和页面按照下面模板书写(正文为:小四宋体1.5倍行距)。 3.图表及图表标题按照模板中的表示书写。 (二)课设报告书的内容应包括以下各个部分:(按照以下顺序装订) 1.封页(见课设模版) 2.任务书(学生教师均要签字,信息填写完整) 3.目录 4.正文一般应包括以下内容: (1)题目介绍和功能要求(或描述) 课程设计任务的详细描述(注意不能直接抄任务书),将内容做更详细的具体的分析与描述; (2) 系统功能模块结构图 绘制系统功能结构框图及主要模块的功能说明; (3) 使用的数据结构的描述: 数据结构设计及用法说明; (4) 涉及到的函数的描述 ; (5) 主要算法描述( 程序流程图) (6) 给出程序测试/运行的结果 设计多组数据加以描述(包括输入数据和输出结果) (7) 参考文献 格式要求:[序号]作者,等. 书名.出版地:出版社,出版年 5. 附录:程序清单 (应带有必要的注释) 6. 课程设计的总结及评语

沈阳航空航天大学 课程设计报告 课程设计名称:数据结构课程设计 课程设计题目:个人事务提醒工具软件设计 院(系):计算机学院 专业:网络工程 班级:14010201 学号:2011040102004 姓名:李舒敏 指导教师:许清

装订时:此页为任务书

目录 1 概要设计 (1) 1.1题目介绍和功能要求 (1) 2 系统设计 (2) 2.1总体结构 (2) 2.2数据结构设计及用法说明 (3) 2.3函数设计 (3) 2.4关键流程 (5) 3调试分析 (11) 4测试及运行结果 (12) 参考文献 (15) 附录(程序清单) (16)

2012-2013第一学期OS课程设计任务书

2012-2013第一学期OS课程设计任务书 2012.10.30 一、设计内容 设计一个多任务(多线程)的系统,涉及进(线)程的操作、通信、同步,以及内存管理、文件操作等核心知识点。 二、设计目的 理解进(线)程的概念;掌握进(线)程通信的基本原理及典型的通信方式;掌握进(线)程同步机制及其实现机理;掌握内存操作、文件操作;熟悉软件设计、开发过程,提高团队合作的意识和能力。 三、基本要求 设计一个基于C/S模式的综合应用系统,该系统的功能需求自定义,但必须涵盖“设计内容”所规定的知识点:进(线)程的创建、终止、socket通信、同步、内存操作及文件操作。 必须采用图形用户界面(MFC或基于C#的WinForm程序),开发环境采用VC6.0或VS2008。 四、课程设计的进度安排 五、课程设计的考核 1、阶段性文档:需求设计、架构设计、功能模块设计说明、测试报告及总结 2、检查程序 3、课程设计说明书及源码 六、具体任务

1.生产者-消费者问题 问题描述:参看课本。 输入:生产者个数、消费者个数、缓冲区个数、每个生产者生产产品的个数等。 输出:生产者-消费者并发执行的过程。消费者消费完所有的产品结束。 2.内存管理 编写一个程序,包括两个线程,一个线程用于模拟内存分配活动,另一个用于跟踪第一个线程的内存行为,要求两个线程之间通过信号量实现同步,模拟内存活动的线程可以从一个文件中读出要进行的内存操作。每个内存操作包含如下内容: 时间:每个操作等待时间; 块数:分配内存的粒度; 操作:包括保留一个区域、提交一个区域、释放一个区域、回收一个区域、加锁与解锁一个区域。可将它们的编号放置于一个文件中。 保留是指保留进程的虚地址空间,而不分配物理地址空间; 提交是指在内存中分配物理地址空间; 回收是指释放物理地址空间,而保留进程的虚地址空间; 释放是指将进程的物理地址与虚拟地址空间全部释放; 大小:块的大小; 访问权限:共五种PAGE_READONLY, PAGE_READWRIYE, PAGE_EXEXUTE, PAGE_EXEXUTE _READ, PAGE_EXEXUTE _READWRIYE. 提示:使用windows提供的信号量。 对windows分配虚拟内存、改变内存状态,以及对物理内存(physical memory)和页面文件(page file)状态查询的API函数的功能、参数限制、使用规则作较深入的了解。 3.快速文件系统 设计一个函数int filter(char source,char* sink,int f)其中 source:源文件,即从哪个文件中读取数据; sink:目标文件,即将数据写入哪个文件; f:一个对文件的操作(可以任意定义)。 分别用三种方式实现对一个文件的操作: (1)无缓冲区方式:表示使用的标志位是FILE_FLAG_NO_BUFFERING; (2)缓冲方式:表示使用的标志位是FILE_FLAG_SEQUENTIAL_SCAN; (3)异步方式:表示使用的标志位是FILE_FLAG_OVERLAPPED。

数据结构课程设计题目

数据结构课程设计 一、考核方法和容 根据课程设计过程中学生的学生态度、题目完成情况、课程设计报告书的质量和回答问题的情况等按照10%、40%、30%、20%加权综合打分。成绩评定实行优秀、良好、中等、及格和不及格五个等级。 评分标准: 优秀:答辩所有问题都能答出+报告良好 或报告良好+实现“提高部分”的功能; 良好:答辩所有问题都能答出+报告一般; 或报告一般+实现“提高部分”的功能; 中等:答辩大部分问题能答出+报告良好; 及格:答辩大部分问题能答出+报告一般; 以下四种,都不及格: 1)答辩几乎答不出问题; 2)报告几乎都是代码; 3)雷同部分达到60%; 4)课设报告与数据结构和c/c++关联不大。 课设报告的装订顺序如下: 任务书(签名,把题目要求贴在相应位置,注意下划线)-----目录(注意目录的格式,页码)-----1、设计任务(题目要求)-----2、需求分析(准备选用什么数据逻辑结构?数据元素包含哪些属性?需要哪些函数?为什么要这样设计?最后列出抽象数据类型定义)-----3、系统设计(设计实现抽象数据类型,包含选择什么物理存储方式?数据元素的结构体或类定义,以及各函数的设计思路,算法,程序流程图等)----4、编码实现(重要函数的实现代码)-----5、调试分析(选择多组测试数据、运行截图、结果分析)-----6、课设总结(心得体会)-----7、谢辞-----8、参考文献; 课设报告打印要求: B5纸打印,报告总页数控制在10—15页,报告中不能全是代码,报告中代码总量控制在3页。版式:无页眉,有页码,页码居中 字号:小四,单倍行距 字体:宋体+Times new Romar 截图:截图要配图的编号和图的题目,如:“图1 Insert函数流程图” 二、课程设计的题目 1.长整数的加法运算 2.通讯录管理系统的设计与实现——顺序表 3.广义表的应用 4.学生成绩管理系统的设计与实现 5.家谱管理系统的设计与实现

数据结构课程设计报告-学生成绩管理系统[]

武汉理工大学华夏学院课程设计报告书 课程名称:数据结构课程设计 题目:用C语言实现成绩统计程序的设计系名:信息工程系 专业班级:计算机1121 姓名:吴涛 学号:10210412104 指导教师:司晓梅 2016年3 月20日

武汉理工大学华夏学院信息工程系 课程设计任务书 课程名称:数据结构课程设计指导教师:司晓梅班级名称:计算机1121 开课系、教研室:信息系计算机 一、课程设计目的与任务 《数据结构》课程设计是为训练学生的数据组织能力和提高程序设计能力而设置的增强实践能力的课程。目的:学习数据结构课程,旨在使学生学会分析研究数据对象的特性,学会数据的组织方法,以便选择合适的数据的逻辑结构和存储结构以及相应操作,把现实世界中的问题转换为计算机内部的表示和处理,这就是一个良好的程序设计技能训练的过程。提高学生的程序设计能力、掌握基本知识、基本技能,提高算法设计质量与程序设计素质的培养就是本门课程的课程设计的目的。 任务:根据题目要求,完成算法设计与程序实现,并按规定写出课程设计报告。 二、课程设计的内容与基本要求 设计题目:用C语言实现成绩统计程序的设计 〔问题描述〕给出n个学生的m门课程的考试成绩信息,每条信息由姓名、课程代号与分数组成,要求设计算法: (1)输入每个人的各门课程的成绩,计算每人的平均成绩; (2)按平均成绩的高低次序,打印出个人的名次,平均成绩相同的为同一名次; (3)按名次列出每个学生的姓名和各科成绩; 〔基本要求〕学生的考试成绩必须通过键盘输入,且需对输出进行格式控制; 〔算法提示〕可以用选择排序、冒泡排序等多种排序算法求解; 具体要完成的任务是: A. 编制完成上述问题的C语言程序、进行程序调试并能得出正确的运行结果。 B. 写出规范的课程设计报告书; 三、课程设计步骤及时间进度和场地安排 时间:1周地点:现代教育中心 具体时间安排如下: 第一天:布置题目,确定任务、查找相关资料 第二天~第四天:功能分析,编写程序,调试程序、运行系统; 第五天上午:撰写设计报告; 第五天下午:程序验收、答辩。 四、课程设计考核及评分标准

数据结构课程设计报告范例

Guangxi University of Science and Technology 课程设计报告 课程名称:算法与编程综合实习 课题名称: 姓名: 学号: 院系:计算机学院 专业班级:通信121 指导教师: 完成日期:2012年12月15日

目录 第1部分课程设计报告 (3) 第1章课程设计目的 (3) 第2章课程设计内容和要求 (4) 2.1 问题描述 (4) 2.2 设计要求 (4) 第3章课程设计总体方案及分析 (4) 3.1 问题分析 (4) 3.2 概要设计 (7) 3.3 详细设计 (7) 3.4 调试分析 (10) 3.5 测试结果 (10) 3.6 参考文献 (12) 第2部分课程设计总结 (13) 附录(源代码) (14)

第1部分课程设计报告 第1章课程设计目的 仅仅认识到队列是一种特殊的线性表是远远不够的,本次实习的目的在于使学生深入了解队列的特征,以便在实际问题背景下灵活运用它,同时还将巩固这种数据结构的构造方………………………………………………………………………………………………………………………………………………………………………………………..(省略)

第2章课程设计内容和要求 2.1问题描述: 迷宫问题是取自心理学的一个古典实验。在该实验中,把一只老鼠从一个无顶大盒子的门放入,在盒子中设置了许多墙,对行进方向形成了多处阻挡。盒子仅有一个出口,在出口处放置一块奶酪,吸引老鼠在迷宫中寻找道路以到达出口。对同一只老鼠重复进行上述实验,一直到老鼠从入口走到出口,而不走错一步。老鼠经过多次试验最终学会走通迷宫的路线。设计一个计算机程序对任意设定的矩形迷宫如下图A所示,求出一条从入口到出口的通路,或得出没有通路的结论。 图A 2.2设计要求: 要求设计程序输出如下: (1) 建立一个大小为m×n的任意迷宫(迷宫数据可由用户输入或由程序自动生成),并在屏 幕上显示出来; (2)找出一条通路的二元组(i,j)数据序列,(i,j)表示通路上某一点的坐标。 (3)用一种标志(如数字8)在迷宫中标出该条通路; (4)在屏幕上输出迷宫和通路; (5)上述功能可用菜单选择。

相关主题
文本预览
相关文档 最新文档