>choice;switch(choice){case1:coutcase2:co" />

算法与数据结构课程设计报告

算法与数据结构课程设计报告
算法与数据结构课程设计报告

设计方案:

第一步:根据设计任务,设计DOS菜单。

第二步:添加功能函数。

在程序合适的位置添加相应的函数实现各功能模块。

实现过程:

#include"iostream"

using namespace std;

void ShowMainMenu(){

cout<<"\n";

cout<<"*******************算法与数据结构******************\n"; cout<<"* 1 单链表的基本操作及应用*\n"; cout<<"* 2 栈的基本操作及应用*\n"; cout<<"* 3 数组的基本操作及应用*\n"; cout<<"* 4 树的基本操作及应用*\n"; cout<<"* 5 图的基本操作及应用*\n"; cout<<"* 6 退出*\n"; cout<<"***************************************************\n"; }

void LinkListModule(){

int choice;

do{

cout<<"\n";

cout<<"**************单链表的基本操作及应用***************\n"; cout<<"* 1 创建*\n"; cout<<"* 2 插入*\n"; cout<<"* 3 删除*\n"; cout<<"* 4 查找*\n"; cout<<"* 5 显示*\n"; cout<<"* 6 通讯录(应用)*\n"; cout<<"* 7 退出*\n"; cout<<"***************************************************\n"; cout<<"请选择:";

cin>>choice;

switch(choice){

case 1:

cout<<"--------创建链表-------"; break;

case 2:

cout<<"--------插入元素-------";break;

case 3:

cout<<"--------删除元素-------";break;

case 4:

cout<<"--------查找元素-------";break;

case 5:

cout<<"--------显示链表-------";break;

case 6:

cout<<"--------通讯录---------";break;

case 7: break;

default:

cout<<"ERROR!";break;

}

}while(choice!=7);

}

void StackModule (){

int choice;

do{

cout<<"\n";

cout<<"****************栈的基本操作及应用*****************\n"; cout<<"* 1 进栈*\n"; cout<<"* 2 出栈*\n"; cout<<"* 3 取栈顶元素*\n"; cout<<"* 4 表达式求解(应用)*\n"; cout<<"* 5 退出*\n"; cout<<"***************************************************\n"; cout<<"请选择:";

cin>>choice;

switch(choice){

case 1:

cout<<"--------进栈-------";break;

case 2:

cout<<"--------出栈-------";break;

case 3:

cout<<"--------取栈顶元素-------";break;

case 4:

cout<<"--------表达式求值-------";break;

case 5:break;

default:

cout<<"ERROR!";break;

}

}while(choice!=5);

}

void ArrayModule (){

int choice;

do{

cout<<"\n";

cout<<"*************稀疏矩阵的压缩存储及应用**************\n"; cout<<"* 1 创建*\n"; cout<<"* 2 显示*\n"; cout<<"* 3 矩阵乘法(应用)*\n"; cout<<"* 4 退出*\n"; cout<<"***************************************************\n"; cout<<"请选择:";

cin>>choice;

switch(choice){

case 1:

cout<<"---------创建-------";break;

case 2:

cout<<"---------显示-------";break;

case 3:

cout<<"---------矩阵乘法-------";break;

case 4:break;

default:

cout<<"ERROR!";break;

}

}while(choice!=4);

}

void BiTreeModule (){

int choice;

do{

cout<<"\n";

cout<<"**************二叉树的基本操作及应用***************\n"; cout<<"* 1 创建二叉树*\n"; cout<<"* 2 遍历二叉树(先/中/后)*\n"; cout<<"* 3 计算树的深度*\n"; cout<<"* 4 计算叶子结点个数*\n"; cout<<"* 5 查找双亲*\n"; cout<<"* 6 查找兄弟*\n"; cout<<"* 7 Huffman编码(应用)*\n"; cout<<"* 8 退出\n";

cout<<"***************************************************\n"; cout<<"请选择:";

cin>>choice;

switch(choice){

case 1:

cout<<"---------创建二叉树--------";break;

cout<<"---------*遍历二叉树-------";break;

case 3:

cout<<"---------计算树的深度------";break;

case 4:

cout<<"---------计算叶子结点个数-------";break;

case 5:

cout<<"---------查找双亲-------";break;

case 6:

cout<<"---------查找兄弟-------";break;

case 7:

cout<<"---------Huffman编码-------";break;

case 8:break;

default:

cout<<"ERROR!";break;

}

}while(choice!=8);

}

void GraphModule (){

int choice;

do{

cout<<"\n";

cout<<"****************图的基本操作及应用*****************\n"; cout<<"* 1 创建无向图*\n"; cout<<"* 2 创建无向网*\n"; cout<<"* 3 创建有向图*\n"; cout<<"* 4 创建有向网*\n"; cout<<"* 5 遍历*\n"; cout<<"* 6 拓扑排序*\n"; cout<<"* 7 最小生成树(应用)*\n"; cout<<"* 8 最短路径(应用)*\n"; cout<<"* 9 关键路径(应用)*\n"; cout<<"* 10 退出*\n"; cout<<"***************************************************\n"; cout<<"请选择:";

cin>>choice;

switch(choice){

case 1:

cout<<"---------创建无向图-------";break;

case 2:

cout<<"---------创建无向网-------";break;

case 3:

cout<<"---------创建有向图-------";break;

cout<<"---------创建有向网-------";break; case 5:

cout<<"---------遍历-------";break;

case 6:

cout<<"---------拓扑排序-------";break; case 7:

cout<<"---------最小生成树-------";break; case 8:

cout<<"---------最短路径-------";break;

case 9:

cout<<"---------关键路径-------";break;

case 10:break;

default:

cout<<"ERROR!";break;

}

}while(choice!=10);

}

void main(){

int choice;

do{

ShowMainMenu();

cout<<"请选择:";

cin>>choice;

switch(choice){

case 1:LinkListModule ();break;

case 2:StackModule ();break;

case 3:ArrayModule ();break;

case 4:BiTreeModule ();break;

case 5:GraphModule ();break;

case 6:break;

default:cout<<"ERROR!";break;

}

}while(choice!=6);

}

实现代码:

1.链表:

typedef struct LNode{//单链表结构体char name[20];

char Iphonedata[11];

int qq;

ElemType data;

struct LNode*next;

}LNode,*LinkList;

Status InitList_L(LinkList&L);//初始化单链表

void CreateList_L(LinkList&L,int n);//创建

Status ListInsert_L(LinkList&L,int i,ElemType e);//插入Status ListDelete_L(LinkList&L,int i,ElemType&e);//删除Status GetElem_L(LinkList L,int i,ElemType&e);//查找

Status ListTraverse_L(LinkList L);//显示

Status DestroyList_L(LinkList&L);//退出

//初始化单链表

Status InitList_L(LinkList&L)

{

L=(LinkList)malloc(sizeof(LNode));

if(!L)

return ERROR;

L->next=NULL;

return OK;

}

void CreateList_L(LinkList&L,int n)

//随机产生n个元素的值,建立带表头结点的单链表(表头插入法)

{

int i;

LinkList p;

L=(LinkList)malloc(sizeof(LNode));

L->next=NULL;//先建立一个带头结点的单链线性表

for(i=n;i> 0;--i)

{

p=(LinkList)malloc(sizeof(LNode));//生成新结点

scanf_s("%d",&p->data);//输入元素值

p->next=L->next;

L->next=p;//查到表头

}

}//CreateList_L

Status ListInsert_L(LinkList&L,int i,ElemType e)

//在L中第i个元素之前插入新的元素e,插入成功返回OK,反之返回ERROR {

LinkList p,s;

int j= 0;

p=L;

while(p->next&&j

{

p=p->next;

j++;

}

if(!p||j>i- 1)//i小于1或大于表长加1

return ERROR;

s=(LinkList)malloc(sizeof(LNode));//生成新结点

s->data=e;

s->next=p->next;

p->next=s;//插入表中

return OK;

}//ListInsert_L

Status ListDelete_L(LinkList&L,int i,ElemType&e)

//在L中删除第i个元素的值,其值返回给e,删除成功返回OK,反之返回ERROR {

LinkList p,q;

int j= 0;

p=L;

while(p->next&&j

p=p->next;

j++;

}

if(!(p->next)||j>i- 1)//删除位置不合理

return ERROR;

q=p->next;

p->next=q->next;

e=q->data;

free(q);//删除并释放结点

return OK;

}//ListDelete_L

