老鼠走迷宫数据结构课程设计报告

老鼠走迷宫数据结构课程设计报告
老鼠走迷宫数据结构课程设计报告

信息科学与技术学院 《数据结构》课程设计报告

完成日

期:

2016年1 月 5 日

题目名称: 专业班级: 学生姓名: 学生学号:

指导教师: 走迷宫游戏 计科20132班

何意 2013508063

高攀

一、需求分析

程序开始运行时显示一个迷宫地图,迷宫中央有一只老鼠,迷宫的右下方有一个粮仓。游戏的任务是使用键盘上的方向键操纵老鼠在规定的时间内走到粮仓处。

要求:

1、老鼠形象可辨认,可用键盘操纵老鼠上下左右移动;

2、迷宫的墙足够结实,老鼠不能穿墙而过;

3、正确检测结果,若老鼠在规定时间内走到粮仓处,提示成功,否则提示失败;

4、添加编辑迷宫功能,可修改当前迷宫,修改内容:墙变路、路变墙;

5、找出走出迷宫的所有路径,以及最短路径。

利用序列化功能实现迷宫地图文件的存盘和读出等功能。

本程序使用OpenGL图形库来实现上述程序功能,采用面向对象的程序设计方法编写了一个3D小游戏,定义两个类:老鼠类和迷宫类。

OpenGL简介:

OpenGL 作为当前主流的图形API具有以下特点:

1、与C 语言紧密结合。OpenGL 命令最初就是用C 语言函数来进行描述的,对于学习过C 语言的人来讲,OpenGL 是容易理解和学习。

2、强大的可移植性。微软的Direct3D 虽然也是十分优秀的图形API,但它只用于Windows 系统(现在还要加上一个XBOX 游戏机)。而OpenGL 不仅用于Windows,还可以用于Unix/Linux 等其它系统,它甚至在大型计算机、各种专业计算机(如:医疗用显示设备)上都有应用。并且,OpenGL 的基本命令都做到了硬件无关,甚至是平台无关。

3、高性能的图形渲染。OpenGL 是一个工业标准,它的技术紧跟时代,现今各个显卡厂家无一不对OpenGL 提供强力支持,激烈的竞争中使得OpenGL 性能一直领先。总之,OpenGL 是一个很强大的图形软件接口。DOOM3 和QUAKE4 等专业大型游戏出色的视觉表现力就是OpenGL强大性能的体现。

二、概要设计

1、设计思路

整体设计思路:采用面向对象的程序设计方法,将迷宫和老鼠作为两个单独

的类来实现。

游戏逻辑设计思路:首先使用DFS算法思想根据用户输入迷宫的规模随机生成一个用二维矩阵形式表示的逻辑上的迷宫,再计算出迷宫在实际空间中的坐标,调用OpenGL提供的绘图API绘制迷宫,再绘制一只老鼠,当玩家按下游戏控制键后,先检测碰撞,再根据按的键计算出老鼠的新位置的坐标,然后重新绘制老鼠,期间还要一直进行所用时间的判断,若超时则提前结束游戏,若玩家成功完成游戏则输出玩家得分并结束游戏。

2、程序所使用的重要抽象数据类型(部分)

1、栈stack sk

定义:库文件中的标准定义。

功能:DFS-遍历栈,记录表示迷宫矩阵中已经处理过的方格,将还需要打通的

方格压入栈中,将已经不能打通的方格弹出栈,算法将遍历每一个方格,保证每个方格都会被打洞。

操作:压栈操作Push(),弹出操作Pop(),取栈顶元素Top()。

2、二维向量Int2

定义:

template

struct Vector2 {

Vector2(Type _x = Type(0), Type _y = Type(0)) :x(_x), y(_y) {}

Type x, y;

};

typedef Vector2 Int2;

功能:用来记录创建迷宫时当前操作的位置行号与列号,检测碰撞中记录当前检测点所在的迷宫行号与列号。

操作:对x和y的赋值。

3、三维向量GLfloat3

定义:

template

struct Vector3f {

Vector3f(Type _x = Type(0), Type _y = Type(0), Type _dir = Type(0)) :x(_x),

y(_y), dir(_dir){}

Type x, y, dir;

};

typedef Vector3f GLfloat3;

功能:用来记录绘制迷宫墙体的立方体的坐标和朝向。

操作:对x,y和dir的赋值。

4、二维矩阵globalNorth,globalEast和globalRecord

定义:

bool globalNorth[100][100];

bool globalEast[100][100];

bool globalRecord[100][100];

功能:在创建迷宫时所用的数据结构,globalN orth表示迷宫格子北面(上)的墙的状态(0—可通行,1—墙),globalEast表示迷宫东面的墙状态,record表示迷宫格子本身是否被处理过(1-没有处理,0-处理过)。

3、程序的六个主要功能模块:

1) 主程序模块,功能:负责初始化游戏窗口和控制程序中各个模块的协调工作;

2) 绘制老鼠模块,功能:实现老鼠形象的创建;

3) 绘制迷宫的模块,功能:实现迷宫的绘制;

4)键盘控制捕捉模块;

5)老鼠的移动和碰撞检测模块,功能:实现老鼠对键盘的响应和检测是否与墙壁产生碰撞;

6)游戏中的时间控制模块,功能:实现对玩家所用时间和剩余时间的计算,以及判断是否超时。

模块之间的调用关系图如图1-0所示:

图1-0

4、程序运行流程图如图1-1所示:

图1-1

三、详细设计

1、老鼠类的定义

UML类图如图1-2所示:

图1-2

2、函数实现说明:

1、主函数void main(int argc,char *rgc[])

功能:实现对游戏整体的运行控制,依次调用各个功能模块。

伪代码:

void main(int argc, char **argv) {

读入玩家输入的迷宫规模;

调用迷宫类对象的createmaze()函数创建迷宫;

调用老鼠类对象的getmaze()函数获取老鼠所在的迷宫指针;

初始化OpenGL图形窗口;

while(游戏未结束)

{

调用CPU闲时绘图函数重复绘图;

检测键盘控制;

}

return;

}

2、绘制老鼠函数void Mouse::drawmouse()

功能:负责在OpenGL构图空间中绘制老鼠形象。

用法:在需要绘制老鼠的时候调用mymouse.drawmouse()函数即可,本程序是在myDispaly()函数中调用的。

伪代码:

void Mouse::drawmouse()

{

设置对原点的偏移量,实现老鼠的移动;

设置旋转角度,实现老鼠的转向,实际先旋转再平移;

拉伸躯干和面部

绘制老鼠躯干;

绘制老鼠头部;

绘制右眼睛;

绘制左眼睛;

绘制一面白色胡须;

另一面的胡须;

碰撞检测参考点;

绘制鼻子;

}

绘制效果如图1-3:

图1-3

3、创建迷宫函数void Maze::createMaze()

功能:使用DFS深度优先搜索算法在一个二维矩阵中生成一个逻辑上的迷宫,并且将逻辑形式上的迷宫的墙体在OpenGL构图空间的实际坐标值和方向计算出来并保存在一个栈vecCube中,共绘图函数直接使用。

代码:

void Maze::createMaze()

{

for (int i = 0; i <= S; i++){ //给迷宫设置一个外围for (int j = 0; j <= S; j++) {

globalNorth[i][j] = true;

globalEast[i][j] = true;

globalRecord[i][j] = true;

}

}

