当前位置:文档之家› 课程设计任务书(数据结构)

课程设计任务书(数据结构)

课程设计任务书(数据结构)
课程设计任务书(数据结构)

河南城建学院

《数据结构》课程设计任务书

班级0844131

专业软件工程

课程名称数据结构

指导教师魏新红、陈秋红

计算机科学与工程系

2015年6月

《数据结构》课程设计任务书

一、设计时间及地点

1、设计时间:第17周

2、设计地点:计算机系机房

二、设计目的和要求

数据结构课程设计是在学完数据结构课程之后的实践教学环节。该实践教学是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧。要求学生在设计中逐步提高程序设计能力,培养科学的软件工作方法。学生通过数据结构课程设计在下述各方面得到锻炼:

1、能根据实际问题的具体情况,结合数据结构课程中的基本理论和基本算法,正确分析出数据的逻辑结构,合理地选择相应的存储结构,并能设计出解决问题的有效算法。

2、提高程序设计和调试能力。学生通过上机实习,验证自己设计的算法的正确性。学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改。

3、培养算法分析能力。分析所设计算法的时间复杂度和空间复杂度,进一步提高程序设计水平。

学生认真主动完成课程设计的要求,发挥自主学习的能力,充分利用时间,安排好课程设计,并在课程设计过程中不断检测自己的计划完成情况,及时向教师汇报。

三、设计题目和内容

建议设计题目:

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)数据存入文件并能随时查询

输入数据形式和范围:可以输入学校的名称,运动项目的名称;输出形式有提示,各学校分数为整形;界面要求有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。

存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。

测试数据:要求使用全部合法数据、整体非法数据、局部非法数据。进行程序测试,以保证程序的稳定。

2、飞机订票系统

通过此系统可以实现如下功能:

(1)录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)

(2)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;

(3)订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;

(4)退票:可退票,退票后修改相关数据文件;

根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。

3、文章编辑

功能:输入一页文字,程序可以统计出文字、数字、空格的个数。

静态存储一页文章,每行最多不超过80个字符,共N行;要求

(1)分别统计出其中英文字母数和空格数及整篇文章总字数;

(2)统计某一字符串在文章中出现的次数,并输出该次数;

(3)删除某一子串,并将后面的字符前移。

存储结构使用线性表,分别用几个子函数实现相应的功能;输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。

输出形式:(1)分行输出用户输入的各行字符;