Status GetElem_L(LinkList L,int i,ElemType&e)

{

LinkList p;

int j;

p=L->next;

j= 1;

while(p&&j

{

p=p->next;++j;

}

if(!p||j>i)

return ERROR;

e=p->data;

return OK;

}//查找

Status ListTraverse_L(LinkList L)

{//依次对L的每个数据元素的值进行输出

LinkList p=L->next;

while(p)

{

printf(" %d\t",p->data);

p=p->next;

}

printf("\n");

return OK;

}//输出

Status DestroyList_L(LinkList&L)

{

LinkList q;

while(L)

{

q=L->next;

free(L);

L=q;

}

return OK;

}//退出

void CreatList1(LinkList&L)

{

int i;

LinkList r,p;

L=(LinkList)malloc(sizeof(LNode));

r=L;

printf("进行通信录的输入,1 or 0?\n");

scanf_s("%d",&i);

getchar();

while(i)

{

p=(LinkList)malloc(sizeof(LNode));

printf("请输入姓名:\n");

cin>>p->name;

printf("请输入电话号码:\n");

cin>>p->Iphonedata;

printf("请输入qq号:\n");

scanf_s("%d",&p->qq);

r->next=p;

r=p;

printf("进行通信录的输入,1 or 0?\n");

scanf_s("%d",&i);

getchar();

}

r->next=NULL;

}

//显示通讯录

void OutPut(LinkList L)

{

LinkList p;

p=L->next;

while(p!=NULL)

{

printf("姓名:%s\t手机号:%s\tqq号:%d\t\n",p->name,p->Iphonedata,p->qq);

p=p->next;

}

}

void LinkList1(){

LinkList L;

InitList_L(L);

ElemType e;

int i,n,m;

do{

printf("\n");

printf("**************单链表的基本操作及应用***************\n");

printf("* 1 创建 *\n");

printf("* 2 插入 *\n");

printf("* 3 删除 *\n");

printf("* 4 查找 *\n");

printf("* 5 显示 *\n");

printf("* 6 通讯录(应用) *\n");

printf("* 7 退出 *\n");

printf("***************************************************\n");

printf("请选择:");

scanf_s("%d",&n);

switch(n){

case 1:

printf("请输入链表元素个数和元素值:");scanf_s("%d",&n);CreateList_L(L, n);break;

case 2:

printf("请输入插入位序和元素值:");scanf_s("%d %d",&i,&n);

ListInsert_L(L,i,n);break;

case 3:

printf("请输入删除元素位序:");scanf_s("%d",&i);ListDelete_L(L,i,m); break;

case 4:

printf("请输入被查找元素位序:");scanf_s("%d",&i);

if(GetElem_L(L,i,e))

printf("第%d个元素的值为%d\n",i,e);

else

printf("第%d个元素不存在\n",i);

break;

case 5:

ListTraverse_L(L);break;

case 6:

CreatList1(L);printf("该通讯录为:\n");OutPut(L);break;

case 7:DestroyList_L(L);break;

default:

printf("ERROR!");break;

}

}while(n!= 7);

}

2.栈:

constexpr auto STACK_INIT_SIZE= 100;

constexpr auto STACKINCREMENT= 10;

typedef struct//栈的结构体

{

SElemType*base;

SElemType*top;

int stacksize;

}SqStack;

Status InitStack(SqStack&S);//建立空栈

Status Push(SqStack&S,SElemType e);//入栈

Status Pop(SqStack&S,SElemType&e);//出栈

Status GetTop(SqStack S,SElemType&e);//取栈顶元素

Status DestroyStack(SqStack&S);//销毁栈

Status InitStack(SqStack&S)//建立空栈

{

S.base=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType));

if(!S.base)

exit(OVERFLOW);//存储分配失败

S.top=S.base;

S.stacksize=STACK_INIT_SIZE;

return OK;

}

Status GetTop(SqStack S,SElemType&e)//取栈顶元素

{

//若栈不空,则用e返回S的栈顶元素,并返回OK,否则返回ERROR

if(S.top==S.base)

return ERROR;

e=*(S.top- 1);

return OK;

}

Status Push(SqStack&S,SElemType e)//入栈

{

if(S.top-S.base>=S.stacksize){//栈满,追加存储空间

S.base=(SElemType*)realloc(S.base,(S.stacksize+STACKINCREMENT)* sizeof(SElemType));

if(!S.base)

exit(OVERFLOW);//存储分配失败

S.top=S.base+S.stacksize;

S.stacksize+=STACKINCREMENT;

}

*S.top++=e;

return OK;

}

Status Pop(SqStack&S,SElemType&e)//出栈

{

if(S.top==S.base)

return ERROR;

e=*--S.top;

return OK;

}

Status DestroyStack(SqStack&S)//销毁栈

{

free(S.base);

S.stacksize= 0;

S.top=S.base=NULL;

return OK;

}

void Stack1(){

int n;

SqStack S;

SElemType e;

InitStack(S);

do{

printf("\n");

printf("****************栈的基本操作及应用*****************\n");

printf("* 1 进栈 *\n");

printf("* 2 出栈 *\n");

printf("* 3 取栈顶元素 *\n");

printf("* 4 表达式求解(应用) *\n");

printf("* 5 退出 *\n");

printf("***************************************************\n");

printf("请选择:");

scanf_s("%d",&n);

switch(n){

case 1:

printf("请输入进栈的元素值:");scanf_s("%d",&e);Push(S,e);break;

case 2:

Pop(S,e);printf("出栈元素值为:");cout<

case 3:

GetTop(S,e);printf("栈顶元素值为:");cout<

case 4:

printf("--------表达式求值-------");break;

case 5:break;

default:

printf("ERROR!");break;

}

}while(n!= 5);

DestroyStack(S);

}

3.数组:

//稀疏矩阵的三元组顺序表存储表示

typedef struct{

int i,j;//该非零元的行下标和列下标

ElemType e;

}Triple;

typedef struct{

Triple data[MAXSIZE+ 2];//非零元三元组表,data[0]未用

int rops[MAXROW+ 1];//

int mu,nu,tu;//矩阵的行列和非零元个数

}TSMatrix;

//创建

int CreateSMatrix(TSMatrix&M)