for (int i = 0; i <= S + 1; i++) globalRecord[i][0] = globalRecord[i][S + 1] = false; for (int i = 0; i <= S + 1; i++) globalRecord[0][i] = globalRecord[S + 1][i] = false;

Int2 dir[4] = {

Int2(0, -1),

Int2(1, 0),

Int2(0, 1),

Int2(-1, 0)

};

vector vg;//记录格子(左上右下)可以打洞的方向

stack sk;//DFS-遍历栈,将遍历每一个方格,保证每个方格都会被打洞//生成“老鼠”所在的格子

int x = rand() % S + 1;

int y = rand() % S + 1;

sk.push(Int2(x, y));

while (!sk.empty()) {

Int2 pos = sk.top();

vg.clear();

for (int i = 0; i < 4; i++) {

int c = pos.x + dir[i].x;

int r = pos.y + dir[i].y;

//可以打洞

if (globalRecord[c][r]) vg.push_back(i);

}

if (vg.size() <= 0) {

//该格子四周都不需要打洞

sk.pop();

continue;

}

else {

//随机一个方向打洞

int i = vg[rand() % vg.size()];

globalRecord[pos.x + dir[i].x][pos.y + dir[i].y] = false;

globalRecord[pos.x][pos.y] = false;

switch (i) {

case 0:

globalEast[pos.x][pos.y - 1] = false; break;

case 1:

globalNorth[pos.x][pos.y] = false; break;

case 2:

globalEast[pos.x][pos.y] = false; break;

case 3:

globalNorth[pos.x - 1][pos.y] = false; break;

}

if (vg.size() == 1) sk.pop();

sk.push(Int2(pos.x + dir[i].x, pos.y + dir[i].y));

}

}

//最外层墙壁打洞,(生成出口)

globalNorth[S][S] = false;

globalNorth[0][1] = false;

//横向线段

for (int i = 0; i <= S; i++)

for (int j = 1; j <= S; j++) {

if (globalNorth[i][j]) {

GLfloat3 a;

a.x = ((j - 1)*GSZ+j*GSZ)/2;

a.y = i*GSZ;

a.dir = NORTH;

vecCube.push_back(a);}

}

//竖向线段

for (int i = 1; i <= S; i++)

for (int j = 0; j <= S; j++) {

if (globalEast[i][j]) {

GLfloat3 b;

b.x = j*GSZ;

b.y = (i*GSZ+(i - 1)*GSZ)/2;

b.dir = EAST;

vecCube.push_back(b);

}}}

4、绘制迷宫函数void Maze::drawmaze()

功能:负责在OpenGL构图空间中绘制迷宫。

用法:在需要绘制迷宫调用类对象的绘图成员函数即可,本程序中是在myDisply()函数中调用的。

伪代码:

void Maze::drawMaze()

{

设置围墙颜色;

从保存围墙分部信息的栈vecCube中依次取出栈顶元素进行绘制墙体;

绘制终点线;

}

绘制的效果如图1-4:

图1-4

5、移动和碰撞检测函数void Mouse::move()

功能:实现老鼠对键盘的响应和使用盒式包围法检测是否与墙壁产生碰撞。

用法:在OpenGL提供提供的键盘控制捕捉函数glutKeyboardFunc()中调用,对玩家输入老鼠的移动进行响应并重新设置老鼠的新位置坐标和新方向,若产生碰撞则调用碰撞处理函数。

伪代码:

void Mouse::move( unsigned char key,int x,int y) //按键响应函数,设置老鼠的移动并检测碰撞,使用盒式包围法思想,共需要检测四个点的碰撞情况ABCD {

时间逻辑判断部分;

首次按键开始计时;

移动和碰撞检测部分;

判断老鼠是否到达终点,是转到1,否到2

1:到达终点;

显示得分画面并结束游戏

2:

switch (key) //对按键响应

{

case 'w or a or s or d' :

if(direction==方向)//给出朝向为Y轴正方向的的详细代码

{

计算碰撞点A,B的逻辑坐标;

计算A,B点在迷宫中的行号和列号;

检测A点是否碰撞;

检测B点是否碰撞;

若未发生碰撞,则根据方向设置老鼠位置;

若发生碰撞,则调用碰撞处理函数;

摄像机移动部分;

}

当老鼠朝向为Y轴正方向时,按w键(前进)时

计算碰撞点的逻辑坐标;

检测A点是否碰撞;

检测B点是否碰撞;

}

}

四、调试分析

1. 刚开始的时候绘制迷宫时没搞清楚迷宫行号和列号与空间坐标的映射关系,导致迷宫的绘制一直不正确,后来仔细作图分析才最终确定出了正确的映射关系。

2. 个人感觉最难的部分就是碰撞处理,因为碰撞多种情况,每种情况必须单独仔细的分析,计算出精确到空间像素点之间的位置关系,这个模块花费了大量的时间和脑力。

3. 本程序的模块划分比较合理,而且采用面向对象的程序设计方法,很好的封装了类对象的数据和操作,增强的程序与实际的仿真性,而且使用各个模块只需调用相应对象的成员函数即可,方便直观。

4、在构图时需要运用大量空间几何的数学知识,因为绘图时需要计算关键像素点的空间位置以及和其他关键点的相对位置。

5. 本课程设计作业采用面向对象的程序设计方法,设计了两个类和游戏

的逻辑控制模块。设计时思路清晰,实现时调试顺利。各模块具有较好的可重用性。确实得到了一次良好的程序设计训练。

五、用户手册

1.本程序

由一个游戏控制窗口和一个游戏显示窗口组成,游戏控制窗口负责读入玩家输入的迷宫规模,显示所用时间和剩余时间,游戏显示窗口则完成显示老鼠和迷宫的功能,程序的执行文件为OpenGLTest.exe。

2. 进入演示程序后即显示文本方式的用户界面如图1-5所示:

输入迷宫的规模(边数)

图1-5

游戏界面如图1-6所示:

图1-6

每次按键显示所用时间和剩余时间如图1-7所示:

图1-7

完成游戏后显示得分画面如图1-8所示:

游戏分数的计算公式为:(迷宫规模的平方+100)/所用时间+剩余时间

同样的游戏难度,所用时间越少分数越高;

同样的所用时间,游戏难度越大分数越高。

图1-8

六、测试结果

以下数据是在本程序中输入迷宫规模为5的运行结果:

开始:输入5

得到的globalNorth矩阵如图1-8所示:

图1-8

globalEast矩阵如图1-9所示:globalRecord矩阵如图1-10:

图1-9 图1-10

生成的迷宫如图1-11所示:

图1-11

对几个关键变量的跟踪如图1-12所示:

LogicalA表示碰撞检测点的逻辑坐标,根据这个坐标与终点线之间的大小关系判断老鼠是否到达终点,UsedTime是所用时间,是计算分数和判断是否超时的重要参数,最后一个表达式计算的就是玩家所得分数。

迷宫问题课程设计报告

目录 第一章:设计问题描述与分析 (1) 1.1.课程设计内容 (1) 1.2. 问题分析 (1) 1.3.功能实现 (2) 1.4.运行环境 (3) 第二章:算法设计与流程图 (4) 2.1.主函数的流程图 (4) 2.2.概要设计 (5) 2.4详细设计 (6) 2.4.1. 节点类型和指针类型 (6) 2.4.2.迷宫的操作 (6) (1)生成迷宫 (6) (2)打印迷宫矩阵与字符图形 (7) (3)迷宫求解路由求解操作 (7) (4)打印迷宫通路坐标 (8) (5)输出迷宫通路的字符图形 (8) 2.4.3. 主函数 (9) 第三章:调试分析 (10) 第四章:使用说明 (11)