(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"

(3)输出删除某一字符串后的文章。

4、宿舍管理查询软件

任务:为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求:

(1)采用交互工作方式

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

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

(3)按姓名查询

(4)按学号查询

(5)按房号查询

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

5、地图着色问题

设计要求:已知中国地图,对各省进行着色,要求相邻省所使用的颜色不同,并保证使用的颜色总数最少。

6、校园导航问题

设计要求:设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。

7、图书借阅管理系统

主要分为两大功能:

(1)图书管理(增加图书、查询图书、删除图书、图书借阅、还书);

(2)会员管理(增加会员、查询会员、删除会员、借书信息)。

8、学生成绩管理

实现功能:输入、输出、插入、删除、查找、追加、读入、显示、保存、拷贝、排序、索引、分类合计、退出。

9、二叉排序树的实现

用顺序和二叉链表作存储结构

(1)以回车('\n')为输入结束标志,输入数列L,生成一棵二叉排序树T;

(2)对二叉排序树T作中序遍历,输出结果;

(3)输入元素x,查找二叉排序树T,若存在含x的结点,则删除该结点,并作中序遍历(执行操作2);否则输出信息“无x”。

10、最小生成树问题

设计要求:在n个城市之间建设网络,只需保证连通即可,求最经济的架设方法。存储结构采用多种。求解算法多种。

11、通讯录的制作

设计目的:用〈〈数据结构〉〉中的双向链表作数据结构,结合C语言基本知识。编写一个通讯录管理系统。以把所学数据结构知识应用到实际软件开发中去。

设计内容:本系统应完成一下几方面的功能:输入信息——enter();显示信息———display( );查找以姓名作为关键字———search( );删除信息———delete( );

设计要求:

(1)每条信息至包含:姓名(NAME )街道(STREET)城市(CITY)邮编(EIP)国家(STATE)几项

(2)作为一个完整的系统,应具有友好的界面和较强的容错能力

(3)上机能正常运行,并写出课程设计报告

12、哈夫曼编码/译码器

设计一个利用哈夫曼算法的编码和译码系统,重复地显示并处理以下项目,直到选择退出为止。

基本要求:

(1)将权值数据存放在数据文件(文件名为data.txt,位于执行程序的当前目录中) (2)分别采用动态和静态存储结构

(3)初始化:键盘输入字符集大小n、n个字符和n个权值,建立哈夫曼树;

(4)编码:利用建好的哈夫曼树生成哈夫曼编码;

(5)输出编码;

进一步完成内容:

(1)译码功能;

(2)显示哈夫曼树;

(3)界面设计的优化。

13、图书管理系统

设计一个计算机管理系统完成图书管理基本业务。

基本要求:

(1)每种书的登记内容包括书号、书名、著作者、现存量和库存量;

(2)对书号建立索引表(线性表)以提高查找效率;

(3)系统主要功能如下:

采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;

借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量;

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

14、散列表的设计与实现

设计散列表实现电话号码查找系统。

基本要求:

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

(2)从键盘输入各记录,分别以电话号码和用户名为关键字建立散列表;

(3)采用一定的方法解决冲突;

(4)查找并显示给定电话号码的记录;

(5)查找并显示给定用户名的记录。

15、图的遍历和生成树求解实现

要求:

(1)先任意创建一个图;

(2)图的DFS,BFS的递归和非递归算法的实现

(3)最小生成树(两个算法)的实现,求连通分量的实现

(4)要求用邻接矩阵、邻接表多种结构存储实现

学生也可自选题目,但须经指导老师批准。

四、设计方法和步骤

在处理每个题目时,要求从分析题目的需求入手,按设计抽象数据类型、构思算法、通过设计实现抽象数据类型、编制上机程序和上机调试等若干步骤完成题目,最终写出完整的分析报告。具体为:

1、分析问题,给出数学模型,设计相应的抽象数据结构。

(1)分析问题的特点,用数学表达式或其它形式描述其数学模型。

(2)选择能够体现问题本身特点的逻辑结构。

(3)在逻辑结构确定的情况下,为算法的设计选择相应的存储结构,不同存储方式,其对应的算法也不相同。

2、算法设计

在已经选择好数据结构的前提下,为解决问题设计算法。

(1)确定所需模块

对于稍复杂的程序设计,要充分利用模块化程序设计方法,自顶向下,逐步细化,在整体思路确定的情况下,考虑所需模块数,各模块完成功能以及模块之间的数据联系和调用关系。

(2)各子模块功能描述

给出主要模块的算法描述,用流程图或伪代码表示。

(3)模块之间的调用关系

给出算法各模块之间的关系图示

3、源程序清单

为了提高工作效率,充分利用上机调试程序的时间,要求学生在上机之前给出源程序清单。

4、算法分析

经过上机调试,源程序运行正确,并且实现算法要求的功能,解决课程设计题目中给出的问题后,分析各模块算法的时间复杂度和空间复杂度。

5、撰写设计报告

说明:在设计的过程中,步骤1---步骤4往往是反复进行,在后续步骤中发现问题,往往需要从头重新分析、设计。。

五、设计成果的编制

1、设计的题目要求达到一定工作量,并具有一定的深度和难度。

2、程序设计语言推荐使用C/C++,程序书写规范,源程序需加必要的注释;

3、每位同学需提交可独立运行的程序;

4 、每位同学需独立提交设计报告书(每人一份),要求编排格式统一、规范、内容充实,不少于10页(代码不算),内容包括:

(1)设计题目

(2)设计内容

(3)概要设计:确定所需模块及模块间调用关系

(4)算法描述

(5)算法分析

(6)心得体会和参考资料

5、课程设计实践作为培养学生动手能力的一种手段,单独考核

六、评分标准及成绩评定

1、有以下情况的学生不能参加答辩:

·设计报告未经指导教师审阅。

·或设计内容不全(有设计报告而无设计程序、有设计程序而无设计报告)。

·未经指导教师许可或无故不到者,缺勤率达50%的学生。

答辩时,设计者在5分钟内阐述自己的设计过程和最终结果,突出设计中遇到的主要问题和解决方法,然后回答教师提问。每位学生答辩总时间一般不超过10分钟。

2、课程设计成绩的评定:根据设计的完成情况、程序的编制质量、独立设计能力以及答辩情况综合衡量,由答辩小组讨论决定。原则上按以下公式计算:

课程设计成绩=考勤×10%+报告×20%+答辩×20%+程序×50%

七、分组情况

学生每2人一组,自由结合。

八、设计时间及指导老师安排

地点:计算机系机房

在整个设计过程中,参与设计的学生在上课期间只有两个地方可以去:要么图书馆,要么实验室机房,不论在哪里,都要遵守纪律,按时考勤。

1、上机安排如下:

上机地点:系实验中心205、210、211

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

《数据结构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

数据库课程设计任务书

计算机科学与技术专业《数据库综合实践》任务书撰写人:徐燕萍徐森审定人:徐秀芳

数据库综合实践任务书 一、课程设计目的及基本要求 数据库综合实践是为数据库原理及应用等系列课程而独立开设的实践性课程。数据库综合实践对于巩固数据库知识,加强学生的实际动手能力和提高学生综合素质十分必要。本课程分为系统分析与数据库设计、应用程序设计和系统集成调试三个阶段进行。 数据库综合实践的主要目标是: a)加深对数据库系统、程序设计语言的理论知识的理解和应用水平。 b)通过设计实际的数据库系统应用课题,进一步熟悉数据库管理系统的操作技术,提高动手能力,提高分析问题和解决问题的能力。 二、课程设计的主要内容 A)系统分析与数据库设计阶段 1) 通过社会调查,选择一个实际应用数据库系统的课题。 2)进行系统需求分析和系统设计,写出系统分析和设计报告。 3)设计数据模型并进行优化,确定数据库结构、功能结构和系统安全性和完整性要求。 B)应用程序设计阶段 1)完成数据库定义工作,实现系统数据的数据处理和数据录入。 2)实现应用程序的设计、编程、优化功能,实现数据安全性、数据完整性和并发控制技术等功能,并针对具体课题问题提出解决方法。 C)系统集成调试阶段 对系统的各个应用程序进行集成和调试,进一步优化系统性能,改善系统用户界面。

