最优装载问题_第1页
最优装载问题_第2页
最优装载问题_第3页
最优装载问题_第4页
最优装载问题_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

问题描述

有一批共个集装箱要装上2艘载重量分别为C1和C2的轮船,其中集装箱i的重量为Wi,且装载问题要求确定是否有一个合理的装载方案可将这个集装箱装上这2艘轮船。如果有,找出一种装载方案。

容易证明:如果一个给定装载问题有解,则采用下面的策略可得到最优装载方案。

(1)首先将第一艘轮船尽可能装满;

(2)将剩余的集装箱装上第二艘轮船。

1、队列式分支限界法求解

在算法的循环体中,首先检测当前扩展结点的左儿子结点是否为可行结点。如果是则将其加入到活结点队列中。然后将其右儿子结点加入到活结点队列中(右儿子结点一定是可行结点)。2个儿子结点都产生后,当前扩展结点被舍弃。

活结点队列中的队首元素被取出作为当前扩展结点,由于队列中每一层结点之后都有一个尾部标记-1,故在取队首元素时,活结点队列一定不空。当取出的元素是-1时,再判断当前队列是否为空。如果队列非空,则将尾部标记-1加入活结点队列,算法开始处理下一层的活结点。

节点的左子树表示将此集装箱装上船,右子树表示不将此集装箱装上船。设bestw是当前最优解;ew是当前扩展结点所相应的重量;r是剩余集装箱的重量。则当ew+r<bestw时,可将其右子树剪去,因为此时若要船装最多集装箱,就应该把此箱装上船。另外,为了确保右子树成功剪枝,应该在算法每一次进入左子树的时候更新bestw的值。

为了在算法结束后能方便地构造出与最优值相应的最优解,算法必须存储相应子集树中从活结点到根结点的路径。为此目的,可在每个结点处设置指向其父结点的指针,并设置左、右儿子标志。

找到最优值后,可以根据parent回溯到根节点,找到最优解。

算法具体代码实现如下:

1、Queue.h[cpp]

\o"viewplain"viewplain

\o"copy"copy#include<iostream>

using

namespace

std;

template

<class

T>

class

Queue

{

public:

Queue(int

MaxQueueSize=50);

~Queue(){delete

[]

queue;}

bool

IsEmpty()const{return

front==rear;}

bool

IsFull(){return

(

(

(rear+1)

%MaxSize==front

)?1:0);}

T

Top()

const;

T

Last()

const;

Queue<T>&

Add(const

T&

x);

Queue<T>&

AddLeft(const

T&

x);

Queue<T>&

Delete(T

&x);

void

Output(ostream&

out)const;

int

Length(){return

(rear-front);}

private:

int

front;

int

rear;

int

MaxSize;

T

*queue;

};

template<class

T>

Queue<T>::Queue(int

MaxQueueSize)

{

MaxSize=MaxQueueSize+1;

queue=new

T[MaxSize];

front=rear=0;

}

template<class

T

>

T

Queue<T>::Top()const

{

if(IsEmpty())

{

cout<<"queue:no

element,no!"<<endl;

return

0;

}

else

return

queue[(front+1)

%

MaxSize];

}

template<class

T>

T

Queue<T>

::Last()const

{

if(IsEmpty())

{

cout<<"queue:no

element"<<endl;

return

0;

}

else

return

queue[rear];

}

template<class

T>

Queue<T>&

Queue<T>::Add(const

T&

x)

{

if(IsFull())cout<<"queue:no

memory"<<endl;

else

{

rear=(rear+1)%

MaxSize;

queue[rear]=x;

}

return

*this;

}

template<class

T>

Queue<T>&

Queue<T>::AddLeft(const

T&

x)

{

if(IsFull())cout<<"queue:no

memory"<<endl;

else

{

front=(front+MaxSize-1)%

MaxSize;

queue[(front+1)%

MaxSize]=x;

}

return

*this;

}

template<class

T>

Queue<T>&

Queue<T>

::Delete(T

&

x)

{

if(IsEmpty())cout<<"queue:no

element(delete)"<<endl;

else

{

front=(front+1)

%

MaxSize;

x=queue[front];

}

return

*this;

}