{

int i,m,n;

ElemType e;

int k;

printf("请输入矩阵的行数,列数,非零元素数:");

scanf_s("%d %d %d",&M.mu,&M.nu,&M.tu);

M.data[0].i= 0;// 为以下比较顺序做准备

for(i= 1;i<=M.tu;i++)

{

do

{

printf("请按行序顺序输入第%d个非零元素所在的行(1~%d),列(1~%d),元素值:", i,M.mu,M.nu);

scanf_s("%d %d %d",&m,&n,&e);

k= 0;

if(m<1 ||m>M.mu||n<1 ||n>M.nu)// 行或列超出范围

k= 1;

if(m

k= 1;

}while(k);

M.data[i].i=m;

M.data[i].j=n;

M.data[i].e=e;

}

return OK;

}

//显示

Status PrintSMatrix(TSMatrix M)

{

int m,n,t,b,c,a= 1;

m=M.mu;n=M.nu;t=M.tu;

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

{

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

{

if(b==M.data[a].i&&c==M.data[a].j)

{

printf("%d ",M.data[a].e);

a++;

}

else

printf("0 ");

}

printf("\n");

}

return OK;

}

bool Count(TSMatrix&T)

{

int num[MAXROW+ 1];

for(int row= 1;row<=T.mu;row++)num[row]= 0;

for(int col= 1;col<=T.tu;col++)++num[T.data[col].i];//

T.rops[1]= 1;

for(int i= 2;i<=T.mu;i++)T.rops[i]=T.rops[i- 1]+num[i- 1];// return true;

}

//矩阵的乘法函数

bool MultSMatrix(){

TSMatrix M,N,Q;

CreateSMatrix(M);PrintSMatrix(M);

CreateSMatrix(N);PrintSMatrix(N);

Count(M);

Count(N);

cout<<"输入的两矩阵的乘矩阵为:"<

if(M.nu!=N.mu)return false;

Q.mu=M.mu;

Q.nu=N.nu;

Q.tu= 0;//初始化

int ctemp[MAXROW+ 1];//辅助数组

int arow,tp,p,brow,t,q,ccol;

if(M.tu*N.tu){

for(arow= 1;arow<=M.mu;arow++){

for(int x= 1;x<=N.nu;x++)ctemp[x]= 0;

Q.rops[arow]=Q.tu+ 1;

if(arow

tp=M.rops[arow+ 1];

else tp=M.tu+ 1;

for(p=M.rops[arow];p

brow=M.data[p].j;

if(brow

else t=N.tu+ 1;

for(q=N.rops[brow];q

ccol=N.data[q].j;

ctemp[ccol]+=M.data[p].e*N.data[q].e;

}

}

for(ccol= 1;ccol<=Q.nu;ccol++)

if(ctemp[ccol]){

if(++Q.tu>MAXSIZE)return false;

Q.data[Q.tu].e=ctemp[ccol];

Q.data[Q.tu].i=arow;

Q.data[Q.tu].j=ccol;

}

}

}

PrintSMatrix(Q);

return true;

}

void Array1(){

int n;

TSMatrix M;

do{

printf("\n");

printf("*************稀疏矩阵的压缩存储及应用**************\n");

printf("* 1 创建 *\n");

printf("* 2 显示 *\n");

printf("* 3 矩阵乘法(应用) *\n");

printf("* 4 退出 *\n");

printf("***************************************************\n");

printf("请选择:");

scanf_s("%d",&n);

switch(n){

case 1:

printf("创建矩阵M: \n");CreateSMatrix(M);break;

case 2:

printf("矩阵M为:\n");PrintSMatrix(M);break;

case 3:

MultSMatrix();break;

case 4:break;

default:

printf("ERROR!");break;

}

}while(n!= 4);

}

4.二叉树:

typedef struct BiTNode//二叉树结构体

{

TElemType data;

struct BiTNode*lchild,*rchild;

}BiTNode,*BiTree;

Status CreateBiTree(BiTree&T)//创建二叉树

{

TElemType e;

cin>>e;

if(e=='0')

T=NULL;

else

{

T=new BiTNode;

T->data=e;

CreateBiTree(T->lchild);

CreateBiTree(T->rchild);

}

return OK;

}//CreateBiTree

Status PreOrderTraverse(BiTree T,Status(*Visit)(TElemType e))//先序遍历{

if(T== 0)

return 1;

cout<<(T->data);

PreOrderTraverse(T->lchild,Visit);

PreOrderTraverse(T->rchild,Visit);

return 1;

}

Status InOrderTraverse(BiTree T,Status(*Visit)(TElemType e))//中序遍历{

if(T== 0)

return 1;

InOrderTraverse(T->lchild,Visit);

Visit(T->data);

InOrderTraverse(T->rchild,Visit);

return OK;

}

Status PostOrderTraverse(BiTree T,Status(*Visit)(TElemType e))//后序遍历{

if(T== 0)

return 1;

PostOrderTraverse(T->lchild,Visit);

PostOrderTraverse(T->rchild,Visit);

Visit(T->data);

return OK;

}

Status PrintElement(TElemType e)//输出

{

cout<

return OK;

}

int Height(BiTree T)//求二叉树的高度

{

int LD,RD;

if(T==NULL){

return 0;

}

else{

LD=Height(T->lchild);

RD=Height(T->rchild);

return(LD>RD?LD:RD)+ 1;

}

}

int Leave(BiTree T)//求二叉树中的叶子节点数

{

if(T==NULL)

return 0;

else{

if(T->lchild==NULL&&T->rchild==NULL)

return 1;

else

return(Leave(T->lchild)+Leave(T->rchild));

}

}

Status Parent(BiTree T,TElemType e)//查找双亲

// 二叉树T存在,e是T中某个结点

// 若e是T的非根结点,则返回它的双亲;否则返回“空”

{

Status m;

if(T==NULL)// 空树

return 0;

if((T->lchild&&T->lchild->data==e)||(T->rchild&&T->rchild->data==e)) return T->data;

m=Parent(T->lchild,e);

if(m== 0)m=Parent(T->rchild,e);

return m;

}

Status Brother(BiTree T,TElemType e)//查找兄弟

{

Status m;

if(T==NULL)// 空树

return 0;

if(T->lchild&&T->lchild->data==e)

return T->rchild->data;

if(T->rchild&&T->rchild->data==e)

return T->lchild->data;

m=Brother(T->lchild,e);

if(m== 0)m=Brother(T->rchild,e);

return m;

}

void BiTree1(){

int n;

BiTree T=NULL;

TElemType e,m;

int height,num;

do{

printf("\n");

printf("**************二叉树的基本操作及应用***************\n");

printf("* 1 创建二叉树 *\n");

printf("* 2 遍历二叉树(先/中/后) *\n");

printf("* 3 计算树的深度 *\n");

printf("* 4 计算叶子结点个数 *\n");

printf("* 5 查找双亲 *\n");

printf("* 6 查找兄弟 *\n");

printf("* 7 Huffman编码(应用) *\n");

printf("* 8 退出\n");

printf("***************************************************\n");

printf("请选择:");

scanf_s("%d",&n);

switch(n){

case 1:

printf("请输入二叉树的元素:\n");CreateBiTree(T);

break;

case 2:

printf("\n按先序遍历法输出该二叉树的元素为:");PreOrderTraverse(T, PrintElement);

printf("\n按中序遍历法输出该二叉树的元素为:");InOrderTraverse(T, PrintElement);

printf("\n按后序遍历法输出该二叉树的元素为:");PostOrderTraverse(T, PrintElement);

break;

case 3:

height=Height(T);printf("该二叉树深度为:");cout<

break;

case 4:

num=Leave(T);printf("该二叉树叶子结点个数为:");cout<

break;

case 5:

printf("请输入结点:");cin>>e;

m=Parent(T,e);printf("该结点双亲为:");cout<

break;

case 6:

printf("请输入结点:");cin>>e;

m=Brother(T,e);printf("该结点兄弟为:");cout<

break;

case 7:

printf("---------Huffman编码-------");

break;

case 8:

break;

default:

printf("ERROR!");

break;

}

}while(n!= 8);

}

5.图:

typedef struct//定义邻接矩阵图结构

{

char Vertex[VERTEX_MAX];//保存顶点信息(序号或字母)

int Edges[VERTEX_MAX][VERTEX_MAX];//保存边的权

int isTrav[VERTEX_MAX];//遍历标志

int VertexNum;//顶点数量

int EdgeNum;//边数量

int GraphType;//图的类型

}MGraph;

//构造无向图