三、课程设计任务 1、图书管理系统 背景资料: 1)图书室有各种图书一万多册。 2)每种图书都有书名、书号(ISBN)、一名或多名作者(译者)、出版社、定价和内容简介。 3)借书证记录有借阅者的姓名、所在单位、职业等。 4)凭借书证借书,每次最多能借8本书。借书期限最长为30天。 设计要求: 1)进行需求分析,编写数据字典。 2)设计E-R图。 3)实现新进图书的数据录入。 4)实现对所有购进图书的分类查询和分类统计。 5)能够按书名、作者等分类查询现有图书的数量。 6)记录借阅者的个人资料和所借图书的书名、书号数据等。 2、工资管理系统 背景资料: 1)某单位现有1000名员工,其中有管理人员、财务人员、技术人员和销售人员。 2)该单位下设4个科室,即经理室、财务科、技术科和销售科。 3)工资由基本工资、福利补贴和奖励工资构成,失业保险和住房公积金在工资中扣除。 4)每个员工的基本资料有姓名、性别、年龄、单位和职业(如经理、工程师、销售员等)。 5)每月个人的最高工资不超过3000元。工资按月发放,实际发放的工资金额为工资减去扣除。

数据结构课程设计题目2010

一、数据结构课程设计要求 1.学生必须仔细阅读《数据结构》课程设计方案,认真主动完成课设的要求。有问题及时主动通过各种方式与教师联系沟通。 2.学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况,及时向教师汇报。 3.课程设计按照教学要求需要两周时间完成,两周中每天(按每周5天)至少要上2小时的上机来调试C 或C++语言设计的程序,总共至少要上机调试程序20小时。属教师安排上机时间学生不得缺席。 二、数据结构课程设计题目 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 人完成) 任务:通过此系统可以实现如下功能: 录入: 可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)

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

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

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

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

数据结构课程设计报告

《数据结构与算法》课程设计报告 学号: 班级序号: 姓名: 指导教师: 成绩: 中国地质大学信息工程学院地理信息系统系 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> 建立一个新文件,将储存权值和字符的对象数组取存储在文件头

钢结构课程设计任务书(2013.11)5

《钢结构》课程设计任务书 中国矿业大学银川学院 土木工程教研室 2013年11月

一、设计资料 1. 基本资料 某单跨单层厂房,跨度L=18m,长度42m,柱距6m,厂房内无吊车、无振动设备,梯形屋架铰接于混凝土柱上,屋面坡度i=1/10,无檩屋盖体系,采用1.5×6.0m预应力混凝土屋面板(考虑屋面板对屋架在平面外的支撑作用)。钢材采用Q235-B,焊条采用E43型,手工焊。柱网布置如图1所示、屋架支撑系统布置图如图2所示。 图1 柱网布置图 (a)

(b) (c) 图2 屋架支撑布置图 (a)屋架上、下弦支撑布置图 (b)1-1剖面图;(c)2-2剖面图 2. 屋架形式及几何尺寸 如图3所示。 图3 屋架形式及几何尺寸 3. 屋面荷载及内力系数 (1)永久荷载(标准值) 三毡四油防水层0.40 kN/m2 水泥砂浆找平层0.40 kN/m2 保温层0.20 kN/m2 预应力混凝土屋面板(1.00 +0.001×本人学号后三位数)kN/m2 (例如:学号为070807110190,则屋面板荷载为:1.00+0.001×190=1.19kN/m2) 屋架及支撑自重0.12+0.011L=0.318kN/m2 (2)可变荷载(标准值) 屋面活荷载:按学号选取(参见下表);雪荷载:0.30kN/m2 屋面活荷载的取值 (kN/m2)

如图4所示。 图4 屋架内力系数 (a)全跨单位荷载作用下各杆件的内力值 (b)半跨单位荷载作用下各杆件的内力值 二、设计内容 1. 完成一份钢屋架计算书。用A4纸手写,加统一格式封皮装订,见附件1。计算书内容必须包括: (1)钢屋架荷载计算; (2)杆件内力的计算和组合; (3)杆件截面的选择和验算; (4)主要节点设计(至少完成一个下弦节点、一个上弦节点、支座节点、屋脊节点及下弦中央节点的设计,节点设计内容包括节点板、加劲肋及连接焊缝)。 2. 绘制一份钢屋架施工图。用空白的A2绘图纸手绘,采用统一的图签栏,如图5所示。建议杆件轴线比例采用1:20,节点(包括杆件截面、节点板和小零件)比例采用1:10。当屋架对称时,可仅绘制半榀屋架的施工图。施工图内容必须包括: (1)施工图的说明; (2)材料表; (3)屋架简图; (4)屋架立面图;

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

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

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

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

目录 1.引言 (1) 2.课题分析 (4) 3.具体设计过程 (5) 3.1设计思路 (5) 3.2程序设计流程图 (5) 3.3.函数实现说明 (10) 4.程序运行结果 (12) 5.软件使用说明 (16) 6.结论 (19) 参考文献 (20) 附录:源代码 (21)

