迷宫设计实验报告

迷宫设计实验报告
迷宫设计实验报告

天津商业大学

《数据结构》课程设计报告

题目:迷宫问题

学院:信息工程学院

专业:计算机科学与技术

班级:13-01班

姓名:王

同组人员:谭陈

指导教师:黄

2014 年12 月26 日

目录

1. 课程设计的内容.......................................... 错误!未定义书签。

2. 需求分析...................................................... 错误!未定义书签。

3. 概要设计...................................................... 错误!未定义书签。

3.1抽象数据类型定义............................... 错误!未定义书签。

3.2 模块划分.............................................. 错误!未定义书签。

4. 详细设计...................................................... 错误!未定义书签。

4.1 数据类型的定义.................................. 错误!未定义书签。

4.2 主要模块的算法描述.......................... 错误!未定义书签。

4.3 函数之间的调用关系.......................... 错误!未定义书签。

5. 程序运行说明与测试.................................. 错误!未定义书签。

5.1 用户手册.............................................. 错误!未定义书签。

5.2 测试结果及分析.................................. 错误!未定义书签。

6. 课程设计总结.............................................. 错误!未定义书签。附录(源程序清单).................................... 错误!未定义书签。

2

1.课程设计的内容

【问题描述】

以一个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)……

2.需求分析