template<class

T>

void

Queue

<T>::Output(ostream&

out)const

{

for(int

i=rear%MaxSize;i>=(front+1)%MaxSize;i--)

out<<queue[i];

}

template<class

T>

ostream&

operator

<<

(ostream&

out,const

Queue<T>&

x)

{x.Output(out);return

out;}

2、6d3-1.cpp[cpp]

\o"viewplain"viewplain

\o"copy"copy//装载问题

队列式分支限界法求解

#include

"stdafx.h"

#include

"Queue.h"

#include

<iostream>

using

namespace

std;

const

int

N

=

4;

template<class

Type>

class

QNode

{

template<class

Type>

friend

void

EnQueue(Queue<QNode<Type>*>&Q,Type

wt,int

i,int

n,Type

bestw,QNode<Type>*E,QNode<Type>

*&bestE,int

bestx[],bool

ch);

template<class

Type>

friend

Type

MaxLoading(Type

w[],Type

c,int

n,int

bestx[]);

private:

QNode

*parent;

//指向父节点的指针

bool

LChild;

//左儿子标识

Type

weight;

//节点所相应的载重量

};

template<class

Type>

void

EnQueue(Queue<QNode<Type>*>&Q,Type

wt,int

i,int

n,Type

bestw,QNode<Type>*E,QNode<Type>

*&bestE,int

bestx[],bool

ch);

template<class

Type>

Type

MaxLoading(Type

w[],Type

c,int

n,int

bestx[]);

int

main()

{

float

c

=

70;

float

w[]

=

{0,20,10,26,15};//下标从1开始

int

x[N+1];

float

bestw;

cout<<"轮船载重为:"<<c<<endl;

cout<<"待装物品的重量分别为:"<<endl;

for(int

i=1;

i<=N;

i++)

{

cout<<w[i]<<"

";

}

cout<<endl;

bestw

=

MaxLoading(w,c,N,x);

cout<<"分支限界选择结果为:"<<endl;

for(int

i=1;

i<=4;

i++)

{

cout<<x[i]<<"

";

}

cout<<endl;

cout<<"最优装载重量为:"<<bestw<<endl;

return

0;

}

//将活节点加入到活节点队列Q中

template<class

Type>

void

EnQueue(Queue<QNode<Type>*>&Q,Type

wt,int

i,int

n,Type

bestw,QNode<Type>*E,QNode<Type>

*&bestE,int

bestx[],bool

ch)

{

if(i

==

n)//可行叶节点

{

if(wt

==

bestw)

{

//当前最优装载重量

bestE

=

E;

bestx[n]

=

ch;

}

return;

}

//非叶节点

QNode<Type>

*b;

b

=

new

QNode<Type>;

b->weight

=

wt;

b->parent

=

E;

b->LChild

=

ch;

Q.Add(b);

}

template<class

Type>

Type

MaxLoading(Type

w[],Type

c,int

n,int

bestx[])

{//队列式分支限界法,返回最优装载重量,bestx返回最优解

//初始化

Queue<QNode<Type>*>

Q;

//活节点队列

Q.Add(0);

//同层节点尾部标识

int

i

=

1;

//当前扩展节点所处的层

Type

Ew

=

0,

//扩展节点所相应的载重量

bestw

=

0,

//当前最优装载重量

r

=

0;

//剩余集装箱重量

for(int

j=2;

j<=n;

j++)

{

r

+=

w[j];

}

QNode<Type>

*E

=

0,

//当前扩展节点

*bestE;

//当前最优扩展节点

//搜索子集空间树

while(true)

{

//检查左儿子节点

Type

wt

=

Ew

+

w[i];

if(wt

<=

c)//可行节点

{

if(wt>bestw)

{

bestw

=

wt;

}

EnQueue(Q,wt,i,n,bestw,E,bestE,bestx,true);

}

//检查右儿子节点

if(Ew+r>bestw)

{

EnQueue(Q,Ew,i,n,bestw,E,bestE,bestx,false);

}

Q.Delete(E);//取下一扩展节点

if(!E)//同层节点尾部

{

if(Q.IsEmpty())

{

break;

}

Q.Add(0);

//同层节点尾部标识

Q.Delete(E);

//取下一扩展节点

i++;

//进入下一层

r-=w[i];

//剩余集装箱重量

}

Ew

=E->weight;

//新扩展节点所对应的载重量

}

//构造当前最优解

for(int

j=n-1;

j>0;

j--)

{

bestx[j]

=

bestE->LChild;

bestE

=

bestE->parent;

}

return

bestw;

}