1.引言 数据结构在计算机科学界至今没有标准的定义。个人根据各自的理解的不同而有不同的表述方法: Sartaj Sahni在他的《数据结构、算法与应用》一书中称:“数据结构是数据对象,以及存在于该对象的实例和组成实例的数据元素之间的各种联系。这些联系可以通过定义相关的函数来给出。”他将数据对象(data object)定义为“一个数据对象是实例或值的集合”。Clifford A.Shaffer在《数据结构与算法分析》一书中的定义是:“数据结构是ADT(抽象数据类型Abstract Data Type)的物理实现。” Lobert L.Kruse在《数据结构与程序设计》一书中,将一个数据结构的设计过程分成抽象层、数据结构层和实现层。其中,抽象层是指抽象数据类型层,它讨论数据的逻辑结构及其运算,数据结构层和实现层讨论一个数据结构的表示和在计算机内的存储细节以及运算的实现。数据结构具体指同一类数据元素中,各元素之间的相互关系,包括三个组成成分,数据的逻辑结构,数据的存储结构和数据运算结构。 1.1. 重要意义 一般认为,一个数据结构是由数据元素依据某种逻辑联系组织起来的。对数据元素间逻辑关系的描述称为数据的逻辑结构;数据必须在计算机内存储,数据的存储结构是数据结构的实现形式,是其在计算机内的表示;此外讨论一个数据结构必须同时讨论在该类数据上执行的运算才有意义。 在许多类型的程序的设计中,数据结构的选择是一个基本的设计考虑因素。许多大型系统的构造经验表明,系统实现的困难程度和系统构造的质量都严重的依赖于是否选择了最优的数据结构。许多时候,确定了数据结构后,算法就容易得到了。有些时候事情也会反过来,我们根据特定算法来选择数据结构与之适应。不论哪种情况,选择合适的数据结构都是非常重要的。 选择了数据结构,算法也随之确定,是数据而不是算法是系统构造的关键因素。这种洞见导致了许多种软件设计方法和程序设计语言的出现,面向对象的程序设计语言就是其中之一。 1.2. 研究内容

《数据库原理与应用》课程设计任务书

课程设计任务书

《数据库原理与应用》课程设计任务书 一、设计目的 通过本次课程设计,使同学们能够全面、深刻地掌握数据库系统的设计流程。根据在数据库原理课程中所学到的数据库理论知识,结合某个具体的实际需求,最终开发出一个较为实用的数据库系统。 二、课程设计的要求 1、明确课设任务,复习与查阅相关资料。 2、可以根据老师给出的设计题目,在两周时间内完成其中某一个题目的从用户需求分析、数据库设计到上机编程、调试和应用等全过程的数据库系统设计。如果学生自拟题目,需经指导教师同意。 3、每位学生必须独立完成课程设计任务,不能抄袭,设计完成后,将所完成的工作交由老师检查;要求写出一份详细的设计报告。 4、按要求完成课设内容,课设报告要求文字和图工整、思路清楚、正确。 5、应用程序应具有一定的实用性。 6、程序具有一定的健壮性。 三、数据库课程设计报告主要内容 1、系统需求分析 (1)信息要求:指用户需要从数据库中获得信息的内容与性质。数据库中需要存储那些数据。 (2)处理要求:用户需要完成什么处理功能,对处理的响应时间有什么要求(给出功能模块图)。 (3)安全性和完整性要求。 2、概念结构设计 (1)逐一设计分E-R图,合并分E-R图,生成基本E-R图。 (2)若在合并中存在属性冲突、命名冲突以及结构冲突,给出解决方法,若存在不必要的冗余,则消除并给出设计方法。 (3)基本E-R图中要求标明主码、外码、联系类型。 3、逻辑结构设计 (1)给出由E-R得到的关系模型:并注明转换过程中应用的规则; (2)数据模型的优化; (3)分析这些模式对于应用环境是否合适,确定是否要对某些模式进行合并或分解; (4)用户模式设计; (5)在数据库中一般使用英文名字,在用户视图中则一般使用符合用户一贯的中文命名法; (6)对不同级别的用户定义不同的视图以保证系统的安全性。 4、数据库物理结构设计 以表格的形式列出各张表,包括字段名称、中文含义、数据类型、长度、完整性约束、索引定义、字段说明; 5、数据库实施 (1)使用T-SQL语句实现数据库表; (2)使用T-SQL语句创建必要索引; (3)使用T-SQL语句实现必要的数据库视图; (4)用T-SQL语句实现必要的存储过程及触发器。

中南大学钢结构课程设计

中南大学土木工程学院土木工程专业(本科) 《钢结构基本原理》课程设计任务书 题目:钢框架主次梁设计 姓名: 班级: 学号:

一、设计规范及参考书籍 1、规范 (1)中华人民共和国建设部. 建筑结构制图标准(GB/T50105-2001) (2)中华人民共和国建设部. 房屋建筑制图统一标准(GB/T50001-2001) (3)中华人民共和国建设部. 建筑结构荷载规范(GB5009-2010) (4)中华人民共和国建设部. 钢结构设计规范(GB50017-2003) (5)中华人民共和国建设部. .钢结构工程施工质量验收规范(GB50205-2001) 2、参考书籍 (1)沈祖炎等. 钢结构基本原理,中国建筑工业出版社,2006 (2)毛德培. 钢结构,中国铁道出版社,1999 (3)陈绍藩. 钢结构,中国建筑工业出版社,2003 (4)李星荣等. 钢结构连接节点设计手册(第二版),中国建筑工业出版社,2005 (5)包头钢铁设计研究院 中国钢结构协会房屋建筑钢结构协. 钢结构设计与计算(第二版), 机械工业出版社,2006 二、设计构件 某多层图书馆二楼书库楼面结构布置图如图,结构采用横向框架承重,楼面活荷载标准值2.02kN mm (单号)、5.02kN mm (双号),其中12班竖向梁跨度取值:学号1~10为8m 、学号11~20为10m ;学号21~为12m ;其中13班水平向梁跨度取值:学号1~10为9m 、学号11~20为11m ;学号21~为13m ;。楼面板为120mm 厚单向实心钢筋混凝土板,荷载传力途径为:楼面板-次梁-主梁-柱-基础。设计中仅考虑竖向荷载和活载作用,框架梁按连续梁计算,次梁按简支梁计算。其中框架柱为焊接H 型钢,截面尺寸为H600×300×12×18,层高3.5m 。 三、设计内容要求 (1)设计次梁截面CL-1(热轧H 型钢)。 (2)设计框架主梁截面KL-1(焊接工字钢)。 (3)设计框架主梁短梁段与框架柱连接节点,要求采用焊缝连接,短梁段长度一般为0.9~ 1.2m 。 (4)设计框架主梁短梁段与梁体工地拼接节点,要求采用高强螺栓连接。 (5)设高计次梁与主梁工地拼接节点,要求采用强螺栓连接。

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

数据结构课程设计 报告

数据结构课程设计报告 压缩软件 一·问题描述 利用哈夫曼编码设计一个压缩软件,能对任何类型的文件进行哈夫曼编码,产生编码后的文件——压缩文件;也能对输入的压缩文件进行译码,生成压缩前的文件——解压文件。 二·基本要求 要求编码和译码的效率尽可能地高。 三·工具/准备工作 已学内容:哈夫曼树,哈夫曼树构造算法,哈夫曼编码,Huffman压缩算法。 需要的硬件设施与开发软件:一台计算机,并安装了Visual C++. 四·分析与实现 Huffman树中,叶子结点包含字符以及对应的字符频度(权值) struct HTNode{ //压缩用Huffman树结点 unsigned long weight; //字符频度(权值) unsigned int parent,lchild,rchild; };

使用哈夫曼编码能够对文件进行压缩,由于字符的哈夫曼编码以比特为单位,而当将哈夫曼编码以压缩文件进行存储时,压缩文件最少以字节为单位进行存储,因此需要定义字节缓冲器,以便自动将比特转换为字节,定义如下: struct Buffer{ //字节缓冲压缩用Huffman树 char ch; //字节 unsigned int bits; //实际比特数 }; 定义哈夫曼树的抽象基类模板,实现建树,压缩,解压等功能 class HuffmanTree{ //Huffman树 public: void Code(); //编码 void UnCode(); //译码 private: HTNode HT[m+1]; //树结点表(HT[1]到HT[m]) char Leaf[n+1]; //叶结点对应字符(leaf[1]到leaf[n]) char *HuffmanCode[n+1]; //叶结点对应

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

课程设计(论文)任务书 学院专业班 一、课程设计(论文)题目 二、课程设计(论文)工作自年月日起至年月日止。 三、课程设计(论文) 地点: 四、课程设计(论文)内容要求: 1.课程设计的目的 为了配合《数据结构》课程的教学,使学生能更深刻的领会《数据结构》课程的重要性,特开设此课程设计;编写一些在特定数据结构上的算法,通过上机调试,更好的掌握各种数据结构及其特点,培养学生综合运用所学理论知识解决复杂实际问题的实践能力、研究性学习能力和团队合作能力。 2.课程设计的任务及要求 1)基本要求 (1)课程设计前必须选定课程设计题目,并认真进行需求分析与系统设计; (2)上机调试之前要认真准备实验程序及调试时所需的测试数据; (3)独立思考,独立完成,严禁抄袭,调试过程要规范,认真记录调试结果; (4)上机结束后认真规范撰写课设报告,对设计进行总结和讨论。 2)课程设计论文编写要求 (1)要按照书稿的规格撰写打印课设论文 (2)论文包括任务书、目录、绪论、正文、总结、参考文献、附录等 (3)正文中要有问题描述、抽象数据类型的定义、数据的存储结构、设计的求解算法、算法的实现、调试分析与测试结果 (4)课设论文装订按学校的统一要求完成 3)课设考核 从以下几方面来考查: (1)考勤和态度; (2)任务的难易程度及设计思路;