第五章:测试结果 (12) 附录1 (19) 附录2 (19)

第一章:设计问题描述与分析 1.1.课程设计内容: 该系统是由C 语言编写的生成一个N×M(N行M列)的迷宫,完成迷宫的组织和存储,并实现迷宫路由算法。基本要求1、 N和M是用户可配置的,缺省值为50和50。 2、迷宫的入口和出口分别在左上角和右下角。 提示:(1)可以使用二维数组maze[M+2][N+2]表示迷宫,其中M,N为迷宫的行、列数,当元素值为0时表示该点是通路,当元素值为1时表示该点是墙。老鼠在每一点都有4种方向可以走,可以用数组move[4]来表示每一个方向上的横纵坐标的偏移量,可用另一个二维数组mark[M+2][N+2]记录节点的访问情况。(2)可以选用深度优先算法或广度优先算法实行,迷宫可由自动或手动生成。测试用例应该包含有解迷宫和无解迷宫。 1.2. 问题分析 本程序要求实现迷宫问题的相关操作,包括迷宫的组织和存储,并实现迷宫路由算法(即查找迷宫路径)。程序所能达到的:具体包括迷宫的建立,迷宫的存储(迷宫由自动生成或手动生成),迷宫中路径的查找 迷宫是一个矩形区域,迷宫存在一个入口和一个出口,其内部包含了不能穿越的墙或者障碍。迷宫的建立即是建立这样一个迷宫矩阵,用于存储迷宫信息,包括可穿越的路和不可穿越的墙或者障碍,分别用0表示通路,1表示障碍。对于迷宫矩阵,用m×n的矩阵来描述,m和n分别代表迷宫的行数和列数。这样,则迷宫中的每个位置都可以用其行号和列号来指定。从入口到出口的路径是由一组位置构成的。每个位置上都没有障碍,且每个位置(第一个除外)都是前一个位置的上、下、左、右的邻居。 为了描述迷宫中位置(i ,j)处有无障碍,规定,当位置(i ,j)处有一个障碍时,其值为1,否则为0.这样迷宫就可以用0、1矩阵来描述,在构造矩阵时,为了操作方便会将矩阵四周置为1(不通)。

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

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

课程设计报告示例:迷宫求解

安徽建筑大学 课程设计报告 课程名称:数据结构与算法课程设计 题目:迷宫求解 院系:数理系 专业:信息与计算数学 班级: 学号: 姓名: 时间:

目录 一、需求分析 (2) 1.问题描述: (2) 2.基本要求 (2) 二、概要设计 (3) 1.数据结构 (3) 2.程序模块 (3) 3.算法设计 (5) 三、详细设计 (7) 1.数据类型定义 (7) 2.函数实现代码 (7) 3.函数之间的调用关系 (7) 四、调试分析 (7) 五、用户手册 (8) 六、测试结果 (8) 七、参考文献 (9) 八、附录 (9)

迷宫求解题目: 以一个m×n长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍,设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。(1)以二维数组存储迷宫数据; (2)求得的通路以二元组( i , j )的形式输出,其中(i, j)指示迷宫中的一个坐标。 一、需求分析 1. 问题描述: 在迷宫中求出从入口到出口的路径。经分析,一个简单的求解方法是:从入口出发,沿某一方向进行探索,若能走通,则继续向前走;否则沿原路返回,换一方向再进行搜索,直到所有可能的通路都探索到为止。即所谓的回溯法。 求迷宫中从入口到出口的所有路径是一个经典的程序设计问题。由于计算机解迷宫时,通常用的是“穷举求解”的方法,即从入口出发,顺某一方向向前探索,若能走通,则继续往前走;否则沿原路退回,换一个方向再继续探索,直至所有可能的通路都探索到为止。为了保证在任何位置上都能沿原路退回,显然需要用一个后进先出的结构来保存从入口到当前位置的路径。因此,在求迷宫通路的算法中应用“栈”也就是自然而然的事了。 假设“当前位置”指的是“在搜索过程中某一时刻所在图中某个方块位置”,则求迷宫中一条路径的算法的基本思想是:若当前位置"可通",则纳入"当前路径",并继续朝“下一位置”探索,即切换“下一位置”为“当前位置”,如此重复直至到达出口;若当前位置“不可通”,则应顺着“来向”退回到“前一通道块”,然后朝着除“来向”之外的其他方向继续探索;若该通道块的四周四个方块均“不可通”,则应从“当前路径”上删除该通道块。所谓“下一位置”指的是“当前位置”四周四个方向(东、南、西、北)上相邻的方块。 2. 基本要求 (1)以二维数组maze.adr[m+1][n+1]表示迷宫,其中mg[0][j]和mg[m+1][j](0 j n)及mg[i][0]和mg[i][n](0 i m)为添加的一圈障碍,数组中以元素值为0表示通路,1表示障碍,限定迷宫大小m,n 10。 (2)用户以文件的形式输入迷宫的数据:文件中第一行的数据为迷宫的行数m 和列数n;从第2行至第m+1行(每行n个数)为迷宫值,同一行的两个数之间用空 白字符相隔。 (3)迷宫入口为(1,1),出口为(m,n)。 (4)每次移动只能从一个无障碍的单元到周围8个方向上任意无障碍的单元,编制程序给出一条通过迷宫的路径或报告一个“无法通过”的信息。 (5)本程序只求出一条成功的通路。 3.测试数据见下表,当入口为(1,1)时,出口为(8,8) 用一个字符类型的二微数组表示迷宫,数组中的每个元素表示一个小方格,取值“0”(表示可以进出)或“1”(表示不可以进出) 随机产生一个8*8的迷宫,其中使用迷宫障碍坐标如下: (1,3),(1,7),(2,3),(2,7),(3,5),(3,6), (4,3),(4,4),(5,4),(6,2),(6,6),(7,2),(7,3), (7,4),(7,6),(7,7),(8,1)。

人工智能电脑鼠搜迷宫实验

北京科技大学实验报告 学院:自动化学院专业:智能科学学技术班级: 姓名:学号:实验日期:2017年11月6日 实验名称:人工智能电脑鼠搜迷宫实验 实验目的:掌握电脑鼠的基本操作及智能搜索算法操作。 实验仪器:KEIL MDK、电脑鼠、J-Link、VS 实验原理:所谓“电脑鼠”,英文名叫做Micromouse,是一种具有人工智能的轮式机器人,是由嵌入式微控制器、传感器和机电运动部件构成的一种智能行走装置的俗称。当电脑鼠放入起点,按下启动键之后,他就必须自行决定搜索法则并且在迷宫中前进,转弯,记忆迷宫墙壁资料,计算最短路径,搜索终点等功能。电脑鼠更结合了机械、电机、电子、控制、光学、程序设计和人工智能等多方面的科技知识。本实验中,通过红外传感器检测电脑鼠所处位置状态,通过智能算法保存地图并实现地图的搜索,通过pid等控制算法控制电机,达到电脑鼠搜索迷宫并计算最短路径等功能。 实验内容与步骤: 实验内容 1)KEIL MDK的安装 2)电脑鼠硬件的检查及调整 3)智能搜索算法的编写 4)算法的调试与优化 5)实验结果