程序运行结果如图:

2、优先队列式分支限界法求解

解装载问题的优先队列式分支限界法用最大优先队列存储活结点表。活结点x在优先队列中的优先级定义为从根结点到结点x的路径所相应的载重量再加上剩余集装箱的重量之和。

优先队列中优先级最大的活结点成为下一个扩展结点。以结点x为根的子树中所有结点相应的路径的载重量不超过它的优先级。子集树中叶结点所相应的载重量与其优先级相同。

在优先队列式分支限界法中,一旦有一个叶结点成为当前扩展结点,则可以断言该叶结点所相应的解即为最优解。此时可终止算法。

算法具体代码实现如下:

1、MaxHeap.h[cpp]

\o"viewplain"viewplain

\o"copy"copytemplate<class

T>

class

MaxHeap

{

public:

MaxHeap(int

MaxHeapSize

=

10);

~MaxHeap()

{delete

[]

heap;}

int

Size()

const

{return

CurrentSize;}

T

Max()

{

//查

if

(CurrentSize

==

0)

{

throw

OutOfBounds();

}

return

heap[1];

}

MaxHeap<T>&

Insert(const

T&

x);

//增

MaxHeap<T>&

DeleteMax(T&

x);

//删

void

Initialize(T

a[],

int

size,

int

ArraySize);

private:

int

CurrentSize,

MaxSize;

T

*heap;

//

element

array

};

template<class

T>

MaxHeap<T>::MaxHeap(int

MaxHeapSize)

{//

Max

heap

constructor.

MaxSize

=

MaxHeapSize;

heap

=

new

T[MaxSize+1];

CurrentSize

=

0;

}

template<class

T>

MaxHeap<T>&

MaxHeap<T>::Insert(const

T&

x)

{//

Insert

x

into

the

max

heap.

if

(CurrentSize

==

MaxSize)

{

cout<<"no

space!"<<endl;

return

*this;

}

//

寻找新元素x的位置

//

i——初始为新叶节点的位置,逐层向上,寻找最终位置

int

i

=

++CurrentSize;

while

(i

!=

1

&&

x

>

heap[i/2])

{

//

i不是根节点,且其值大于父节点的值,需要继续调整

heap[i]

=

heap[i/2];

//

父节点下降

i

/=

2;

//

继续向上,搜寻正确位置

}

heap[i]

=

x;

return

*this;

}

template<class

T>

MaxHeap<T>&

MaxHeap<T>::DeleteMax(T&

x)

{//

Set

x

to

max

element

and

delete

max

element

from

heap.

//

check

if

heap

is

empty

if

(CurrentSize

==

0)

{

cout<<"Empty

heap!"<<endl;

return

*this;

}

x

=

heap[1];

//

删除最大元素

//

重整堆

T

y

=

heap[CurrentSize--];

//

取最后一个节点,从根开始重整

//

find

place

for

y

starting

at

root

int

i

=

1,

//

current

node

of

heap

ci

=

2;

//

child

of

i

while

(ci

<=

CurrentSize)

{

//

使ci指向i的两个孩子中较大者

if

(ci

<

CurrentSize

&&

heap[ci]

<

heap[ci+1])

{

ci++;

}

//

y的值大于等于孩子节点吗?

if

(y

>=

heap[ci])

{

break;

//

是,i就是y的正确位置,退出

}

//

否,需要继续向下,重整堆

heap[i]

=

heap[ci];

//

大于父节点的孩子节点上升

i

=

ci;

//

向下一层,继续搜索正确位置

ci

*=

2;

}

heap[i]

=

y;

return

*this;

}

template<class

T>

void

