第一篇:生產(chǎn)實(shí)習(xí)報告(范文模版)
生產(chǎn)實(shí)習(xí)報告
摘要:通過這次生產(chǎn)實(shí)習(xí),本人基本熟悉并掌握了整個六汾河污水處理廠的工藝流程。同時,對整個污水處理廠的各個處理構(gòu)筑物的運(yùn)行狀態(tài),設(shè)計參數(shù)有了更進(jìn)一步的認(rèn)識。六汾河污水處理廠極大地改善了六汾河及長江馬鞍山段的水環(huán)境質(zhì)量,對長江水資源的保護(hù)及鋼鐵系統(tǒng)廢水的再利用起到了推動和示范作用。
關(guān)鍵詞:六汾河污水處理廠,前言:將課本上的理論知識與生產(chǎn)實(shí)習(xí)實(shí)踐相互有機(jī)結(jié)合,用實(shí)踐驗(yàn)證鞏固所學(xué)知識和增加感性認(rèn)識,了解六汾河污水處理廠的工藝和水平。
正文:本次實(shí)習(xí)的第一個環(huán)節(jié)是安全教育。安全教育是生產(chǎn)實(shí)習(xí)的重要環(huán)節(jié),也是實(shí)際生產(chǎn)中的重中之重。
安全教育:
1,廠部安全教育的主要內(nèi)容
第二篇:生產(chǎn)實(shí)習(xí)報告
一.實(shí)習(xí)記錄
1.7月2日
① 講述Gcc Gcc工具鏈四個步驟:預(yù)處理、編譯、匯編、鏈接。
在Linux操作系統(tǒng)下,在終端中文本編輯的命令為vim +文件名(如test123.c),回車進(jìn)入文件,然后進(jìn)行編寫。編譯命令:gcc +源文件名+-o+可執(zhí)行文件名。運(yùn)行:./ +可執(zhí)行文件名。輸入命令gcc-c test.c 時,則會生成.o文件。
在文本編輯情況下,有三種模式:命令、輸入、末行,它們之間的轉(zhuǎn)換關(guān)系圖為:
a:輸入i/o/a;b:esc;c:冒號,其中可以為wq:保存退出
q!不保存退出,應(yīng)注意的是保存退出需在末行模式下進(jìn)行
幾種命令:gcc-o test test.c-Wall 把所有警告顯示出來
gcc-o test test.c-O2
提高效率(在底層開發(fā)運(yùn)用)
gcc-o test test.c-g
進(jìn)入gdb調(diào)試模式
② Gdb調(diào)試器
可設(shè)置斷點(diǎn)、單步執(zhí)行、查看變量、查看文件 a.-g 編譯
gcc 源文件-o 可執(zhí)行文件名-g b.gdb空格./test 運(yùn)行 c.l +數(shù)字
顯示代碼 d.b +數(shù)字/函數(shù)名
設(shè)置斷點(diǎn) e.r
執(zhí)行程序 f.p +變量
打印變量 g.n 單步執(zhí)行
h.c 依次繼續(xù)往下執(zhí)行
Ctrl +c停止 i.q 退出
j.s 進(jìn)入函數(shù)
info break 斷點(diǎn)信息
快捷鍵:方向鍵:翻命令
Tab鍵:補(bǔ)全命令
修改vim屬性命令:vim ~/.vimrc(~表示當(dāng)前用戶根目錄,.表示隱藏文件)然后編寫:set tabstop=4 set
shiftwidth=4 set
autoindent set
cindent set
nu 2.7月3日
① 版權(quán)和版本聲明:
位于頭文件和函數(shù)定義的開頭,包括版本、作者、更新日期 注釋:函數(shù)介紹、輸入?yún)?shù)、輸出參數(shù)、返回值 /***** 函數(shù)名稱: 函數(shù)功能介紹: 函數(shù)參數(shù);函數(shù)返回值: 其他: *****/ int GStuNum,匈牙利命名規(guī)則;int g_stu_num,unix規(guī)范
調(diào)用多文件編譯
gcc-o test test.c fun.c 兩個源文件生成一個test文件 編寫makefile文件:vim makefile,make編譯。在makefile文件里,要有目標(biāo)并寫出依賴,命令前需加tab鍵。例如: main:test.o
fun.o
gcc-o main-test.o fun.o
test.o:test.c
gcc-c test.c
fun.o:fun.c
gcc-c fun.c
如圖:
也可以用變量代替:開頭CC=gcc(PC平臺),CC=arm-linux-gcc(arm平臺),則可寫成:
$(CC)-o main test.o fun.o
$為使用變量值 clean:rm *.o-rf
rm main-rf ② 數(shù)據(jù)結(jié)構(gòu)
C基本語法:1.變量2.語句3.分支4.循環(huán)5.函數(shù)6.存取7.類8.封裝集成。C++的特性:封裝,集成,多態(tài)
鏈表,最重要的是雙向鏈表(單環(huán)),基本操作:添加、查找、刪除。定義:typedef struct node{ datatype data;struct node *next;}LNode,*LinkList;指向本結(jié)點(diǎn)類型的指針是實(shí)現(xiàn)鏈表的基礎(chǔ),數(shù)據(jù)量大時用鏈表存儲,少時用數(shù)組。指針最大值為2^32=4G,指針0~4G的一個數(shù)字。頭指針為“NULL”則表示一個空表。內(nèi)存分配函數(shù)有malloc和calloc.語句:算術(shù)語句,如i=i+1;i++;關(guān)系語句,i>2;邏輯語句,i<20&&i>10兩個同時成立就成立,||(或)一個成立就成立; 分支:if else 計算閏年if(year%400==0||(year%4==0&&year%100!=0))循環(huán):while(),do{}while();for(i=0;i<10;i++)i=0只在第一次時執(zhí)行。r回車字符,%x指針地址
usleep();sleep(1);1秒跳一次fflush(stdout);題目(1.聲明數(shù)組2.錄入學(xué)生信息3.求最高分4.打?。┐a:struct stu{int s;int num;char name[16];};
int main {struct stu stu_arry[10];} 3.7月4日 鏈表
鏈表的創(chuàng)建與遍歷及查找、增加、刪除結(jié)點(diǎn)各項(xiàng)操作,給出部分代碼進(jìn)行練習(xí),對鏈表的操作進(jìn)行熟悉。著重強(qiáng)調(diào)增加結(jié)點(diǎn)(尾插入)的操作,得到尾結(jié)點(diǎn)的代碼如下:
for(p=h;p!=NULL;p=p->next){if(p->next==NULL)pp=p;} p=malloc(sizeof(struct node));p->num=num;strcpy(p->name,name);pp->next=p;p->next=NULL;return h;4.7月5日
① 熟悉鏈表的各項(xiàng)操作,老師給出代碼,加強(qiáng)出錯部分的練習(xí)。刪除結(jié)點(diǎn)時的考慮,刪除的是頭結(jié)點(diǎn)和非頭結(jié)點(diǎn),代碼如下:
struct node *link_del_node_by_num(struct node *h,int num){
struct node *p;
struct node *pp;
/*find node by num*/
for(pp=p=h;p!=NULL;pp=p,p=p->next)
{
if(p->num==num)
break;
}
/*del node is head node*/
if(p==h)
{
h=h->next;
free(p);
}
/*del node is not head node*/
else
{
pp->next=p->next;
free(p);
}
if(p==NULL)
return NULL;
return h;} ②哈希表
哈希表存儲的基本思想以數(shù)據(jù)表中的每個記錄的關(guān)鍵字k為自變量,通過一種函數(shù)H(k)計算出函數(shù)值。把這個值解釋為一塊連續(xù)存儲空間(即數(shù)組空間)的單元地址(即下標(biāo)),將該記錄存儲到這個單元中。
構(gòu)造方法:1.直接定址法 H(k)=k+c 2.除留余數(shù) H(k)=k%m 3.平方取中法 取關(guān)鍵字平方后的中間幾位作為哈希函數(shù)的地址沖突解決方法:開放定址法 H(k)=(k*k+i)%m,Hi=(H(k)+d(i))%m,i=1,2,??k(d為增量函數(shù))編寫代碼,實(shí)現(xiàn)對哈希表的添加、查找操作。
5.7月6日
整理哈希表的操作代碼,對各個部分進(jìn)行完善,并編寫出了刪除結(jié)點(diǎn)的程序代碼。在刪除頭結(jié)點(diǎn)的時候,程序運(yùn)行結(jié)果總是出錯,詢問老師過后,經(jīng)過老師的講解,最后完成了代碼。
6.7月7日
接口設(shè)計 詞典的存儲格式:文本文件,索引;查詢方式:字符串匹配,二分查找 版本管理工具(git)找出版本之間的差異,回到以前的版本,原則:迭代開發(fā)(逐漸找出功能)、接口分離
$ ^ 所有的依賴文件,$< 只依賴于第一個文件,在linux終端下,查詢手冊用man命令。給出部分代碼,查詢手冊以便理解。
7.7月8日
講述部分函數(shù)的意義,memset直接設(shè)置內(nèi)存,memset(trans,0,WORD_LEN);從trans開始,長度為多少,都設(shè)為0。Shift+* 移光標(biāo)
#if 0??#endif 此時這里的內(nèi)容不需要編譯;#if 1??#endif 能打開
8.7月9日
①如何將windows中的文件傳到虛擬機(jī)中?
控制面板—>網(wǎng)絡(luò)連接—>Vmware Workstation啟用,在終端輸入命令ifconfig eth 0 找到地址192.168.8.131;然后虛擬機(jī)打開ftp命令 /etc/init.d/vsftpd start nestar-an|grep 20是查看ftp狀況的,修改密碼命令passwd student,解壓縮文件tar xf dict.tar.bz2 ②文件的操作
FILE *pFile=fopen(filename,“rb”)fclose(pFile)關(guān)閉文件
fread(buffer,size,size_count,pFile)從文件可讀取size*size_count到buffer中。在代碼中實(shí)現(xiàn)退格鍵的操作。
9.7月10日
實(shí)現(xiàn)了退格鍵操作,并對代碼進(jìn)行完善。下午編寫刪除操作,結(jié)果失敗。
10.7月11日
老師驗(yàn)收程序,進(jìn)行演示。二.設(shè)計過程
1.題目
(1)建立一個哈希表,并實(shí)現(xiàn)添加、刪除、查找的功能(2)設(shè)計一個英漢字典,要求實(shí)現(xiàn)退格輸出功能
2.題目思路
⑴哈希表存儲的基本思想以數(shù)據(jù)表中的每個記錄的關(guān)鍵字k為自變量,通過一種函數(shù)H(k)計算出函數(shù)值。把這個值解釋為一塊連續(xù)存儲空間(即數(shù)組空間)的單元地址(即下標(biāo)),將該記錄存儲到這個單元中。需要用除留余數(shù)法構(gòu)造。首先找到地址標(biāo)號后,然后再根據(jù)鏈表的方式存儲進(jìn)去。能夠?qū)崿F(xiàn)可選擇性的添加數(shù)據(jù),然后顯示出哈希表。可根據(jù)查找的數(shù)據(jù),顯示出位置,及根據(jù)數(shù)據(jù)刪除時,出現(xiàn)的新哈希表。
⑵英漢詞典需要在二進(jìn)制文件里,建立一個字典庫,然后再查找編寫一系列功能函數(shù)。此程序用的是聯(lián)想輸入法,在非標(biāo)準(zhǔn)模式下實(shí)現(xiàn)。能夠按首字母查詢并且實(shí)現(xiàn)選擇單詞,出現(xiàn)意思的功能,并且能夠?qū)崿F(xiàn)退格輸出。此時需要編寫查找匹配單詞的函數(shù),及得到單詞意思的函數(shù)。老師已經(jīng)給出部分代碼,再編寫實(shí)現(xiàn)退格鍵的操作即可。
3.如何實(shí)現(xiàn)
⑴實(shí)現(xiàn)哈希表的流程圖
利用除留余數(shù),得到數(shù)據(jù)位置的代碼 int hash_hash_fun(int data){
int pos;
pos=data%HASH_MAX;
return pos;} 在添加數(shù)據(jù)時,應(yīng)給P開辟空間,之后找到所屬位置,進(jìn)行存儲即可。部分主要代碼如下:
/*malloc memory*/
p=(struct node*)malloc(sizeof(struct node));
/*input data*/
printf(“input add data:n”);
scanf(“%d”,&add_data);
getchar();
pos=hash_hash_fun(add_data);
p->num=add_data;
p->next=hash[pos];
hash[pos]=p;
在查找數(shù)據(jù)時,首先進(jìn)入 hash_hash_fun函數(shù),找到位置后,方可進(jìn)行查找,此函數(shù)是整個程序的關(guān)鍵,輸出結(jié)果為位置加上數(shù)據(jù)的形式。代碼如下:
struct node *hash_find(struct node *hash[],int f_num){
int pos;
struct node *p;
printf(“input find f_num:n”);
scanf(“%d”,&f_num);
pos=hash_hash_fun(f_num);
for(p=hash[pos];p!=NULL;p=p->next)
{
if(p->num==f_num)
{
printf(“[%d] %dn”,pos,p->num);
break;
}
}
if(p==NULL)
printf(“no find.n”);
return p;}
在刪除的時候,需要三方面的考慮,刪除的是頭結(jié)點(diǎn),非頭結(jié)點(diǎn),及指針?biāo)傅臑榭?,這樣才能更準(zhǔn)確的刪除表中數(shù)據(jù)。代碼如下:
struct node *hash_del(struct node *hash[],int num){
int pos;
struct node *h=NULL;
struct node *p;
struct node *pp;
printf(“input del num:n”);
scanf(“%d”,&num);
pos=hash_hash_fun(num);
for(pp=p=h=hash[pos];p!=NULL;pp=p,p=p->next)
{
if(p->num==num)
break;
}
printf(“[%d] %dn”,pos,p->num);
if(p==h)
{
hash[pos] = p->next;
free(p);
}
else
{
pp->next=p->next;
free(p);
}
if(p==NULL)
return NULL;} ⑵實(shí)現(xiàn)英漢詞典退格功能 在實(shí)現(xiàn)查找功能時,需要進(jìn)行輸入數(shù)據(jù)的判斷如果是字母的話,應(yīng)怎樣運(yùn)行,如果是退格鍵時,是怎樣,以及是數(shù)字時是怎樣,這里需調(diào)用兩個函數(shù)isalpha()判斷字母和isdigit()判斷數(shù)字。這里把字母的判斷和退格鍵的判斷寫到了一塊,代碼如下:
if(isalpha(c)||(c=='177'))
{
trans[n] = c;
//back space
if(c == '177')
{
n--;
if(n < 0)n = 0;
trans[n] = '