最優裝載問題_第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、優先隊列式分支限界法求解

解裝載問題的優先隊列式分支限界法用最大優先隊列存儲活結點表?;罱Y點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分上班,雖然時間長了點但,熱情而年輕的我并沒有絲毫的感到過累,我覺得這是一種激勵,明白了人生,感悟了生活,接觸了社會,了解了未來.在餐廳里雖然我是以傳菜為主,但我不時還要做一些工作以外的事情,有時要做一些清潔的工作,在學校里也許有老師分配說今天做些什么,明天做些什么,但在這里,不一定有人會告訴你這些,你必須自覺地去做,而且要盡自已的努力做到最好,一件工作的效率就會得到別人不同的評價。在學校,只有學習的氛圍,畢竟學校是學習的場所,每一個學生都在為取得更高的成績而努力。而這里是工作的場所,每個人都會為了獲得更多的報酬而努力,無論是學習還是工作,都存在著競爭,在競爭中就要不斷學習別人先進的地方,也要不斷學習別人怎樣做人,以提高自已的能力!記得老師曾經說過大學是一個小社會,但我總覺得校園里總少不了那份純真,那份真誠,盡管是大學高校,學生還終歸保持著學生的身份。而走進企業,接觸各種各樣的客戶、同事、上司等等,關系復雜,但我得去面對我從未面對過的一切。記得在我校舉行的招聘會上所反映出來的其中一個問題是,學生的實際操作能力與在校理論學習有一定的差距。在這次實踐中,這一點我感受很深。在學校,理論的學習很多,而且是多方面的,幾乎是面面俱到;而在實際工作中,可能會遇到書本上沒學到的,又可能是書本上的知識一點都用不上的情況?;蛟S工作中運用到的只是很簡單的問題,只要套公式似的就能完成一項任務。有時候我會埋怨,實際操作這么簡單,但為什么書本上的知識讓人學得這么吃力呢?這是社會與學校脫軌了嗎?也許老師是正確的,雖然大學生生活不像踏入社會,但是總算是社會的一個部分,這是不可否認的事實。但是有時也要感謝老師孜孜不倦地教導,有些問題有了有課堂上地認真消化,有平時作業作補充,我比一部人具有更高的起點,有了更多的知識層面去應付各種工作上的問題,作為一名大學生,應該懂得與社會上各方面的人交往,處理社會上所發生的各方面的事情,這就意味著大學生要注意到社會實踐,社會實踐必不可少。畢竟,很快我就不再是一名大學生,而是社會中的一分子,要與社會交流,為社會做貢獻。只懂得紙上談兵是遠遠不及的,以后的人生旅途是漫長的,為了鍛煉自己成為一名合格的、對社會有用的人才.很多在學校讀書的人都說寧愿出去工作,不愿在校讀書;而已在社會的人都寧愿回校讀書。我們上學,學習先進的科學知識,為的都是將來走進社會,獻出自己的一份力量,我們應該在今天努力掌握專業知識,明天才能更好地為社會服務。實踐心得:雖然這次的實踐只有短短的幾天,而且從事的是比較簡單的服務工作,但是通過與各種各樣的人接觸,還是讓我學會了很多道理。首先是明白了守時的重要性。工作和上學是兩種完全不同的概念,上學是不遲到很多時候是因為懼怕老師的責怪,而當你走上了工作崗位,這里更多的是由于自己內心的一種責任。這種責任是我學會客服自己的惰性,準時走上自己的崗位。這對我以后的學習生活也是一種鞭策,時刻牢記自己的責任,并努力加強自己的時間觀念。其次讓我真實的體會到了合作的重要性。雖然我工作的只是小小的一家餐廳,但是從點單到制作到遞送到結帳這一環環的工作都是有分工的,只有這樣才能使整家店的工作效率都大大的提高。以前雖然在書上看見過很多的團隊合作的例子,但這一次是深刻的體會到了,正所謂“眾人拾柴火焰高”,“團結就是力量”。在以后的學習和工作中,一定會要牢記這一點,將自己融入到集體中,和大家一起攜手走向輝煌。再次,這次打工的經歷也讓我的心理更加趨于成熟。在餐廳里每天面對形形色色的客人,重復著單調的工作。讓從未涉世的我還是有那么一點點不適應的,但是堅持就是勝利。打工畢竟和在家是完全不同的概念,我們學會需要忍耐,需要學會承受,需要學會堅持。將自己這短短的一月的實踐同理論相聯系,我了解到當代大學生與以往的大學生相比較,求學經歷、生活條件、所處社會大環境都相對優越,也沒有經過必要的挫折教育,因此,意志往往比較脆弱,克服困難的能力也較差,常常是對社會的要求較高,對自我的要求較低。大學生的責任意識日益成為社會關注的熱點問題,責任意識和誠信意識成為不少地方采用人才的兩個新標準。大學生參與社會實踐是促進大學生素質教育,加強和改進青年學生思想政治工作,引導學生健康成長和成才的重要舉措,是學生接觸社會、了解社會、服務社會,培養創新精神、實踐能力和動手操作能力的重要途徑。對于當代大學生來說,應當刻苦學習專業知識,不斷提高綜合素質和運用知識的技能。從大學生活的開始到走進社會的大圈子中,就只有短短的幾年時間,誰不想在將來的社會中能有一席之地呢?所以大家認為大學生必須投身校園內外的各類實踐活動,有助于鍛煉品質,提高能力??梢娖鋵Υ髮W生綜合素質的提高有不可抵觸的重要性。不能否認有過打工經歷的同學,看起來要比其它同學更成熟、社會適應力更強,但對于學生,社會適應力只是一方面的衡量指標,大學期間主要的任務是學業結構的搭建,即知識結構、專業結構的搭建,為了打工影響甚至放棄了專業知識的學習,結果是得不償失的。實踐出真知,社會實踐活動是大學生活的重要組成部份,培養當代大學生的歷史使命感、社會責任感和積極向上的精神風貌,充分發揮實踐育人的作用,提高大學生的綜合素質,也是檢驗所學理論知識的標準,社會實踐不但為大學生提供了一個發揮自我才能,展現自我風采的舞臺,也是培養和鍛煉同學們綜合能力的一個階梯,更是一個大學生進入社會,走上工作崗位前的演練場地。社會實踐活動,從而確定比較正確的人生前進方向。河南理工大學計算機科學與技術學院實習報告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

提交評論