(1)以二维数组maze[M+2][N+2]表示迷宫,其中maze[i][0]和maze[i][N+1](0=

(2) 迷宫中的数据均由用户自由输入;

(3) 迷宫的出口和入口可由用户自由设定;

(4) 本程序只求出一条成功的通路;

(5) 程序执行的命令为:

①创建迷宫②求解迷宫③输出迷宫的解

3. 概要设计

3.1 抽象数据类型定义

(1) 设定栈的抽象数据类型定义:

ADT Stack{

数据对象:D={ai | a i∈CharSet,i = 1,2,…,n,n>=0}

数据关系:R1{ | a(i-1),a i∈D,i = 2,3…n}

基本操作:

InitStack(&S)

操作结果:构造一个空栈S。

1

DestroyStack(&S)

初始结果:栈S已存在。

操作结果:销毁栈S。

ClearStack(&S)

初始结果:栈S已存在。

操作结果:将S清为空栈。

StackLength(S)

初始结果:栈S已存在。

操作结果:返回栈S的长度

StackEmpty(S)

初始条件:栈S已存在。

操作结果:若S为空栈,则返回TRUE,否则返回FALSE GetTop(S,&e)

初始条件:栈S已存在。

操作结果:若栈S不空,则以e返回栈顶元素e。

Push(&S,e)

初始条件:栈S已存在。

操作结果:在栈S的栈顶插入新的栈顶元素。

Pop(&S,&e)

初始条件:栈S已存在。

操作结果:删除S的栈顶元素,并以e返回其值。

StackTraverse(S,visit())

初始条件:栈S已存在。

操作结果:从栈底到栈顶依次对S中的每个元素调用visit()

}ADT Stack

(2) 设定迷宫的抽象数据类型为:

ADT maze{

数据对象: D = {a(i,j) | a(i,j)∈{0,1},0=

数据关系:R = {M,N}

M = {|a(i-1,j),a(i,j)∈D,i=1,2,…,m+1,j=0,1,…n+1}

N = { | a(i,j-1),a(i,j)∈D,I = 0,1,…m+1,j = 1,2,…n+1}

基本操作:

InitMaze(&M,maze,m,n)

初始条件:二维数组maze[m+1][n+1] 已存在,其中自第一

行至第m+1行、每行中自第一列至第n+1列的元素已

2

有值,并且以值0表示通路,以值1表示障碍。

操作结果:构成迷宫的字符型数组,以字符0表示通路,以

字符1障碍,并在迷宫四周加上一圈障碍。

MazePath(&M)

初始条件:迷宫M已被赋值。

操作结果:若迷宫M中存在一条通路,则按如下规定改

变迷宫M的状态:以数字0代表可通过,数字1代

表不可通过。

3.1模块划分

(1) 主程序模块:

void main()

{

int sto[M][N];

struct mark start,end; //start,end入口和出口的坐标

int add[4][2]={{0,1},{1,0},{0,-1},{-1,0}};//行增量和列增量方向依次为东西南北

initmaze(sto);//建立迷宫

printf("输入入口的横坐标,纵坐标[逗号隔开]\n");

scanf("%d,%d",&start.x,&start.y);

printf("输入出口的横坐标,纵坐标[逗号隔开]\n");

scanf("%d,%d",&end.x,&end.y);

MazePath(start,end,sto,add); //find path

system("PAUSE");

}

(2) 栈模块——实现栈抽象数据类型;

(3) 迷宫模块——实现迷宫抽象数据类型,建立迷宫,求解迷宫的一条路径。

4. 详细设计

4.1 数据类型的定义

(1) 坐标位置,类型:

struct mark //定义迷宫内点的坐标类型

{

int x;

int y;

};

(2) 迷宫类型

void initmaze(int maze[M][N])

//按照用户输入的M行和N列的二维数组(元素值为0或1)

3

//设置迷宫maze的初值,包括加上边缘一圈的值

void MazePath(struct mark start,struct mark end,int maze[M][N],int diradd[4][2])

//求解迷宫maze中从入口Start到出口end的一条路径

//若存在,则返回TRUE,否则返回FALSE

(3) 栈类型

struct Element

{

int x,y; //x行,y列

int d; //d下一步的方向

};

typedef struct LStack //链栈

{

Element elem;

struct LStack *next;

}*PLStack;

4.2 主要模块的算法描述

(1) 求迷宫路径的伪码算法

void MazePath(struct mark start,struct mark end,int maze[M][N],int diradd[4][2])

{

int i,j,d;int a,b;

Element elem,e;

PLStack S1, S2;

InitStack(S1);

InitStack(S2);

maze[start.x][start.y]=2; //入口点作上标记

elem.x=start.x;

elem.y=start.y;

elem.d=-1; //开始为-1

Push(S1,elem);

while(!StackEmpty(S1)) //栈不为空有路径可走

{

Pop(S1,elem);

i=elem.x;

j=elem.y;

d=elem.d+1; //下一个方向

while(d<4) //试探东南西北各个方向

{

4

a=i+diradd[d][0];

b=j+diradd[d][1];

if(a==end.x && b==end.y && maze[a][b]==0) //如果到了出口

{

elem.x=i;

elem.y=j;

elem.d=d;

Push(S1,elem);

elem.x=a;

elem.y=b;

elem.d=886; //方向输出为-1 判断是否到了出口

Push(S1,elem);

printf("\n0=东1=南2=西3=北886为则走出迷宫\n\n通路为:(行坐标,列坐标,方向)\n");

while(S1) //逆置序列并输出迷宫路径序列

{

Pop(S1,e);

Push(S2,e);

}

while(S2)

{

Pop(S2,e);

printf("-->(%d,%d,%d)",e.x,e.y,e.d);

}

return; //跳出两层循环,本来用break,但发现出错,exit又会结束程序,选用return还是不错滴o(∩_∩)o...

}

if(maze[a][b]==0) //找到可以前进的非出口的点

{

maze[a][b]=2; //标记走过此点

elem.x=i;

elem.y=j;

elem.d=d;

Push(S1,elem); //当前位置入栈

i=a; //下一点转化为当前点

j=b;

d=-1;

}

d++;

}

5

}

printf("没有找到可以走出此迷宫的路径\n");

}

(2) 建立迷宫的伪码算法

void initmaze(int maze[M][N])

{

int i,j;

int m,n; //迷宫行,列

printf("请输入迷宫的行数m=");

scanf("%d",&m);

printf("请输入迷宫的列数n=");

scanf("%d",&n);

printf("\n请输入迷宫的各行各列:\n用空格隔开,0代表路,1代表墙\n",m,n);

for(i=1;i<=m;i++)

for(j=1;j<=n;j++)

maze[i][j] = (int) (rand() % 2);

//scanf("%d",&maze[i][j]);

printf("你建立的迷宫为o(∩_∩)o...\n");

for(i=0;i<=m+1;i++) //加一圈围墙

{

maze[i][0]=1;

maze[i][n+1]=1;

}

for(j=0;j<=n+1;j++)

{

maze[0][j]=1;

maze[m+1][j]=1;

}

for(i=0;i<=m+1;i++) //输出迷宫

{

for(j=0;j<=n+1;j++)

printf("%d ",maze[i][j]);

printf("\n");

}

}

(3) 主函数的伪码算法:

void main()

{

int sto[M][N];

6

struct mark start,end; //start,end入口和出口的坐标

int add[4][2]={{0,1},{1,0},{0,-1},{-1,0}};//行增量和列增量方向依次为东西南北

initmaze(sto);//建立迷宫

printf("输入入口的横坐标,纵坐标[逗号隔开]\n");

scanf("%d,%d",&start.x,&start.y);

printf("输入出口的横坐标,纵坐标[逗号隔开]\n");

scanf("%d,%d",&end.x,&end.y);

MazePath(start,end,sto,add); //find path

system("PAUSE");

}

(4) 栈的初始化、判空、进栈、和出栈等的伪码算法:

int InitStack(PLStack &S)//构造空栈

{

S=NULL;

return 1;

}

int StackEmpty(PLStack S)//判断栈是否为空

{

if(S==NULL)

return 1;

else

return 0;

}

int Push(PLStack &S, Element e)//压入新数据元素

{

PLStack p;

p=(PLStack)malloc(sizeof(LStack));

p->elem=e;

p->next=S;

S=p;

return 1;

}

int Pop(PLStack &S,Element &e) //栈顶元素出栈

{

PLStack p;

if(!StackEmpty(S))

{

e=S->elem;

p=S;

7

S=S->next;

free(p);

return 1;

}

else

return 0;

}

4.3 函数之间的调用关系

5. 程序运行说明与测试

5.1 用户手册

(1) 本程序的运行环境为C语言的运行环境,新建文件的后缀名:.cpp

(2) 进入演示程序后,即显示以下的用户界面:

①、点击组建进行“编译”;

②、点击运行程序;

8

(3) 执行程序出现界面后,按照提示先迷宫的行数和列数回车,进一步输入

迷宫内的数据‘1’代表墙,‘0’代表路径回车;输入迷宫的“入口”

和“出口”

回车即可现实路径,或者显示没有路径可走。

5.2 测试数据

(1) 输入行数:3 ;输入列数:2

输入迷宫数据为:

0 0

0 0

0 0

入口位置:1 1

出口位置:3 2

(2) 输入行数:3 ;输入列数:4

输入迷宫数据:

0 0 0 0

0 0 1 1

0 0 0 0

入口位置:1 1

出口位置:3 4

(3) 输入行数:4;输入列数:9

输入迷宫数据:

0 0 0 0 0 0 1 0 0

0 1 0 0 0 1 0 0 0

0 0 1 1 1 0 0 1 1

0 0 1 1 1 0 1 0 0

入口位置:1 1

出口位置:4 9

(4) 输入行数:8;输入列数:9

输入迷宫数据:

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

9

10

入口位置:1 1 出口位置:8 9

5.3 测试结果及分析

(1)

(2)

11

(3)

(4)

1

2

6. 实验总结

(1) 本次算法涉及迷宫的求解路径和迷宫的建立函数;建立迷宫函数时可自

由确定迷宫的行数和列数,及迷宫内的数据也可自由输入;但在建立迷宫数据时一开始使用的是随机函数,但是用此方法生成的迷宫行数列数一致时迷宫也是一致,且找不着路径;

(2) 本题中的主要算法:MazePath和initmaze的时间复杂度为O(m*n),本

13

题的空间复杂度异为O(m*n)(栈所占的最大空间)附:源程序清单

#include

#include

#define M 15

#define N 15

struct mark //定义迷宫内点的坐标类型

{

int x;

int y;

};

struct Element //"恋"栈元素,嘿嘿。。

{

int x,y; //x行,y列

int d; //d下一步的方向

};

typedef struct LStack //链栈

{

Element elem;

struct LStack *next;

}*PLStack;

/*************栈函数****************/

int InitStack(PLStack &S)//构造空栈

{

S=NULL;

return 1;

}

int StackEmpty(PLStack S)//判断栈是否为空

{

if(S==NULL)

return 1;

else

return 0;

}

int Push(PLStack &S, Element e)//压入新数据元素

{

PLStack p;

p=(PLStack)malloc(sizeof(LStack));

p->elem=e;

p->next=S;

14

S=p;

return 1;

}

int Pop(PLStack &S,Element &e) //栈顶元素出栈

{

PLStack p;

if(!StackEmpty(S))

{

e=S->elem;

p=S;

S=S->next;

free(p);

return 1;

}

else

return 0;

}

/***************求迷宫路径函数***********************/

void MazePath(struct mark start,struct mark end,int maze[M][N],int diradd[4][2]) {

int i,j,d;int a,b;

Element elem,e;

PLStack S1, S2;

InitStack(S1);

InitStack(S2);

maze[start.x][start.y]=2; //入口点作上标记

elem.x=start.x;

elem.y=start.y;

elem.d=-1; //开始为-1

Push(S1,elem);

while(!StackEmpty(S1)) //栈不为空有路径可走

{

Pop(S1,elem);

i=elem.x;

j=elem.y;

d=elem.d+1; //下一个方向

while(d<4) //试探东南西北各个方向

{

a=i+diradd[d][0];

b=j+diradd[d][1];

15

if(a==end.x && b==end.y && maze[a][b]==0) //如果到了出口

{

elem.x=i;

elem.y=j;

elem.d=d;

Push(S1,elem);

elem.x=a;

elem.y=b;

elem.d=886; //方向输出为-1 判断是否到了出口

Push(S1,elem);

printf("\n0=东1=南2=西3=北886为则走出迷宫\n\n通路为:(行坐标,列坐标,方向)\n");

while(S1) //逆置序列并输出迷宫路径序列

{

Pop(S1,e);

Push(S2,e);

}

while(S2)

{

Pop(S2,e);

printf("-->(%d,%d,%d)",e.x,e.y,e.d);

}

return; //跳出两层循环,本来用break,但发现出错,exit又会结束程序,选用return还是不错滴o(∩_∩)o...

}

if(maze[a][b]==0) //找到可以前进的非出口的点

{

maze[a][b]=2; //标记走过此点

elem.x=i;

elem.y=j;

elem.d=d;

Push(S1,elem); //当前位置入栈

i=a; //下一点转化为当前点

j=b;

d=-1;

}

d++;

}

}

printf("没有找到可以走出此迷宫的路径\n");

16

}

/*************建立迷宫*******************/

void initmaze(int maze[M][N])

{

int i,j;

int m,n; //迷宫行,列

printf("请输入迷宫的行数m=");

scanf("%d",&m);

printf("请输入迷宫的列数n=");

scanf("%d",&n);

printf("\n请输入迷宫的各行各列:\n用空格隔开,0代表路,1代表墙\n",m,n);

for(i=1;i<=m;i++)

for(j=1;j<=n;j++)

//maze[i][j] = (int) (rand() % 2);

scanf("%d",&maze[i][j]);

printf("你建立的迷宫为o(∩_∩)o...\n");

for(i=0;i<=m+1;i++) //加一圈围墙

{

maze[i][0]=1;

maze[i][n+1]=1;

}

for(j=0;j<=n+1;j++)

{

maze[0][j]=1;

maze[m+1][j]=1;

}

for(i=0;i<=m+1;i++) //输出迷宫

{

for(j=0;j<=n+1;j++)

printf("%d ",maze[i][j]);

printf("\n");

}

}

void main()

{

int sto[M][N];

struct mark start,end; //start,end入口和出口的坐标

int add[4][2]={{0,1},{1,0},{0,-1},{-1,0}};//行增量和列增量方向依次为东西南北initmaze(sto);//建立迷宫

printf("输入入口的横坐标,纵坐标[逗号隔开]\n");

17

scanf("%d,%d",&start.x,&start.y);

printf("输入出口的横坐标,纵坐标[逗号隔开]\n"); scanf("%d,%d",&end.x,&end.y);

MazePath(start,end,sto,add); //find path

system("PAUSE");

}

18

2011-年全国大学生电子设计竞赛实验报告

2011 年全国大学生电子设计竞赛实验报告 一、实验目的 1、熟练掌握各种常用实验仪器的使用方法。 2、熟悉LM324运放的典型参数及应用。 3、掌握PDF 资料的查询与阅读方法。 4、掌握电子设计与调试的基本流程及方法。 二、实验内容 设计要求: 使用一片通用四运放芯片LM324组成电路框图见图1,实现下述功能: 1. 使用低频信号源产生100.1sin 2()i U f t V =∏,f 0 =500Hz 的正弦波信号,加至 加法器输入端。 2. 自制三角波产生器产生T=0.5ms (±5%),V p-p =4V 的类似三角波信号1o u ,并加至加法器的另一输入端。 3. 自制加法器,使其输出电压U i2 = 10U i1+U o1。 4. 自制选频滤波器,滤除1o u 频率分量,得到峰峰值等于9V 的正弦信号2o u ,2o u 用示波器观察无明显失真。 5.将1o u 和2o u 送入自制比较器,其输出在1K Ω负载上得到峰峰值为2V 的输出电压3o u 。 方案论证与数值计算: 由于电源只能选用+12V 和+5V 两种单电源,由稳压电源供给,而

LM324N具有宽的单电源或双电源工作电压范围,单电源:3-30V,双电源:1.5V-15V,经过试验我们选择双电源供电,所以进行电源的搭建

三角波发生部分: 方案一: 三角波发生器电路按照由方波经过积分电路得到,需要两个放大器,不满足实验要求。 方案二: 利用RC充放电模拟三角波,通过两个电位器分别来调节周期和峰峰值至实验要求的值。达到合理利用现有资源高效达到要求的目的。因此我们采用方案二。题目要求三角波发生器产生的周期为T=0.5ms,Vpp=4V的类似三角波。我们由公式T=2*R14*C1*ln(1+2*R3/R15)另外运放1端输出电压设为U,则Uo1=(R15/(R15+R1))*U。选取电容为较常见的47nf , 计算得R1=2R14;R14=0-5K,所以取R1为0-10k;得到R15=0-10K; 加法器部分

《管理信息系统》课程设计实验报告

《管理信息系统》课程设计实验报告 课程名称:管理信息系统 指导老师: ******* 院系:商学院 专业班级: ******** 姓名: ******** 学号: ******** 实验日期: 2011.7.11 实验地点:一机房

《管理信息系统》课程设计任务书 一.课程设计目的及意义: 《管理信息系统》课程设计是在完成《管理信息系统》课程学习之后的一次实践性教 学,是本课程理论知识的一次综合运用。通过本课程设计,能够进一步加深对信息、信息系 统、管理信息系统等基础理论知识的理解,能初步掌握结构化的生命周期法、面向对象法等 系统工程方法,进一步加强熟练应用管理信息系统的操作技能,并能够借助于管理信息系统 解决实际问题。 二.课程设计要求: 1.本课程设计时间为一周。 2.本课程设计以教学班为单位进行上机操作及实验。 3.按照任务要求完成课程设计内容。 三.课程设计任务要求: 1.任务内容:进入山东轻工业学院主页,在“网络资源”区域进入“网络教学平台”,输入各自的用户名和密码(学生学号及密码),进入本网络教学平台系统,在充分熟悉本系统 的前提下,完成下列任务要求。 2.任务要求: ①按照课程讲解的系统分析步骤和理论对本系统进行系统分析。 ②绘制不少于 3 个的主要业务流程图。 ③描述上述主要业务流程图的逻辑处理功能。 ④分析本系统的优缺点,提出改进意见,并描述改进的逻辑处理功能,绘制业务流 程图。 四.课程设计评分标准: 按照《管理信息系统课程设计大纲》的要求,本课程 1 学分,采用百分制计分,其中 任务要求②占30 分,任务要求③占30 分,任务要求④占30 分,考勤及实践表现占10 分。五.本课程设计自2011 年 6 月 27 日至 2011 年 7 月 1 日。

数字电子钟课程设计实验报告

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计任务书2016/2017 学年第一学期 学生姓名:张涛学号: 李子鹏学号: 课程设计题目:数字电子钟的设计 起迄日期:2017年1月4日~2017年7月10日 课程设计地点:科学楼 指导教师:姚爱琴 2017年月日 课程设计任务书

中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计开题报告2016/2017 学年第一学期 题目:数字电子钟的设计 学生姓名:张涛学号: 李子鹏学号:

指导教师:姚爱琴 2017 年 1 月 6 日 中北大学 信息与通信工程学院 通信工程专业 《电子线路及系统》课程设计说明书2016/2017 学年第二学期 题目:数字电子钟的设计 学生姓名:张涛学号: 李子鹏学号: 指导教师:姚爱琴 2017 年月日

目录 1 引言 (6) 2 数字电子钟设计方案 (6) 2.1 数字计时器的设计思想 (6) 2.2数字电路设计及元器件参数选择 (6) 2.2.2 时、分、秒计数器 (7) 2.2.3 计数显示电路 (8) 2.2.5 整点报时电路 (10) 2.2.6 总体电路 (10) 2.3 安装与调试 (11) 2.3.1 数字电子钟PCB图 (11) 3 设计单元原理说明 (11) 3.1 555定时器原理 (12) 3.2 计数器原理 (12) 3.3 译码和数码显示电路原理 (12) 3.4 校时电路原理 (12) 4 心得与体会 (12) 1 引言 数字钟是一种用数字电子技术实现时,分,秒计时的装置,具有较高的准确性和直观性等各方面的优势,而得到广泛的应用。此次设计数字电子钟是为了了解数字钟的原理,在设计数字电子钟的过程中,用数字电子技术的理论和制作实践相结合,进一步加深数字电子技术课程知识的理解和应用,同时学会使用Multisim电子设计软件。 2数字电子钟设计方案 2.1 数字计时器的设计思想 要想构成数字钟,首先应选择一个脉冲源——能自动地产生稳定的标准时间脉冲信号。而脉冲源产生的脉冲信号地频率较高,因此,需要进行分频,使得高频脉冲信号变成适合于计时的低频脉冲信号,即“秒脉冲信号”(频率为1Hz)。经过分频器输出的秒脉冲信号到计数器中进行计数。由于计时的规律是:60秒=1分,60分=1小时,24小时=1天,就需要分别设计60进制,24进制计数器,并发出驱动信号。各计数器输出信号经译码器、驱动器到数字显示器,是“时”、“分”、“秒”得以数字显示出来。 值得注意的是:任何记时装置都有误差,因此应考虑校准时间电路。校时电路一般

【精品实验报告】软件体系结构设计模式实验报告

【精品实验报告】软件体系结构设计模式实验报告软件体系结构 设计模式实验报告 学生姓名: 所在学院: 学生学号: 学生班级: 指导老师: 完成日期: 一、实验目的 熟练使用PowerDesigner和任意一种面向对象编程语言实现几种常见的设计模式,包括组合模式、外观模式、代理模式、观察者模式和策略模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式,并学会分析这些模式的使用效果。 二、实验内容 使用PowerDesigner和任意一种面向对象编程语言实现组合模式、外观模式、代理模式、观察者模式和策略模式,包括根据实例绘制模式结构图、编写模式实例实现代码,运行并测试模式实例代码。 (1) 组合模式 使用组合模式设计一个杀毒软件(AntiVirus)的框架,该软件既可以对某个文件夹(Folder)杀毒,也可以对某个指定的文件(File)进行杀毒,文件种类包括文本文件TextFile、图片文件ImageFile、视频文件VideoFile。绘制类图并编程模拟实现。 (2) 组合模式 某教育机构组织结构如下图所示: 北京总部 教务办公室湖南分校行政办公室 教务办公室长沙教学点湘潭教学点行政办公室

教务办公室行政办公室教务办公室行政办公室 在该教育机构的OA系统中可以给各级办公室下发公文,现采用 组合模式设计该机构的组织结构,绘制相应的类图并编程模拟实现,在客户端代码中模拟下发公文。(注:可以定义一个办公室类为抽象叶子构件类,再将教务办公室和行政办公室作为其子类;可以定义一个教学机构类为抽象容器构件类,将总部、分校和教学点作为其子类。) (3) 外观模式 某系统需要提供一个文件加密模块,加密流程包括三个操作,分别是读取源文件、加密、保存加密之后的文件。读取文件和保存文件使用流来实现,这三个操作相对独立,其业务代码封装在三个不同的类中。现在需要提供一个统一的加密外观类,用户可以直接使用该加密外观类完成文件的读取、加密和保存三个操作,而不需要与每一个类进行交互,使用外观模式设计该加密模块,要求编程模拟实现。参考类图如下: reader = new FileReader();EncryptFacadecipher = new CipherMachine();writer = new FileWriter();-reader: FileReader-cipher: CipherMachine-writer: FileWriter +EncryptFacade () +fileEncrypt (String fileNameSrc,: voidString plainStr=reader.read(fileNameSrc); String fileNameDes)String

系统设计实验报告

系统设计实验报告——远程在线考试系统

目录软件需求说明书························1 引言··························· 1.1编写目的······················· 1.2背景························· 1.3定义························· 1.4参考资料······················· 2 程序系统的结构························ 3 程序设计说明·························

1引言 1.1编写目的 本文档的编写目的是为远程在线考试系统项目的设计提供: a.系统的结构、设计说明; b.程序设计说明; c. 程序(标识符)设计说明 1.2背景 随着网络技术的飞速发展,现在很多的大学及社会上其它的培训部门都已经开设了远程教育,并通过计算机网络实现异地教育。但是,远程教育软件的开发,就目前来说,还是处于起步的阶段。因此,构建一个远程在线考试系统,还是有很大的实际意义的。 根据用户提出的需求,本项目组承接该系统的开发工作 a.开发软件系统的名称:远程在线考试系统 b.本项目的任务提出者:福州大学软件学院 c.用户:各类大专院校学校、中小学校。 1.3定义 远程在线考试系统 远程在线考试系统是基于用Browser/Web模式下的,可以实现考试题库管理、多用户在线考试、自动阅卷功能的系统。

1.4参考资料 ?GB 8566 计算机软件开发规范 ?GB 8567 计算机软件产品开发文件编制指南?软件设计标准 ?《ASP与SQL-Server2000》清华大学出版社?《可行性研究报告》 ?《项目计划文档》 ? 2程序系统的结构 3程序1(标识符)设计说明

电子设计大赛实验报告

2014年江苏省大学生电子设计竞赛实验报告 无线电能传输装置(F题) 2014年8月15日 摘要:本设计基于磁耦合式谐振荡电路来进行无线电能传输,点亮LED灯。由于输入和输出都是直流电 的形式,因此本系统将分为以下四个部分:第一部分为驱动电路(DC-AC),为使直流分量转化成交流电并通过耦合线圈将电能传输给负载,采用LC谐振的方式让回路中电容和电感构成一个二阶LC谐振电路,驱动MOS管形成交流电。第二部分为发射电路(AC-AC),应用电磁感应原理,在二次线圈中产生感应电流并输给接受电路。第三部分为电能转换电路(AC-DC),输出的感应交流电经整流桥桥式整流后流入升压电路。第四部分为升压电路(DC-DC),对整流之后的直流进行升压,防止整流后的电压无法驱动LED。本设计分模块搭建并对各个部分电路进行原理分析。在调试时,采用分模块调试,根据调试结果修改参数,最终形成一个完整的稳定系统。 关键词: 磁耦合式谐振荡电路LC振荡电路桥式整流DC-DC升压 [Abstract] The design is based on magnetic resonance oscillation circuit coupled to the wireless power transmission, lit LED lights. Since the input and output are in the form of direct current, so the system will be divided into the following four parts: The first part of the drive circuit (DC-AC), is converted into alternating current so that the DC component and the power transmission through the coupling coil to the load, using LC resonant circuit in a manner so that the capacitance and inductance form a second order LC resonant circuit, the AC drive MOS tube formation. The second part is the transmitter circuit (AC-AC), application of the principle of electromagnetic induction,

设计模式实验报告

实验一单例模式的应用 1 实验目的 1) 掌握单例模式(Singleton)的特点 2) 分析具体问题,使用单例模式进行设计。 2 实验内容和要求 很多应用项目都有配置文件,这些配置文件里面定义一些应用需要的参数数据。 通常客户端使用这个类是通过new一个AppConfig的实例来得到一个操作配置文件内容的对象。如果在系统运行中,有很多地方都需要使用配置文件的内容,系统中会同时存在多份配置文件的内容,这会严重浪费内存资源。 事实上,对于AppConfig类,在运行期间,只需要一个对象实例就够了。那么应该怎么实现呢?用C#控制台应用程序实现该单例模式。绘制该模式的UML 图。 3 实验代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace AppConfig { publicclass Singleton { privatestatic Singleton instance; private Singleton() {

} publicstatic Singleton GetInstance() { if (instance == null) { instance = new Singleton(); } return instance; } } class Program { staticvoid Main(string[] args) { Singleton singletonOne = Singleton.GetInstance(); Singleton singletonTwo = Singleton.GetInstance(); if (singletonOne.Equals(singletonTwo)) { Console.WriteLine("singletonOne 和 singletonTwo 代表的是同一个实例"); } else { Console.WriteLine("singletonOne 和 singletonTwo 代表的是不同实例"); } Console.ReadKey(); } } } 4 实验结果