(3)动手调试能力; (4)论文撰写的水平、格式的规范性。 4)参考文献 [1] 严蔚敏, 吴伟民. 数据结构(C语言版)[M]. 北京:清华大学出版社, 2007年. [2] 严蔚敏, 吴伟民. 数据结构题集(C语言版)[M]. 北京:清华大学出版社, 2007年. [3] 谭浩强. C语言程序设计[M]. 北京:清华大学出版社,2006年. 5)课程设计进度安排 内容天数地点 构思及收集资料1图书馆 程序设计与调试3计算机房 撰写论文1图书馆 6)任务及具体要求 (此处填写任务书中自已所选题目的要求) 学生签名:亲笔签名 年月日 课程设计(论文)评审意见 (1)考勤和态度:优()、良()、中()、一般()、差()(2)任务难易及设计思路:优()、良()、中()、一般()、差()(3)动手调试能力评价:优()、良()、中()、一般()、差()(4)论文撰写水平及规范性评价:优()、良()、中()、一般()、差() 评阅人:职称:讲师 年月日

数据结构课程设计报告

编号 课程设计 题目 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:

数据库系统课程设计任务书

数据库系统课程设计任务书 肇庆学院计算机学院 、题目 完成一个数据库应用系统地设计全过程二、内容需求分析、数据库设计、数据库建立、数据输入、应用系统地设计和开发、用户界面地设计和实现、系统调试和安装等. 三、要求 (一)DBMS 和开发工具地选择

DBMS 不限(不可使用Viaual Foxpro ),即可以选择任意大、小型RDBMS, 例如:Oracle,Sybase,SQL Server,Access,MySQL, 建议使用Oracle,SQL Server 等大型RDBMS. 开发工具不限,例如Delphi,PowerBuilder,C++ Builder,.net,ASP,JSP 等等. 注:不可以用Access 等地向导生成应用程序. (二)系统结构及相关技术 建议采用C/S 结构, 例如Access+VB,Oracle+Delphi,SQL Server +InterDev,Oracle+PowerBuilder,MySQL+ VB,Access+C++ Builder 等, 可选择使用B/S/S 结构,请查阅网络数据库技术相关资料,例如ASP(.NET )、JSP(J2EE) 三)报告封面地要求(见后) 封面从上而下依次为: (1)数据库系统原理课程设计报告(2 黑居中) (2)设计题目(3 黑居中) (3)姓名学号 (4)指导教师 (5)起始时间,起始时间 四)报告内容格式要求 纸张大小为A4纸.正文为5号宋体, 一级标题:第一章(标题,2号宋体,上下空两行居中,行距为5号宋体单倍行距). 二级标题:§1.1[(标题,3号黑体居中,上下空一行,行距为5号宋体单倍行距). 三级标题:1.1. 1 [第一章第一节第一个问题](标题,4黑左顶,占2行). 表名为小5 号黑体,居中,形式如“表1-1 表名” . 图名为小5号宋体,居中,形式如“图2.4 图名” . 参考文献字体为5 号字体. 页眉,页码为小5 号宋体,居中. 五)报告内容要求(参考教材第七章数据库设计) (1)目录 (2)概述 包括项目背景、编写目地、软件定义、开发环境等内容 (3)需求分析 ①信息要求用户需要从数据库中获得信息地内容与性质.数据库中需要存储哪些数据. ②处理要求 用户需要完成什么处理功能,对处理地响应时间有什么要求.(给出功能模块图) ③安全性与完整性要求( 4)概念结构设计生成基本E-R 图 ( 5)逻辑结构设计 把ER 模型图转换为关系表 (6)主要模块地设计以及代码 (7)总结①设计过程中遇到地问题以及解决方法. ②设计地体会. ( 8)参考文献. 四、选题(三选一,任选其中一个题目独立完成) 1、教学管理系统 1)信息需求:

数据结构课程设计报告

《数据结构课程设计》报告 题目:课程设计题目2教学计划编制 班级:700 学号:09070026 姓名:尹煜 完成日期:2011年11月7日

一.需求分析 本课设的任务是根据课程之间的先后的顺序,利用拓扑排序算法,设计出教学计划,在七个学期中合理安排所需修的所有课程。 (一)输入形式:文件 文件中存储课程信息,包括课程名称、课程属性、课程学分以及课程之间先修关系。 格式:第一行给出课程数量。大于等于0的整形,无上限。 之后每行按如下格式“高等数学公共基础必修6.0”将每门课程的具体信息存入文件。 课程基本信息存储完毕后,接着给出各门课程之间的关系,把每门课程看成顶点,则关系即为边。 先给出边的数量。大于等于0的整形。 默认课程编号从0开始依次增加。之后每行按如下格式“1 3”存储。此例即为编号为1的课程与编号为3的课程之间有一条边,而1为3的前驱,即修完1课程才能修3课程。 例: (二)输出形式:1.以图形方式显示有向无环图

2.以文本文件形式存储课程安排 (三)课设的功能 1.根据文本文件中存储的课程信息(课程名称、课程属性、课程学分、课程之间关系) 以图形方式输出课程的有向无环图。 拓展:其显示的有向无环图可进行拖拽、拉伸、修改课程名称等操作。 2.对课程进行拓扑排序。 3.根据拓扑排序结果以及课程的学分安排七个学期的课程。 4.安排好的教学计划可以按图形方式显示也可存储在文本文件里供用户查看。 5.点击信息菜单项可显示本人的学好及姓名“09070026 尹煜” (四)测试数据(见六测设结果)

