文档库 最新最全的文档下载
当前位置:文档库 › 综合训练项目

综合训练项目

综合训练项目
综合训练项目

目录

实验一查找、排序 (2)

实验二长整数运算 (23)

实验三一元稀疏多项式计算器 (26)

实验四迷宫求解 (39)

综合训练项目一航空订票系统 (41)

综合训练项目二文章编辑系统 (60)

综合训练项目三家族族谱管理 (67)

综合训练项目四图书管理系统 (84)

综合训练项目五校园导游系统 (98)

实验一查找、排序

【问题描述】

对于从键盘随机输入的一个序列的数据,存入计算机内,给出各种查找算法的实现;以及各种排序算法的实现。

【基本要求】

1、掌握常用的查找、排序方法,及相应的算法实现。

2、能实现并应用某一种查找算法。理解各种排序方法的特点,并能加以灵活应用。

3、了解各种排序算法的时间复杂度分析。

【实现提示】

1、查找相关实验内容及步骤。

①建立顺序存储结构,构建一个顺序表,实现顺序查找算法。

typedef struct {

ElemType *elem; //数据元素存储空间基址,建表时按实际长度分配,号单元留空

int length; //表的长度

} SSTable;

②对顺序表先排序后,实现行二分法查找相关操作。

③定义二叉树节点,根据节点的值进行查找,并且实现节点的插入,删除等操作。

typedef struct BiTnode { //定义二叉树节点

int data; //节点的值

struct BiTnode *lchild,*rchild;

}BiTnode,*BiTree;

④定义哈希表以及要查找的节点元素,创建哈希表,实现其相关查找操作。

typedef struct {

int num;

} Elemtype; //定义查找的结点元素

typedef struct {

Elemtype *elem; //数据元素存储基址

int count; //数据元素个数

int sizeindex;

}HashTable;//定义哈希表。

2. 排序相关实验内容及步骤。

①定义记录类型。

typedef struct{

int key; //关键字项

}RecType;

②实现直接插入排序:每次将一个待排序的记录,按其关键字大小插入到前面已排序好的子文件中的适当位置,直到全部记录插入完成为止。

③实现冒泡排序:设想被排序的记录数组R[1‥n]垂直排序。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R,凡扫描到违反本原则的轻气泡,就使其向上“漂浮”(交换),如此反复进行,直到最后任意两个气泡都是轻者在上,重者在下为止。

④实现快速排序:在待排序的n个记录中任取一个记录(通常取第一个记录),把该记录作为支点(又称基准记录)(pivot),将所有关键字比它小的记录放置在它的位置之前,将所有关键字比它大的记录放置在它的位置之后(称之为一次划分过程)。之后对所分的两部分分别重复上述过程,直到每部分只有一个记录为止。

⑤实现直接选择排序:第i趟排序开始时,当前有序区和无序区分别为R[1‥i-1]和R[i‥n](1≤i≤n-1),该趟排序则是从当前无序区中选择出关键字最小的记录R[k],将它与无序区的的第一个记录R[i]交换,有序区增加一个记录,使R[1‥i],和R[i+1‥n]分别为新的有序区和新的无序区。如此反复进行,直到排序完毕。

⑥实现堆排序:它是一种树型选择排序,特点是:在排序的过程中,将R[1‥n]看成是一个完全二叉树的顺序存储结构,利用完全二叉树中双亲结点和孩子结点之间的内在关系,在当前无序区中选择关键字最大(或最小)的记录。即:把待排序文件的关键字存放在数组R[1‥n]子中,将R看成是一棵二叉树,每个结点表示一个记录,源文件的第一个记录R[1]作为二叉树的根,以下各记录R[2‥n]依次逐层从左到右排列,构成一棵完全二叉树,任意结点R[i]的左孩子是R[2i],右孩子是R[2i+1],双亲是R[i/2]。

⑦实现二路归并排序:假设初始序列n个记录,则可看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到[n/2]个长度为2或1的有序子序列;再两两归并,……,如此重复,直到一个长度为n的有序序列为止。

记录实验感受、上机过程中遇到的困难及解决办法、遗留的问题、意见和建议等,并将其写入实验报告中。

【附录----查找源程序】

#include"iostream"

#include"stdlib.h"

#include"stdio.h"

#include "malloc.h"

#define MAX 11

using namespace std;

typedef int ElemType ;

//顺序存储结构

typedef struct {

ElemType *elem; //数据元素存储空间基址,建表时按实际长度分配,号单元留空

int length; //表的长度

} SSTable;

void Create(SSTable *table, int length);

void Destroy(SSTable *table);

int Search_Seq(SSTable *table, ElemType key);

void Traverse(SSTable *table, void (*visit)(ElemType elem));

void Create(SSTable **table, int length) // 构建顺序表

{

SSTable *t = (SSTable*) malloc(sizeof(SSTable));//分配空间

t->elem=(ElemType*)malloc(sizeof(ElemType)*(length+1));

t->length=length;

*table=t;

}

void FillTable(SSTable *table) // 无序表的输入

{

ElemType *t=table->elem;

for(int i=0; ilength; i++) //for循环,输入各个元素

{

t++;

scanf("%d", t); //输入元素

getchar();

}

}

void Destroy(SSTable *table) // 销毁表

{

free(table->elem);//释放元素空间

free(table);//释放表的空间

}

void PrintTable(SSTable *table) // 打印查找表

{

int i; //定义变量

ElemType *t=table->elem;

for(i=0; ilength; i++) //进入循环,依次打印表中元素{

t++;

printf("%d ", *t); //打印输出

}

printf("\n");

}

int Search_Seq(SSTable *table, ElemType key) //哨兵查找算法

{

table->elem[0]=key; //设置哨兵

int result=0; // 找不到时,返回

int i;

for (i=table->length; i>=1;i--)

{

if (table->elem[i]==key)

{

result=i;

break;

}

}

return result; //返回结果

}

void printSeq()

{

SSTable *table; //先设置几个变量

int r;

int n;

ElemType key;

printf("请输入元素个数:");

scanf("%d",&n); //输入元素个数

Create(&table, n); //建立表

printf("请输入");cout<

FillTable(table); //输入无序表的值

printf("您输入的%d 个值是:\n",n);

PrintTable(table); //打印无序表

printf("请输入关键字的值:");

scanf("%d",&key);

printf("\n");

printf("顺序查找法运行结果如下:\n\n ");

Search_Seq(table,key); //哨兵查找算法

r=Search_Seq(table,key);

if( r>0)

{

printf(" 关键字%d 在表中的位置是:%d\n",key, r);//打印关键字在表中的位置

printf("\n");

}

else //查找失败

{

printf ("查找失败,表中无此数据。\n\n");

}

}

void Sort(SSTable *table ) // 排序算法

{

int i, j;

ElemType temp;

for (i=table->length; i>=1 ;i--) // 从前往后找

{

for (j=1; j

{

if(table->elem[j]>table->elem[j+1])

{

temp=table->elem[j];

table->elem[j]=table->elem[j+1];

table->elem[j+1]=temp;

}

}

}

}

int Search_Bin(SSTable *table, ElemType key) // 二分法查找(非递归){

int low=1;

int high=table->length;

int result=0; // 找不到时,返回

while(low <= high) //low不大于high时

{

int mid=(low+high)/2;

if(table->elem[mid]==key) //如果找到

{

result=mid;

break;

}

else if(keyelem[mid]) //如果关键字小于mid对应的值

{

high=mid-1;

}

else

{

low=mid+1;

}

}

return result; //返回结果

}

void printBin()

{

SSTable *table; //声明变量

int r;

int n;

ElemType key;

printf("请输入元素个数:");

scanf("%d",&n);

Create(&table, n); //建立表

printf("请输入");cout<

FillTable(table); //输入无序表的值

printf("您输入的%d 个值是:\n",n);

PrintTable(table); //打印无序表

printf("请输入关键字的值:");

scanf("%d",&key);

printf("\n");

Sort(table); //对无序表进行排序

printf("数据排序后的顺序如下:\n\n ");

PrintTable(table); //打印有序表

printf("\n");

printf("二分查找法的运行结果如下:\n\n ");

r=Search_Bin(table,key); //二分(非递归)查找算法

if( r>0)

printf("关键字%d 在表中的位置是:%d\n",key, r);

else

{

printf ("查找失败,表中无此数据。\n\n");

}

}

//二叉排序树

typedef struct BiTnode //定义二叉树节点