电子设计实验报告——充电器

实验报告 实验课程名称直流稳压电源及充电器 专业班级电信1403班 学生学号2014213940 学生姓名凌志云 实验指导教师黄光明

实验课程名称:电子设计1 一、实验项目名称:ADS06-2型直流稳压电源及充电器设计 一般晶体管电路都需要直流电源,而且是稳定的电源,才能正常工作,如收音机,电视机等。不管是用分立元件组成电路,还是用集成电路,其中都少不了放大信号的晶体管。为了保证晶体管能够保证放大信号,必须采用稳定的直流电源供电,稳定的直流电压可由干电池或蓄电池获得,但他们储蓄电量的能力有限,不能供应电器长时间工作。 稳定的直流电源可由交流电经过降压,然后经过稳压获得,这就是常见的稳压电源,他能供电器长时间工作。本课题主要设计一个连续可调稳压电路以及用这个电路对5号和7号电池进行充电,以实现其多功能化。 二、实验目的和要求: 实验目的: 1.学会直流稳压电源及充电器的设计方法和性能指标测试方法。 2.培养实践技能以及分析和解决实际问题的能力。 实验要求: 1.制作一个连续可调直流稳压电源及充电器,主要技术指标要求 (1)输出电压:交流220V,直流3V,6V (2)最大输出电流:500mA (3)电池充电器:左通道(E1,E2)充电电流50~60MA(普通充电);右通道(E3,E4)充电电流110~130mA(快速充电) 2.稳压电源和充电器可同时使用,但两者电流之和不能超过500mA 三、实验内容和原理: 1.直流稳压电源设计思路 (1)电网供电电压交流220V(有效值)50Hz,要获得低压直流输出,首先必须采用电源变压器将电网电压降低获得所需要交流电压。 (2)降压后的交流电压,通过整流电路变成单向直流电,但其幅度变化大(即脉动大)。 (3)脉动大的直流电压须经过滤波电路变成平滑,脉动小的直流电,即将交流成份滤掉,保留其直流成份。 (4)滤波后的直流电压,再通过稳压电路稳压,便可得到基本不受外界影响的稳定直流电压输出,供给负载RL。 2.直流稳压电源原理 直流稳压电源是一种将220V工频交流电转换成稳压输出6V、9V的直流电压的装置,它需要变压、整流、滤波、稳压四个环节才能完成,见图。