实验步骤 (一)KEIL MDK的安装 1双击运行Ke i l MDK 4.12 安装程序,出现软件安装界面,如图所示: 2点击Next,勾选安装协议; 3选择安装路径,建议安装在C 盘,运行速度快些 4 填入用户信息,个人用户随意填入即可; 点击Next 就进入实质的安装过程了,Wait for a Whle… 5点击Finish,Keil MDK 就完成安装了,可以发现桌面上生成了名为“Keil uVis ion4”的可执行文件快捷方式。

(二)检查和调整电脑鼠的硬件 1.电机检查:在电脑鼠程序文件中找到Motor.c文件,直接为两侧电机赋相同的速度值,用G-link连接电脑鼠和电脑,传入程序,打开电脑鼠放在地面上,如果电脑鼠能正常直线行进,即证明两侧电机正常工作。如果有电机有问题,拆下原来的电机换新的再次进行电机检查即可。 2.传感器检查:用G-link连接电脑鼠和电脑,打开传感器查询模式,用手逐渐靠近每一个传感器,如果相应的传感器值由小变大,那么此传感器工作正常。且每个传感器在手指位于相同距离时,回传的传感器值近似相等即证明传感器都正常工作,如果有传感器有问题,拆下原来的传感器换新的再次进行传感器检查即可。 传感器回传值查询界面 (三)智能搜索算法的编写 在含底层驱动的程序的基础上加上算法,实现智能搜索,把电脑鼠变成一只真正的智能的老鼠。

课程设计_老鼠走迷宫

HUNAN CITY UNIVERSITY 数据结构课程设计报告 设计题目:老鼠走迷宫 专业:计算机科学与技术 学生姓名:邓宇 班级学号: 0906401-23 指导教师:杨格兰、胡奇光 2011 年 6 月 18 日

一、设计时间 2011年6月20日——24日 二、设计地点 湖南城市学院第一实验楼计算机系机房509 三、设计目的 1.培养实际工作所需要的动手能力,进一步熟悉基本概念; 2.熟练掌握对实际问题的抽象技能,了解程序基本的流程; 3.培养查阅资料,独立思考问题的能力。 四、设计人 邓宇 五、指导老师 杨格兰、胡奇光 六、设计课题 老鼠走迷宫 开发环境:Visual Studio 2010 Ultimate UML Activity Diagram Visual C # 2008 Express Editions Adobe Photoshop CS4 七、基本思路及关键问题的解决方法 技术要求: 程序开始运行时显示一个迷宫地图,迷宫中央有一只老鼠,迷宫的右下方有一个粮仓。游戏的任务是使用键盘上的方向键操纵老鼠在规定的时间内走到粮仓处。 要求: 1、老鼠形象可辨认,可用键盘操纵老鼠上下左右移动; 解决方案:老鼠图片形象可以用Photoshop来制作,通过键盘按键事件发送消息到对象(老鼠),实现老鼠的移动。 2、迷宫的墙足够结实,老鼠不能穿墙而过; 解决方案:在老鼠每一步的移动中检测是否撞墙,若是则停止走动。

由于地图是图片,要检测就需要取出墙壁那点的颜色(显然不是白色),然后作比较来作碰撞检测。 3、若老鼠在规定时间内走到粮仓处,提示成功,否则提示失败; 解决方案:加载定时器,设定60秒钟,若在规定的时间,及时间变成0时,弹出对话框提示用户游戏失败。 4、添加编辑迷宫功能,可修改当前迷宫。 解决方案:备用一张地图图片资源,可以用于更换地图。 八、算法及流程图 Visio流程图:

数据结构课程设计报告

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

八年级生物上册人教版探究活动报告册答案

八年级生物上册人教版探究活动报告册答案集团档案编码:[YTTR-YTPT28-YTNTL98-UYTYNN08]

观察蚯蚓 ●实验准备 1.阴暗的;潮湿;夜间; ●过程和方法 1.(1)圆筒形;体节;暗红色; (2)厚;环带;环带;环带;朝上;朝下;左边;右边;14~16; (3)有黏液;粗糙;刚毛;腹部; 2.伸张和收缩;灵活,自如,转向方便;协助运动; ●结果和结论 1.两侧;利于再生修复 2.上皮细胞分泌粘液; 3.纵、横肌的交互舒缩及体表的刚毛 ●讨论 1.表格 动物的名称蚯蚓 所属的动物类群环节动物 体表特征身体呈两侧对称,具有分节现象 呼吸方式体壁呼吸 运动方式依靠体节和刚毛运动 2. 蚯蚓的身体是一圈一圈地分节,是环节动物;而线形动物全体是光滑的,没有分节特征。 3.略(自己随便说个现象,然后找答案) 4.略(说一个兴趣的问题,然后探究回答) 鸟适于飞行的形态结构特点 活动准备 1.(1) 家鸽流线直无。 1.(2) 胸部 2. 家鸽家鸽 过程和方法 1.鸟的身体适于飞行吗? 2. 鸟的身体有适于飞行的特点 身体呈流线型、胸肌发达、骨骼轻,薄,中空… 3.(1)流线型,减少飞行时所遇到的阻力。 3.(2)爬升时起作用。羽小枝是勾连的。能够在空气中产生足够的升力和动力。