{

int data; //节点的值

struct BiTnode *lchild,*rchild; //节点的左孩子,节点的右孩子}BiTnode,*BiTree;

//查找(根据节点的值查找)返回节点指针

BiTree search_tree(BiTree T,int keyword,BiTree *father)

{

BiTree p; // 临时指针变量

*father = NULL; //先设其父亲节点指向空

p = T; //p赋值为根节点(从根节点开始查找)

while (p && p->data!=keyword) //如果不是p不指向空且未找到相同值的节点{

*father = p;//先将父亲指向自己(注意:这里传过来的father是二级指针)if (keyword < p->data) //如果要找的值小于自己的值p = p->lchild; // 就向自己的左孩子开始找

else

p = p->rchild; //否则向自己的右孩子开始查找}

return p; //如果找到了则返回节点指针

}

BiTree creat_tree(int count)

{

BiTree T,p; //设置两个临时变量T,p

int i = 1;

while (i <= count)

{

if (i == 1) //如果i=1,说明还是空树

{

p = (BiTnode *)malloc(sizeof(BiTree));//使p指向新分配的节点

if (!p)//分配未成功

return NULL;

T = p;//分配成功,T=p( 这里实际上T就是根节点)

scanf("%d",&p->data);//输入p指向节点的值

p->lchild = p->rchild = NULL;//p的左孩子和右孩子都指向空

i++;

}

else

{

int temp;// 如果不是空树

scanf("%d",&temp);//输入节点的值

search_tree(T,temp,&p);//查找节点要插入的位置。(T是根节点,插入的节点的值,父亲节点的地址)

if (temp < p->data)//如果插入的值小于父亲节点的值

{

p->lchild = (BiTnode *)malloc(sizeof(BiTnode));//那么就为父亲节点的左孩子分配一个节点空间,并指向这个空间

if (!p->lchild)

return NULL;

p = p->lchild;//分配成功,p指向自己的左孩子

}

else// 如果插入的值大于父亲节点的值

{

p->rchild = (BiTnode *)malloc(sizeof(BiTnode));

if (!p->rchild)

return NULL;//分配不成功,退出

p = p->rchild;//p指向自己的右孩子

}

p -> data = temp;//新分配的节点的值赋值为插入的值

p -> lchild = p->rchild = NULL;//使其左右节点均为NULL

i++;

}

}

return T;//返回根节点

}

void InOrder(BiTree T)

{

if(T)

{

InOrder(T->lchild);

printf("%d ",T->data);

InOrder(T->rchild);

}

}

int insert_tree(BiTree *T,int elem)//插入(根节点,插入的值)返回-1和,-1代表插入失败,代表成功

{

BiTree s,p,father;

s = (BiTnode *)malloc(sizeof(BiTnode));//s指向新开辟一个节点

if (!s)//为开辟成功

return -1;// 返回值-1

s->data = elem;//新节点的值赋值为插入的值

s->lchild = s->rchild = NULL;//其左右孩子为空

p = search_tree(*T,elem,&father);//p赋值为要插入的节点

if (!p)

return -1;//未开辟成功,返回-1

if (father == NULL)//如果父亲节点指向空,说明是空树

*T = s;//让根节点指向s

else if (elem < father->data)//否则如果插入的值小于父亲的值

father->lchild = s;//父亲的左孩子赋值为s

else

father->rchild = s;//否则父亲的右孩子赋值为s

return 0;//返回

}

int delete_tree(BiTree *T,int elem) //删除树结点的操作

{

BiTree s,p,q,father;//声明变量

p = search_tree(*T,elem,&father);//查找

if(!p)

return -1;

if(!p->lchild)//如果p的左孩子为空

{

if (father == NULL)

{

*T = p->rchild;//T指向左孩子

free(p);//释放p

return 0;

}

if (p == father->lchild)//如果p和father的左孩子相等

father->lchild = p->rchild; //将p的左孩子的值赋给father的左孩子else

father->rchild = p->rchild;//将p的左孩子的值赋给father的右孩子free(p);//释放p

return 0;

}

else

if(!p->rchild)

{

if (father == NULL)//如果father为空

{

*T = p->lchild;//将p的左孩子赋给T

free(p);//释放p

return 0;

}

if (p == father->lchild)//如果p等于father的左孩子的值

father->lchild = p->lchild; //将p的左孩子的值赋给father的左孩子

else

father->rchild = p->lchild; //将p的左孩子的值赋给father的右孩子

free(p);

return 0;

}

else

{

q = p;

s = p->lchild;//将p的左孩子赋给s

while (s->rchild)

{

q = s;

s = s->rchild;

}

p->data = s->data;//将s的值赋给p

if (q != p)//如果q不等于p

q->rchild = s->lchild; //将s的左孩子值赋给p的右孩子else

q->lchild = s->lchild; //将s的左孩子值赋给p的右孩子free(s);//释放s

return 0;

}

}

void print1() //定义print1()以便调用

{

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

printf("\t1,输出中序遍历\n");

printf("\t2,插入一个结点\n");

printf("\t3,删除一个结点\n");

printf("\t4,查找一个结点\n");

printf("\t5,返回主菜单\n");

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

}

void printTree()

{

BiTree T,p; //声明变量

T=NULL;

int i,n;

ElemType key;

printf("请输入结点个数:\n");

scanf("%d",&n);//输入值

printf("请输入");cout<

T=creat_tree(n);//建立树

print1();

scanf("%d",&i);//输入各个值

while(i!=5)//i不等于5时

{

switch(i)

{

case 1:

printf("中序遍历二叉树结果如下:\n");

InOrder(T);//中序遍历

break;

case 2:

printf("请输入要插入的结点值:");

scanf("%d",&key);//输入要查找的关键字

if(insert_tree(&T,key))//如果插入成功

printf("插入成功!");

else

printf("已存在此元素!");

break;

case 3:

printf("请输入要删除的结点值:");

scanf("%d",&key); //输入要删除的关键字

if(!(delete_tree(&T,key)))//如果删除成功

printf("删除成功!");

else

printf("不存在此元素!");

break;

case 4:

printf("请输入要查找的结点值:");

scanf("%d",&key); //输入要查找的关键字

if(search_tree(T,key,&p))//如果查找成功

printf("查找成功!");

else

printf("不存在此元素!");

break;

default:

printf("按键错误!");

}

printf("\n");

print1();

scanf("%d",&i);

}

}

//哈希表

typedef struct

{

int num;

}

Elemtype;//定义查找的结点元素

typedef struct

{

Elemtype *elem; //数据元素存储基址

int count; //数据元素个数

int sizeindex;

}HashTable;//定义哈希表

int Hash(int num)

{

int p;

p=num%11;

return p;

}//定义哈希函数

//冲突处理函数,采用二次探测再散列法解决冲突

int collision(int p,int &c)

{

int i,q;

i=c/2+1;

while(i

if(c%2==0){

c++;

q=(p+i*i)%MAX;

if(q>=0) return q;

else i=c/2+1;

}

else{

q=(p-i*i)%MAX;

c++;

if(q>=0) return q;

else i=c/2+1;

}

}

return 0;

}

void InitHash(HashTable *H)//创建哈希表

{

int i;

H->elem=(Elemtype *)malloc(MAX*sizeof(Elemtype));

H->count=0;

H->sizeindex=MAX;

for(i=0;i

H->elem[i].num=0;//初始化,使SearHash函数能判断到底有没有元素在里面

}

int SearHash(HashTable H,int key,int *p)//查找函数

{

*p=Hash(key);

while(H.elem[*p].num!=key&&H.elem[*p].num!=0)

*p=*p+1;

if(H.elem[*p].num==key)

return 1;

else

return 0;

}

void InsertHash(HashTable *H,Elemtype e)

{//如果查找不到就插入元素

int p;

SearHash(*H,e.num,&p); //查找

H->elem[p]=e;

++H->count;

}

void printHash()//调用哈希表

{

HashTable H;

int p,key,i,n;

Elemtype e;

InitHash(&H);

printf("输入数据个数(<11 ):");

scanf("%d",&n);

printf("请输入各个值:");

for(i=0;i

{//输入n个元素

scanf("%d",&e.num);//输入数字

if(!SearHash(H,e.num ,&p))

{

InsertHash(&H,e );//插入元素

}

else

printf("已经存在\n");//否则就表示元素的数字已经存在}

printf("输入查找的数字:");

scanf("%d",&key);//输入要查找的数字

if(SearHash(H,key,&p))//能查找成功

{

printf("查找成功!");//输出位置

}

else

printf(" 不存在此元素!");

}

void print()

{

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

printf("\t1,顺序查找\n");

printf("\t2,二分查找\n");

printf("\t3,二叉排序树\n");

printf("\t4,哈希查找\n");

printf("\t5,退出程序\n");

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

}

// 主函数

int main(int argc, char* argv[])

{

int i;//定义变量

print();

scanf("%d",&i);//输入要数字选择要使用的查找方法while(i!=5)//i不等于5时

{

switch(i)

{

case 1://i=1时

printf("顺序查找法:\n");

printSeq();//顺序查找法

break;//跳出循环}

case 2:

printf("二分查找法:\n");

printBin();//二分查找法

break; //跳出循环

case 3:

printf("二叉排序树:\n");

printTree();//二叉排序树

break; //跳出循环

case 4:

printf("哈希查找法:\n");

printHash();//哈希查找法

break; //跳出循环

default:

printf("按键错误!");

}

printf("\n");

print();//调用函数print()

scanf("%d",&i);

}

return 0;//返回0

}

【附录----排序源程序】

#include"stdio.h"

#include"stdlib.h"

#include "string.h"

#define Max 100

typedef struct{ //定义记录类型

int key; //关键字项

}RecType;

typedef RecType SeqList[Max+1]; //SeqList为顺序表,表中第0个元素作为哨兵int n; //顺序表实际的长度

//1、直接插入排序的基本思想:每次将一个待排序的记录,按其关键字大小插入到前面已排序好的子文件中的适当位置,直到全部记录插入完成为止。

//==========直接插入排序法======

void InsertSort(SeqList R) //对顺序表R中的记录R[1‥n]按递增序进行插入排序{

int i,j;

for(i=2;i<=n;i++) //依次插入R[2],……,R[n]

if(R[i].key

R[0]=R[i];j=i-1; //R[0]是R[i]的副本

do { //从右向左在有序区R[1‥i-1]中查找R[i] 的位置R[j+1]=R[j]; //将关键字大于R[i].key的记录后移

j--;

}while(R[0].key

R[j+1]=R[0]; //R[i]插入到正确的位置上

}

}

//2、冒泡排序的基本思想:设想被排序的记录数组R[1‥n]垂直排序。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R,凡扫描到违反本原则的轻气泡,就使其向上"漂浮"(交换),如此反复进行,直到最后任意两个气泡都是轻者在上,重者在下为止。

//==========冒泡排序=======

typedef enum{FALSE,TRUE} Boolean; //FALSE为0,TRUE为1

void BubbleSort(SeqList R) { //自下向上扫描对R做冒泡排序

int i,j; Boolean exchange; //交换标志

for(i=1;i

exchange=FALSE; //本趟排序开始前,交换标志应为假for(j=n-1;j>=i;j--) //对当前无序区R[i‥n] 自下向上扫描

if(R[j+1].key

R[0]=R[j+1]; //R[0]不是哨兵,仅做暂存单元

R[j+1]=R[j];

R[j]=R[0];

exchange=TRUE; //发生了交换,故将交换标志置为真}

if(! exchange) //本趟排序未发生交换,提前终止算法return;

}

}

//3、快速排序的基本思想:在待排序的n个记录中任取一个记录(通常取第一个记录),把该记录作为支点(又称基准记录)(pivot),将所有关键字比它小的记录放置在它的位置之前,将所有关键字比它大的记录放置在它的位置之后(称之为一次划分过程)。之后对所分的两部分分别重复上述过程,直到每部分只有一个记录为止。

//1.========一次划分函数=====

int Partition(SeqList R,int i,int j) //对R[i‥j]做一次划分,并返回基准记录的位置{

RecType pivot=R[i]; //用第一个记录作为基准

while(i=pivot.key) //基准记录pivot相当与在位置i上j--; //从右向左扫描,查找第一个关键字小于pivot.key的记录R[j] if(i

R[i++]=R[j]; //交换R[i]和R[j],交换后i指针加1 while(i

if(i pivot.key,则

R[j--]=R[i]; //交换R[i]和R[j],交换后j指针减1

}

R[i]=pivot; //此时,i=j,基准记录已被最后定位return i; //返回基准记录的位置

}

//2.=====快速排序===========

void QuickSort(SeqList R,int low,int high) //R[low..high]快速排序

{

int pivotpos; //划分后基准记录的位置

if(low

QuickSort(R,pivotpos+1,high); //对右区间递归排序

}

}

//4、直接选择排序的基本思想:第i趟排序开始时,当前有序区和无序区分别为R[1‥i-1]和R[i‥n](1≤i≤n-1),该趟排序则是从当前无序区中选择出关键字最小的记录R[k],将它与无序区的的第一个记录R[i]交换,有序区增加一个记录,使R[1‥i],和R[i+1‥n]分别为新的有序区和新的无序区。如此反复进行,直到排序完毕。

//=====直接选择排序========

void SelectSort(SeqList R)

{

int i,j,k;

for(i=1;i

k=i;

for(j=i+1;j<=n;j++) //在当前无序区R[i‥n]中选key最小的记录R[k] if(R[j].key

k=j; //k记下目前找到的最小关键字所在的位置

if(k!=i) { //交换R[i]和R[k]

R[0]=R[i];R[i]=R[k];R[k]=R[0];

}

}

}

//5、堆排序的基本思想:它是一种树型选择排序,特点是:在排序的过程中,将R[1‥n]看成是一个完全二叉树的顺序存储结构,利用完全二叉树中双亲结点和孩子结点之间的内在关系,在当前无序区中选择关键字最大(或最小)的记录。即:把待排序文件的关键字存放在数组R[1‥n]子中,将R看成是一棵二叉树,每个结点表示一个记录,源文件的第一个记录R[1]作为二叉树的根,以下各记录R[2‥n]依次逐层从左到右排列,构成一棵完全二叉树,任意结点R[i]的左孩子是R[2i],右孩子是R[2i+1],双亲是R[i/2]。对这棵完全二叉树的结点进行调整,使各结点的关键字满足下列条件:

//R[i].key≤R[2i].key并且R[i].key≤R[2i+1].key 称小堆根

//或R[i].key≥R[2i].key并且R[i].key≥R[2i+1].key 称大堆根

//==========大根堆调整函数=======

void Heapify(SeqList R,int low,int high) // 将R[low..high]调整为大根堆,除R[low]外,其余结点均满足堆性质

{

int large; //large指向调整结点的左、右孩子结点中关键字较大者RecType temp=R[low]; //暂存调整结点

for(large=2*low; large<=high;large*=2){ //R[low]是当前调整结点

//若large>high,则表示R[low]是叶子,调整结束;否则先令large指向R[low]的左孩子

if(large

large++; //若R[low]的右孩子存在且关键字大于左兄弟,则令large指向//现在R[large]是调整结点R[low]的左右孩子结点中关键字较大者if(temp.key>=R[large].key) //temp始终对应R[low] break; //当前调整结点不小于其孩子结点的关键字,结束调整R[low]=R[large]; //相当于交换了R[low]和R[large]

low=large; //令low指向新的调整结点,相当于temp已筛下到large的位置}

R[low]=temp; //将被调整结点放入最终位置上

}

//==========构造大根堆==========

void BuildHeap(SeqList R) //将初始文件R[1..n]构造为堆{

int i;

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

Heapify(R,i,n); //将R[i..n]调整为大根堆}

//==========堆排序===========

void HeapSort(SeqList R) //对R[1..n]进行堆排序,不妨用R[0]做暂存单元{

int i;

BuildHeap(R); //将R[1..n]构造为初始大根堆

for(i=n;i>1;i--){ //对当前无序区R[1..i]进行堆排序,共做n-1趟。

R[0]=R[1]; R[1]=R[i];R[i]=R[0]; //将堆顶和堆中最后一个记录交换Heapify(R,1,i-1); //将R[1..i-1]重新调整为堆,仅有R[1]可能违反堆性质。}

}

//6、二路归并排序的基本思想:假设初始序列n个记录,则可看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到[n/2]个长度为2或1的有序子序列;再两两归并,……,如此重复,直到一个长度为n的有序序列为止。//=====将两个有序的子序列R[low..m]和R[m+1..high]归并成有序的序列R[low..high]==

void Merge(SeqList R,int low,int m,int high)

{

int i=low,j=m+1,p=0; //置初始值

RecType *R1; //R1为局部量

R1=(RecType *)malloc((high-low+1)*sizeof(RecType)); //申请空间

while(i<=m && j<=high) //两个子序列非空时取其小者输出到R1[p]上

R1[p++]=(R[i].key<=R[j].key)? R[i++]:R[j++];

while(i<=m)

//若第一个子序列非空,则复制剩余记录到R1

R1[p++]=R[i++];

while(j<=high) //若第二个子序列非空,则复制剩余记录到R1中

R1[p++]=R[j++];

for(p=0,i=low;i<=high;p++,i++)

R[i]=R1[p]; //归并完成后将结果复制回R[low..high]

}

//=========对R[1..n]做一趟归并排序========

void MergePass(SeqList R,int length)

{

int i;

for(i=1;i+2*length-1<=n;i=i+2*length)

Merge(R,i,i+length-1,i+2*length-1); //归并长度为length的两个相邻的子序列if(i+length-1

//注意:若i≤n且i+length-1≥n时,则剩余一个子序列轮空,无须归并}

//========== 自底向上对R[1..n]做二路归并排序===============

void MergeSort(SeqList R)

{

int length;

for(length=1;length

//==========输入顺序表========

void input_int(SeqList R)

{

int i;

printf("Please input num(int):");

scanf("%d",&n);

printf("Plase input %d integer:",n);

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

scanf("%d",&R[i].key);

}

//==========输出顺序表========

void output_int(SeqList R)

{

int i;

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

printf("%4d",R[i].key);

}

综合训练1

综合训练项目一 四人表决器电路设计 目的和要求: 1. 目的是熟悉中、小规模集成电路功能,掌握不同类型门电路或集成电路实现组合逻辑电路的方法。 2. 要求设计一个四人表决器,按少数服从多数规则,利用红白两种颜色灯代表是否通过,并用数码管显示同意人数;用门电路或中规模集成电路译码器或数据选择器完成控制任务;有研究方案比较,能够应用相关仿真软件绘制逻辑图。 成果形式:提交实现方案的逻辑图和结果仿真。 四人表决器,用于投票,少数服从多数,当同意和不同意票数相同时,为不通过。 1:当X,Y,Z,W四人按下四个开关时,表示为同意,接入高电平1.当抬起开关时,表示为不同意,接入低电平0。 2:当三人或三人以上的人按下开关时,为通过,红色灯亮,当两人或两人以上抬起开关时,为不通过,绿色灯亮。 3:按下开关同意人数在数码管上显示,分别为0,1,2,3,4人。 所用电路元件为:74HC154(4-16线译码器)、7448(显示译码器)、8输入与非门两个、12输入与非门一个、非门两个,共阴数码管一个。 方案比较: 1:利用4-16译码器和7448显示译码器以及门电路构成电路; 2:利用八选一数据选择器,4-16线译码以及显示译码器构成电路; 方案2所用到的集成电路比方案1多,所以连线也会增多。 所以选择方案1电路,方案1电路中表示结果的Y和7448显示译码器都可以利用4-16线译码器译出的变量的最小项表示出来。比方案2简便。以下是两种方案的连线图。 四人表决电路: 方案1:

方案2: 四人意见变量为X,Y,Z,W,意见通过结果为Y。同意为“1”,不同意为“0”.

Y 通过为“1”,不通过为“0”。 A 、 B 、 C 、 D 为7448显示译码器输入端。 ABCD D ABC ABCD CD AB BCD A Y ++++=''''; 用最小项表示为:()∑=15,14,13,11,7m Y ; 7448输入端: 0=D ; 15m C =; ∑=)14,13,12,11,10,9,7,6,5,3(m B ; ∑=)14,13,11,8,7,4,2,1(m A ;

oracle数据库-综合训练项目答案

综合训练项目和练习参考答案 第1章练习参考答案 1.C 2.D 3.B 4.B --------------------------------------------------------------------------- 第2章练习参考答案 1.C 2.C 3.A 4.B --------------------------------------------------------------------------- 第3章练习参考答案 1.B 2.D 3.B 4.A 5.B 6.C 7.A --------------------------------------------------------------------------- 第4章练习参考答案 1.C 2.B 3.D 4.D 5.D 6.A 7.B 8.D 9.C 10.B 11.B 12.C 13.C 14.D 15.C 16.C 17.D --------------------------------------------------------------------------- 第5章综合训练项目参考答案 1.使用初始化参数文件。 1)以sysdba身份连接到数据库,关闭数据库。 CONN / AS SYSDBA SHUTDOWN 2)从spfile创建一个新的pfile,将pfile 存放在$Oracle_Home\database 路径下。 CREATE PFILE FROM SPFILE; 在$Oracle_Home\database 路径下创建静态初始化参数文件INITDB01.ORA。 3)修改pfile中的参数open_cursors=200。 用写字板修改INITDB01.ORA中的参数open_cursors=200。 4)使用pfile初始化参数文件启动数据库。 STARTUP PFILE='D:\Oracle\ORA92\database\INITDB01.ORA';

综合训练项目任务书

软件学院 综合训练项目任务书 课程名称离散数学及应用 任课教师 开课学期2014-2015年春季学期辽宁工程技术大学软件学院软件工程系

一、综合训练目的和任务 离散数学及应用是软件工程专业的专业基础核心课程之一,是计算机科学的算法理论基础和软件设计的技术基础。离散数学教学不仅仅是概念、定理、公式和解题概念、定理、公式和解题,还有实验。离散数学实验教学,依靠计算机,让学生主动参与发展、探究、解决问题,从中获得离散数学研究、解决实际问题的过程体验,产生成就感,进而开发学生的创新潜能,因而对离散数学实验课程教学进行研究具有重要意义。利用计算机进行离散数学实验教学,不仅是开展离散数学研究性学习的一种有效方式,而且也为数据结构及程序设计课程教学的开展提升了层次。 综合训练项目要求学生在完成程序设计的同时能够写出比较规范的设计报告。严格实施综合训练项目这一环节,对于学生基本程序设计素养的培养和软件工作者工作作风的训练,将起到显著的促进作用。 二、综合训练基本要求 1.通过综合训练项目,要求对离散数学中集合、关系的应用和图论的应用等方面加深对课程内容的理解与掌握。同时,在程序设计方法以及上机操作等基本技能方面受到比较系统的训练。 2.按照综合训练项目要求,以学生为主、指导教师指导为辅,认真、独立地完成综合训练项目的任务,有问题及时主动与指导教师沟通。 3.按照教学要求学生分组完成综合训练项目或独立完成,学生要发挥自主学习的能力,充分利用时间,按时完成设计内容。 4.每个项目结束后,通过答辩与点评的形式进行验收,根据点评意见,学生对项目进行整改后,提交项目报告与程序,教师给出该项目成绩。 三、综合训练内容 综合训练项目一关系理论应用 1.目的 掌握集合及关系的基本理论,掌握集合及关系的基本运算。 2.

《项目管理》综合练习及答案

综合练习题 一、单项选择题 1. 下面哪项不是项目管理的基本要素?(B ) A.项目环境 B.工作分解结构 C.项目干系人 D.项目资源 2. 项目型组织结构适用于(C )情况 A.项目的不确定因素较多,同时技术问题一般 B.项目的规模小,但是不确定因素较多 C.项目的规模大,同时技术创新性强 D.项目的工期较短,采用的技术较为复杂 3. 什么时候向一个项目指派项目经理?( C ) A.合同签订之后 B.就在合同的执行之前 C.合同启动期间 D.合同计划编制期间4.项目经理在( B )中权力最大 A.职能型组织 B.项目型组织 C.矩阵型组织 D.协调型组织 5. 项目范围验证应该由关键的(D )来执行 A.客户 B.项目经理 C.项目发起人 D.项目干系人 6. 下列有关矩阵型组织结构情况的描述中,错误的是( C ) A.矩阵型组织结构能充分利用人力资源 B.项目经理和职能部门经理都有可能控制项目预算 C.只有项目经理是职能部门领导,才能取得公司总经理对项目的信任 D.矩阵型组织结构能对客户的要求快速作出响应 7. 在项目控制过程中,项目经理应该执行的工作不包括下述哪项内容?( C ) A.确定已经发生变更 B.确保变更已经得到同意 C.确保所有变更都获得管理层的批准 D.在变更发生时,对变更进行管理 8. 项目管理中提到的“约束三角形”的三条边分别对应着项目管理的三个关键要素,不属于三个关键要素的一项是( C ) A 范围 B 时间 C 质量 D 成本 9.任何实际的项目管理过程都是从( D )开始的。 A 市场需求 B 项目范围 C 项目章程 D 项目计划 10.项目范围定义的结果是项目管理计划更新和( C ) A.需求跟踪矩阵 B. 范围基准 C. 项目范围说明书 D. 项目干系人登记表 11. 在项目实施期间,你发现尽管以前已经批准了工作范围,但客户却对工作范围进行了变

项目管理综合练习题(本)

项目管理综合练习题 一、单项选择题 1. 下面哪项不是项目管理的基本要素?(B )A.项目环境 B.工作分解结构 C.项目干系人 D.项目资源 2. 项目型组织结构适用于(C )情况 A.项目的不确定因素较多,同时技术问题一般B.项目的规模小,但是不确定因素较多C.项目的规模大,同时技术创新性强D.项目的工期较短,采用的技术较为复杂 3. 什么时候向一个项目指派项目经理?( C )A.合同签订之后 B.就在合同的执行之前 C.合同启动期间 D.合同计划编制期间 4.项目经理在( B )中权力最大 A.职能型组织 B.项目型组织 C.矩阵型组织 D.协调型组织 5. 项目范围验证应该由关键的(D )来执行 A.客户 B.项目经理 C.项目发起人 D.项目干系人 6. 下列有关矩阵型组织结构情况的描述中,错误的是( C )A.矩阵型组织结构能充分利用人力资源 B.项目经理和职能部门经理都有可能控制项目预算C.只有项目经理是职能部门领导,才能取得公司总经理对项目的信任 D.矩阵型组织结构能对客户的要求快速作出响应 7. 在项目控制过程中,项目经理应该执行的工作不包括下述哪项内容?( C )A.确定已经发生变更 B.确保变更已经得到同意 C.确保所有变更都获得管理层的批准 D.在变更发生时,对变更进行管理 8. 项目管理中提到的“约束三角形”的三条边分别对应着项目管理的三个关键要素,不属于三个关键要素的一项是( C )A 范围 B 时间 C 质量 D 成本 9.任何实际的项目管理过程都是从( D )开始的。A 市场需求 B 项目范围 C 项目章程 D 项目计划 10.项目范围定义的结果是项目管理计划更新和( C )A.需求跟踪矩阵 B. 范围基准 C. 项目范围说明书 D. 项目干系人登记表 11. 在项目实施期间,你发现尽管以前已经批准了工作范围,但客户却对工作范围进行了变更,对该项变更的成本没有异议。你应该首先做什么?(D )A.遵循变更过程 B.与客户讨论该项变更并协商新的范围C.与团队开会,计划选择方案 D.对该项变更可能导致的风险进行评估并形成文件 12.( D )是WBS结构管理所需的最低层次的信息,是项目的最小可控单元。A 可支付成果 B 可交付子成果 C 最低层可交付子成果 D 工作包 13.项目在哪个阶段的风险最大( A )A.启动 B.计划 C.执行 D.收尾 14. 管理收尾完成得最早日期是:(C )A.在每个项目阶段结束时; B.在项目结束时; C.当可交付成果完成时; D.在每位新项目经理接管项目时。 15.工作分解结构的工具是( D )A. 专家分析法 B. 促进研讨会 C.头脑风暴法 D. 分解技术 16. 下列表述正确的是( B )A.活动排序就是把要完成的活动按工作量大小排好,以便一项一项地完成B.活动排序就是对各项活动的相互关系进行识别,并据此确定各活动之间完成的先后顺序 C.活动排序就是按照各种计划一项一项地完成 D.活动排序就是按照活动的必然依存关系进行排序的 17.在前导图法下,“活动A——>活动B”关系是指( A )A. 活动A不结束,活动B不能开始B. 活动A结束时,活动B已经开始C. 只有活动B开始后,活动A才能结束D. 活动A结束和活动B 开始必须同时进行 18.项目进度控制过程将集中于哪些活动上(C )A. 比计划开始早的B. 比计划开始晚的C. 偏离项目计划而不论早或晚的D. 只是关键路径上的 19.何种保证被视为是项目经理确信本工程项目质量或者服务质量满足规定要求所进行的活动( A )A 内部质量保证 B 外部保证C 内部保证和外部保证D 符合ISO9000要求 20. 刚完成了项目一项主要可交付成果,此时你意识到卖方没有进行要求的检验。你应该如何做?( D )A.从付款中扣除检验成本; B.从工作范围中减去检验内容;C.要求卖方完成检验; D.就卖方的行为,汇报给负责检验的地方政府部门。 21.有关关键路线的正确描述是( B )A. 关键路线是指在项目开始到完成的多条路线中耗时最短的那条路线 B. 关键路线是指在项目开始到完成的多条路线中耗时最长的那条路线C. 网络图中最多存在一条关键路线D. 关键路线上的某活动延误一天,不影响整个项目的完工时间 22.下面哪一项不属于网络图工具?( C )A 前导图法 B 箭线图法 C 柱状图法 D甘特图法 23.在制定WBS编码时,责任与预算也可以用同一编码数字制定出来。就职责来说,第一位数字代表谁?( B )A. 子项目的负责人 B. 项目经理 C. 二级工作单元的相应负责人 D. 三级工作单元的相应负责人 24. 项目成本估算一般应考虑的因素中,不包括下面哪一项( B ) A 进度计划 B 政治环境 C 经济环境 D 历史信息 25.( C )通过建立模型来估算项目的总成本 A.总分预算估算法 B.自下而上估算法 C.参数模型估算法 D.自上而下估算法 26.如果一个工作包原计划花费(PV)1500元于今天完成,但是到今天花费(AC)1350元却只完成了2/3,则成本偏差(CV)为( B ) A.150元 B.-350元 C.-150元 D.-500元 27. 下列方法中,在项目质量控制中能确定内在过程变异和过程均值是否处于稳定水平的是( C )A 流程图法 B 实验设计 C 控制图D 帕累托图 28.挣值是( A )A. 已经完成工作量的预算成本 B. 计划完成工作量的预算成本C. 完成工作量的实际成本 D. 工作完成时的成本 29.如果某项目进度的挣值(EV)为100,实际成本(AC)为110,这表明该项目目前状态为( C )A. 项目拖期 B. 项目提前C. 项目超支 D. 项目成本结余 30.( C )通过建立模型来估算项目的总成本 A.总分预算估算法 B.自下而上估算法 C.参数模型估算法 D.自上而下估算法 31.如果某项目进度的计划成本(PV)为100,挣值(EV)为110,这表明该项目目前状态为( B )A. 项目拖期 B. 项目提前C. 项目超支 D. 项目成本结余 32.如果一个工作包原计划花费(PV)1500元于今天完成,但是到今天花费(AC)1000元却只完成了1/3,则成本绩效指标(CPI)为( A ) A.1/2 B.1/3 C.1/5 D.1 33. 下列方法中,能确定影响项目质量的因素是由随机事件还是由突发事件引起的方法是(C )A.流程图法 B.实验设计C.控制图D.帕累托图 34.在选择项目工作人员中,下列那一项不是考虑因素?(A )A 组织类型 B 个人特性 C 以前的经历 D 个人兴趣

专业综合训练报告

专业综合训练报告 姓名:---------- 学号:--------- 班级:---------

专业综合训练任务书

专业综合训练 一、专业综合训练整体目标 会计专业综合训练的目的,主要是通过模拟实训,系统、全面地掌握企业会计制度和企业会计核算的基本程序和具体方法,加强对会计基本理论的理解、对会计基本方法的运用和对会计基本技能的训练,将会计专业知识和会计实务有机的结合在一起,真正掌握会计实务处理方法。同时,在通过与岗位要求完全相同的实验操作中,培养职业意识,提高职业素质,形成工作能力,为即将从事的会计工作打下坚实的基础,成为理论与实际相结合的会计专业人才。 二、专业综合训练具体内容 (一)实验一系统管理和基础管理 实验步骤: 1.启动系统管理 执行“开始”|“程序”|“用友ERP-U8”|“系统同服务”|“系统管理”命令,启动系统管理 2.以系统管理员身份登陆系统管理 系统/注册/出现登录对话框,输入“admin”,确定 3.增加操作员 (1)执行“权限”|“用户”命令,进入“用户管理”窗口。 (2)单击工具栏上的“增加”按钮,打开“增加用户”对话框,按资料输入操作员。

4.建立帐套 (1)执行“账套”|“建立”命令,打开“创建账套”对话框。 (2)按照资料输入账套信息、单位信息、核算类型、基础信息、确定编码方案等。 5.财务分工 (1)执行“权限”|“权限”命令,进入“操作员权限”窗口。 (2)选择007账套:2006年度 (3)从窗口左侧操作员列表中选择对应操作员,并在复选框选择对应的角 色

6.系统启用与基础设置 (1)登录企业应用平台。 开始︱程序︱用友ERP-U872︱企业用友平台,打开登录对话框︱以帐 套主管01刘明身份于2013-04-01登录 (2)系统启用 基础设置︱基本信息︱系统启用︱启用总账,启用日期2013年4月1 日。进行基础设置:基础设置︱基础档案︱选择录入项目︱录入资料 所给内容 (3)进行基础设置

综合体能训练计划

综合体能训练计划 时间:8月23日至9月3日,共计12天(训练时间暂定每日上午)地点:战训基地 第一天:一、上肢力量强化 1、跪姿爆发俯卧撑10个休息30秒 2、跪姿释手俯卧撑16个休息40秒 3、释手俯卧撑12个休息60秒 4、钻石俯卧撑10个休息60秒 5、左侧偏重俯卧撑12个休息60秒 6、右侧偏重俯卧撑12个休息60秒 7、俯卧撑12个休息60秒 8、蜘蛛俯卧撑12个休息60秒 二、核心力量强化 1、坐姿收腿25个 2、屈腿两头起20个 3、仰卧直推交替25个 4、仰卧风车20个中途不休息 5、左侧侧卧两头起25个 6、右侧侧卧两头起25个 7、平板支撑1分钟 8、梅森转体50个 9、拉伸 三、战绳心肺强化 1、反握战绳开合跳20个休息30秒 2、正握战绳抖浪20秒休息30秒 3、正握战绳大摆20个休息30秒 4、反握战绳转胯20个休息2分钟重复三组 第二天: 一、腿部力量强化 1、徒手深蹲3X30 间隔休息60秒 2、箭步蹲4X20 间隔休息60秒 3、原地提踵3X40 间隔休息30秒 4、蛙跳一圈休息60秒 5、垂直跳4X20 间隔休息60秒 6、拉伸放松 二、速度强化 1、30米冲刺6组 2、50米冲刺6组 3、70米冲刺6组 三、3公里放松跑

第三天: 一、跑步技术讲解 二、心肺功能强化 1、500米X6 间隔休息2分30秒 第四天: 一、针对考核内容分析战术 二、针对考核项目进行技术研究 三、全身放松拉伸 第五天:重复第一天内容 第六天:重复第二天内容 第七天:重复第三天内容 第八天:重复第四天内容 第九天:重复第一天内容 第十天:重复第二天内容 第十一天:重复第三天内容 第十二天:重复第四天内容

《项目管理》综合练习及答案

A.项目环境 B. 工作分解结构 C. 项目干系人 D. 项目资源 A.合同签订之后 B.就在合同的执行之前 C.合同启动期间 D. 合同计划编制期间 A.职能型组织 B. 项目型组织 C. 矩阵型组织 D. 协调型组织 5.项目范围验证应该由关键的(D ) 来执行 A.客户 B. 项目经理 C. 项目发起人 D. 项目干系人 A.确定已经发生变更 B. 确保变更已经得到同意 C.确保所有变更都获得管理层的批准 D.在变更发生时,对变更进行管理 8.项目管理中提到的“约束三角形” 的三条边分别对应着项目管理的三个关键要素,不属 A 范围 时间 质量 成本 9.任何实际的项目管理过程都是从( D )开始的。 A 市场需求 B 项目范围 C 项目章程 项目计划 、单项选择题 1.下面哪项不是项目管理的基本要素?( B 2. 项目型组织结构适用于(C )情况 A. 项目的不确定因素较多,同时技术问题一般 B. 项目的规模小,但是不确定因素较多 C. 项目的规模大,同时技术创新性强 D. 项目的工期较短,采用的技术较为复杂 3. 什么时候向一个项目指派项目经理?( 4. 项目经理在(B )中权力最大 6.下列有关矩阵型组织结构情况的描述中,错误的是( A. 矩阵型组织结构能充分利用人力资源 B. 项目经理和职能部门经理都有可能控制项目预算 C. 只有项目经理是职能部门领导,才能取得公司总经理对项目的信任 D. 矩阵型组织结构能对客户的要求快速作出响应 7.在项目控制过程中,项目经理应该执行的工作不包括下述哪项内容?( 于三个关键要素的一项是(C ) 综合练习题

但客户却对工作范围进行了变10?项目范围定义的结果是项目管理计划更新和( 11. 在项目实施期间,你发现尽管以前已经批准了工作范围,

科研训练项目个人总结报告

科研训练项目个人总结报告 【--工作总结报告】 科研立项使我明白;大学生只有通过自身的不断努力,拿出百尺竿头的干劲,胸怀会当凌绝顶的状态,不断提高自身的综合素质,在与社会的接触过程中,减少磨合期的碰撞,加快融入社会的步伐,才能在人才高地上站稳脚跟,才能扬起理想的风帆,驶向成功的彼岸。下面是为大家整理的科研训练项目个人总结报告,供大家参考。 科研训练项目个人总结报告 在那段痛并快乐着的时期里,在将近一年《》我们曾洒下汗水,也曾播种了希望;我们曾付出心血,也曾收获成功。从确定课题到申请立项,从搜索学习文献到问卷调研,从一步步调查研究到一个个调研数据,从发现分析解决问题到补充提高完善成果,一路走来,感觉收获颇多。在研究方面,最深的体会就是要善于勤于思考,主动动手动脑。做的课题中,有许多东西对于我们来说,可能是一个没有接触过的新领域,没有人告诉我们一步步该怎么做。需要自己去找文献查资料,去弄明白实验的原理,然后确定要创新的方向。按照这个方向一点点努力,所以每一步都需要独立思考。 当然,这个过程中会遇到很多困难,这个时候除了寻找帮助,最重要的还是自己思考。在创新方面,首先要确定创新的方向和目标。方向和目标是贯穿整个科研的核心,只有明确方向,围绕这个方向努力下去,才可能有结果。创新点可以从很多方面确定,不一定是很高深很前沿的东西。只要不是照搬别人已经做过的东西,在自己力所能及的范围内就好。当 然,能做出更大的成就最好。有时思维可能会出现停滞不前的现象,好像只能思考到这个程度了。这时要用发散思维多方位的考虑,作出大胆的猜测。但要始终围绕创新点,不能偏离主题,也不能随意猜测,而要有根据有目的地做出假想,再一步步实践去论证自己的猜测。其实,每一个伟大的成就都是这样平凡地一步步得出来的。总之,在这次科研实践里,我们学会了认真负责对待调研;踏实勤恳地去做调研;坚持不懈地完成调研;在懒惰面前克制自己;在困难面前乐观积极。 我们根据Logistic模型应用方法,将问卷数据进行拟合优度检验、似然比检

数字化技术项目综合训练总结报告

数字化技术项目综合训练 总结报告 目录 训练模块一:零件功能分析与有限元分析 (3) 1.1训练目的 (3) 1.2具体任务与要求 (3) 1.3训练过程、内容与结果 (4) 1.4训练小结 (8) 训练模块二:三维建模和工程图处理 (9) 2.1训练目的 (9) 2.2具体任务与要求 (9) 2.3训练过程、内容及结果 (10) 2.4训练小结 (15) 训练模块三:工艺设计 (16) 3.1训练目的 (16) 3.2具体任务与要求 (16) 3.3训练过程、内容与结果 (17) 3.4训练小结 (33) 训练模块四:零件数控加工程序编制 (34) 4.1零件数控加工宏程序编制 (34) 4.1.1训练目的 (34) 4.1.2具体任务与要求 (34) 4.1.3训练过程、内容与结果 (35) 4.1.4训练小结 (39) 4.2零件数控加工计算机辅助编程 (40)

40 4.2.2具体任务与要求 (40) 4.2.3训练过程、内容与结果 (41) 4.2.4训练小结 (46) 训练模块五:数控机床操作及其零件数控加工 (46) 5.1训练目的 (46) 5.2具体任务与要求 (47) 5.3训练过程、内容和结果 (48) 5.4训练小结 (49) 训练模块六:零件加工质量检测 (50) 6.1训练目的 (50) 6.2具体任务与要求 (50) 6.3训练过程、内容和结果 (51) 6.4训练小结 (51) 项目综合训练心得体会 (52) 参考文献 (53) 致谢 (54)

训练模块一:零件功能分析与有限元分析 1.1训练目的 通过本次训练,了解UG/NX软件的有限元分析功能块。学习创建零件的有限元分析方法,通过对零件进行功能分析,然后进入UG的高级仿真模块,对零件进行网格划分,对零件模型受力分析,初步掌握UG有限元分析用于解决工程实际问题方法。 1.2具体任务与要求 1.2.1有限元分析的主要概念: 有限元分析是利用数学近似的方法对真实物理系统(几何和载荷工况)进行模拟,将真实物理系统分割为简单而互相作用的单元,从而用有限数量的未知量去逼近无限未知量的真实系统的一种方法。 1.2.2有限元方法能解决的问题 在工程技术领域内,经常会遇到两类典型的问题: 第一类问题,可以归纳为有限个已知单元体的组合。例如,材料力学中的连续梁、建筑结构框架和桁架结构。把这类问题称为离散系统。 第二类问题,通常可以建立它们应遵循的基本方程,即微分方程和相应的边界条件。例如,弹性力学问题,热传导问题,电磁场问题等。由于建立基本方程所研究的对象通常是无限小的单元,这类问题称为连续系统。 1.2.3有限元的基本思路 有限单元法的基本思想是将问题的求解域划分为一系列的单元,单元之间仅

综合训练报告

毕业综合训练 系别社会工作与社会管理系 专业社会工作 班级11社会工作班 姓名丁姝同学号20111106740 指导老师叶小楠 内蒙古师范大学青年政治学院

个案工作面谈提纲 一、案例基本资料 1、基本情况: 案主为9岁男孩,读小学二年级,单亲家庭,思想、语言比同龄孩子成熟,品行顽劣,经常做出一些危险性动作,学习成绩属中等,父亲曾经带其做过智力测试,智力正常,喜欢玩电脑游戏、手工制作。 2、家庭情况: 父亲53年出生,为回城知青,96年与小自己22岁的浙江女子结婚,婚后由于年龄、兴趣爱好的差异于99年离婚,离婚后母亲回浙江再婚,父亲带着案主单独生活,离婚后父母保持较友好关系,节假日,案主有时会到母亲那里过一段时间。父亲现为一大型中日合资企业副总经理,2003年查出患有鼻炎癌。爷爷奶奶已经过示,案主有两个姑姑,但住的都较远,案主去她们家的次数不多,居父亲讲,姑姑们都很爱案主。由于父亲忙于工作,从案主读学前小班开始(3岁),早上送案主去学校,下午放学时父亲委托一位大妈妈把案主接到她们家,并在那里吃晚饭、洗澡、写作业,一直到晚上父亲下班回来把案主接回家。 二、收集案主资料 1.个案面谈 (1)你好,我是青青社会工作服务站的工作人员,你可以叫我小丁姐姐,。。。 (2)你可以说说你遇到的问题,。。。。 (3)我们机构服务内容之一。。。。。 2.走访案主学校、家庭 (1)学校老师对其评价: 之前的老师认为案主很顽皮,外面的集体活动,为了其他学生的安全和管理,老师会把案主留下,不让其参加集体活动。现在的班级,由于太顽皮,老师专门做了一本针对案主的意见薄,班里同学随时发现案主的顽劣的行为,并报告老师记在上面,案主非常聪明,平时不爱学习,经常逃课,只在考试前几天复习,但考试成绩挺好,案主数学、手工、语文课学的很好,英语教差。暑托班老师普遍反映案主有暴力倾向,与其他小朋友打架,扰乱课堂纪律,严重影响暑脱班的正常进行。

综合训练手册

江西现代职业技术学院 综合实训(项目工作)手册 系别 专业班级 学生姓名学号 地点 企业指导教师 校内指导教师 时间年月日——年月日 建筑工程学院制

目录 综合实训(项目工作)要求 (1) (一)纪律要求 (1) (二)提交材料要求 (2) 综合实训(项目工作)工作安排 (3) “项目工作”的流程 (4) 综合训练(项目工作)安全管理制度 (5) 综合实训(项目工作)任务书 (6) 综合训练(项目工作)日记 (8) 综合实训(项目工作)报告 (27) 学生综合实训(项目工作)评价表 (32) 综合实训(项目工作)成果 (33)

综合实训(项目工作)要求 为了做好综合实训教学环节,学院拟采用“项目工作”形式,通过选择实际的工程项目,在教师指导下进行与专业技能相关的实践训练,培养学生解决工程实际问题的能力,为适应今后的岗位工作打下扎实的基础。为了保证综合实训(项目工作)任务能按教学目的和要求顺利完成,特要求如下: (一)纪律要求 1、必须遵守安全管理规定,遵守交通规则,避免安全事故发生; 2、必须有较强的事业心、责任心和吃苦精神,必须严格遵守学院与综合实训(项目工作)单位规章制度; 3、遵守操作规程,努力提高自身的专业实践技能和专业知识,不断提升自己的组织能力,解决问题的能力和社会实践的能力; 4、按照学院的安排开展综合实训(项目工作)。如在校外进行综合实训(项目工作),要经常保持与学校的联系,每三至五天至少要与班主任联系一次,每周至少要与指导老师联系一次,汇报综合实训(项目工作)进展情况,因联系电话和工作地点发生变动时要及时通知班主任和指导教师,并保证提供的联系方式正确有效,如因提供的联系方式出现问题,一切后果自负; 5、一旦签订项目工作协议,要严格遵守学院与综合实训(项目工作)单位的考勤制度,考勤与综合实训成绩挂钩;如果在综合实训(项目工作)期间,由于违反学院及单位的管理规定或因品德表现等原因被综合实训(项目工作)单位退回学校,则视为综合实训成绩不合格;缺勤累计超过三分之一者不予评定综合实训成绩; 6、学生在学院或综合实训(项目工作)单位应服从学院及单位的安排和管理,遵守学院综合实训(项目工作)单位的劳动纪律和规章制度,切实注意安全,防止一切事故发生; 7、学生在学院和综合实训(项目工作)单位应严格保守机密,对查阅的凭证、报表、图纸等经济技术资料应妥善保管,不得遗失及外漏; 8、学生应按照综合实训(项目工作)的内容,完成任务,搜集相关资料,如实填写好综合实训(项目工作)手册,记好日记,完成综合实训(项目工作)报告的撰写任务及综合实训(项目工作)成果的收集整理工作; 9、不得擅自离开学院或综合实训(项目工作)单位。个别学生确因特殊情况,须本人提出书面申请,经班主任和指导教师批准,报分院领导审批方可向综合实训(项目工作)单

综合训练场方案

综合训练场工程 施 工 方 案 2011年8月2日

一、工程概述 1.1工程位置 本工程位于***********************。 1.2项目概况 本工程**********,工程造价约为700万元,工期为130日历天。1.3施工场地周围环境 工程地点附近周围树木较多,人烟稀少。弃土场为本工程指定多余土方弃填区域,该区域为土石方堆假山坡,运距200-300m。 1.4工程地质 场平区域内有成片的苗木和少量建筑物及其他附着物,需进行清理。石方有10000m3,石层需要爆破处理。 1.5工程范围及规模 本工程总挖方量约为10000万m3,总填方量约为6000m3。 1.6工程的主要特点 (1)本工程开挖、回填土石方量巨大,地势复杂。 (2)土石方主要为填方,达16000m3;石方有10000m3,需自行爆破,爆破前需征得相关部门的允许,办理爆破许可证才可作业。同时,必须遵守爆破安全规程。 (3)土石方有填方量约为16000m3,压实度要求达到90%,土料含水量和碾压质量要严格控制。 (4)场区内有废弃房屋、树木需进行处理。 (5)施工场地内开挖、回填、运输相互交叉施工,工程测量复杂,

难度大,需精心施工。 二、主要施工方法和技术组织措施 2.1施工准备工作 我司在投标阶段,已对工程的性质、内容、技术要求、周边环境、地质情况等作了认真、充分的研究,并为一旦中标后的进场施工作准备。 2.1.1技术准备工作 (1)落实项目部人选,组建强有力的项目经理部。 (2)认真审阅施工图纸,参加设计交底和图纸会审,针对图纸中存在的问题和错误提出修正意见。 (3)复测控制桩并制定测量方案。 (4)组织工程技术人员熟悉施工图纸,编制详细的施工方案,进行技术、安全、防火培训,做好技术、安全交底,安排好有关的试验工作。 2.1.2施工准备工作 (1)全面检修进场施工的机械设备,以保证施工前设备运转正常。(2)编制施工计划,安排施工顺序,协调各工序及各专业间的配合工作。 (3)落实相应的施工人员,并进行岗前培训和教育。 (4)做好材料和工艺设备的计划安排工作,使之满足连续施工的要求。

《程序设计与算法综合训练》设计报告项目二

《程序设计与算法综合训练》设计报告项目二 学号:E11514122 姓名:张棋年级:2015级专业:计科二班 项目名称:停车场管理系统的设计与实现完成日期:2016年6月28日 1.需求分析 在该部分中根据设计题目的要求,充分地分析和理解问题,叙述系统的功能要求,明确问题要求做什么?限制条件是什么? (1)问题描述 停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。 汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端, 最先到达的第一辆车停放在停车场的最北端),若车场内已停满n辆汽车,则后来 的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可 开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让 路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车 在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要 求进行管理的模拟程序。 (2)基本要求 ①输入的形式和输入值的范围; 汽车的模拟输入信息格式可以是:(到达/离去,汽车牌照号码,到达/离去的时刻)例如,(‘A’,1,5)表示1号牌照车在5这个时刻到达,而(‘D’,5,20)表示5号牌照车在20这个时刻离去。整个程序可以在输入信息为(‘E’,0,0)时结束。 ②输出的形式; 汽车的模拟输入信息格式可以是:(到达/离去,汽车牌照号码,到达/离去的时刻)例如,(‘A’,1,5)表示1号牌照车在5这个时刻到达,而(‘D’,5,20)表示5号牌照车在20这个时刻离去。整个程序可以在输入信息为(‘E’,0,0)时结束。 ③程序所能达到的功能。 以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,对每一组输入数据进行操作后的输出数据为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车离去;则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。 2.概要设计

基于项目教学的综合工程训练改革与实践

基于项目教学的综合工程训练改革与实践 摘要:为了使工科高校综合性工程训练中心在学校 的人才培养中发挥更大的作用,针对当前国内工程训练教学体系中普遍存在的“综合性训练涉及面窄、工程实践过程不够完整、学生受益面有限”等问题,面向全校工科学生,确立了“打破专业界限,拓宽专业领域,注重实践过程完整性,立足工程素质培养,提高工程实践能力,培养创新意识”的工程训练教学改革思路,进行了基于项目教学的综合工程训练改革与实践,带动了工程训练中心教学、管理、运行、建设等各方面工作的全面变革,取得了显著的成果。 关键词:综合工程训练;项目教学国民经济建设与社会发展对大学生的工程实践能力和 综合素质提出了更高的要求。工程训练中心作为工科高校重要的工程实践教学基地,所具有的学科专业综合性和教学场景真实性,决定了其能够而且应当在学生的工程能力及综合素质培养中发挥重要作用[1] 。自教育部2003 年启动高校本科教学工作水平评估,2004 年启动国家级实验教学示范中心申报以来,国内大部分工科大学综合性工程训练中心的硬件条件有了极大的改善,但各高校工程训练中心如何在学校的人才培养中发挥更大的作用,依然是一个迫切需要解决的问题。针对当前工程训练教学体系中普遍存在的“综合性训练涉及面窄、工程实践过程不够完整、学生受益面有限”等问题[2],进行了基于项目教学的综合工程训练改革与实践,取得了显著成果。 、注重“学习延伸”的项目实践教学新模式 项目教学法[3] 是使学生直接参与项目全过程的一种教 学方法。在项目教学中,学习过程就是一个人人参与的实践创造活动,注重的不是最终的结果,而是完成项目的整个过程。项目教学法的教学效果与项目命题具有直接的关系。从项目教学法的基本特点来看,通过一个难度适中、完整的工程项目的真实体验,对于学生工程能力和综合素质的培养毋庸置疑是有益的,但若要达到激发专业学习兴趣并明确专业学习方向的目的,却需要认真的研究和分析。经多次讨论、研究并进行教学试点,确定了以下项目命题原则: 一)项目命题尽量覆盖专业大类具有共性的知识,并

综合训练项目二

综合训练项目二 题目:交流电机调速系统先进控制 方法综述 学期: 专业:自动化 班级:班 姓名: 学号: 指导教师:

辽宁工程技术大学成绩评定表 评定标准 评定指标标准 评定 合格不合格控制器设计方法分析充分性 无速度传感器估 计方法 分析充分性 设计报告\答辩 内容充实 答辩效果 总成绩 日期年月日

综合训练项目二 题目:交流电机调速系统先进控制方法综述 目的:通过查找资料,了解交流电机调速系统先进的控制技术及无速度传感器估计技术。 要求: 总结近期国内外交流电机调速系统先进的控制技术及无速度传感器估计技术,总结各自方法优缺点,提出自己的控制方法。 任务: 1、总结国内外交流电机调速系统先进的控制技术(如:滑模控制、自抗扰控制、无源控制等)发展现状; 2、总结国内外交流电机调速系统无速度传感器估计技术(适合低速的高 频信号注入方法、适合低速的观测器估计方法等)发展现状; 3、针对高性能调速系统提出自己的控制方案。 成果形式:现场交流+书面报告

交流电机调速系统先进控制方法综述 一、电机调速控制系统概述 常用的PID控制策略结构简单,易于调节,且不依赖于被控对象的数学模型,故被广泛应用与永磁同步电机控制系统中,用于电流、速度和位置等调节控制。但永磁同步电机是强耦合的非线性系统,仅仅依靠传统PID控制很难获得高性能的控制,为此国内外学者为了弥补PID经典控制理论对非线性系统调节能力不足的问题,将滑膜控制、自适应控制、模糊控制、神经网络控制等算法引入到电机控制领域中,并与矢量控制和直接转矩控制理论结合,以满足系统的动、静态性能指标,实现高性能永磁同步电机控制。由于滑膜(变结构)控制理论对内部参数摄动和外部干扰具有较强的鲁棒性和较高的控制精度,且实现简单,故称为提高永磁同步电机控制系统的有效手段之一,正越来越引起国内外学者的关注。 自滑膜变结构控制理论诞生起,电机控制领域就是其最主要的应用领域。滑膜控制是前苏联学者Emelanov和Barbashin于20世纪60代首先提出的,并经Utkin等人完善与发展,在上个世纪70年代逐渐成为控制领域的一个相对独立的重要分支,形成了控制系统一般设计方法,并在电机、机器人等领域得到广泛应用。 二、滑膜控制的原理 滑膜变结构控制是一种非线性控制,它采用控制切换法则,通过在不同控制作用之间的切换,产生一种与原系统无关,按照预定滑动模态的状态轨迹的运动,是系统状态达到期望点,从而实现系统控制。由于预定轨迹和控制对象内部参数及外部扰动无关,因此滑膜变结构控制具有非常好的鲁棒性。 图1.3展示了滑膜运动状态,其中S(x)是滑膜切换函数,S(x)=0是滑膜面。 滑膜变结构控制的实现过程是根据系统所期望的动态特性来设计系统的滑膜面,通过滑膜控制器设计使状态从滑膜面之外向滑膜面运动,系统一旦达到滑膜面,控制作用将保证系统沿滑膜面到达系统原点。由此可见,滑膜变结构控制系统的运动主要分两个阶段,即趋近运动和滑动模态运动。所谓趋近运动是出于滑膜以外的运动或有限次穿越滑膜面;滑膜模态运动时位于滑膜面上的运动,该阶段系统性能由滑膜面动态特性决定,该阶段对系统参数摄动、外部扰动具有较高的鲁棒性。 2.1滑膜控制设计方法 滑膜变结构控制系统设计主要包括两部分:第一部分:设计滑膜切换函数,使系统进入滑膜运动后收敛于系统控制期望点,并具有良好的动态品质;第二部分:设计滑膜控制律,使系统能够达到滑膜面,并形成滑动模态运动。 滑膜控制系统性能很大程度上决定于滑膜面,故滑膜面设计与选择成为滑膜系统设计中最为关键的问题。目前,各种形式的滑膜面主要可分为两类:线性滑膜面和非线性滑膜面。

建筑工程项目管理综合练习

建筑工程项目管理综合练习(复习指导) 一、单项选择题: 1、以下说法正确的是(C)。C、没有明确目标的建设工程不是项目管理的对象 2、建设工程项目管理规划的编制应由(A)负责。A、项目经理 3、投资方提供的项目管理服务属于(C)方的项目管理。C、业主 4、供货方的项目管理工作主要在(C)阶段进行。C、施工 5、项目管理的三大目标是( B )。 B、费用、进度、质量 6、开发方提供的项目管理服务属于(C)方的项目管理。C、业主 7、施工方的项目管理工作涉及(A)全过程。A、设计前的准备阶段至保修期 8、施工企业根据监理企业制订的旁站监理方案,在需要实施旁站监理的关键部位施工前(A) 小时,应当书面通知监理企业派驻工地的项目监理机构。A、24 9、(B)组织机构每一个部门只有一个指令源。 B、线性 10、每一个工作部门可能有多个矛盾的指令源的组织机构是(A)组织机构。A、职能 11、依法进行招标的项目,从开始发放招标文件之日起,至投标截止时间的期限,最短不得 少于(C)。C、20天 12、投标单位编制投标文件最重要的依据是(A)。A、资格预审文件 13、工程建设按照阶段分类,可以分为(A)。A、建设工程勘察合同、设计合同和施工合同 14、在合同协议书内明确注明的日期不包括(A)。A、开工日期 15、投标保证金的数额最高不得超过(C)。C、80万元 16、索赔可以从不同角度分类,如按索赔事件的影响分类,可分为(D)。 D、工程拖误索赔和工程变更索赔 17、关于国际工程得到投标的推荐程序正确的是(A)。 A、准备投标文件—颁发招标文件—考察施工现场—投标者质疑—投标书的递交 18、根据我国《招标投标法》的规定,下列情形中应作废标处理的是(D)。 D、投标文件签字人不是投标人的法定代表人。 19、正确的编制投标文件的顺序为(B)。 B.结合现场踏勘和投标预备会的结果,进一步分析招标文件→校核工程量清单→编 制施工组织设计→确定报价→形成投标文件→进行投标担保 20、下列有关施工合同文件解释顺序错误的是(A)。A、工程量清单、图纸 21、下列有关劳务分包合同违约责任,说法错误的是(C)。C、一方违约后,不管另一方要求 违约方继续履行合同与否,合同自行终止 22、在我国工程合同索赔中,既有承包人向发包人索赔,也有发包人向承包人索赔,这说明 我国工程合同索赔是(B)。B、单向的 23、施工成本管理的六项主要任务中,首先是成本预测,成本预测的紧后工作应为(B)。 B、成本计划 24、按照《建设工程工程量清单计划规范》计算工程进度款,单价的计算方法有(A)。 A、工料单价法和综合单价法

专业综合训练题目 (1)

大三专业综合训练题目 电波传输组 题目:光信号线性传输、成像及控制原理及设计 设计平台:建议Matlab或C++ 基础课程:电磁波、信号与系统、信号处理、图像处理 项目内容: 1.光信号的定义和参量表征 2.学习激光线性传输模型,实现激光传输仿真算法及程序 3.学习透镜成像原理,基于快速傅立叶变换实现成像算法及程序 4.基于线性传输和成像原理及程序,实现光信号的传输、滤波等功能控制。 5.基于特定参数,基于程序仿真结果,分析及表征光信号变化过程 考核要求: 1.算法原理:能了解并说明传输模型或成像原理,并接受程序相关模块 2.程序功能:仿真程序能编译通过并运行出结果,能对结果进行必要的处理和 说明。 3.开发文档:针对特定功能(成像、滤波或其他参量控制),基于特定光信号形 状(教师组的规定)实现整个功能的仿真及分析,给出相应设计分析报告测试及验收: 1.代码测试:能编译通过,解释不同功能分块给出算法流程。依据熟练及理解 程度确定成绩层次 2.功能测试:依据不同要求,能分析及解释仿真设计结果。依据能否比较自信 及熟练的分析内在原理与仿真结果的关系确定层次; 3.开发文档:提交设计文档,包括背景、原理、算法、结果分析比较,功能是 否实现等,严格按照学术论文要求撰写。依据文档撰写水平、结论等确定层次。

集成电路与通信电子方向组 题目:基于模拟乘法器芯片MC1496的调幅与检波电路设计与实现一.设计的目的 通过课程设计,使学生加强对通信电子技术电路的理解,学会查寻资料﹑方案比较,以及设计计算等环节。进一步提高分析解决实际问题的能力,创造一个动脑动手﹑独立开展电路实验的机会,锻炼分析﹑解决通信电子电路问题的实际本领,真正实现由课本知识向实际能力的转化;通过典型电路的设计与制作,加深对基本原理的了解,增强学生的实践能力。 二.课程设计的内容与指标 (1)振幅调制器的设计 设计要求:用模拟乘法器MC1496设计一振幅调制器,使其能实现信号幅度调制主要指标:载波频率:15MHz 正弦波调制信号:1KHz 正弦波 输出信号幅度:大于等于5V(峰峰值)无明显失真 (2)检波器设计 设计要求:用模拟乘法器MC1496设计一调幅信号同步检波器 主要指标:输入调幅信号:载波频率15MHz 正弦波,调制信号:1KHz 正弦波,幅度大于1V,调制度为60%。输出信号:无明显失真,幅度大于5V。 三.要求 (1)要有较为详细理论设计原理与分析 (2)采用MC1496内部晶体管电路,使用Multisim或PSPICE软件对所设计的电路进行仿真 (3)结果满足第二条中的指标

相关文档
相关文档 最新文档