MaxHeap<T>::Initialize(T

a[],

int

size,int

ArraySize)

{//

Initialize

max

heap

to

array

a.

delete

[]

heap;

heap

=

a;

CurrentSize

=

size;

MaxSize

=

ArraySize;

//

从最后一个内部节点开始,一直到根,对每个子树进行堆重整

for

(int

i

=

CurrentSize/2;

i

>=

1;

i--)

{

T

y

=

heap[i];

//

子树根节点元素

//

find

place

to

put

y

int

c

=

2*i;

//

parent

of

c

is

target

//

location

for

y

while

(c

<=

CurrentSize)

{

//

heap[c]

should

be

larger

sibling

if

(c

<

CurrentSize

&&

heap[c]

<

heap[c+1])

{

c++;

}

//

can

we

put

y

in

heap[c/2]?

if

(y

>=

heap[c])

{

break;

//

yes

}

//

no

heap[c/2]

=

heap[c];

//

move

child

up

c

*=

2;

//

move

down

a

level

}

heap[c/2]

=

y;

}

}

2、6d3-2.cpp[cpp]

\o"viewplain"viewplain

\o"copy"copy//装载问题

优先队列式分支限界法求解

#include

"stdafx.h"

#include

"MaxHeap.h"

#include

<iostream>

using

namespace

std;

const

int

N

=

4;

class

bbnode;

template<class

Type>

class

HeapNode

{

template<class

Type>

friend

void

AddLiveNode(MaxHeap<HeapNode<Type>>&

H,bbnode

*E,Type

wt,bool

ch,int

lev);

template<class

Type>

friend

Type

MaxLoading(Type

w[],Type

c,int

n,int

bestx[]);

public:

operator

Type()

const{return

uweight;}

private:

bbnode

*ptr;

//指向活节点在子集树中相应节点的指针

Type

uweight;

//活节点优先级(上界)

int

level;

//活节点在子集树中所处的层序号

};

class

bbnode

{

template<class

Type>

friend

void

AddLiveNode(MaxHeap<HeapNode<Type>>&

H,bbnode

*E,Type

wt,bool

ch,int

lev);

template<class

Type>

friend

Type

MaxLoading(Type

w[],Type

c,int

n,int

bestx[]);

friend

class

AdjacencyGraph;

private:

bbnode

*parent;

//指向父节点的指针

bool

LChild;

//左儿子节点标识

};

template<class

Type>

void

AddLiveNode(MaxHeap<HeapNode<Type>>&

H,bbnode

*E,Type

wt,bool

ch,int

lev);

template<class

Type>

Type

MaxLoading(Type

w[],Type

c,int

n,int

bestx[]);

int

main()

{

float

c

=

70;

float

w[]

=

{0,20,10,26,15};//下标从1开始

int

x[N+1];

float

bestw;

cout<<"轮船载重为:"<<c<<endl;

cout<<"待装物品的重量分别为:"<<endl;

for(int

i=1;

i<=N;

i++)

{

cout<<w[i]<<"

";

}

cout<<endl;

bestw

=

MaxLoading(w,c,N,x);

cout<<"分支限界选择结果为:"<<endl;

for(int

i=1;

i<=4;

i++)

{

cout<<x[i]<<"

";

}

cout<<endl;

cout<<"最优装载重量为:"<<bestw<<endl;

return

0;

}

//将活节点加入到表示活节点优先队列的最大堆H中

template<class

Type>

void

AddLiveNode(MaxHeap<HeapNode<Type>>&

H,bbnode

*E,Type

wt,bool

ch,int

lev)

{

bbnode

*b

=

new

bbnode;

b->parent

=

E;

b->LChild

=

ch;

HeapNode<Type>

N;

N.uweight

=

wt;

N.level

=

lev;

N.ptr

=

b;

H.Insert(N);

}

//优先队列式分支限界法,返回最优载重量,bestx返回最优解

template<class

Type>

Type

MaxLoading(Type

w[],Type

c,int

n,int

bestx[])