void CreateUDG(MGraph*G){

int i,j,k;

char start,end;//边的起始顶点

cout<<"输入图的顶点数量和边数量:\n";

cin>>G->VertexNum>>G->EdgeNum;//输入图顶点数和边数

for(i= 0;iVertexNum;i++)//清空矩阵

{

for(j= 0;jVertexNum;j++)

G->Edges[i][j]=MINVALUE;//设置矩阵中各元素的值为最小值}

cout<<"输入各顶点信息\n";

for(i= 0;iVertexNum;i++)//输入顶点

{

printf("第%d个顶点:",i+ 1);

cin>>G->Vertex[i];//保存到各顶点数组元素中

}

printf("输入构成各边的两个顶点:\n");

for(k= 0;kEdgeNum;k++)//输入边的信息

{

printf("第%d条边:",k+ 1);

cin>>start>>end;

for(i= 0;start!=G->Vertex[i];i++);//在已有顶点中查找始点

{

for(j= 0;end!=G->Vertex[j];j++);//在已有顶点中查找结终点

课程设计报告撰写规范

.课程设计报告撰写规范

————————————————————————————————作者:————————————————————————————————日期: 2

江西理工大学应用科学学院信息工程系 课程设计规范 (试行) 信息工程系 二○一○年六月

第1章内容要求 第1章内容要求 课程设计报告由以下几个部分组成组成,依次为: I、统一的封面,封面之后为课设评分表及答辩记录表; II、摘要; III、目录; IV、课程设计总结报告正文; V、总结(本课题核心内容、特点和方案的优缺点、改进方向和意见)VI、按统一格式列出主要参考文献。 1

第2章格式要求 第2章格式要求 课程设计报告每部分从新的一页开始,各部分要求如下: 2.1封面 统一的封面(含课程设计课题名称、专业、班级、姓名、学号、指导教师等,详见第五部分“格式范例”) 2.2摘要 应概括地反映出本课程设计的主要内容,包括工作目的、实验研究方法、研究成果和结论,重点是本论文的主要工作。摘要力求语言精炼准确,建议500字以内。摘要中不要出现图片、图表、表格或其他插图材料。 关键词是为了便于作文献索引和检索工作而从论文中选取出来用以表示全文主题内容信息的单词或术语。 关键词在摘要内容后另起一行标明,一般3~5个,之间用“;”分开。 2.3 目录 目录由标题名称和页码组成,包括:正文(含结论)的一级、二级和三级标题和序号。具体格式见第五部分“格式范例”。 2.4 符号说明 如果课程设计报告中使用了大量的物理量符号、标志、缩略词、专门计量单位、自定义名词和术语等,应将全文中常用的这些符号及意义列出。如果上述符号和缩略词使用数量不多,可以不设专门的主要符号表,但在报告中出现时须加以说明。缩略词应列出中英文全称。 2

智能控制课程论文

一、引言 (3) 二、轧机液压AGC数学模型 (3) 三、基于BP神经网络的轧机AGC过程控制 (5) (一)人工神经网络基本思想及其发展 (6) (二)人工神经网络的工作原理 (7) (三)人工神经网络的主要功能特点 (8) 四、神经网络辨识 (9) (一)扩展BP神经算法 (9) (二)基于时间序列的动态模型辨识 (11) 五、辨识结果 (12) (一)轧制力辨识 (12) (二)液压AGC参数辨识 (13) 六、结果检验 (14) (一)模型检验 (14) (二)辨识结果对比 (14) 七、结论 (15) 八、参考文献: (15)

先进过程控制技术在轧机液压领域的应用 摘要:轧机液压AGC控制过程的力控精度直接影响带钢的组织性能和力学性能,是保证板带质量和板形良好的关键因素。所以对轧机液压AGC的力控制,成为热轧生产中的重要环节,对其过程进行分析和研究具有深远的现实意义。本文以国内某热轧厂轧机液压AGC控制为背景,对如何提高轧机液压AGC控制的力控精度从控制方法上入手进行了较深入系统的研究。在分析液压AGC的组成元件及其动态特性的基础上, 利用神经网络具有逼近任何非线性函数且具有自学习和自适应的能力, 建立基于时间序列的前馈动态模型辨识结构, 应用扩展BP算法对轧机液压AGC力控制系统进行非线性预测, 将预测结果应用最小二乘辨识方法进行线性系统的特征参数辨识, 仿真及实测结果表明此方法行之有效, 为轧机液压AGC的控制提供了新途径。 关键词:自适应辨识;板带轧机;液压AGC;神经网络

Advanced process control technology in the field of rolling mill hydraulic applications Abstr act: In the process of rolling mill hydraulic AGC control force control precision directly affects the organization performance and mechanics performance of the steel strip, is guarantee the quality of strip and plate shape of the key factors. So the force control of rolling mill hydraulic AGC, become the important link between the hot rolling production, analyzes its process and research has far-reaching practical significance. This paper, taking a warmwalzwerk domestic mill hydraulic AGC control as the background, on how to improve the force control precision of the rolling mill hydraulic AGC control from the control methods of conducted in-depth study of the system. Based on the analysis of dynamic characteristics of hydraulic AGC components and, on the basis of using the neural network has any nonlinear function approximation, and has the ability of self learning and adaptive feedforward dynamic model identification based on time series structure, extend the BP algorithm was applied to rolling mill hydraulic AGC force control system for nonlinear prediction, and the predicted results using least squares identification method for characteristic parameters of a linear system identification, simulation and experimental results show that this method is effective, for rolling mill hydraulic AGC control provides a new way. Key wor ds: adaptive identification; stripe mill; hydraulic AGC; neural network

课程设计报告模板)

课程设计报告模板()

————————————————————————————————作者: ————————————————————————————————日期: ?

课程设计(论文)任务书 软件学院软件+电商专业09级(2)班 一、课程设计(论文)题目基本模型机设计与实现 二、课程设计(论文)工作自2011年6月 20 日起至2011年 6月 24日止。 三、课程设计(论文) 地点:计算机组成原理实验室(5#301) 四、课程设计(论文)内容要求: 1.课程设计的目的 通过课程设计的综合训练,在掌握部件单元电路实验的基础上,进一步掌握整机 概念。培养学生实际分析问题、解决问题和动手能力,最终目标是想通过课程设计的形式,帮助学生系统掌握该门课程的主要内容,更好地完成教学任务。 2.课程设计的任务及要求 1)基本要求? (1)课程设计前必须根据课程设计题目认真查阅资料; (2)实验前准备好实验程序及调试时所需的输入数据; (3)实验独立认真完成; (4)对实验结果认真记录,并进行总结和讨论。 2)课程设计论文编写要求 (1)按照书稿的规格撰写打印课设论文 (2)论文包括目录、绪论、正文、小结、参考文献、附录等 (3)正文中要有问题描述、实验原理、设计思路、实验步骤、调试过程与遇到问题的解决方法、总结和讨论等 (4)课设论文装订按学校的统一要求完成 3)课设考核 从以下几方面来考查:

(1)出勤情况和课设态度; (2)设计思路; (3)代码实现; (4)动手调试能力; (5)论文的层次性、条理性、格式的规范性。 4)参考文献 [1]王爱英.计算机组成与结构[M]. 北京:清华大学出版社, 2007. [2] 王爱英. 计算机组成与结构习题详解与实验指导[M]. 北京:清华大学出版社, 2007. 5)课程设计进度安排 内容天数地点 构思及收集资料1图书馆 实验与调试 3 实验室 撰写论文 1 图书馆 6)任务及具体要求 设计实现一个简单的模型机,该模型机包含若干条简单的计算机指令,其中至少包括输入、输出指令,存储器读写指令,寄存器访问指令,运算指令,程序控制指令。学生须根据要求自行设计出这些机器指令对应的微指令代码,并将其存放于控制存储器,并利用机器指令设计一段简单机器指令程序。将实验设备通过串口连接计算机,通过联机软件将机器指令程序和编写的微指令程序存入主存中,并运行此段程序,通过联机软件显示和观察该段程序的运行,验证编写的指令和微指令的执行情况是否符 合设计要求,并对程序运行结果的正、误分析其原因。 学生签名: 亲笔签名 2011年6月20 日 课程设计(论文)评审意见 (1)设计思路:优( )、良()、中( )、一般()、差( ); (2)代码实现:优()、良()、中()、一般()、差();

课程设计报告书写规范

郑州工业应用技术学院 课程设计报告科目: 题目: 姓名: 院(系): 专业班级: 学号: 指导教师: 成绩: 时间:年月日至年月日

课程设计报告的格式 一、课程设计报告内容 课程设计报告一般由以下几部分组成:A.任务书; B.目录; C.正文; D.参考文献;E.附录。 课程设计题目 摘要(200~300字) 目录 1.概述 包括课程设计选题、项目背景、课程设计报告编写目的、课程设计报告的组织等内容。 2.课程设计任务的需求分析 2.1任务描述 2.2需求描述的规范文档(要画出DFD数据流图和DD(数据字典)) 3.概念结构设计 3.1概念结构设计工具(E-R模型) 3.2XXX子系统(局部) 3.2.1子系统描述 3.2.2分E-R图 3.2.3说明 3.3YYY子系统 3.3.1子系统描述 3.3.2 分E-R图 3.3.3 说明 …… 3.X 总体E-R图 3.X.1 E-R图的集成 3.X.2 总体E-R图 4.逻辑结构设计(参考教材P16图1-10逻辑结构设计步骤) 4.1关系数据模式 4.2优化 5.数据库物理设计与实施(至少包含前4节) 5.1数据库应用的硬件、软件环境介绍 5.2表结构设计 5.3索引的设计

5.4视图设计 5.5 存储过程 5.6 触发器 5.7 游标 5.8建立数据库 5.9 建立表 5.9 加载数据库测试数据 6.数据操作 6.1数据查询操作 6.2数据更新操作 6.3数据维护操作 6.4其他 7.数据库应用系统的实现 8.设计心得体会 9.参考文献 二、书写要求 1.层次标题 层次标题要简短明确,同一层次的标题应尽可能“排比”,词(或词组)类型相同(或相近),意义相关,语气一致。 各层次标题一律用阿拉伯数字连续编号;不同层次的数字之间用英文输入状态下小圆点“.”相隔,末位数字后面不加点号,如“1”,“2.1”,“3.1.2”等;各层次的序号均左顶格起排,编号与标题或文字间空一个汉字的间隙。段的文字空两个汉字起排,回行时顶格排。 报告正文撰写的题序层次格式 2.篇眉和页码 篇眉从摘要开始,内容与该部分的一级标题相同。 页码从正文开始按阿拉伯数字(1,2,3……)连续编排,之前的部分(中文摘要、目录等)用大写罗马数字(Ⅰ,Ⅱ,Ⅲ……)单独编排,均居中排列。 3.有关图、表、表达式 (1)图

过程控制工程课程设计

过程控制工程 课程设计任务书 设计名称:扬子烯烃厂丁二烯装置控制模拟设计设计时间:2006.2.20~2006.3.10 姓名:毛磊 班级:自动化0201 学号:05号 南京工业大学自动化学院 2006年3月

1.课程设计内容: 学习《过程控制工程》课程和下厂毕业实习2周后,在对扬子烯烃厂丁二烯装置的实际过程控制策略、实习环节的控制系统以及相应的组态软件有一定的认识和了解的基础上,针对扬子烯烃厂丁二烯装置,设计一个复杂控制系统(至少包含一个复杂回路和3-5个简单回路),并利用组态软件进行动态仿真设计,调节系统控制参数,使控制系统达到要求的控制效果。 1)独立完成设计任务,每个人根据下厂具体实习装置,确定自己的课程设 计题目,每1-3人/组; 2)选用一种组态软件(例如:采用力控组态软件)绘制系统工艺流程图; 3)绘制控制系统原有的控制回路; 4)利用下厂收集的实际数据和工艺要求,选择被控对象模型,利用组态软 件,对控制系统进行组态; 5)改进原有的控制回路,增加1-2个复杂回路,并进行组态; 6)调节控制参数,使性能指标达到要求; 7)写出设计工作小结。对在完成以上设计过程所进行的有关步骤:如设计 思想、指标论证、方案确定、参数计算、元器件选择、原理分析等作出 说明,并对所完成的设计做出评价,对自己整个设计工作中经验教训, 总结收获。 2. 进度安排(时间3周) 1)第1周选用一种组态软件绘制系统工艺流程图;绘制控制系统原有的 控制回路; 2)第2周利用下厂收集的实际数据和工艺要求,选择被控对象模型,利 用组态软件,对控制系统进行组态; 3)第3周(1-3) 改进原有的控制回路,增加1-2个复杂回路,并进行组态; 调节控制参数,使性能指标达到要求; 4)第3周(4) 书写课程设计说明书 5)第3周(5) 演示、答辩