操作系统课程设计实验报告

河北大学工商学院 课程设计 题目:操作系统课程设计 学部信息学部 学科门类电气信息 专业计算机 学号2011482370 姓名耿雪涛 指导教师朱亮 2013 年6月19日

主要内容 一、设计目的 通过模拟操作系统的实现,加深对操作系统工作原理理解,进一步了解操作系统的实现方法,并可练习合作完成系统的团队精神和提高程序设计能力。 二、设计思想 实现一个模拟操作系统,使用VB、VC、CB等windows环境下的程序设计语言,以借助这些语言环境来模拟硬件的一些并行工作。模拟采用多道程序设计方法的单用户操作系统,该操作系统包括进程管理、存储管理、设备管理、文件管理和用户接口四部分。 设计模板如下图: 注:本人主要涉及设备管理模块

三、设计要求 设备管理主要包括设备的分配和回收。 ⑴模拟系统中有A、B、C三种独占型设备,A设备1个,B设备2个,C设备2个。 ⑵采用死锁的预防方法来处理申请独占设备可能造成的死锁。 ⑶屏幕显示 注:屏幕显示要求包括:每个设备是否被使用,哪个进程在使用该设备,哪些进程在等待使用该设备。 设备管理模块详细设计 一、设备管理的任务 I/O设备是按照用户的请求,控制设备的各种操作,用于完成I/O 设备与内存之间的数据交换(包括设备的分配与回收,设备的驱动管理等),最终完成用户的I/O请求,并且I/O设备为用户提供了使用外部设备的接口,可以满足用户的需求。 二、设备管理函数的详细描述 1、检查设备是否可用(主要代码) public bool JudgeDevice(DeviceType type) { bool str = false; switch (type) { case DeviceType.a: {

电子设计 实验报告.

台灯自动开关控制电路设计设计报告 设计任务 设计制作一个台灯自动开关控制电路设计 设计要求 (1).设计并制作一个台灯自动开关盒,以实现“人来灯亮,人走灯灭,光照灯灭”等节电功能; (2).台灯盒有交流电源输入线和交流电源输出插座,输出可接额定电压220V,功耗不大于60W的台灯; (3).具有两个传感器,即:(1)光敏传传感器。将其安装在开关盒适当的地方,作为检测光照;(2)对人体敏感的传感器,感应人体接近; (4).自动开关盒做好后,将台灯的电源插头插入开关盒的电源输出插座,便可实现如下功能:(1)在晚上,当没有足够的光源照到光敏元件上时,若有人靠近台灯,它便自动发光,人离开台灯后,能自动断开电源;(2)在白天有足够强的光线(以适合于阅读为标准)照射到光敏元件上时,无论人靠近台灯,它都不会亮; 一. 方案选择及电路的工作原理 为了实现智能开关自动调光的目的,准备了以下方案: 方案一: 首先,灯亮的前提是时间为晚上,所以首先要检测是白天还是晚上,通过光线强弱的不同来判定。运用光敏电阻来感应光线的变化。当白天光线强时,光敏电阻的阻值较小;而当晚上光线较弱时,其电阻阻值较大。通过阻值的变化所引起的一系列变化来确定白天还是黑夜。 运用红外发射接收对管检测人是否进入所在范围。在人进入之前,由于红外发射和接收管并行排列,接收管没有接收到红外信号,其电阻阻值很大;当人进入后,发射管发出的红外信号被人体反射,当接收管接收之后电阻阻值变小。通过阻值的变化引起电路中其他变量的变化来确定人是否在所测范围。 最后运用与门来使电路达到当天黑同时又有人时台灯自动打开。 方案二: 对于光线感应部分与方案一相同,而在人体检测的部分则改用红外感应器LHI907,它是利用红外技术,当人靠近时,里面的电路发生变化,输出信号。当红外感应器检测到有人靠近时,输出一个高电平。

软件设计模式与软件体系结构实验报告

《软件体系结构》大作业(1) 学院:软件学院 课程名称:软件体系结构 专业班级: 学生姓名:学号: 学生姓名:学号: 指导教师: 完成时间:年月日 评分表 1、叙述各小组成员完成本题目的分工协作情况。 小组中的每个成员都先理解题目要求及涉及的设计模式,并一起完成代码编写。另外,组长负责文档制作。 2、评分表 序号姓名评分是否组长 1 2 作业正文需要包括以下内容: 1、作业题目内容的详细描述。 2、完成本题目所采用的软件设计模式名称及画出相应的类图,或者是所采用的 软件体系结构名称及画出相应的体系结构图。

3、画出完成本题目所设计程序的设计类图;如还有其他图,也一并画出。 4、完成本题目所设计的程序代码。 5、程序运行的典型界面截图

1、作业题目内容的详细描述。 【作业2.1-1】例2.3为使用工厂方法模式设计的汽车保险管理应用程序实例。现在需要 扩展例2.3的设计图,添加一个名为LuxuryCarInsurance的类,并且需要编写此类和其他需要添加的类的代码,详细要求参见光盘的相应作业部分。 【作业2.1-1】在例2.4中,设计并且实现了豪华(Super)和中等(Medium)别墅(House)与公寓(Condo)的查询。要求在该设计的基础上,增加一个新的类SemiDetacher(半独立式楼宇),并且编写代码,实现相应的查询功能,详细要求参见光盘的相应作业部分。 2、完成本题目所采用的软件设计模式名称及画出相应的类图,或者是所采用的软件体系结构名称及画出相应的体系结构图。 【作业2.1-1】采用的是工厂方法模式 【作业2.1-2】采用的是抽象方法模式

设计模式上机实验二实验报告

设计模式实验二 实验报告书 专业班级软件0703 学号3901070324 姓名吉亚云 指导老师伟 时间2010年4月24日 中南大学软件学院

实验二设计模式上机实验二 一、实验目的 使用PowerDesigner和任意一种面向对象编程语言实现几种常用的设计模式,加深对这些模式的理解,包括装饰模式、外观模式、代理模式、职责链模式、命令模式、迭代器模式、观察者模式、状态模式、策略模式和模板方法模式。 二、实验内容 使用PowerDesigner和任意一种面向对象编程语言实现装饰模式、外观模式、代理模式、职责链模式、命令模式、迭代器模式、观察者模式、状态模式、策略模式和模板方法模式,包括根据实例绘制相应的模式结构图、编写模式实现代码,运行并测试模式实例代码。 三、实验要求 1. 正确无误绘制装饰模式、外观模式、代理模式、职责链模式、命令模式、迭代器模式、观察者模式、状态模式、策略模式和模板方法模式的模式结构图; 2. 使用任意一种面向对象编程语言实现装饰模式、外观模式、代理模式、职责链模式、命令模式、迭代器模式、观察者模式、状态模式、策略模式和模板方法模式,代码运行正确无误。 四、实验步骤 1. 使用PowerDesigner绘制装饰模式结构图并用面向对象编程语言实现该模式; 2. 使用PowerDesigner绘制外观模式结构图并用面向对象编程语言实现该模式; 3. 使用PowerDesigner绘制代理模式结构图并用面向对象编程语言实现该模式; 4. 使用PowerDesigner绘制职责链模式结构图并用面向对象编程语言实现该模式; 5. 使用PowerDesigner绘制命令模式结构图并用面向对象编程语言实现该模式; 6. 使用PowerDesigner绘制迭代器模式结构图并用面向对象编程语言实现该模式; 7. 使用PowerDesigner绘制观察者模式结构图并用面向对象编程语言实现该模式; 8. 使用PowerDesigner绘制状态模式结构图并用面向对象编程语言实现该模式; 9. 使用PowerDesigner绘制策略模式结构图并用面向对象编程语言实现该模式; 10. 使用PowerDesigner绘制模板方法模式结构图并用面向对象编程语言实现该模式。 五、实验报告要求 1. 提供装饰模式结构图及实现代码; 2. 提供外观模式结构图及实现代码; 3. 提供代理模式结构图及实现代码; 4. 提供职责链模式结构图及实现代码;

电子设计实验报告

课程设计说明书 题目:超声波传感测距器设计学生姓名: 学院:信息工程学院 班级: 指导教师: 2014年11月20日

目录: 一、摘要……………………………………………………………………… 二、设计背景及应用…………………………………………………………… 三、方案设计框图与论证……………………………………………………… 3.1方案论证及框图…………………………… 四、单元电路设计、参数计算及元器件选择…………………………… 4.1 电路总框图设计…………………………… 4.2 电路单元部分…………………………… 4.2.1超声稳频发射电路…………………………… 4.2.2超声波接受放大电路…………………………… 4.2.3多普勒拍频放大电路…………………………… 4.2.4双脉冲检测输出电路…………………………… 五、仿真及实测中遇到的问题及解决办法……………………… 5.1仿真中遇到的问题……………………… 5.2.实测中遇到的问题……………………… 六、结论与心得 七、参考文献

摘要 在本设计电路中,主要能完超声波传感探测的作用,电路元件主要由NE556,晶振,非门电路,发射器和超声波传感器组成。通过驱动电路促使超声波传感器向空间发射频率为40KHZ的超声波,若探测空间中的物体处于静态平衡,没有发生相应方向的位移时,超声波接受电路接受到反射波,并将40KHZ的超声波转变为40KHZ脉冲电压,再由放大电路线性放大后输出,若探测空间有物体运动,则该运动物体上反射的超声波发生频率偏移,那么前级接受并放大的为两个频率行成的拍频,在经过检波,滤波,将拍频信号取出,一部分放大后驱动发光二极管LED指示检测状况,另一部分送到两级单稳延迟电路,只有两部分电路都为高电平的时候,三极管输出低电平,因此探测空间中每一个动静都会LED显示,被用以防止偶然扰动因素造成的报警。探测的距离可以在0.2~3.5m之间可调,可用车尾行李箱防盗,汽车倒车防撞。 关键词:线性放大,NE556,多普勒拍频,双脉冲检测 Abstract In this design circuit, mainly the ultrasonic sensor to detect the role of, will complete circuit element is mainly composed of NE556, crystals, and not gate circuit, transmitter and ultrasonic sensors. Through driving circuit to make the ultrasonic sensor to the space is 40 KHZ ultrasonic transmission frequency, if detect objects in space in static equilibrium, without the direction of the corresponding displacement occurs, ultrasonic receiving circuit to the reflected wave, and 40 KHZ ultrasonic into 40 KHZ pulse voltage, again by amplifying circuit output after the linear amplification, if detection space motion, then the moving objects in the reflection of the ultrasonic frequency offset, so level before accepting

设计模式实验报告

计算机科学与技术学院 实验报告 课程名称:软件设计模式 专业:计算机科学与技术班级:班 学号: 姓名:

实验一单例模式的应用 1 实验目的 1) 掌握单例模式(Singleton)的特点 2) 分析具体问题,使用单例模式进行设计。 2 实验内容和要求 很多应用项目都有配置文件,这些配置文件里面定义一些应用需要的参数数据。 通常客户端使用这个类是通过new一个AppConfig的实例来得到一个操作配置文件内容的对象。如果在系统运行中,有很多地方都需要使用配置文件的内容,系统中会同时存在多份配置文件的内容,这会严重浪费内存资源。 事实上,对于AppConfig类,在运行期间,只需要一个对象实例就够了。那么应该怎么实现呢?用C#控制台应用程序实现该单例模式。绘制该模式的UML图。 [代码截图]: namespace实验一_单例模式_ { class Program { static void Main(string[] args) { AppConfig appc1 = AppConfig.GetAppConfig(); AppConfig appc2 = AppConfig.GetAppConfig(); appc1.SetParameterA("hello"); appc2.SetParameterA("hi"); if (appc1.Equals(appc2)){ Console.WriteLine("appc1 和 appc2 代表的是同一个实例"); } else{ Console.WriteLine("appc1 和 appc2 代表的是不同实例"); } Console.WriteLine(appc1.GetParameterA()); Console.WriteLine(appc2.GetParameterA()); Console.ReadKey();

数字电子技术 实验报告

实验一组合逻辑电路设计与分析 1.实验目的 (1)学会组合逻辑电路的特点; (2)利用逻辑转换仪对组合逻辑电路进行分析与设计。 2.实验原理 组合逻辑电路就是一种重要的数字逻辑电路:特点就是任何时刻的输出仅仅取决于同一时刻输入信号的取值组合。根据电路确定功能,就是分析组合逻辑电路的过程,一般按图1-1所示步骤进行分析。 图1-1 组合逻辑电路的分析步骤 根据要求求解电路,就是设计组合逻辑电路的过程,一般按图1-2所示步骤进行 设计。 图1-2 组合逻辑电路的设计步骤 3.实验电路及步骤 (1)利用逻辑转换仪对已知逻辑电路进行分析。 a.按图1-3所示连接电路。 b.在逻辑转换仪面板上单击由逻辑电路转换为真值表的按钮与由真值表导出 简化表达式后,得到如图1-4所示结果。观察真值表,我们发现:当四个输入变

量A,B,C,D中1的个数为奇数时,输出为0,而当四个输入变量A,B,C,D中1的个数为偶数时,输出为1。因此这就是一个四位输入信号的奇偶校验电路。 图1-4 经分析得到的真值表与表达式 (2)根据要求利用逻辑转换仪进行逻辑电路的设计。 a.问题提出:有一火灾报警系统,设有烟感、温感与紫外线三种类型不同的火灾 探测器。为了防止误报警,只有当其中有两种或两种以上的探测器发出火灾探测信号时,报警系统才产生报警控制信号,试设计报警控制信号的电路。 b.在逻辑转换仪面板上根据下列分析出真值表如图1-5所示:由于探测器发出 的火灾探测信号也只有两种可能,一种就是高电平(1),表示有火灾报警;一种就是低电平(0),表示正常无火灾报警。因此,令A、B、C分别表示烟感、温感、紫外线三种探测器的探测输出信号,为报警控制电路的输入、令F为报警控制电路的输出。

设计模式实验报告-建造者模式

建造者模式 建造者 建造者设计模式定义了处理其他对象的复杂构建的对象设计。 问题:创建复杂对象时候,构造函数的创建会涉及通用体系结构判定。某些编程人员认为任何构造函数都应当执行适当的逻辑以创建整个对象。另外一些编程人员则认识到将某些逻辑分解入其他方法才是有意义的。采用后一种样式设计的构造函数基本上是一系列请求实例化的方法。上述两种解决方案都不是特别灵活。事实上,它们根本就是错误的解决方案。 解决方案:我们可以基于一组业务逻辑的结果来构造对象。在示例中,对象只有特定的部分必须被创建。如果完全定义对象的所有部分,那么可能导致完全预见不能的结果。 多个方法调用的复杂性问题在使用之处似乎并非太严重,但该复杂性却是缓慢增长的。如果需要经常调用这些方法,那么就应当创建一个Builder对象。 UML MyObject MyObjectBuilder -MyObject:MyObect +complexFunctionA() +createInstanceOfMyObject() +complexFunctionB() +buideMyObject(configurationOptions) +getBuiltMyObject() *MyObject类具有能够完全实现对象构造的两个方法。为了具有完整的Myobject对象,需要执行complexFunctionA()和complexFunctionB()方法。 * MyObjectBuilder类包含一个名为createInstanceOfMyObject()的方法。这个类负责创建Myobject类的一个简单实例。需要注意没有用于进一步构造的配置选项。这个类还存储MyObjectBuilder类创建的实例中的私有实例。 *buildMyObject()方法接受参数configurationOption。这个方法用于调用在MyObjectBuilder 对象中存储的MyObject对象的complexFunctionA()和complexFunctionB()方法。 *getBuildObject()方法返回MyObjectBuilder对象内部Myobject对象的私有实例,该实例既是完整的,也是正常构建的。 示例代码演示: _type=$type; } public function setSize($size) {

软件设计与体系结构实验报告

福建农林大学计算机与信息学院 实验报告 课程名称:软件设计与体系结构 姓名:陈宇翔 系:软件工程系 专业:软件工程 年级:2007 学号:070481024 指导教师:王李进 职称:讲师 2009年12月16日

实验项目列表

福建农林大学计算机与信息学院实验报告 学院:计算机与信息学院专业:软件工程系年级:2007 姓名:陈宇翔 学号:070481024 课程名称:软件设计与体系结构实验时间:2009-10-28 实验室田实验室312、313计算机号024 指导教师签字:成绩: 实验1:ACME软件体系结构描述语言应用 一、实验目的 1)掌握软件体系结构描述的概念 2)掌握应用ACMESTUDIO工具描述软件体系结构的基本操作 二、实验学时 2学时。 三、实验方法 由老师提供软件体系结构图形样板供学生参考,学生在样板的指导下修改图形,在老师的指导下进行软件体系结构描述。 四、实验环境 计算机及ACMESTUDIO。 五、实验内容 利用ACME语言定义软件体系结构风格,修改ACME代码,并进行风格测试。 六、实验操作步骤 一、导入Zip文档 建立的一个Acme Project,并且命名为AcmeLab2。如下图:

接着导入ZIP文档,导入完ZIP文档后显示的如下图: 二、修改风格 在AcmeLab2项目中,打开families下的TieredFam.acme.如下图: 修改组件外观 1. 在组件类型中,双击DataNodeT; 在其右边的编辑器中,将产生预览;选择Modify 按钮,将打开外观编辑器对话框。 2. 首先改变图形:找到Basic shape section,在Stock image dropdown menu中选 择Repository类型. 3. 在Color/Line Properties section修改填充颜色为深蓝色。 4. 在颜色对话框中选择深蓝色,并单击 [OK]. 5. 修改图形的边框颜色为绿色 7. 单击Label tab,在Font Settings section, 设置字体颜色为白色,单击[OK] 产生的图形如下图:

电工电子设计性实验报告

广东石油化工学院电工电子实验中心 题目家庭照明电路设计 班级 学号 姓名 指导教师张锋 时间 2013.3.10

电工电子技术课程设计任务书姓名:班级:指导老师:张锋 设计课题: 设计任务与要求根据应用电路的功能,确定封面上的题目,然后完成以下任务: 1、分析电路由几个部分组成,并用方框图对它进行整体描述; 2、对电路(不可以复制或截屏!)的每个部分分别进行单独说明,画出 对应的单元电路,分析电路原理、元件参数、所起的作用、以及与其他部分电路的关系等等; 3、用简单的电路图绘图软件绘出整体电路图,在电路图中加上自己的学 号或姓名等信息; 4、对整体电路原理进行完整功能描述; 5、列出标准的元件清单; 6 制作电路实物(成功者可给优秀)或对进行电路仿真,演示并记录其实际效果;写出设计心得体会。(注意:设计如果与同学或网络作品雷同大于50%,则此设计作废) 设计步骤(请同学们认真在宿舍抓紧时间完成,无故拖延者扣分处理) 1、查阅相关资料,开始撰写设计说明书; 2、先给出总体方案并对工作原理进行大致的说明; 3、依次对各部分分别给出单元电路,并进行相应的原理、参数分析计算、 功能以及与其他部分电路的关系等等说明; 4、列出标准的元件清单; 5、总体电路的绘制及总体电路原理相关说明; 6、列出设计中所涉及的所有参考文献资料。 参考文献 参考文献:参考文献在说明书中按出现的顺序在设计说明书中,采用上标标注。