{

//定义最大的容量为1000

MaxHeap<HeapNode<Type>>

H(1000);

//定义剩余容量数组

Type

*r

=

new

Type[n+1];

r[n]

=

0;

for(int

j=n-1;

j>0;

j--)

{

r[j]

=

r[j+1]

+

w[j+1];

}

//初始化

int

i

=

1;//当前扩展节点所处的层

bbnode

*E

=

0;//当前扩展节点

Type

Ew

=

0;

//扩展节点所相应的载重量

//搜索子集空间树

while(i!=n+1)//非叶子节点

{

//检查当前扩展节点的儿子节点

if(Ew+w[i]<=c)

{

AddLiveNode(H,E,Ew+w[i]+r[i],true,i+1);

}

//右儿子节点

AddLiveNode(H,E,Ew+r[i],false,i+1);

//取下一扩展节点

HeapNode<Type>

N;

H.DeleteMax(N);//非空

i

=

N.level;

E

=

N.ptr;

Ew

=

N.uweight

-

r[i-1];

}

//构造当前最优解

for(int

j=n;

j>0;

j--)

{

bestx[j]

=

E->LChild;

E

=

E->parent;

}

return

Ew;

}

程序运行结果如图:

社会实践报告系别:班级:学号:姓名:作为祖国未来的事业的继承人,我们这些大学生应该及早树立自己的历史责任感,提高自己的社会适应能力。假期的社会实践就是很好的锻炼自己的机会。当下,挣钱早已不是打工的唯一目的,更多的人将其视为参加社会实践、提高自身能力的机会。许多学校也积极鼓励大学生多接触社会、了解社会,一方面可以把学到的理论知识应用到实践中去,提高各方面的能力;另一方面可以积累工作经验对日后的就业大有裨益。进行社会实践,最理想的就是找到与本专业对口单位进行实习,从而提高自己的实战水平,同时可以将课本知识在实践中得到运用,从而更好的指导自己今后的学习。但是作为一名尚未毕业的大学生,由于本身具备的专业知识还十分的有限,所以我选择了打散工作为第一次社会实践的方式。目的在于熟悉社会。就职业本身而言,并无高低贵贱之分,存在即为合理。通过短短几天的打工经历可以让长期处于校园的我们对社会有一种更直观的认识。实践过程:自从走进了大学,就业问题就似乎总是围绕在我们的身边,成了说不完的话题。在现今社会,招聘会上的大字报都总写着“有经验者优先”,可还在校园里面的我们这班学子社会经验又会拥有多少呢?为了拓展自身的知识面,扩大与社会的接触面,增加个人在社会竞争中的经验,锻炼和提高自己的能力,以便在以后毕业后能真正真正走入社会,能够适应国内外的经济形势的变化,并且能够在生活和工作中很好地处理各方面的问题,我开始了我这个假期的社会实践-走进天源休闲餐厅。实践,就是把我们在学校所学的理论知识,运用到客观实际中去,使自己所学的理论知识有用武之地。只学不实践,那么所学的就等于零。理论应该与实践相结合。另一方面,实践可为以后找工作打基础。通过这段时间的实习,学到一些在学校里学不到的东西。因为环境的不同,接触的人与事不同,从中所学的东西自然就不一样了。要学会从实践中学习,从学习中实践。而且在中国的经济飞速发展,又加入了世贸,国内外经济日趋变化,每天都不断有新的东西涌现,在拥有了越来越多的机会的同时,也有了更多的挑战,前天才刚学到的知识可能在今天就已经被淘汰掉了,中国的经济越和外面接轨,对于人才的要求就会越来越高,我们不只要学好学校里所学到的知识,还要不断从生活中,实践中学其他知识,不断地从各方面武装自已,才能在竞争中突出自已,表现自已。在餐厅里,别人一眼就能把我人出是一名正在读书的学生,我问他们为什么,他们总说从我的脸上就能看出来,也许没有经历过社会的人都有我这种不知名遭遇吧!我并没有因为我在他们面前没有经验而退后,我相信我也能做的像他们一样好.我的工作是在那做传菜生,每天9点钟-下午2点再从下午的4点-晚上8:30分上班,虽然时间长了点但,热情而年轻的我并没有丝毫的感到过累,我觉得这是一种激励,明白了人生,感悟了生活,接触了社会,了解了未来.在餐厅里虽然我是以传菜为主,但我不时还要做一些工作以外的事情,有时要做一些清洁的工作,在学校里也许有老师分配说今天做些什么,明天做些什么,但在这里,不一定有人会告诉你这些,你必须自觉地去做,而且要尽自已的努力做到最好,一件工作的效率就会得到别人不同的评价。在学校,只有学习的氛围,毕竟学校是学习的场所,每一个学生都在为取得更高的成绩而努力。而这里是工作的场所,每个人都会为了获得更多的报酬而努力,无论是学习还是工作,都存在着竞争,在竞争中就要不断学习别人先进的地方,也要不断学习别人怎样做人,以提高自已的能力!记得老师曾经说过大学是一个小社会,但我总觉得校园里总少不了那份纯真,那份真诚,尽管是大学高校,学生还终归保持着学生的身份。而走进企业,接触各种各样的客户、同事、上司等等,关系复杂,但我得去面对我从未面对过的一切。记得在我校举行的招聘会上所反映出来的其中一个问题是,学生的实际操作能力与在校理论学习有一定的差距。在这次实践中,这一点我感受很深。在学校,理论的学习很多,而且是多方面的,几乎是面面俱到;而在实际工作中,可能会遇到书本上没学到的,又可能是书本上的知识一点都用不上的情况。或许工作中运用到的只是很简单的问题,只要套公式似的就能完成一项任务。有时候我会埋怨,实际操作这么简单,但为什么书本上的知识让人学得这么吃力呢?这是社会与学校脱轨了吗?也许老师是正确的,虽然大学生生活不像踏入社会,但是总算是社会的一个部分,这是不可否认的事实。但是有时也要感谢老师孜孜不倦地教导,有些问题有了有课堂上地认真消化,有平时作业作补充,我比一部人具有更高的起点,有了更多的知识层面去应付各种工作上的问题,作为一名大学生,应该懂得与社会上各方面的人交往,处理社会上所发生的各方面的事情,这就意味着大学生要注意到社会实践,社会实践必不可少。毕竟,很快我就不再是一名大学生,而是社会中的一分子,要与社会交流,为社会做贡献。只懂得纸上谈兵是远远不及的,以后的人生旅途是漫长的,为了锻炼自己成为一名合格的、对社会有用的人才.很多在学校读书的人都说宁愿出去工作,不愿在校读书;而已在社会的人都宁愿回校读书。我们上学,学习先进的科学知识,为的都是将来走进社会,献出自己的一份力量,我们应该在今天努力掌握专业知识,明天才能更好地为社会服务。实践心得:虽然这次的实践只有短短的几天,而且从事的是比较简单的服务工作,但是通过与各种各样的人接触,还是让我学会了很多道理。首先是明白了守时的重要性。工作和上学是两种完全不同的概念,上学是不迟到很多时候是因为惧怕老师的责怪,而当你走上了工作岗位,这里更多的是由于自己内心的一种责任。这种责任是我学会客服自己的惰性,准时走上自己的岗位。这对我以后的学习生活也是一种鞭策,时刻牢记自己的责任,并努力加强自己的时间观念。其次让我真实的体会到了合作的重要性。虽然我工作的只是小小的一家餐厅,但是从点单到制作到递送到结帐这一环环的工作都是有分工的,只有这样才能使整家店的工作效率都大大的提高。以前虽然在书上看见过很多的团队合作的例子,但这一次是深刻的体会到了,正所谓“众人拾柴火焰高”,“团结就是力量”。在以后的学习和工作中,一定会要牢记这一点,将自己融入到集体中,和大家一起携手走向辉煌。再次,这次打工的经历也让我的心理更加趋于成熟。在餐厅里每天面对形形色色的客人,重复着单调的工作。让从未涉世的我还是有那么一点点不适应的,但是坚持就是胜利。打工毕竟和在家是完全不同的概念,我们学会需要忍耐,需要学会承受,需要学会坚持。将自己这短短的一月的实践同理论相联系,我了解到当代大学生与以往的大学生相比较,求学经历、生活条件、所处社会大环境都相对优越,也没有经过必要的挫折教育,因此,意志往往比较脆弱,克服困难的能力也较差,常常是对社会的要求较高,对自我的要求较低。大学生的责任意识日益成为社会关注的热点问题,责任意识和诚信意识成为不少地方采用人才的两个新标准。大学生参与社会实践是促进大学生素质教育,加强和改进青年学生思想政治工作,引导学生健康成长和成才的重要举措,是学生接触社会、了解社会、服务社会,培养创新精神、实践能力和动手操作能力的重要途径。对于当代大学生来说,应当刻苦学习专业知识,不断提高综合素质和运用知识的技能。从大学生活的开始到走进社会的大圈子中,就只有短短的几年时间,谁不想在将来的社会中能有一席之地呢?所以大家认为大学生必须投身校园内外的各类实践活动,有助于锻炼品质,提高能力。可见其对大学生综合素质的提高有不可抵触的重要性。不能否认有过打工经历的同学,看起来要比其它同学更成熟、社会适应力更强,但对于学生,社会适应力只是一方面的衡量指标,大学期间主要的任务是学业结构的搭建,即知识结构、专业结构的搭建,为了打工影响甚至放弃了专业知识的学习,结果是得不偿失的。实践出真知,社会实践活动是大学生活的重要组成部份,培养当代大学生的历史使命感、社会责任感和积极向上的精神风貌,充分发挥实践育人的作用,提高大学生的综合素质,也是检验所学理论知识的标准,社会实践不但为大学生提供了一个发挥自我才能,展现自我风采的舞台,也是培养和锻炼同学们综合能力的一个阶梯,更是一个大学生进入社会,走上工作岗位前的演练场地。社会实践活动,从而确定比较正确的人生前进方向。河南理工大学计算机科学与技术学院实习报告20—20学年第学期实习名称生产实习实习地点实习日期学生姓名学号专业班级指导教师20**年**月**日一、实习基本情况20**年**月通过网络招聘,我应聘到河南中方纺业有限公司进行实习,该公司位于周口市,主要承担棉纺制造与销售工作,进入公司后我被分配到信息管理部门,主要从事的工作是对公司的网络进行管理与维护,同时对公司网站的管理与维护进行学习,三个月的实习让学会了从不同的角度去看待问题和解决问题,对网络工程师的工作有了全面的认识,为以后的就业积累了经验。二、实习内容1.单位情况河南中方实业(集团)有限公司是以棉花种植、收购、加工、经营、仓储、纺织及棉花与纺织品进出口为产业链条,集研发、生产、经营、投资、管理于一体的现代产业化集团企业。旗下拥有多家从事棉花、纺织等生产、经营的全资、控股子公司。经过多年的发展,公司已形成了以“棉花经营、棉花物流、棉纺织、纺织品出口”为主干业务,以“国内、国际”为两大市场的经营格局。棉花经营涵盖进口棉、新疆棉、地产棉三大系列多个品种;棉花物流业务以地产棉交易为主,填补了河南无地产棉交易市场的空白,并融入了全国棉花物流体系;棉纱产品从精梳40s到精梳120s、气流纺纱16s到21s等两大系列;外贸出口涵盖棉纱、面料、服装等三大系列、400多个品种。公司营销网络覆盖国内众多棉花生产、经营、纺织企业,大型专业公司及国际棉花、纺织工贸公司,并与之建立了长期稳固的互助合作关系,业务范围遍及河南、河北、湖北、新疆、甘肃、浙江、江苏、山东、广东、福建、香港、新加坡、印度、澳大利亚、美国等区域。2.技术培训初到公司后,公司进行了一系列的公司工作相关培训,如企业文化、企业制度等,我所在的信息管理部门也进行了一些技术培训,主要内容有办公软件的使用、公司网络的日常维护工作等,这些培训让我对网络专业有了更进一步的了解,对网络工程师应该干什么有了一个整体的了解。3.工作内容在实习期间我先后主动了解了公司职能范围、机构设置、人员编制等基本情况,并对人事教育、网络管理重

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论