智能控制理论结课论文

用模糊控制实现恒压供水 参考文献: 文献一:基于模糊控制的恒压供水研究 中图分类号: TU991 文献标识码: A 文章编号: 1672- 9900(2007)04- 0028- 03 总结: 由于供水系统的管网和水泵存在着非线性、多变量等特性, 而且相间有交叉耦合, 很难建立精确的数学模型。如果采用常规的PID 算控制,往往难以得到较理想的静动态特性。采用模糊逻辑控制的方法对水压进行控制, 可以达到良好的控制性能。模糊控制器结构如图1示。采用双输入单输出的形式, 以水压给定值SP 和实际水压测量值PV 的误差e( e=SP- PV) 及误差变化率ec( ec=de/dt) 作为糊控制器的输入量, 经模糊化后分别得到模糊量 E 和EC, 并分别用模糊语言加以描述, 建立输入和输出之间的模糊控制规则。如果用PLC 进行在线模糊推理,将花费大量运算时间,从而影响系统工作。根据控制规则采用离线方式计算出模糊控制表, 存于可编程控制器PLC 内存中, 在实时控制时将复杂的推理运算过程简化为查表运算, 极大地提高了恒压供水系统的响应速度。

系统将自调整模糊控制技术应用到基于PLC 控制的变频调速恒压供水系统中,能够很好地克服供水系统数学模型难以确定、使用传统PID控制方式调节器参数调整困难的缺点, 较好地消除了系统非线性、时变等因素的干扰影响。系统经过调试和实际运行, 其压力始终稳定在设定的范围内, 具有节约能源、操作方便、自动化控制程度高等优点, 系统可广泛应用于住宅小区、高楼供水系统。 文献二:恒压供水系统的模糊控制 (1·温州大学工业工程学院,浙江温州325000;2·浙江大学工业控制技术国家重点实验室,浙江杭州310000) 总结: 恒压供水是指用户段不管用水量大小,总保持管网水压基本恒定,这样,既可满足各部位的用户对水的需求,又不使电动机空转,造成电能的浪费。为实现上述目标,利用PLC根据给定压力信号和反馈 压力信号,通过模糊推理运算,控制变频器调节水泵转速,从而达到控制管网水压的目的。变频恒压供水系统如图3—1所示。根据供水压力要求,采用一用一备变频恒压供水系统。

课程设计报告【模板】

模拟电子技术课程设计报告设计题目:直流稳压电源设计 专业电子信息科学与技术 班级电信092 学号 200916022230 学生姓名夏惜 指导教师王瑞 设计时间2010-2011学年上学期 教师评分 2010年月日

昆明理工大学津桥学院模拟电子技术课程设计 目录 1.概述 (2) 1.1直流稳压电源设计目的 (2) 1.2课程设计的组成部分 (2) 2.直流稳压电源设计的内容 (4) 2.1变压电路设计 (4) 2.2整流电路设计 (4) 2.3滤波电路设计 (8) 2.4稳压电路设计 (9) 2.5总电路设计 (10) 3.总结 (12) 3.1所遇到的问题,你是怎样解决这些问题的12 3.3体会收获及建议 (12) 3.4参考资料(书、论文、网络资料) (13) 4.教师评语 (13) 5.成绩 (13)

昆明理工大学津桥学院模拟电子技术课程设计 1.概述 电源是各种电子、电器设备工作的动力,是自动化不可或缺的组成部分,直流稳压电源是应用极为广泛的一种电源。直流稳压电源是常用的电子设备,它能保证在电网电压波动或负载发生变化时,输出稳定的电压。一个低纹波、高精度的稳压源在仪器仪表、工业控制及测量领域中有着重要的实际应用价值。 直流稳压电源通常由变压器、整流电路、滤波电路、稳压控制电路所组成,具有体积小,重量轻,性能稳定可等优点,电压从零起连续可调,可串联或关联使用,直流输出纹波小,稳定度高,稳压稳流自动转换、限流式过短路保护和自动恢复功能,是大专院校、工业企业、科研单位及电子维修人员理想的直流稳压电源。适用于电子仪器设备、电器维修、实验室、电解电镀、测试、测量设备、工厂电器设备配套使用。几乎所有的电子设备都需要有稳压的电压供给,才能使其处于良好的工作状态。家用电器中的电视机、音响、电脑尤其是这样。电网电压时高时低,电子设备本身耗供电造成不稳定因家。解决这个不稳定因素的办法是在电子设备的前端进行稳压。 直流稳压电源广泛应用于国防、科研、大专院校、实验室、工矿企业、电解、电镀、充电设备等的直流供电。 1.1直流稳压电源设计目的 (1)、学习直流稳压电源的设计方法; (2)、研究直流稳压电源的设计方案; (3)、掌握直流稳压电源的稳压系数和内阻测试方法。 1.2课程设计的组成部分 1.2.1 设计原理

课程设计(论文)说明书书写规范1(1)