目录 一、设计目的 二、家庭照明电路组成部分的功能和安装要求 三、设计的总体思路 四、电路功能框图 五、安装用电路元器件以及预算 六、施工要求 七、设计总结

操作系统课程设计实验报告proj2

操作系统课程设计报告 班级: 团队成员:

目录 ................................................................................................................ 错误!未定义书签。 一、实验要求:建立线程系统................................................................... 错误!未定义书签。 1.1Task 2.1实现文件系统调用 (3) 1.1.1题目要求 (3) 1.1.2题目分析与实现方案 (3) 1.1.3关键点与难点 (4) 1.1.4实现代码 (4) 1.2 Task 2.2 完成对多道程序的支持 (5) 1.2.1题目要求 (5) 1.2.2题目分析与实现方案 (5) 1.2.3关键点与难点 (6) 1.2.4实现代码 (7) 1.3 Task 2.3 实现系统调用 (7) 1.3.1题目要求 (7) 1.3.2题目分析与实现方案 (8) 1.3.3关键点与难点 (9) 1.3.4实现代码 (9) 1.4 Task 2.4 实现彩票调度 (10) 1.4.1题目要求 (10) 1.4.2题目分析与实现方案 (10) 1.4.3关键点与难点 (11) 1.4.4实现代码 (11) 二、测试结果............................................................................................ 2错误!未定义书签。