二.概要设计 数据类型的定义: 1.Class Graph即图类采用邻接矩阵的存储结构。类中定义两个二维数组int[][] matrix 和Object[][] adjMat。第一个用来标记两个顶点之间是否有边,为画图服务。第二个 是为了实现核心算法拓扑排序。 2.ArrayList list用来存储课程信息。DrawInfo类是一个辅助画图的类,其中 包括成员变量num、name、shuxing、xuefen分别代表课程的编号、名称、属性、 学分。ArrayList是一个DrawInfo类型的数组,主要用来在ReadFile、DrawG、DrawC、SaveFile、Window这些类之间辅助参数传递,传递课程信息。 3.Class DrawInfo, 包括int num;String name;String shuxing;float xuefen;四个成员变量。 4.Class Edge包括int from;int to;double weight;三个成员变量。 5.Class Vertex包括int value一个成员变量。 主要程序的流程图: //ReadFile.java

数据结构课程设计报告

山东建筑大学 课程设计成果报告 题目: 1.数组实现两个矩阵的相乘运算 2.成绩分析问题 课程:数据结构A课程设计 院(部):管理工程学院 专业:信息管理与信息系统 班级:信管*** 学生姓名:*** 学号:******** 指导教师:******* 完成日期:2016年12月29日

目录 目录 (2) 一、课程设计概述 (3) 二、课程设计题目一 (3) 用数组实现两个矩阵的相乘运算 (3) 2.1[问题描述] (3) 2.2[要求及提示]: (3) 2.3[详细设计] (4) 2.4[调试分析] (5) 2.5[运行结果及分析] (5) 三、课程设计题目二 (6) 成绩分析问题 (6) 3.1[问题描述] (6) 3.2[概要设计] (6) 3.3[存储结构] (7) 3.4[流程图] (7) 3.5[详细设计] (8) 3.6[调试分析] (8) 3.7[运行结果及分析] (22) 四、参考文献: (25)

一、课程设计概述 本次数据结构课程设计共完成两个题:用数组实现两个矩阵相乘运算、成绩分析问题。使用语言:C 编译环境:vc6.0 二、课程设计题目一 用数组实现两个矩阵的相乘运算 2.1[问题描述] #include “stdio.h” int r[6][6]; void mult(int a[6][6] , int b[6][6]){ } main(){ int i,j; int num1[6][6],num2[6][6]; printf(“请输入第一个矩阵的值:”,); for(i=1;i<=6;i++) for(j=1;j<=6;j++) scanf(“%d”,&num1[i][j]); printf(“请输入第二个矩阵的值:”,); for(i=1;i<=6;i++) for(j=1;j<=6;j++) scanf(“%d”,&num2[i][j]); mult(num1,num2); printf(“\n两个矩阵相乘后的结果为:”); for(i=1;i<=6;i++) {for(j=1;j<=6;j++) printf(“%4d”,r[i][j]); printf(“\n”); } } 2.2[要求及提示]: 1、要求完善函数mult( ),

数据结构课程设计报告

数据结构课程设计 设计说明书 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..

数据库课程设计任务书模板及参考

数据库课程设计任务书模板及参考

大连理工大学本科生课程设计任务书 课程名称:数据库课程设计 指导教师:田琳琳 项目名称:粒子群主题网站 小组名称: 组长姓名: 上课时间: 6月22日- 7 月11日 大连理工大学软件学院 年6 月22 日

1 设计目的 数据库课程设计是在学生系统的学习了《数据库系统原理》课程后,按照关系型数据库的基本原理,综合运用所学的知识,设计开发一个小型的数据库管理信息系统。 经过这一具体问题的分析、设计与实现,将原理与应用相结合,使学生学会如何把书本上学到的知识用于解决实际问题,培养学生的动手能力;另一方面,使学生能深入理解和灵活掌握教学内容。 2 设计要求 (1)根据关系型数据库的设计要求,完成项目的数据库概念模型、 物理模型的设计,能够部署到一个DBMS中,开发存储过程和触发器,完成DB层的功能实现。 (2)学生6人组成一个项目小组,一人为组长,其它人为组员,组 内成员分工明确、团结协作、相互配合,共同完成选题的设计。 (3)课程设计时间为2周。 (4)数据库管理系统MS SQL Server,开发语言(C# \ASP),数据 库设计工具Powerdesigner。系统中的数据表设计应合理、高效,尽量减少数据冗余; (5)具体指标如下:

1)完成概念模型CDM的设计 a)每个小组成员至少抽象出一个数据字典,定义出数据字 典对应得实体和属性 b)汇总实体,小组共同设计出E-R模型 2)完成物理模型PDM的设计 a)每个小组成员依据自己设计的数据字典和实体及其属 性,同时结合选择的DBMS SQL Server要求,定义出相应得表结构和列字段 b)每个小组成员继续定义个人设计表的主键、索引 c)每个小组成员对个人设计表中,至少定义一个列字段约 束 d)小组完成所有表的表名和列名的统一,定义所有的外健 及其类型,完成PDM的模型 e)按照3范式检查数据库PDM模型 3)完成物理模型在DBMS SQL Server中的部署 a)在DBMS SQL Server中设计合适的数据库空间和用户及角 色 b)根据PDM模型,生成创立数据库的.sql文件 c)连接到DBMS SQL Server下,运行.sql文件,数据库部署 完毕 4)数据库操作程序设计 a)每个小组成员至少要对5个表进行操作;