附件1: 内蒙古工业大学课程设计(论文)说明书书写规范 一、说明书(论文)基本格式 说明书或论文一般不应少于3000-5000字。说明书(论文)手写或打印均可,手写要书写工整。 1. 题目:题目要对论文的内容有高度的概括性,简明、易读。 2. 摘要:中文在前,外文在后。中文摘要在200-400字以内。关键词3-5个,以分号相隔。 3. 目录:设计说明书(论文)目录应包括论文全部章节的标题(要求编到3级标题)和参考文献、附录(可选择)、页码右对齐。 4. 正文:正文应按照目录所定的顺序依次撰写,要求计算准确,论述清楚、简练、通顺,插图清晰,书写整洁。文中图、表及公式应规范地绘制和书写。 5. 插图:插图包括曲线图,流程图,工艺图、设备图、框图,示意图,图片等。插图序号用阿拉伯数字分章依序连续编排,每一插图都应有简短确切的题名,连同图序置于图下,图序与图名之间空一格,图名中不允许使用标点符号,图名后不加标点符号。 6. 插表:插表序号用阿拉伯数字分章依序连续编排,每一插表都应有简短确切的题名,表序与表名书写于表的正上方,表序与表名之间空一格,表名不允许使用标点符号,表名后不加标点符号。 7. 参考文献: 著作图书文献书写格式如下: 序号作者姓名.书名.出版地.出版者.出版年:引用部分起止页码 学术刊物文献书写格式如下: 序号作者姓名.文章名.学术刊物名.年,卷(期):引用部分起止页码 序号作者姓名.论文题目.(学位授予单位)学位论文.年. 序号发明者姓名.专利名称.专利公开号.年. 二、打印要求 1. 纸张及页面 原则上用打印机打印输出。设计说明书(论文)纸张用A4标准纸,版心尺寸为:左边距30mm,右边距25mm,上边距30mm,下边距25mm。行间距为22磅,即每页32行,每行37字。 2. 字体与字号 各章题序及标题为小二号黑体;各节的一级题序与标题为小三号黑体,各节的二级题序及标题为四号黑体,各节的三级题序及标题为小四号黑体,正文用小四号宋体。摘要、参考文献、等部分按章处理,即标题小二号黑体,内容小四号宋体。目录的标题采用小二号黑体,内容为小四号宋体。 3. 页码 设计说明书(论文)页码一律用阿拉伯数字连续编码,页码由第一章的首页开始作为第1页,摘要、目录等不编排页码。

过程控制工程课程设计(doc 15页)

过程控制工程课程设计(doc 15页)

过程控制工程 课程设计任务书 设计名称:扬子烯烃厂丁二烯装置控制模拟设计设计时间:2006.2.20~2006.3.10 姓名:毛磊 班级:自动化0201 学号:05号 南京工业大学自动化学院 2006年3月

1.课程设计内容: 学习《过程控制工程》课程和下厂毕业实习2周后,在对扬子烯烃厂丁二烯装置的实际过程控制策略、实习环节的控制系统以及相应的组态软件有一定的认识和了解的基础上,针对扬子烯烃厂丁二烯装置,设计一个复杂控制系统(至少包含一个复杂回路和3-5个简单回路),并利用组态软件进行动态仿真设计,调节系统控制参数,使控制系统达到要求的控制效果。 1)独立完成设计任务,每个人根据下厂具体实习装置,确定自己的课程设 计题目,每1-3人/组; 2)选用一种组态软件(例如:采用力控组态软件)绘制系统工艺流程图; 3)绘制控制系统原有的控制回路; 4)利用下厂收集的实际数据和工艺要求,选择被控对象模型,利用组态软 件,对控制系统进行组态; 5)改进原有的控制回路,增加1-2个复杂回路,并进行组态; 6)调节控制参数,使性能指标达到要求; 7)写出设计工作小结。对在完成以上设计过程所进行的有关步骤:如设计 思想、指标论证、方案确定、参数计算、元器件选择、原理分析等作出 说明,并对所完成的设计做出评价,对自己整个设计工作中经验教训, 总结收获。 2. 进度安排(时间3周) 1)第1周选用一种组态软件绘制系统工艺流程图;绘制控制系统原有的 控制回路; 2)第2周利用下厂收集的实际数据和工艺要求,选择被控对象模型,利 用组态软件,对控制系统进行组态; 3)第3周(1-3) 改进原有的控制回路,增加1-2个复杂回路,并进行组态; 调节控制参数,使性能指标达到要求; 4)第3周(4) 书写课程设计说明书 5)第3周(5) 演示、答辩

学习智能控制课程的研究报告样本

学习智能控制课程的研究报告 经过本学期所学的智能控制知识、上网搜集资料和参考论文的情况下, 对智能控制这门学科的学习做出了简要总结。 1智能控制的发展 自动控制经过百余年的发展, 无论是在控制理论还是控制工程上都取得了巨大成功, 可是, 随着人类社会的发展, 控制对象日益复杂、控制目标越来越高, 控制理论与控制工程面临的挑战也越来越大。以控制理论和智能理论为基础, 以模拟人的智能化操作和经验为手段的智能控制方法应运而生。 智能控制是基于人类对自然界的智能的认识所发展起来的智能理论与方法, 包括基于符号逻辑的传统AI理论与基于复杂计算的计算智能理论。它是人工智能和自动控制的重要研究领域, 并被认为是通向自主机器递阶道路上自动控制的顶层。人工智能的发展促进自动控制向智能控制发展, 智能控制思潮第一次出现于20世纪60年代。1965年, 美籍华人傅京孙教授在她的论文中首先提出把人工智能的直觉推理方法用于学习控制系统, 最早把人工智能引入到控制技术中。1966年, Mendel进一步在空间飞行器的学习控制系统中应用了人工智能技术, 而且提出了”人工智能控制”的概念。 1967年, Leondes和Mendel 首先正式使用”智能控制”一词。 20世纪70年代是智能控制的发展初期, 傅京孙、 Gloriso和

Saridis等人正式提出了智能控制就是人工智能技术与控制理论的交叉。70年代中期前后, 以模糊集合论为基础, 从模仿人的控制决策思想出发, 智能控制在另一个方向规则控制上也取得了重要的进展。 80年代为智能控制的迅速发展期, 智能控制的研究及应用领域逐步扩大并取得了一批应用成果。1987年1月, 第一次国际智能控制大会在美国举行, 标志着智能控制领域的形成。 1992年至今为智能控制进人崭新的阶段。随着对象规模的扩大和过程复杂性的加大, 形成了智能控制的多元论, 而且在应用实践方面取得了突破性的进展, 应用对象也更加广泛。 智能控制采用各种智能技术来实现复杂系统和其它系统的控制目标, 是一种具有强大生命力的新型自动控制技术。智能控制的产生和发展正反映了当代自动控制以至整个科学技术的发展趋势, 是历史的必然。智能控制已成为自动控制发展道路上的一个新的里程碑, 正发展为一种日趋成熟和日臻完删的控制手段, 并获得日益广泛的应用。2智能控制的研究内容 当前关于智能控制的研究和应用沿着几个主要的分支发展, 主要有专家控制、模糊控制、神经网络控制、学习控制、基于知识的控制、复合智能控制、基于进化机制的控制、自适应控制等等。有的已在现代工业生产过程与智能自动化方面投入应用。主要介绍如下: 1、专家控制是智能控制的一个重要分支, 其研究始于60年代中期, 是由美国斯坦福大学Feigen-baum于1965年开创的人工智能研究的新领域。所谓专家控制是指将专家系统的理论和技术同控制理论方

课程设计报告模版

课程设计报告模版

《城市排水处理》 课程设计报告 系别:城市建设系 专业班级:给水排水0601班 学生姓名: 指导教师:段泽琪 (课程设计时间: 6月15日—— 6月19日) 华中科技大学武昌分校

目录 1.课程设计目的 (1) 2.课程设计题目描述和要求 (1) 3.课程设计报告内容 (3) 3.1污水处理工艺方案比较 (3) 3.2主要污水处理构筑物选型 (6) 3.3污水处理构筑物的主要设计参数 (7) 3.4污水处理辅助构筑物设计 (8) 3.5污水处理厂平面布置设计 (8) 3.6 污水处理厂高程布置设计 (9) 3.7 设计计算………………………………………………………………………

10 4.总结……………………………………………………………………………页码 参考文献…………………………………………………………………………页码 (要求:目录题头用三号黑体字居中书写,隔行书写目录内容。目录中各级题序及标题用小四号黑体)

1. 课程设计目的 (1) 经过污水处理厂课程设计,巩固学习成果,加深对《水污染控制》课程内容的学习与理解,使学生学习使用规范、手册与文献资料,进一步掌握设计原则、方法等步骤,达到巩固、消化课程的主要内容; (2) 锻炼独立工作能力,对污水处理厂的主体构筑物、辅助设施、计量设备及污水厂总体规划、管道系统做到一般的技术设计深度,培养和提高计算能力、设计和绘图水平; (3) 在教师指导下,基本能独立完成一个中、小型污水处理厂工艺设计,锻炼和提高学生分析及解决工程问题的能力。 2.课程设计题目描述和要求 2.1 设计题目描述 (1) 设计题目 某城市污水处理厂工艺初步设计。 (2) 设计内容 根据任务书所给定的资料,综合运用所学的基础、专业基础和专业知识,设计一个中小型污水处理厂。 ①确定污水处理方法和工艺流程; ②选择各种处理构筑物形式,并进行工艺设计计算(计算书中要附计算草图); ③估算各辅助构筑物的平面尺寸; ④进行污水厂平面布置和高程布置。