3.(3) 可以牵动两翼,产生动力,完成飞行 3.(4)鸟发达的胸肌,需要很大的骨面积来附着这些肌肉。因此龙骨突很发达。 结果和结论 鸟的形态结构 特点 与飞行之间的关系 体形 流线型 减少空气阻力 前趾 变成翼 飞行器官 羽毛 体表被覆羽毛 利于飞行 是否有牙齿 没有牙齿 便于快速取食 胸骨 胸骨发达,有龙骨突 增大胸肌的固着面 胸肌 胸肌发达 牵动翼飞行 讨论 1. 肺 辅助 肺部 2.没有直接的关系。恒温是增强了对环境的适应能力。 3.主要是鸟的消化系统,呼吸系统有关。鸟的食量大,消化强,排便快,呼吸效率高。 小鼠走迷宫获取食物的学习行为 活动准备 1.遗传因素 生活经验和学习 少 突出 过程和方法 1. 小鼠需要经过多少次“尝试与错误”才能获取食物? 2. 小鼠经过的 “尝试与错误”越多,获取食物的可能性越大。 学习行为需要经过“尝试与错误” 3. (1(2) (3) 4.(2)计时,并在出口 等待 (3)出口的 (4)拿食物对小鼠进行适当的引导 (6)1 结果和结论 1. 2. 3.减少 小鼠走迷宫获取食物逐渐熟练 讨论 次数 第一天 第二天 第三天 第四天 第五天 第六天 第七天 时间s 次数 第一天 第二天 第三天 第四天 第五天 第六天 第七天 时间s 101 92 76 60 50 41 30 0 50100 150第一天第二天第三天第四天第五天第六天第七天 单位/秒

课程设计报告(迷宫)详解

武汉东湖学院计算机科学学院 课程设计报告 课程名称数据结构课程设 题目深度与广度优先搜索 迷宫问题 专业班级(请自己填写) 学号(请自己填写) 学生姓名(请自己填写) 指导教师吴佳芬 (请自己填写)年(请自己填写)月(请自己填写)日

武汉东湖学院计算机科学学院 课程设计任务书 课程名称:数据结构课程设计 设计题目:深度与广度优先搜索:迷宫问题 专业:(请自己填写)班级:(请自己填写) 完成时间:自己填写指导教师:吴佳芬专业负责人:许先斌

武汉大学东湖分校计算机科学学院 课程设计成绩评价表 指导教师:吴佳芬年月日

(由学生完成,以下为摸版) 【软件课程设计报告目录】 1、需求分析 说明程序设计的任务,强调的是程序要做什么,明确规定: (1)输入的形式和输入值的范围; (2)输出的形式; (3)程序所能达到的功能; (4)测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。 2、概要设计 说明本程序中用到的所有抽象数据类型的定义、主程序的流程以及各程序模块之间的层次(调用)关系。 3、详细设计 实现概要设计中定义的所有数据类型,对每个操作只需要写出伪码算法;对主程序和其他模块也都需要写出伪码算法;画出函数的调用关系。 4、使用说明、测试分析及结果 (1)说明如何使用你编写的程序; (2)测试结果与分析; (3)调试过程中遇到的问题是如何解决提以及对设计与实现的回顾讨论和分析; (4)运行界面。 5、课程设计总结(设计心得) (1)你在编程过程中用时多少?多少时间在纸上设计?多少时间上机输入和调试?多少时间在思考问题? (2)遇到了哪些难题?你是怎么克服的? (3)你对算法有什么改正想法吗? (4)你的收获有哪些? 参考文献 (由学生完成,以下为摸版,编页码:共x页,第x页)

电脑鼠设计与制作——文档

电脑鼠的设计与制作 0.序言 0.1电脑鼠 电脑鼠是机电一体化装置,是使用微控制器、传感器和机电运动部件构成的一种智能行走装置,是一种具有人工智能的小型机器人。电脑鼠可以在不同“迷宫”中自动记忆和选择路径,采用相应的算法,快速地达到所设定的目的地。集成了计算机、电子和机械、电机、自动化和传感器等技术,是真正具有独创性的东西,其制作为学生提供了创意、制作、实现和展示的机会。 必要的知识(可以百度): (1)电子部分 ?电路设计 ?微处理器 ?传感器 (2)机械结构 (3)算法设计 0.2电脑鼠的设计目标 本项目要实现的是用电脑鼠找出迷宫中通往终点的最短路径并以最快速度到达迷宫的终点。 电脑鼠从迷宫起点位置前进,由程序判断通过前视距离探测器探测到的迷宫状况,控制驱动机构前进或转向并记录路径和距离(控制车轮编码器可完成),由于起点位置和终点位置是已知的,虽然不知道具体路径,但通过编写算法程序即可找到最短路径,在重新开始时便可以最快速度从最短路径到达终点。 设计的电脑鼠应该具有三种最基本的能力: ?拥有稳定、准确、快速的行走能力 ?能争取判断环境的能力(如有墙、有路)

记忆路径的能力 图1 8*8迷宫布局图 总之,电脑鼠的设计目标是:在最短的时间内找到一条通往总店的最短路径,并以最快速度从起点到达终点。如何衡量: 迷宫时间(搜索时间):电脑鼠激活到每次运行开始的时间; 注:搜索结束,从终点返回到起点的时间不算在迷宫时间内; 运行时间:电脑鼠从起点走到终点的时间; 如果电脑鼠在比赛时需要手动辅助,这个动作就成为“碰触”。若“碰触”了,则需要失去10秒的奖励时间。 比赛使用者三个参数,从速度、求解迷宫的效率和电脑鼠的可靠性三个方面来进行评分。 成绩=迷宫时间/30+运行时间-奖励时间(非碰触) 例子:一个电脑鼠在迷宫中的搜索时间为4分钟,没有碰触过,运行时间使用了20秒,这次运行的排障时间就是: 20+(240×1/30)-10=18秒 1.电脑鼠的构成 电脑鼠是指由车身、轮子、和相关软件构成。车体是电脑鼠最基本的架构,它的设计在电脑鼠的整体规划中战友想到重要的地位,应当遵守整体结构坚固耐用、材质轻、重心低的原则。在设计中,既要考虑到符合各零件的规格,又要考虑到配合迷宫的规格。

小白鼠走迷宫

《小鼠走迷宫》实验报告 生技基地:孟祥东 0121121202 殷振琦 生物技术:李静新

小白鼠走迷宫 【摘要】本实验通过在人为设置的迷宫里,小白鼠不断感受复杂通道的结构,调整和改进自己的行为。随着训练次数的增加,条件反射逐渐建立,以至在大脑皮层形成记忆。通过记录动物搜寻食物的时间长短可以对此加以评价。 【关键词】小白鼠迷宫记忆 前言:《实验动物学》最近10年,遗传科学家对两种动物建立了一系列遗传工程的技术,可以改变(去掉或加上)其体内基因的组成,这两种动物是老鼠和果蝇。在哺乳类动物中,老鼠可谓具有得天独厚的优势。昆虫类的果蝇行为简单,脑也较小,不如哺乳类的老鼠脑较大。此外,老鼠也更接近人类,通过老鼠的实验可以间接地了解人脑的功能。学习和记忆是神经系统高级中枢的重要机能之一。学习是神经系统不断接受环境刺激而获得的行为习惯和经验;获得的行为习惯和经验维持一定时间的能力就是记忆。动物的学习和记忆能力对其生存具有重要意义。本次实验,我们通过观察,分析小白鼠学习和记忆过程,理解大脑在动物行为机制建立中的作用;通过实验,了解数据统计分析在科学研究中的重要作用。 1.材料与方法 1.1材料 小白鼠、纸板(做迷宫)、食物、秒表 1.2方法 1.2.1 饥饿处理的小白鼠1只,放置在迷宫入口,记录其找到食物所需时间。5分钟后, 重复上述步骤,同样的间隔时间对其进行相同实验,每只小白鼠共计进行6次实 验。 1.2.2 对另一只进行饥饿处理的小鼠进行相同实验,记录每只小白鼠找到食物所需时 间。 1.2.3 绘制图表,进行数据分析。 2.结果 2.2曲线图

注:纵坐标表示所用时间(单位:秒),横坐标表示实验次数,系列一表示小鼠B,系列二表示小鼠A 2.3分析 2.3.1 随着小白鼠学习和记忆过程的进行,小白鼠找到食物的时间越来越短; 2.3.2 气温对小白鼠的活动能力有较大影响,低温使小白鼠活动能力降低; 3、讨论 德国心理学家艾宾浩斯(H.Ebbinghaus)研究发现,遗忘在学习之后立即开始,而且遗忘的进程并不是均匀的。最初遗忘速度很快,以后逐渐缓慢。他认为"保持和遗忘是时间的函数",并根据他的实验结果绘成描述遗忘进程的曲线,即著名的艾宾浩斯记忆遗忘曲线。 人的大脑是一个记忆的宝库,人脑经历过的事物,思考过的问题,体验过的情感和情绪,练习过的动作,都可以成为人们记忆的内容。例如英文的学习中单词、短语和句子,甚至文章的内容都是通过记忆完成的。从"记"到"忆"是有个过程的,这其中包括了识记、保持、再认和回忆。有很多人在学习英语的过程中,只注重了学习当时的记忆效果,孰不知,要想做好学习的记忆工作,是要下一番工夫的,单纯的注重当时的记忆效果,而忽视了后期的保持和再认同样是达不到良好的效果的。 在信息的处理上, 记忆是对输入信息的编 码、贮存和提取的过程, 从信息处理的角度上, 英文的第一次学习和背 诵只是一个输入编码的 过程。人的记忆的能力

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

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

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

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

八年级生物上册人教版 探究活动报告册答案1

观察蚯蚓 ●实验准备 1.阴暗的;潮湿;夜间; ●过程和方法 1.(1)圆筒形;体节;暗红色; (2)厚;环带;环带;环带;朝上;朝下;左边;右边;14~16; (3)有黏液;粗糙;刚毛;腹部; 2.伸张和收缩;灵活,自如,转向方便;协助运动; ●结果和结论 1.两侧;利于再生修复 2.上皮细胞分泌粘液; 3.纵、横肌的交互舒缩及体表的刚毛 ●讨论 2. 蚯蚓的身体是一圈一圈地分节,是环节动物;而线形动物全体是光滑的,没有分节特征。 3.略(自己随便说个现象,然后找答案) 4.略(说一个兴趣的问题,然后探究回答)

鸟适于飞行的形态结构特点 1.(1)家鸽流线直无。 1.(2)胸部 1.鸟的身体适于飞行吗? 2.鸟的身体有适于飞行的特点 身体呈流线型、胸肌发达、骨骼轻,薄,中空… 3.(1)流线型,减少飞行时所遇到的阻力。 3.(2)爬升时起作用。羽小枝是勾连的。能够在空气中产生足够的升力和动力。 3.(3)可以牵动两翼,产生动力,完成飞行 1.肺辅助肺部 2.没有直接的关系。恒温是增强了对环境的适应能力。 3.主要是鸟的消化系统,呼吸系统有关。鸟的食量大,消化强,排便快,呼吸效率高。

小鼠走迷宫获取食物的学习行为 ? 活动准备 1.遗传因素生活经验和学习少突出 ? 过程和方法 1.小鼠需要经过多少次“尝试与错误”才能获取食物? 2.小鼠经过的“尝试与错误”越多,获取食物的可能性越大。 学习行为需要经过“尝试与错误” 3.(1)饿着肚子这样才能寻找食物,完成学习。 (2) (3) 4.(2)计时,并在出口等待(3)出口的 (4)拿食物对小鼠进行适当的引导(6)1 ? 结果和结论 1. 2. 3.减少小鼠走迷宫获取食物逐渐熟练 ? 讨论 1.动物在生存的过程中会学习一些行为。最先是尝试,在尝试的过程中会出现错误,不断改正后最后会形成一个学习行为。 2.不相同。因为其他同学选择的小鼠和我的小鼠不一样。 3.这样实验的结果为更准确。 4.可能会增加。因为动物越高等,学习能力越强,反而,越弱。 次数 第一天 第二天 第三天 第四天 第五天 第六天 第七天 时间s 次数 第一天 第二天 第三天 第四天 第五天 第六天 第七天 时间s 101 92 76 60 50 41 30

迷宫与栈课程设计报告范例

(此文档为word格式,下载后您可任意编辑修改!) 北京理工大学珠海学院课程设计说明书 _2014_—_2015_学年第_一_学期 题目: 迷宫与栈 学院:计算机学院 专业班级:软件工程x班 学号 x 学生姓名: XXX 指导教师:何春香 成绩: 时间: 2014年 11 月 7日

附件4: 北京理工大学珠海学院 课程设计任务书 2014 ~2015 学年第学期 学生姓名:专业班级: 指导教师:何春香工作部门:软件工程教研室一、课程设计题目 迷宫与栈问题 二、课程设计内容(含技术指标) 【问题描述】 以一个mXn的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。 【任务要求】 首先实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出。其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。如,对于下列数据的迷宫,输出一条通路为:(1,1,1),(1,2,2),(2,2,2),(3,2,3),(3,1,2),…。 编写递归形式的算法,求得迷宫中所有可能的通路。 以方阵形式输出迷宫及其通路。 【测试数据】 迷宫的测试数据如下:左上角(0,1)为入口,右下角(8,9)

为出口。 出口 出口 三、进度安排 1.初步设计:写出初步设计思路,进行修改完善,并进行初步设计。 2.详细设计:根据确定的设计思想,进一步完善初步设计内容,按要求编写出数据结构类型定义、各算法程序、主函数。编译分析调试错误。 3.测试分析:设计几组数据进行测试分析,查找存在的设计缺陷,完善程序。 4.报告撰写:根据上面设计过程和结果,按照要求写出设计报告。 5.答辩考核验收:教师按组(人)检查验收,并提出相关问题,以便检验设计完成情况。 四、基本要求 1.在设计时,要严格按照题意要求独立进行设计,不能随意更改。若确因条件所限,必须要改变课题要求时,应在征得指导教师同意的前提下进行。 2.在设计完成后,应当场运行和答辩,由指导教师验收,只有在验收合格后才能算设计部分的结束。 3.设计结束后要写出课程设计报告,以作为整个课程设计评分的书面依据和存档材料。设计报告以规定格式的电子文档书写、打印

电脑鼠实验报告.

《视觉机器人》 实验报告 学院: 姓名: 专业: 二零一六年一月

目录 第1章背景和意义 (3) 第2章系统方案设计 (4) 第3章硬件设计 (5) 3.1电脑鼠基本硬件组成 (5) 3.2电脑鼠基本动作 (9) 第4章软件设计 (9) 4.1电脑鼠软件设计概要说明 (9) 4.2等高图制作模块 (11) 4.3冲刺模块 (12) 4.4转弯模块 (12) 4.5搜索模块 (13) 4.6迷宫地图相对方向与绝对方向的建立 (13) 4.7墙壁资料存储 (15) 4.8电脑鼠搜索策略 (16) 参考文献 (17) 附件: (17)

第1章背景和意义 电脑鼠可看作是一种具有人工智能的小型机器人,依照比赛规则,当电脑鼠放入“迷宫”起点,按下启动键之后,它就必须自行决定搜寻法则并且在迷中前进、转弯、记忆迷宫墙壁资料、计算最短路径、搜寻终点等功能。电脑鼠结合了机械、电机、电子、控制、光学、程序设计和人工智能等多方面的科技识。国际电工和电子工程学会(IEEE)每年都要举办一次国际性的电脑鼠走迷宫竞赛。首场电脑鼠迷宫竞赛1979年于纽约举行,1991年以来,每年都有世界级的比赛。2007年,国内开始举行IEEE标准电脑鼠走迷宫邀请赛,自举办以来高校参赛踊跃,许多大学还开设了“电脑鼠原理和制作”选修课程。电脑鼠走迷宫竞赛具有一定难度,是一项富有挑战性和趣味性的比赛。电脑鼠可看作一个集多项工程学科知识于一体的小型系统,成功的设计者通常都是合作团体。他们必须考虑电子、电气、机械以及计算机各方面的问题,重量、速度、功耗、传感技术重心以及程序各方面都是设计中需要决定和综合考虑的因素。电脑鼠结合了多学科知识,对于提升我们的动手能力、团队协作能力和创新能力,促进课堂知识的消化和扩展自身的知识面都非常有帮助;另外成立小组合作参赛,不仅使我们学到了知识,而且加强了同学之间的交流,交际能力语言表达能力等也得到了锻炼和提升;最后电脑鼠走迷宫竞赛极具趣味性,容易得到学生的认同及参与,并能很好的激发和引导学生这方面的兴趣和爱好,为继续参加比赛和深入学习提供了良好的条件。

数据结构课程设计报告

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

Pclab-300Morris水迷宫分析系统

Morris水迷宫及分析系统参数一 1.工作条件 1.1本本仪器可在下列条件下工作: 电源:220伏(±10%),单相,50赫兹(±1赫) 环境温度:摄氏0度——摄氏40度 技术参数 2.1 技术功能指标 2.1.1 A、B、C、D四个区的运动时间 2.1.2 A、B、C、D四个区的运动距离 2.1.3大(小)鼠在迷宫中运动的总时间 2.1.4大(小)鼠在迷宫中运动的总距离 2.1.5 大(小)鼠穿越目标区域的次数 2.1.6 内环、中环、外环的运动时间 2.1.7内环、中环、外环的运动距离 2.1.8大(小)鼠在迷宫中运动的平均速度 *2.1.9大(小)鼠在各个区域中运动的时效 *2.1.10大(小)鼠在迷宫中运动轨迹的回放 *2.1.11实时生成的数据可以导入Excel 2.2 技术参数指标 *2.2.1 传输方式:USB2.0 2.2.2 采样位数:10bit 2.2.3 动态范围:80dB-100dB 2.2.4 镜头接口:C/CS 2.2.5 供电方式:单独+12V供电 2.2.6 幅面:1280×1024 2.2.7 快门速度:8μs-26μs 2.2.8 快门方式:电子快门 2.2.9 象元尺寸:6.7μm×6.7μm 2.2.10 软件支持:jpg,bmp 2.附件、备件、专用工具或其他消耗品 3.1水迷宫测试软件一套 *3.5微视USB摄像头一个(USB接口可以代替采集卡,传输速度是采集卡的10倍) 3.6万向支架一个 3.7 12V电源一个 3.8 排水机一个 3.9 水温调控装置一个 3.10 配套电缆一套 3.11 说明书一本

参数二 系统功能特点要求: 1.适用于(大小鼠)神经药理学,神经生理学,神经心理学,老年病学等的研究。 2.采用视频摄像跟踪技术,实现实验过程的自动化,实现Morris水迷宫实验的定量化、精确化和客观性; 3.Morris水迷宫的尺寸规格按照Morris本人的设计,采用玻璃钢制作,可长期使用,视频摄像系统固定在特制的支架上,可拆卸,方便实验; 4.能够储存原始的视频图像,视频文件格式支持AVI和MPEG-1压缩格式;空间分辨率最高可达640x480像素(常用320x240像素),时间分辨率最高可达25帧/秒(常用15帧/秒);测量所得的指标结果精度高并供完整的实验数据库功能,作为研究的真实记录和今后进行教学演示的素材; 5.可在星光条件(0.01Lux)下进行视频分析(包括实时分析); 6.采用开放式、模块化设计,系统可扩展性强,可外接其他的分析模块,轨迹点坐标序列数据和指标结果可导入到Excel,便于用户在Excel、SPSS、SAS等分析统计软件中作进一步分析处理; 8.分析灵活,支持时段分析,支持定时终止和人工终止,并具有丰富的显示方式,能对动物的运动情况采用轨迹图、参数指标、曲线、直方图等多种显示方式,并可生成完整的报告,供打印输出; 水迷宫软件功能: 1.可记录大小鼠游泳路径距离,时间,速度。 2.可进行象限分析,包括各象限的距离,时间等。 3.可测定入水角度. 4.可测定穿越目标区次数。 5.可进行环行分析。 6.可自动记录大小鼠第一次到达目标区的时间、距离。 7.可实时观测和记录大小鼠运动的轨迹。并具备轨迹回放功能 8.全部数据可自动生成EXCEL结果。 9.实时图像在1024*768,16位或32位真彩色状态下观测。画面为 768*576像素,25帧/秒。 10.可以实时录像,以进行图像回放。 11.数据和轨迹可打印,并以数据库方式(名称,组别,动物编号)储存 结果,删除方便。 12.可人工设定采样时间。

《数据结构》课程设计报告-运动会分数统计 一元多项式 迷宫求解 文章编辑 纸牌游戏等

《数据结构》课程设计报告-运动会分数统计一元多项式迷宫求解文章编辑纸牌游戏等

南京林业大学 数据结构课程设计报告 专业:计算机科学与技术 课程名称:数据结构 姓名: 学号:090801126 指导老师: 时间: 2011年1月

目录要点: 一.具体内容(题目) (1) 二.需求分析(功能要求) (2) 三.概要设计(程序设计思想) (3) 四.详细设计(源代码) (6) 五.调试分析(运行结果显示及说明) (31) 六.课设总结 (34) 题目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:一元多项式** 任务:能够按照指数降序排列建立并输出多项式; 能够完成两个多项式的相加,相减,并将结果输入; 题目4:迷宫求解 任务:可以输入一个任意大小的迷宫数据,用非递归的方法求出一条走出迷宫的路径,并将路径输出; 题目5:文章编辑** 功能:输入一页文字,程序可以统计出文字、数字、空格的个数。 静态存储一页文章,每行最多不超过80个字符,共N行; 题目6:Joseph环 任务:编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有的人出列为止。设计一个程序来求出出列的顺序。 2

迷宫电脑鼠的硬件设计简介

迷宫电脑鼠的硬件设计简介应用科技 N●l 吴曼展 (同济大学中德学院上海市200092) f摘要】人工智能技术是一门融合了众多学科的新星科学,它被广泛地应用于勘探、侦察、医疗救援、抢险以及日常生活的各个方面。智能机器人竞赛则是~项旨在开发人工智能技术而举行的比赛,它集科学、娱乐和比赛于_t体,在各国引起了广泛关注和极大兴趣。目前豳际上有很多针对机器人技术的比赛,两IEEE迷宫鼠竞赛鬻楚其中的一个典羹代表。本文首先辩近年来在国际上迅速开矮的迷宫槐器入竞赛作了简簧介绍,簿要说碉了迷宫鬣竞赛的竞赛规则以及发展历史,同时也分析了国内外关于此课题的研究现状。其次,本文对迷寓鼠的硬件设计作了一个擞体规划,将迷宫鼠的设计分为微控制器模块、马达驱动模块、传感器模块、人工智能模块移数据存镳及佼埝模块。最嚣还瓣参据IEEE迷寥甄竞赛弱餐毵毫}lI嚣久雩筝了~些溅试。 【关键词】人工智能迷宫电脑鼠智能传感器嵌入式系统 中期分类号:TP文献标识码:A1009-91毒x(2009)27—0025-02 1.引言 人工智能楚一门由诗算机科学、控制谂、信息论、聿搴经生理学、心理学、落害学等多种学科互相渗透而发震起来的综合性学科。它所研究的是如何制造出入造的智能机器或智能系统,来模拟人类智能活动的能力,以延伸人们的智能。智能枫器入竞赛是一项罄在秀发人王餐戆技零焉举办麓毙赛,宅融合7众多最薅沿领域的研究技术,是一颈集科学、娱乐和比赛于一体的活幼,近年来在世界各国引起了广泛关注和极大兴趣。 2‘遮塞电麓纛蠢奏餐务 MicromouseCompetition,鼢迷宫鼠竞赛,起源于上世纪70年代。该竞赛要求一智能机器人在一个指定16.16格迷宫中自动寻找到规定的目标地点,然质疑指定熊落基发剃达强熬逵,曩辩短老获魅。困其终形醚{羰老鼠,爱黻褥名迷塞电脑鼠竟赛。 第一次迷宫电脑鼠竞赛是在1972年由《MachineDesign}发起的,参赛的迷塞撬器入是撬壤雏,矮弹簧辍裁力。在疆悉瓣卡豆年孛,该院赛穗继在英国、荧国、日本、新加坡、澳大利弧等国家举办,吸引了众多国家和地区的参赛者参加。而随着迷宫设计和竞赛规则的不断完善、电脑鼠的不断智能化发展,目前IEEE迷富毫瓣鬣竞赛瑟经戒鸯掘嚣久镶域懿有趣懿、其蠢攘战性豹、技术先进翡耋瑟研究方向。在国内的迷宫机器人研究方面,尽管起步较晚(迷宫机器人进入中闼麓不多是上世纪九十年代),但随着各方面按术的不断完善,特别是微控制器技术、铸惑器技本、入工智能技术的发鼹,国内黪班嚣入巍赛也褒翅必鲤蒙建开最。而迷宫鼠竞赛在台湾、香港等发达地区也已缀举办过多次。 3.迷寓■的硬件设计思想 迷宫鬣夔硬黪设谤是一瑗系统瓣工程。‘玄涉及到诲多方裁,毽括微控镧嚣攒块、马达驱动模块、传感器模块以及备模块间的相互连接。在设计之前,设计者岿须要对照个电脑鼠的各部分构造有一个大致的了解,由于迷宫是由256块18cmXl8cm夔单元接缀戒,除去墙体辱度1。2cm,嚣壤淹熬实赫距离兔16.8cm,因此可以考虑将整个电脑鼠就设计在一块lOcm见方的底板上,以使其能能方便、灵活地转向。 迷宫鬣戆电路援缕梅分必上下辩层。上瓣隽挖嗣援,其孛镪捂镞控穰器MCU、传感器检测电路和一些数据存储与连接模块。下层为驱动板,主要包括左右两侧的车轮、驱动马达、两翼的CNY70光电传感器、万向轮、H桥驱动芯片等。两层之间经震蠡壤镧柱用予支撑。这样的设诗安簿,栽够燕诧迷富鬣各部分的稳造、继分备模块的功能,同时也有利于拆装和臼后保养维护。 3.1微控制器模块 徽控稍嚣单元,帮MicrocontrollerUnit,或称单片税(Mcu),悬指将中央处理单元CPU、程序存储嚣ROM、数据存储嚣RAM以及输入输出端口(i/0口)等 单独翘囊两者缀合成不阏性能的交换黼络结构来实现。根据交换网络入端信道数与出端倍道数的不同,可以把交换网络分成集线器、扩线器和分配嚣。 集线器的功能是将用户电路的串行码进行串并转换,经过话存进入交换网络,通常采用“顺序写入、控制读出”的控制方式。T级话存的功能主要耀来完成话音的交换,邋常采霜“随机写入、控翻读出”静控稍方式。扩线器的功能是将T级话存的话音信息,经过扩线器话存后进行并串转换,送鬣苓疆戆PCm蝼口。扩线爨话存遴褰采援“控铡写入、蹶彦读遗”戆羧刳方式。 4时分交换网络中元器件的接口、驱动和改进措施 4。1根据所需容量来选择掰型的存健器芯片 由上可知,在对分交换弼络中,话音存储器和控制存储器都是由存储器芯片米实现的,现代程控交换机中将用到大量的存储芯片,实现使用中逶常鬏攥爨纛鸯墨来选择存键嚣蕊冀,焚整戆芯片襄选麓SYSTEMS公司豹SRM2016、S01idTateScientific公词的SCM6116以及HITACHT公司的HM6264等系列。 4.2采用先进的BiCMOS技术 传统的存储器芯片通常是通过CMOS工艺实现,随糟微电子技术的发震,塞瑗了毅型瓣BiCMOS器锌,臻BiCMOS器l孛实现熬存德器芯片与CMOS实现的存储器相比,性能指标将大大优化,反映猩衡量速度性能的传输她迟时阀搬标将缩小,传输速度明鼹提高,德量其舆效率搜能的功耗指标将大大减小,只有几磷大小。 先进的BiCMOS技术集中了双极型晶体管和CMOS器件的优点,两者互枣},在数字程控交换懿交换网络瓣实瑗中占有翡驻霞势。麓CMOS工艺实现的存储器芯片构成的交换网络,在实现使用中,会因为其速度指标问题而如现数搬码流丢失的误鼹现象,这说明,利用CMOS工艺缀难进一步生产遽信发展所需的速度更高、驱动能力更强的存储器芯片,而先进的BiCMOS技术在存储器芯片的速度、容量和功耗等性能指标上提供了数据交换所要求瓣哥靠戆。铡翔瓣予典黧戆六管静态存镰器,稠麓BiCMOS菝术,胃菝壤葵在较低的电源电压(3.3V)下工作,同时可提高存取速度,缩短读碍时间,功耗也可降副较低承平。 此外,交换网络及SPCE中的其它元器件也可以选用BiCMOS器件来实现。BiCMOS逻辑门在逶髂数字部传(翔编鹚器、译诲嚣秘摸/数转羧器等)和门阵列的应用中极为广泛,因为它的扇出数一般为5~8,如此大的扇出数意味着具有较强的带负载能力,而且BiCMOS门比CmOSf1能更快速地驱动这些负载。另矫,BiCMOSfj中的器件尺寸可以怒一致的,这就降低了通信数字部件在物理设计上的难度;不同的CMOS电路对减小单位负载的舆惩送往缝不溺,对予BiCMOS电爨,蠹予双稷墅捺捷BJT嚣俘隔开了CMOS电路的主体与负载,使得不同电路中负载的状况变差都是相同的,这样就简化了通信和信感处理用数字逻辑部{牛和电路的设计任务,提毫了工作效寨。 5结论 交换阏络是数字程控交换橇翡关键缝成部分之一,其髋能壹羧影豌着稷控交换机的技术指标和通话质墩。随着计算机技术、超大规模集成电路投本、微激子技本鞍半导体存德按零懿进~步发震,震瑟黪麦透静BiCMOS工艺制作的器件用于程控交换机交换网络的实现将成为现实,这将使通信成璧褥到可靠的保证,同时将会有越来越多鲍裹毅暹售技术窝电子元器侈_暾用于交换网络的实现中。目前,已有专用集成电路芯片朋于程羧交换机按续(典型的如用户电路芯片)。面利用BiCMOs工艺制作稷控交换机内部的交换弼络元器件,使之集成记并应孺子电信工稷实践中,关于这一方面的研究和腹用,将是我们今后继续进行的研究方向之一。 参考文献 [1]叶敏.糕控数字交换与交换网[M].北京:北京邮电学院出版技,1993。 (2]躲正友,杨为理.程控数字交换机硬件软件及应用[M].北京:清华大学出舨社,1995。 【3]成立,陈照章,董索玲,等.一种低压耗快闪式静态随机读写存储器[J].微电子学。2003■ 科技博览l25

相关文档
最新文档