电子设计实验报告——充电器

实验报告实验课程名称直流稳压电源及充电器 专业班级电信1403班 学生学号 学生姓名凌志云 实验指导教师黄光明

实验课程名称:电子设计1 一、实验项目名称:ADS06-2型直流稳压电源及充电器设计 一般晶体管电路都需要直流电源,而且是稳定的电源,才能正常工作,如收音机,电视机等。不管是用分立元件组成电路,还是用集成电路,其中都少不了放大信号的晶体管。为了保证晶体管能够保证放大信号,必须采用稳定的直流电源供电,稳定的直流电压可由干电池或蓄电池获得,但他们储蓄电量的能力有限,不能供应电器长时间工作。 稳定的直流电源可由交流电经过降压,然后经过稳压获得,这就是常见的稳压电源,他能供电器长时间工作。本课题主要设计一个连续可调稳压电路以及用这个电路对5号和7号电池进行充电,以实现其多功能化。 二、实验目的和要求: 实验目的: 1.学会直流稳压电源及充电器的设计方法和性能指标测试方法。 2.培养实践技能以及分析和解决实际问题的能力。 实验要求: 1.制作一个连续可调直流稳压电源及充电器,主要技术指标要求 (1)输出电压:交流220V,直流3V,6V (2)最大输出电流:500mA (3)电池充电器:左通道(E1,E2)充电电流50~60MA(普通充电);

右通道(E3,E4)充电电流110~130mA(快速充电) 2.稳压电源和充电器可同时使用,但两者电流之和不能超过500mA 三、实验内容和原理: 1.直流稳压电源设计思路 (1)电网供电电压交流220V(有效值)50Hz,要获得低压直流输出,首先必须采用电源变压器将电网电压降低获得所需要交流电 压。 (2)降压后的交流电压,通过整流电路变成单向直流电,但其幅度变化大(即脉动大)。 (3)脉动大的直流电压须经过滤波电路变成平滑,脉动小的直流电,即将交流成份滤掉,保留其直流成份。 (4)滤波后的直流电压,再通过稳压电路稳压,便可得到基本不受外界影响的稳定直流电压输出,供给负载RL。 2.直流稳压电源原理 直流稳压电源是一种将220V工频交流电转换成稳压输出6V、9V 的直流电压的装置,它需要变压、整流、滤波、稳压四个环节才 能完成,见图。 直流稳压电源方框 其中: (1)电源变压器:电源变压器的作用是将220v的交流电压变换为9v 的交变电压,以提供整流滤波电路所需电压。整流电路由四个整流二极管按桥式整流方法连接对输入交流电压进行整流。

相关文档
最新文档