13专业课程设计报告撰写要求 软件

专业课程设计(软件)报告撰写要求 一、软件工程实践报告的内容安排 报告应包括以下7个方面的内容: 1. 摘要 2. 目录 3.正文 4. 结论 5. 参考文献 6. 附录 二、摘要 1. 要求: 完整、准确、简练。(约150字) 2. 包含内容: (1) 课题的目的或意义; (2) 设计工作的主要内容、过程,采用的方法及取得的成果。即:做了 什么工作? (3) 结论或实现的功能。 3. 关键字(Key Words): 一般3~5个,最能代表报告内容特征,或在报告起 关键作用,最能说明问题的词组。 4.注意: (1) 摘要应用第三人称书写; (2) 不得引用他人的著作; (3) 摘要应排除本学科已成常识的内容; (4) 同义词不要并列为关键字。 三、正文 正文是整个报告的核心部分,应包括所进行设计或研究的整体内容。 1.数据库类的正文主要包括: (1)课题的需求分析(数据流图、数据字典) 分析软件设计的目标和任务,确定软件功能和性能需求。 (2)数据设计(实体关系图) 侧重于实体关系图、数据表的设计和说明。 (3)概要设计(系统层次结构图) 概要设计定义软件系统各主要成份之间的关系。 (4)详细设计(程序流程图)

把软件系统结构成份转换成软件的过程性描述(算法),用 程序流程图详述主要事件的实现过程。然后进行编码-----根 据这种过程性描述,编写核心源代码。 (5)调试及测试分析 包括:调试程序的方法和技巧;列写测试用例和与运行的结 果比较分析;调试中出现的故障现象、原因及排除方法。 (6)用户手册 描述如何使用所设计的软件。 2.算法类的正文主要包括: (1)设计要求:(基本要求,提高要求); (2)系统的组成及设计的原理; (3)概要设计(系统层次结构图,并包括方案比较) (4)详细设计(程序流程图) 把软件系统结构成份转换成软件的过程性描述(算法),用 程序流程图详述主要事件的实现过程。然后进行编码-----根 据这种过程性描述,编写核心源代码。 (5)调试及测试结果与分析。 包括:调试程序的方法和技巧;测试的数据和与运行的结果 比较分析;调试中出现的故障现象、原因及排除方法。 四、结论 结论是对整个软件设计工作的总结,不只是前面实现功能的简单重复,应概括出整个设计工作的结论性意见或认识,应总结软件实现的特点和方案的优缺点,指出课题的核心及实用价值,也可以提出改进意见和展望,以及课设的收获和体会。 要求:措词严谨、逻辑严密、文字准确。 注意:(1) 不要以第一人称(我)来书写; (2) 不要对在设计过程中的常识性错误进行讨论。 五、参考文献

大气污染控制工程课程设计

三峡大学 《大气污染控制工程》课程设计 设计说明书 姓名_______________________________ 设计课题袋式除尘器的选型设计 所在专业________ 环境工程___________ 班级___________ 20111081 ___________ 学号_______________________________ 指导教师_________ 苏青青____________ 2013年x月x日

目录 、项目概况 、设计资料和依据 2.1 设计依据: 2.2 设计内容; 2.3 设计要求: 2.4 设计参数: 2.5 烟气性质: 2.6 烟尘性质: 2.7 当地的气象条件: 2.8 净化工艺流程的确定: 2.9 技术水平的确定: 三、系统设计部分 3.1净化装置的选型设计和计算(除尘器的设计) 3.1.1 袋式除尘器的选型 3.1.2 袋式除尘器型号的确定 3.1.3 滤料的选择 3.1.4 过滤面积的确定 3.1.5 滤袋数量的计算 3.1.6 进风通道的设计 3.1.7 出风通道的设计 3.1.8 袋式除尘器清灰的设计 3.1.9 排灰系统的设计 3.1.10 灰斗的设计计算 3.1.11 除尘器的保温和防腐 3.1.12 仪器仪表 3.1.13 安装、调试、运行、维护和检修 3.2 烟囱的设计

3.2.1 设计的一般规定 3.2.2 构造规定 3.2.3 烟道的设计 3.3 净化系统配套辅助设施设计 3.3.1管道材料 3.3.2管道阀门 3.3.3机械排灰与除灰 一. 项目概况随着经济的飞速发展,在人们物质生活日益丰富的今天,污染越来越成为一 个我们无法忽视也无法回避的问题。在我国绝大多数城市中, 粉尘是第一位的污染物, 而燃煤电厂的粉尘排放又占各个行业粉尘排放的首位,针对这一现状,我国最先应用的是静电除尘器,但静电除尘器的处理效果与日益严格的环保要求相比,仍存在着较大的差 距。近十年来,袋式除尘器技术的发展很快,尤其是大型脉冲除尘器,新的滤料和新的脉冲阀的问世,使袋式除尘器工况的稳定性和设备的可靠性有了充分的保证,更广泛的被用与发电行业。袋式除尘器也称为过滤式除尘器,凡是利用织物或非织造布制作的袋状过滤原件,用来捕集含尘气体中的固体颗粒的设备,均可称为袋式除尘器。袋式除尘器一般由箱体、滤袋、滤袋架、清灰机构、灰斗、放灰阀等部件构成。 二. 设计资料和依据 2.1 设计依据《火电厂大气污染排放标准》 (GB13223-2003); 《锅炉大气污染排放标 准》 ( GB13271-2001);《火电厂烟气排放连续监测技术规范》 (HJ/T75-2001) ; 《袋式除尘器性能测试方法》 (GB12138-89) 《袋式除尘器用滤袋框架技术条件》 (JB/T 5917-2006) 《袋式除尘器用滤料及滤袋技术条件》 (GB12625-2007) 《脉冲喷出类袋式除尘器技术条件》(JB/T 8532-1997) 《袋式除尘器安装技术要求及验收规范》(JB/T 8471-1996) 2.2设计内容 ⑴根据所给的课题收集相应的设计资料; ⑵进行设计参数计算及合理性分析;

智能控制课程结课作业