数据结构课程设计格式参考

郑州师范学院软件工程专业 数据结构课程设计报告 设计题目: 班级: 组长:姓名(学号) 组员:姓名(学号)… 指导教师: 完成日期: 成绩:

目录 1需求分析 (1) 1.1功能分析 (1) 1.2设计平台 (1) 2概要设计 (2) 2.1类LinkList (4) 2.2类Joseph (4) 2.3类异常处理 (4) 3详细设计和实现 (4) 3.1创建结点Node (5) 3.2创建双向循环链表 (6) 3.3从链表中删除结点 (7) 4调试与操作说明 (11) 4.1调试情况 (11) 4.2操作说明 (11) 5设计总结 (12) 参考文献 (13) 附录 (13)

1需求分析 1.1功能分析 本次选做的课程设计是改进约瑟夫(Joseph)环问题。约瑟夫环问题是一个古老的数学问题,本次课题要求用程序语言的方式解决数学问题。此问题仅使用单循环链表就可以解决此问题。而改进的约瑟夫问题通过运用双向循环链表,同样也能方便地解决。 在建立双向循环链表时,因为约瑟夫环的大小由输入决定。为方便操作,我们将每个结点的数据域的值定为生成结点时的顺序号和每个人持有的密码。进行操作时,用一个指针current指向当前的结点,指针front始终指向头结点。然后建立双向循环链表,因为每个人的密码是通过rand()函数随机生成的,所以指定第一个人的顺序号,找到结点,不断地从链表中删除链结点,直到链表剩下最后一个结点,通过一系列的循环就可以解决改进约瑟夫环问题。 1、本演示程序中,利用单向循环链表存储结构模拟约瑟夫问题的进行。程序运行后,首先要求用户指定初始报数上限值,然后读取个人的密码。可设n ≤30。此题所用的循环链表中不需要“头结点”,因此在程序设计中应注意空表和非空表的界限。 2、演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运算命令:相应的输入数据和运算结果显示在其后。 3、程序执行的命令包括: 1)构造约瑟夫环;2)执行约瑟夫环,并输出出列人的序号以及相应的密码; 3)结束。 4、测试数据 1)m的初始值为20; 2)n=7,7个人的密码依次为:3、1、7、2、4、8、4。 3)首先m值为6,正确的出列顺序应为6、1、4、7、2、3、5。 1.2设计平台

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

数据结构课程设计报告模板 成绩 计算机与信息工程学院 专业名称信息与计算科学 学生班级 10 级1班 学生姓名刘远远 学生学号 2010025707 设计起止时间: 2012年12月17日至 2012年12月21日 课程设计任务书 一、课程设计题目: 线性表的应用(大数运算) 二、课程设计目的与要求: 1、课程设计目的 (1)对数据结构中线性结构的理解和掌握; (2)熟练掌握顺序和链式存储结构有关知识和方法; (3)深入掌握各种数据结构的理论知识和实践操作; (4) 养成良好的编程风格,掌握各种数据结构的编程思想和编程方法; (5)将数据结构的理论知识和实践有机结合起来,为后续知识的学习 做好准备。 2、课程设计要求 (1) 选择合适的存储结构实现大数存储; (2) 设计算法,采用顺序存储结构完成大数的阶乘运算; (3) 设计算法,采用链式存储结构完成大数的加法运算; (4) 设计算法,选择合适的存储结构完成大数的乘法运算;

(5) 其中某一算法采用两种存储结构实现。三、工作计划: 第一阶段(12月17日,12月18日): 查阅各种数据结构相关资料书籍,整理出课程设计初步模型,并形成 课程设计的整体理论框架,理论模型 ; 第二阶段(12月19日,12月21日): 在DEV-C++5或TURBOC2相关开发语言上,进行编码、上机调试, 逐步形成完善的设计程序,使其达到上机完善演示出系统性的课程设计。 四、课程设计提交的文件: (1) 课程设计报告 (2) 课程设计可运行程序(刻录成光盘) 指导教师: 张绍兵 2012 年 12 月 1日 2 线性表有两种不同的存储结构,分别是顺序存储结构和链式存储结构,在实际中应用十分广泛。本设计要求分别利用线性表的两种存储结构,设计算法完成对大数的阶乘、加法、乘法的求解。 数据结构是一门研究非数值计算的程序设计问题中的操作对象以及它们之间的关系的操作的学科,在本次课程设计中,定义存储结构均采用了数据结构中的抽象数据类型,而抽象数据类型是指一个数据模型以及定义在改模型上的一组操作,抽象数据类型的定义仅仅取决于它的一组逻辑特性,而与计算机内部如何表示和实现无关,即不论其内部结构如何变化,只要它的数学特性不变,都不影响其外部的使用。选择合适存储结构实现大数运算。首先需要先解释的是这里大数计算的因数和结果精度一般是少则数十位,多则几万位。在C语言中定义的类型中精度最多只有二十多位,因而在此我们采取用线性表的顺序和链表存储结构的方式来存放大数,

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