智能控制 1对于模糊控制(fuzzy)的认识和体会 模糊控制作为给合传统的基于规则的专家系统、模糊集理论和控制理论的成果而诞生,使其与基于被控过程数学模型的传统控制理论有很大的区别。在模糊控制中,并不是像传统控制那样需要对被控过程进行定量的数学建模,而是试图通过从能成功控制被控过程的领域专家那里获取知识,即专家行为和经验,当被控过程午分复杂甚全“病态”时,建立被控过程的数学校型或者不可能,或者需要高昂的代价。此时模糊控制就显得具有吸引力和实用性。由于人类专家的行为是实现模糊控制的基础,因此,必须用一种容易且有效的方式来表达人类专家的知识。IF-THEN规则格式是这种专家控制知识最和适的表式方式之一,即1F“条件”THEN“结果”,这种表示方式有两个显著的特征:它们是定性的而不是定量的;它们是一种局部知识,这种知识将局部的“条件”与局部的“结果”联系起来,前者可用模糊子集表示,而后者需要模糊蕴涵或模糊关系来表达。然而,当用计算机实现时,这种规则最终需具有数位形式,隶属函数和近似推理为数值表示集合模糊蕴涵提供了一种有利工具。 一个实际的模糊控制系统实现时需要解决三个问题:知识表示、推理策略和知识获取。知识表示是指如何将语言规则用数值方式表示出来;推理策略是指如何根据当前输入“条件”生一个合理的“结果”;知识的获取解决如何获得一组恰当的规则。由于领域专家提供的知识常常是定性的,包含某种不确定性。因此,知识的表示和推理必须是模糊的或近似的,近似推理理论正是为满足这种需要而提出的。近似推理科看做是根据一些不精确的条件推导出个精确结论的过程,许多学者对模糊表示、近似推理进行了大量的研究,在近似推理算法中,最厂泛使用的是关系矩阵模型,它基于L.A.Zadeh的合成推理规则首次由Mamdani采用,由于规则可被解释成逻辑意义上的蕴涵关系,因此人最的蕴涵算子已被提出并应用于实际中由此可见。模糊控制是以模糊集合沦、模糊语言变量及校糊逻辑推理为基础的一种计算机控制,从线性控制与非线性控制的角度分类,模糊井制是一种非线性控制。从控制器智能性看,模糊控制属智能能控制的范畴,而且它已成为日前实现智能控制的一种重要而又有效的形式。尤其是模糊制和神经网络、预测控制、遗传算法和混沌理论等新学科的相结合,正在显示出其巨大的应用潜力。 模糊控制器的基本结构包括以下四部分 1.模糊化 模糊化的作用是将输入的精确量转换成模糊化量,其中输入成份包括外界的参考输入、系统的输出或状态等。模糊化的具体过程如下:首先对这此输入进行处理,以变成模糊控制器要求的输入从。然后将上述己经处理过的输入量进行尺度变换,使其变换到各自的论域范围。在将已经变换到论域范的输入最进行模糊处理,使原先精确的输入带变成模糊量,并用相应的模糊集合来表。 2.知识库 知识库包含了具体应用领域中的知识和要求的控制目标。它通常由数据库和模糊控制规则库两部分组成:1.数据库主要包括各种语言变量的隶属函数,尺度变换因子以及模糊空间的分级数等。2.规则库包括了用模糊语言变量表示的一系列控制规则。它们反映了控制专家的经验和知识。 3.模糊推理 模糊推理是模糊控制器的核心,它具有模拟人的基于模糊概念的推理能力。该推理过程是基于模糊逻辑中的蕴含关系及推理规则来进行的。 4.清晰化 洁晰化的作用是将模糊推理得到的控制量(模糊量)变换为实际用于控制的清晰量,它包

课程设计说明书(或课程设计报告)书写说明

课程设计说明书(或课程设计报告)书写说明 (要求手写,不用打印) 1 内容要求 1.1 目录 1.2 正文 正文:正文内容层次序号为: 1、1.1、1.1.1……。 正文内容一般为: (1)选题背景:说明本课题应解决的主要问题及应达到的技术要求;简述本设计的指导思想。 (2)方案论证(设计理念):说明设计原理(理念)并进行方案选择,阐明为什么要选择这个设计方案以及所采用方案的特点。 (3)过程论述:对设计工作的详细表述。要求层次分明、表达确切。 (4)结果分析:对研究过程中所获得的主要的数据、现象进行定性或定量分析,得出结论和推论。 (5)结论或总结:对整个研究工作进行归纳和综合。 (6)课程设计心得体会。 1.3 参考文献 2. 图纸要求: 理工类:图面整洁,布局合理,线条粗细均匀,圆弧连接光滑,尺寸标注规范,标题栏规范,文字注释必须使用工程字书写;必须按国家规定标准或工程要求绘制。 课程设计说明书(报告)中图表、公式一律采用阿拉伯数字连续编号。图序及图名置于图的下方;表序及表名置于表的上方;说明书(报告)中的公式编号,用括号括起来写在右边行末,其间不加虚线。 课程设计说明书(报告)要求文字通顺,语言流畅,无错别字,不得使用铅笔书写。按学校确定的统一封皮装订。

3. 格式要求 (1)正文中各一级标题用黑体4号字,二级标题用黑体小4号; (2)正文内容其余用宋体小4号字,数字及符号用新罗马字体;首行空2个字符,两端对齐。 (3)图及标要有标题,按照顺序排序,标题宋体5号字,数字及符号用新罗马字体,居中对齐; (4)参考文献格式: 连续出版物:[序号] 作者.文题.刊名,年,卷号(期号):起~止页码 专(译)著:[序号] 作者.书名(,译者).出版地:出版者,出版年. 起~止页 码 论文集:[序号] 作者.文题. 见(in):编者,编(eds).文集名.出版地:出 版者,出版年. 起~止页码 学位论文:[序号] 姓名.文题:[XX学位论文].授予单位所在地:授予单位,授 予年. 起~止页码 专利:[序号] 申请者.专利名.国名,专利文献种类,专利号,出版日期 技术标准:[序号] 发布单位.技术标准代号.技术标准名称.出版地:出版者,出 版日期 报纸文献:[序号] 著者.文献题名.报纸名.出版日期(版面次序) 电子文献:[序号] 著者.文献题名.电子文献类型标示/载体类型标示.文献网址 或出处,更新引用日期 例如: [1]陈建军,车建文,陈勇. 具有频率和振型概率约束的工程结构动力优化设计. 计算力学学报,2001,18(1):74~80 [2]M. A. Nadkarni,C. K. Nair,V. N. Pandey,et al.Characterization of alpha-galactosidase from corynebacterium murisepticum and mechanism of its induction. J Gen App Microbiol,1992,38:223~234 [3]华罗庚,王元.论一致分布与近似分析:数论方法(Ⅰ).中国科学,1973, (4):339~357 [4]竺可桢.物候学.北京:科学出版社,1973. 16~21 [5]霍夫斯塔主编.禽病学:下册.第7版.胡祥壁译.北京:农业出版社, 1981.798~799 [6]S. P. Timoshenko.Theory of plate and shells.2nd ed.New York:McGraw-Hil1, 1959.17~36

课程设计的具体内容及要求

课程设计的具体内容及要求 在规定的设计时间内,应完成的设计工作量是:(1)一张A1或A0装配图,(2)两张A3零件图,分别为从动轴与大齿轮的零件图,(3)设计说明书一份。课程设计结束后,将图纸与说明书装在统一的档案袋内。 一、装配图 1、图纸大小:完成一张A1号装配草图后,才能开始画A1或A0装配正式图。 2、视图:除必要视图外,还应考虑是否需要附加局部剖视图、放大图等。 3、尺寸标注:装配图上应标注的尺寸有: (1)外形尺寸:机械或部件所占的空间位置的尺寸,如总长、总宽、总高等 (2)安装尺寸:机械或部件装在地基或底座上的底面尺寸,地脚螺栓孔的尺寸及位置,减速器中心高,外伸轴的配合直径长度及伸出距离。 (3)配合尺寸:各配合零件(如滚动轴承与轴颈、外圈与座孔、传动零件毂孔与轴等)的配合尺寸,包括配合和精度符号。 (4)特性尺寸:如传动中心距及其偏差。 4、标题栏、零件的序号、图号及明细表。 5、技术特性数据及技术要求。 二、零件图 零件图是制造和检验零件的依据,故零件图上必须包括制造和检验零件所需的全部内容,计有:必要的视图、尺寸、尺寸公差、形位公差、表面粗糙度、材料、技术要求等。对传动零件,还要用表列出主要几何参数、精度等级、偏差等。图纸的右下方设置标题栏。 三、设计说明书 1、说明书的内容 (1)目录,包括标题,页次。 (2)设计任务书。 (3)前言,指设计题目的分析、传动方案的拟定及说明,若传动方案已给定,则对其进行分析、论证。 (4)运动学与动力学参数的计算,包括电动机的选择、各级传动比的分配、各轴转速、功率及转矩的计算并列成表格。 (5)带传动的设计计算。 (6)齿轮传动的计算,包括结构设计,画出大、小齿轮零件图。 (7)主、从动轴的设计计算,包括轴的结构设计与校核,轴的草图与正式图、轴的受力分析图、弯矩图、扭矩图等。 (8)轴承的选择与计算。 (9)键的选择及校核,包括3个键的计算并画出各自的工作图。 (10)联轴器的选择及校核。 (11)箱体的设计,包括主要结构尺寸的设计计算及必要的说明。 (12)润滑与密封方式的选择及依据,包括齿轮与轴承的润滑方式、润滑剂的选择,轴承与箱体的密封方式及密封元件,有关元件应画出示意图。 (13)减速器附件的选择与设计,应画出有关附件的示意图。 (14)设计小结,分析本设计的优缺点,提出改进意见,说明设计体会。 (15)参考文献资料,包括资料名称、作者姓名、出版单位、出版时间等。 还可以包含一些其它技术说明,例如装拆、安装的注意事项、维护保养的要求等。 2、编写说明书要求

相关文档
最新文档