《c语言词法分析器》开发文档及源代码
《C语言词法分析器》开发文档
Powered By 萌萌的玉雪
一、实验
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
目
编制并调试C词法分析程序。
二、实验目的
全面深入理解高级语言程序设计知识,掌握应用技巧,提高应用与分析能力。
三、主要函数
void load ( ) void char_search (char *word)
void main ( ) void intb_search(char *word)
void scan ( ) void c_search(char *word)
void inta_search(char *word) void cc_search(char *word)
四、设计
1.主函数 void main ( )
绘制程序界面
调用初始化函数:void load ( ) 实现文件的建立
调用主扫描函数:void scan ( ) 实现文件的扫描
分析完成后指引用户查看相关文件,直到用户输入退出命令
函数结束
2. 初始化函数 void load ( )
通过文件指针建立相关文件
函数结束
1
3. 保留字及标识符判断函数 void char_search(char *word)
接收数据
是否为保留字
是:写入输出文件 否:查标识符表
找到:写入输出文件 没找到:写入表文件
写入输出文件
4. 整数类型判断函数 void inta_search(char *word)
接收数据
查表
找到:写入输出文件 没找到:写入整数常量表文件
写入输出文件
5. 浮点类型判断函数 void intb_search(char *word)
接收数据
查表
找到:写入输出文件 没找到:写入整数常量表文件
写入输出文件
6. 字符串常量判断函数 void cc_search(char *word)
7. 字符常量判断函数 void c_search(char *word)
同4、5函数图
8.主扫描函数 void scan ( )
函数开始
2
读入源文件中的一个单词
判断
宏定义 忽略
无效字符 忽略
字符串 调用保留字及标识符函数void char_search进行处理
字符常量 调用字符常量判断函数void c_search进行处理
字符串常量 调用字符串常量判断函数void cc_search进行处理
整数常量 调用整数类型判断函数void inta_search进行处理
浮点数常量 调用浮点类型判断函数void intb_search进行处理
注释 写入注释文件
限制符 查运算符、分隔符表并写入输出文件
五、关键代码
#include
#include
#include
char *key0[]={"
","auto","break","case","char","const","continue","default","do","double","else","enum","extern","float","for","goto","if"
,"int","long","register","return","short","signed","sizeof","static","struct","switch","typedef","_Complex","_Imaginary","
union","unsigned","void","volatile","while"};
/*保留字表*/
char *key1[]={" ","(",")","[","]","{","}",",",";","'"};
/*分隔符表*/
char *key2[]={"
","+","-","*","/","%","<",">","==",">=","<=","!=","!","&&","||","<<",">>","~","|","^","&","=","?:","->","++","--",".","+
=","-=","*=","/="};
3
/*运算符表*/
int xx0[35],xx1[10],xx2[31];
int temp_key3=0,temp_c40=0,temp_c41=0,temp_c42=0,temp_c43=0;
/******* 初始化函数 *******/
void load()
{
int mm;
for (mm=0;mm<=34;mm++)
{
xx0[mm]=0;
}
for (mm=0;mm<=9;mm++)
{
xx1[mm]=0;
}
for (mm=0;mm<=30;mm++)
{
xx2[mm]=0;
}
FILE *floading;
if ((floading=fopen("key0.txt","w"))==NULL)
{
printf("Error! Can't create file : key0.txt");
return;
}
fclose (floading);
/*建立保留字表文件:key0.txt*/
if ((floading=fopen("key1.txt","w"))==NULL)
{
printf("Error! Can't create file : key1.txt");
return;
}
/*建立分隔符表文件:key1.txt*/
if ((floading=fopen("key2.txt","w"))==NULL)
{
printf("Error! Can't create file : key2.txt");
return;
}
fclose(floading);
/*建立运算符表文件:key2.txt*/
if ((floading=fopen("key3.txt","w"))==NULL)
{
printf("Error! Can't create file : key3.txt");
return;
4
}
fclose (floading);
/*建立标识符表文件:key3.txt*/
if ((floading=fopen("c40.txt","w"))==NULL)
{
printf("Error! Can't create file : c40.txt");
return;
}
fclose (floading);
/*建立整数类型常量表文件:c40.txt*/
if ((floading=fopen("c41.txt","w"))==NULL)
{
printf("Error! Can't create file : c41.txt");
return;
}
fclose (floading);
/*建立浮点类型常量表文件:c41.txt*/
if ((floading=fopen("c42.txt","w"))==NULL)
{
printf("Error! Can't create file : c42.txt");
return;
}
fclose (floading);
/*建立字符类型常量表文件:c42.txt*/
if ((floading=fopen("c43.txt","w"))==NULL)
{
printf("Error! Can't create file : c43.txt");
return;
}
fclose (floading);
/*建立字符串类型常量表文件:c43.txt*/
if ((floading=fopen("defination.txt","w"))==NULL)
{
printf("Error! Can't create file : defination.txt");
return;
}
fclose (floading);
/*建立注释文件:defination.txt*/
if ((floading=fopen("output.txt","w"))==NULL)
{
printf("Error! Can't create file : output.txt");
return;
}
fclose (floading);
/*建立内部码文件:output.txt*/
if ((floading=fopen("temp_key1","w"))==NULL)
{
5
printf("Error! Can't create file : temp_key1");
return;
}
fclose (floading);
/*建立保留字临时表文件:temp_key1*/
if ((floading=fopen("temp_key3","w"))==NULL)
{
printf("Error! Can't create file : temp_key3");
return;
}
fclose (floading);
/*建立标识符临时文件:temp_key3*/
if ((floading=fopen("temp_c40","w"))==NULL)
{
printf("Error! Can't create file : temp_c40");
return;
}
fclose (floading);
/*建立整数类型常量临时文件:temp_c40*/
if ((floading=fopen("temp_c41","w"))==NULL)
{
printf("Error! Can't create file : temp_c41");
return;
}
fclose (floading);
/*建立浮点类型常量临时文件:temp_c41*/
if ((floading=fopen("temp_c42","w"))==NULL)
{
printf("Error! Can't create file : temp_c42");
return;
}
fclose (floading);
/*建立字符类型常量临时文件:temp_c42*/
if ((floading=fopen("temp_c43","w"))==NULL)
{
printf("Error! Can't create file : temp_c43");
return;
}
fclose (floading);
/*建立字符串类型常量临时文件:temp_c43*/
}
/******* 保留字及标识符判断函数 *******/
void char_search(char *word)
{
int m,line=0,csi=0;
6
int value=0;
int value2=0;
char c,cs[100];
FILE *foutput,*finput;
for (m=1;m<=34;m++)
{
if (strcmp(word,key0[m])==0)
{
value=1;
break;
}
}
if (value==1)
{
if (xx0[m]==0)
{
foutput=fopen("key0.txt","a");
fprintf(foutput,"0\t%d\t\t%s\n",m,word);
fclose(foutput);
xx0[m]=1;
}
foutput=fopen("output.txt","a");
fprintf(foutput,"0\t%d\t\t%s\n",m,word);
fclose(foutput);
}
else
{
if (temp_key3==0)
{
foutput=fopen("temp_key3","a");
fprintf(foutput,"%s\n",word);
fclose(foutput);
temp_key3++;
foutput=fopen("key3.txt","a");
fprintf(foutput,"3\t1\t\t%s\n",word);
fclose(foutput);
}
finput=fopen("temp_key3","r");
c=fgetc(finput);
while (c!=EOF)
{
while (c!='\n')
{
cs[csi++]=c;
c=fgetc(finput);
}
cs[csi]='\0';
7
csi=0;
line++;
if ((strcmp(cs,word))==0)
{
value2=1;
break;
}
else
{
value2=0;
c=fgetc(finput);
}
}
fclose(finput);
if (value2==1)
{
foutput=fopen("output.txt","a");
fprintf(foutput,"3\t%d\t\t%s\n",line,word);
fclose(foutput);
}
else
{
foutput=fopen("temp_key3","a");
fprintf(foutput,"%s\n",word);
fclose(foutput);
temp_key3++;
foutput=fopen("output.txt","a");
fprintf(foutput,"3\t%d\t\t%s\n",temp_key3,word);
fclose(foutput);
foutput=fopen("key3.txt","a");
fprintf(foutput,"3\t%d\t\t%s\n",temp_key3,word);
fclose(foutput);
}
}
}
/******* 整数类型判断函数 *******/
void inta_search(char *word) {
FILE *foutput,*finput;
char c;
char cs[100];
int csi=0;
int line=0;
int value2=0;
if (temp_c40==0)
8
{
foutput=fopen("temp_c40","a");
fprintf(foutput,"%s\n",word);
fclose(foutput);
temp_c40++;
foutput=fopen("c40.txt","a");
fprintf(foutput,"4\t0\t1\t%s\n",word);
fclose(foutput);
}
finput=fopen("temp_c40","r");
c=fgetc(finput);
while (c!=EOF)
{
while (c!='\n')
{
cs[csi++]=c;
c=fgetc(finput);
}
cs[csi]='\0';
csi=0;
line++;
if (strcmp(cs,word)==0)
{
value2=1;
break;
}
c=fgetc(finput);
}
fclose(finput);
if (value2==1)
{
foutput=fopen("output.txt","a");
fprintf(foutput,"4\t0\t%d\t%s\n",line,word);
fclose(foutput);
}
else
{
foutput=fopen("temp_c40","a");
fprintf(foutput,"%s\n",word);
fclose(foutput);
temp_c40++;
foutput=fopen("output.txt","a");
fprintf(foutput,"4\t0\t%d\t%s\n",temp_c40,word);
fclose(foutput);
foutput=fopen("c40.txt","a");
fprintf(foutput,"4\t0\t%d\t%s\n",temp_c40,word);
fclose(foutput);
9
}
}
/******* 浮点类型判断函数 *******/
void intb_search(char *word) {
FILE *foutput,*finput;
char c;
char cs[100];
int csi=0;
int line=0;
int value2=0;
if (temp_c41==0)
{
foutput=fopen("temp_c41","a");
fprintf(foutput,"%s\n",word);
fclose(foutput);
temp_c41++;
foutput=fopen("c41.txt","a");
fprintf(foutput,"4\t1\t1\t%s\n",word);
fclose(foutput);
}
finput=fopen("temp_c41","r");
c=fgetc(finput);
while (c!=EOF)
{
while (c!='\n')
{
cs[csi++]=c;
c=fgetc(finput);
}
cs[csi]='\0';
csi=0;
line++;
if (strcmp(cs,word)==0)
{
value2=1;
break;
}
c=fgetc(finput);
}
fclose(finput);
if (value2==1)
{
foutput=fopen("output.txt","a");
fprintf(foutput,"4\t1\t%d\t%s\n",line,word);
10
fclose(foutput);
}
else
{
foutput=fopen("temp_c41","a");
fprintf(foutput,"%s\n",word);
fclose(foutput);
temp_c41++;
foutput=fopen("output.txt","a");
fprintf(foutput,"4\t1\t%d\t%s\n",temp_c41,word);
fclose(foutput);
foutput=fopen("c40.txt","a");
fprintf(foutput,"4\t1\t%d\t%s\n",temp_c41,word);
fclose(foutput);
}
}
/******* 字符串常量判断函数 *******/
void cc_search(char *word) {
FILE *foutput,*finput;
char c;
char cs[100];
int csi=0;
int line=0;
int value2=0;
if (temp_c43==0)
{
foutput=fopen("temp_c43","a");
fprintf(foutput,"%s\n",word);
fclose(foutput);
temp_c43++;
foutput=fopen("c43.txt","a");
fprintf(foutput,"4\t3\t1\t%s\n",word);
fclose(foutput);
}
finput=fopen("temp_c43","r");
c=fgetc(finput);
while (c!=EOF)
{
while (c!='\n')
{
cs[csi++]=c;
c=fgetc(finput);
}
cs[csi]='\0';
11
csi=0;
line++;
if (strcmp(cs,word)==0)
{
value2=1;
break;
}
c=fgetc(finput);
}
fclose(finput);
if (value2==1)
{
foutput=fopen("output.txt","a");
fprintf(foutput,"4\t3\t%d\t%s\n",line,word);
fclose(foutput);
}
else
{
foutput=fopen("temp_c43","a");
fprintf(foutput,"%s\n",word);
fclose(foutput);
temp_c43++;
foutput=fopen("output.txt","a");
fprintf(foutput,"4\t3\t%d\t%s\n",temp_c43,word);
fclose(foutput);
foutput=fopen("c43.txt","a");
fprintf(foutput,"4\t3\t%d\t%s\n",temp_c43,word);
fclose(foutput);
}
}
/******* 字符常量判断函数 *******/
void c_search(char *word)
{
FILE *foutput,*finput;
char c;
char cs[100];
int csi=0;
int line=0;
int value2=0;
if (temp_c42==0)
{
foutput=fopen("temp_c42","a");
fprintf(foutput,"%s\n",word);
fclose(foutput);
temp_c42++;
12
foutput=fopen("c42.txt","a");
fprintf(foutput,"4\t2\t1\t%s\n",word);
fclose(foutput);
}
finput=fopen("temp_c42","r");
c=fgetc(finput);
while (c!=EOF)
{
while (c!='\n')
{
cs[csi++]=c;
c=fgetc(finput);
}
cs[csi]='\0';
csi=0;
line++;
if (strcmp(cs,word)==0)
{
value2=1;
break;
}
c=fgetc(finput);
}
fclose(finput);
if (value2==1)
{
foutput=fopen("output.txt","a");
fprintf(foutput,"4\t2\t%d\t%s\n",line,word);
fclose(foutput);
}
else
{
foutput=fopen("temp_c42","a");
fprintf(foutput,"%s\n",word);
fclose(foutput);
temp_c42++;
foutput=fopen("output.txt","a");
fprintf(foutput,"4\t2\t%d\t%s\n",temp_c42,word);
fclose(foutput);
foutput=fopen("c42.txt","a");
fprintf(foutput,"4\t2\t%d\t%s\n",temp_c42,word);
fclose(foutput);
}
}
/******* 主扫描函数 *******/
13
void scan()
{
int count;
char chin;
FILE *fin;
FILE *fout;
char filename[50];
char temp[100];
char target[3]="'";
printf("请输入文件名:");
scanf("%s",filename);
if ((fin=fopen(filename,"r"))==NULL)
{
printf("Error! Can't open file : %s\n",filename);
return;
}
chin=fgetc(fin);
while (chin!=EOF)
{
/*对文件包含、宏定义进行处理*/
if (chin=='#')
{
while (chin!='>')
chin=fgetc(fin);
/*chin=fgetc(fin);*/
}
/*对空格符、水平制表符进行处理*/
else if ((chin==' ')||(chin=='\t'))
{
;
}
/*对回车符进行处理*/
else if (chin=='\n')
{
;
}
/*对单引号内的字符常量进行处理*/
else if (chin==target[0])
{
if (xx1[9]==0)
{
fout=fopen("key1.txt","a");
fprintf(fout,"1\t9\t\t%c\n",target[0]);
fclose(fout);
xx1[9]=1;
}
temp[0]=chin;
14
chin=fgetc(fin);
temp[1]=chin;
chin=fgetc(fin);
if (chin!=target[0])
{
temp[2]=chin;
chin=fgetc(fin);
temp[3]=chin;
temp[4]='\0';
}
else
{
temp[2]=chin;
temp[3]='\0';
}
c_search(temp);
}
/*对双引号内的字符串常量进行处理*/
else if (chin=='"')
{
int i=0;
temp[i++]='"';
chin=fgetc(fin);
while (chin!='"')
{
temp[i++]=chin;
chin=fgetc(fin);
}
temp[i]='"';
temp[i+1]='\0';
cc_search(temp);
}
/*对保留字、标识符进行处理*/
else if (((chin>='A')&&(chin<='Z'))||((chin>='a')&&(chin<='z'))||(chin=='_'))
{
int i=0;
while
(((chin>='A')&&(chin<='Z'))||((chin>='a')&&(chin<='z'))||(chin=='_')||((chin>='0')&&(chin<='9')))
{
temp[i++]=chin;
chin=fgetc(fin);
}
temp[i]='\0';
char_search(temp);
if (chin!=EOF)
fseek (fin,-1L,SEEK_CUR);
}
15
/*对整型、浮点型数据进行处理*/
else if ((chin>='0')&&(chin<='9'))
{
int dotcount=0;
int i=0;
while (((chin>='0')&&(chin<='9'))||(chin=='.'))
{
if (chin=='.')
dotcount++;
if (dotcount==2)
break;
temp[i++]=chin;
chin=fgetc(fin);
}
temp[i]='\0';
if (dotcount==1)
intb_search(temp);
else
inta_search(temp);
if (chin!=EOF)
fseek (fin,-1L,SEEK_CUR);
}
/*对注释进行处理*/
else if (chin=='/')
{
chin=fgetc(fin);
if (chin=='=')
{
fout=fopen("output.txt","a");
fprintf(fout,"2\t30\t\t/=\n");
fclose(fout);
}
else if (chin!='*')
{
fout=fopen("output.txt","a");
fprintf(fout,"2\t4\t\t/\n");
fclose(fout);
fseek(fin,-1L,SEEK_CUR);
}
else if (chin=='*')
{
count=0;
chin=fgetc(fin);
fout=fopen("defination.txt","a");
fprintf(fout,"/*");
while (count!=2)
{
16
count=0;
while (chin!='*')
{
fprintf(fout,"%c",chin);
chin=fgetc(fin);
}
count++;
fprintf(fout,"%c",chin);
chin=fgetc(fin);
if (chin=='/')
{
count++;
fprintf(fout,"%c\n",chin);
}
else
{
fprintf(fout,"%c",chin);
chin=fgetc(fin);
}
}
}
}
/*对运算符、分隔符进行处理*/
else
{
int time=0;
int firstblood=0;
temp[0]=chin;
chin=fgetc(fin);
if (chin!=EOF)
{
temp[1]=chin;
temp[2]='\0';
for (time=1;time<=30;time++)
{
if (strcmp(temp,key2[time])==0)
{
firstblood=1;
if (xx2[time]==0)
{
fout=fopen("key2.txt","a");
fprintf(fout,"2\t%d\t\t%s\n",time,temp);
fclose(fout);
xx2[time]=1;
}
fout=fopen("output.txt","a");
fprintf(fout,"2\t%d\t\t%s\n",time,temp);
17
fclose(fout);
break;
}
}
if (firstblood!=1)
{
fseek(fin,-1L,SEEK_CUR);
temp[1]='\0';
for (time=1;time<=9;time++)
{
if (strcmp(temp,key1[time])==0)
{
if (xx1[time]==0)
{
fout=fopen("key1.txt","a");
fprintf(fout,"1\t%d\t\t%s\n",time,temp);
fclose(fout);
xx1[time]=1;
}
fout=fopen("output.txt","a");
fprintf(fout,"1\t%d\t\t%s\n",time,temp);
fclose(fout);
break;
}
}
for (time=1;time<=30;time++)
{
if (strcmp(temp,key2[time])==0)
{
if (xx2[time]==0)
{
fout=fopen("key2.txt","a");
fprintf(fout,"2\t%d\t\t%s\n",time,temp);
fclose(fout);
xx2[time]=1;
}
fout=fopen("output.txt","a");
fprintf(fout,"2\t%d\t\t%s\n",time,temp);
fclose(fout);
break;
}
}
}
}
}
chin=fgetc(fin);
}
18
fout=fopen("output.txt","a");
fprintf(fout,"1\t6\t\t}\n");
fclose(fout);
}
/******* Main函数 *******/
void main()
{
FILE *fread;
char charin;
char command='Q';
printf("\n");
printf("******************** C语言词法分析工具 ********************\n");
printf("* *\n");
printf("* *\n");
printf("* 命令如下: *\n");
printf("* 0 --> 查看保留字表文件 *\n");
printf("* 1 --> 查看分隔符表文件 *\n");
printf("* 2 --> 查看运算符表文件 *\n");
printf("* 3 --> 查看标识符表文件 *\n");
printf("* 4 --> 查看整数类型常量表 *\n");
printf("* 5 --> 查看浮点类型常量表 *\n");
printf("* 6 --> 查看字符类型常量表 *\n");
printf("* 7 --> 查看字符串类型常量表 *\n");
printf("* 8 --> 查看注释文件 *\n");
printf("* 9 --> 查看内部码文件 *\n");
printf("* -------------------------- *\n");
printf("* Q --> 退出 *\n");
printf("***************************************************************\n");
printf("\n");
load();
scan();
printf("\n");
printf("分析完成~\n");
getchar();
printf("\n");
printf("请输入命令:");
command=getchar();
while ((command!='Q')&&(command!='q'))
{
switch (command)
{
case '0':
{
printf("*************************\n");
printf("\n");
fread=fopen("key0.txt","r");
19
charin=fgetc(fread);
while (charin!=EOF)
{
putchar(charin);
charin=fgetc(fread);
}
printf("\n");
printf("*************************\n");
printf("\n");
printf("请输入命令:");
break;
}
case '1':
{
printf("*************************\n");
printf("\n");
fread=fopen("key1.txt","r");
charin=fgetc(fread);
while (charin!=EOF)
{
putchar(charin);
charin=fgetc(fread);
}
printf("\n");
printf("*************************\n");
printf("\n");
printf("请输入命令:");
break;
}
case '2':
{
printf("*************************\n");
printf("\n");
fread=fopen("key2.txt","r");
charin=fgetc(fread);
while (charin!=EOF)
{
putchar(charin);
charin=fgetc(fread);
}
printf("\n");
printf("*************************\n");
printf("\n");
printf("请输入命令:");
break;
}
case '3':
20
{
printf("*************************\n");
printf("\n");
fread=fopen("key3.txt","r");
charin=fgetc(fread);
while (charin!=EOF)
{
putchar(charin);
charin=fgetc(fread);
}
printf("\n");
printf("*************************\n");
printf("\n");
printf("请输入命令:");
break;
}
case '4':
{
printf("*************************\n");
printf("\n");
fread=fopen("c40.txt","r");
charin=fgetc(fread);
while (charin!=EOF)
{
putchar(charin);
charin=fgetc(fread);
}
printf("\n");
printf("*************************\n");
printf("\n");
printf("请输入命令:");
break;
}
case '5':
{
printf("*************************\n");
printf("\n");
fread=fopen("c41.txt","r");
charin=fgetc(fread);
while (charin!=EOF)
{
putchar(charin);
charin=fgetc(fread);
}
printf("\n");
printf("*************************\n");
printf("\n");
21
printf("请输入命令:");
break;
}
case '6':
{
printf("*************************\n");
printf("\n");
fread=fopen("c42.txt","r");
charin=fgetc(fread);
while (charin!=EOF)
{
putchar(charin);
charin=fgetc(fread);
}
printf("\n");
printf("*************************\n");
printf("\n");
printf("请输入命令:");
break;
}
case '7':
{
printf("*************************\n");
printf("\n");
fread=fopen("c43.txt","r");
charin=fgetc(fread);
while (charin!=EOF)
{
putchar(charin);
charin=fgetc(fread);
}
printf("\n");
printf("*************************\n");
printf("\n");
printf("请输入命令:");
break;
}
case '8':
{
printf("*************************\n");
printf("\n");
fread=fopen("defination.txt","r");
charin=fgetc(fread);
while (charin!=EOF)
{
putchar(charin);
charin=fgetc(fread);
22
}
printf("\n");
printf("*************************\n");
printf("\n");
printf("请输入命令:");
break;
}
case '9':
{
printf("*************************\n");
printf("\n");
fread=fopen("output.txt","r");
charin=fgetc(fread);
while (charin!=EOF)
{
putchar(charin);
charin=fgetc(fread);
}
printf("\n");
printf("*************************\n");
printf("\n");
printf("请输入命令:");
break;
}
}
command=getchar();
}
}
下面红色部分是赠送的总结
计划
项目进度计划表范例计划下载计划下载计划下载课程教学计划下载
,不需要的可以下载后编辑删除~2014年工作总结
及2015年
工作计划
幼儿园家访工作计划关于小学学校工作计划班级工作计划中职财务部门工作计划下载关于学校后勤工作计划
(精选)
XX年,我工区安全生产工作始终坚持“安全第一,预防为主,综合治理”的方针,以落实安全生产责任制为核心,
积极开展安全生产大检查、事故隐患整改、安全生产宣传教育以及安全生产专项整治等活动,一年来,在工区全
员的共同努力下,工区安全生产局面良好,总体安全生产形势持续稳定并更加牢固可靠。
23
一、主要工作开展情况
(一)认真开展安全生产大检查,加大安全整治力度。
在今年的安全生产检查活动中,工区始终认真开展月度安全检查和日常性安全巡视检查记录,同时顺利完成公司组织的XX年春、秋季安全生产大检查和国家电网公司组织的专项隐患排查工作。截止日前,工区先后共开展各类安全检查71次,查出事故隐患点22处,均进行了闭环处理。通过检查活动,进一步夯实了工区的安全生产基础。
(二)顺利完成保电专项工作。
本年度工区共进行专项保电工作10次,累计保电天数达到90余天,通过工区全员的共同努力,顺利完成春节保电、国庆保电、七一保电、特高压投送电保电、500kv沁博线保电等一批重要节假日的保电工作。
(四)工作票统计及其他工作情况。
截止11月15日,我工区连续实现安全生产1780天;全年共办理工作票50张,其中第一种工作票 24张,含基建单位8张;第二种工作票26张。工作票合格率100%,执行情况较好。全年工区所辖线路跳闸次数共计0次,线路跳闸率为0次/(百公里?年)。
(四)安环体系
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
化建设
本年度在公司统一的部署下,工区积极参与安环体系标准化建设工作,先后派员参加安环体系标准化培训2次,迎接公司开展安环体系内审工作三次,先后审查出问题共计20余处,先后进行了闭环整改。截止日前,工区已初步建立起了标准化安环工作体系,在今后工作中,工区将进一步完善各项工作流程,努力确保体系工作符合外审相关要求。
(五)强化安全生产责任制的落实。工区高度重视安全生产工作,根据年初制定的安全工作目标,按照公司统一要求,工区各级人员均签订安全生产责任书,强化各级人员安全责任意识,一级一级,层层抓落实。建立和完善安全生产责任体系,严格执行安全生产规程、规范和技术标准,加大安全投入,加强基础管理,加大安全培训教育力度。努力实现工区安全工作规范化管理。
(六)加强安全生产教育培训工作,着力增强安全防范意识。为了进一步加强全区安全防范意识,提高安全技能,我们先后制定并顺利实施了《XX年工区安全技能培训计划与方案》、《XX年“安全生产月”活动实施方案》,明确了活动的指导思想、活动主题、活动时间、活动组织形式和要求。组织开展安全生产岗位资格,安全技术和安全管理培训,突出抓好一线青工和安全责任人培训教育,着力提高安全意识,不断增强自身安全技能培训,提高工区安全生产管理水平,实现安全生产。工区组织培训一线员工百余人次,先后组织工区所有生产人员参加《安规》培训以及登高架设取证以及复审培训工作,并对其进行考核,不合格者要求重新培训学习,考核合格后后方能上岗作业。对新进员工做好三级安全教育,特别是岗位培训,安全教育培训,并对其进行严格考核合格后方能上岗作业。
(七)加强安全生产应急管理工作,提高预警防范和处置事故灾难的能力。突出预防为主,着力做好事故超前防范的各项工作,这是我工区安全生产工作的重要方针。一年来,我工区不断完善安全生产应急预案,加强各类事故以及可能危及安全生产的自然灾害的预测、预报、预警、预防工作的同时,进一步强化应急救援队伍的管理,建立应急值班制度,提高突发事故处置能力。工区举行了XX年迎峰度夏应急演练,有效提高了工区应急处置能力。先后圆满完成XX年迎峰度夏,防汛保供电等任务。
24
二、存在的主要问题
(一)施工线路遗留问题较多,线下遗留树木和违建房屋不断增多,处理复杂。
(二)电力设施破坏、线下施工、异物等时刻威胁着线路的安全运行。施工周期较长的线下作业项目日益增多,各种超大机械施工较多,给线路运行造成很大的隐患,由于很难与施工方签订安全协议,工区在处理此类事件的时候很被动,各种隐患不在预控之中。
截止目前,工区共存在线下施工点22处,为保证线路安全运行,与施工方签订施工
协议书
婚内约定的财产协议书家庭养老协议书pdf意向性划转协议书商业银行关联方授信摔伤一次性补偿协议书
3处,下发施工安全告知书13份,张贴警示标志共计5处。
(三)工区员工的安全意识、理论技能水平有待提高。随着线路的日益增多,生产任务繁重,我工区青工人数偏少且安全素质有待提高,对工区的安全生产提出了严峻的考验。
三、2015年安全生产工作思路下一年,我工区将继续坚持“安全第一,预防为主,综合治理”的方针。强化安全生产管理和监督,建立安全生产长效机制,遏制安全事故,推动工区安全生产进一步持续好转。为此,我们将突出“四抓”做好安全生产工作。
一是抓基层基础。按照“重基层、打基础、强监管”的工作思路,建立完善工作制度、设置基础台帐、健全监管网络,充分发挥安全监管职能,使安全生产关口前移、重心下沉,筑牢安全生产第一防线。 二是抓隐患治理。切实加强和解决安全生产薄弱环节和突出问题,坚持隐患排查治理活动常态化,针对工区安全生产工作的新情况、新问题,及时完善监管办法,落实监管措施,做到月月普遍排查,每周重点排查,真正把事故隐患消灭在萌芽状态。
三是抓重点防范。重点要放在线下作业大型机械的监管,防范线路外力破坏,积极争取主动,努力使各种线下外部作业项目完全处于工区的可控状态之中,强化隐患排查,落实整改措施,及时消除安全隐患,确保安全。
四是抓宣传教育。加强警示教育,对典型安全生产违章行为及时曝光,加强学习,狠抓违章治理,增强所有人员安全生产制度观念和自我保护意识,形成人人重视安全、关注安全、防范事故的良好氛围。
时间飞逝,转眼xx年年关已到,我到xx公司也有一年时间了。这是紧张又充实的一年,xx见证了我从无到有。从今年三月八号进公司以来的一年,对我来说是一个成长的过程,我从一名经验浅薄的应届生,逐渐成长为一名具备一定专业知识的采购职员。面对这一年,xx公司所有人齐心协力,同心同德,克服了今年市场经济低迷的困难,使公司产品推陈出新,这是值得我们骄傲的。为我们克服了困难,经受住了考验而骄傲自豪。
年初,我以应届生身份来xx公司实习,这是我从学校走向社会的第一步,是人生道路上一个很重要的起点。众所周知采购部是公司业务的后勤保障,是关系到公司整个销售利益的最重要环节,所以我很感谢公司和领导对我的信任,将我放在如此重要的岗位上。回首这一年,我在xx的取得的进步都历历在目,每一个进步都值得我骄傲。正是因为有了一个良好的平台和一群可爱的同事,才使我能够快速适应工作,一步步走向成熟。
工作中有苦也有乐,但更多的是收获,这一年的工作我受益匪浅。古人云:“纸上得来终觉浅,要知此事必躬行”。对我们应届生来说刚走上工作岗位是理论与实践相结合的学习,把理论应用到实践当中并在实践中积累更加丰富的理论知识。转眼已经一年。就这一年的工作我做一个简单的总结,汇报我在xx公司一年来取得的成绩以及自己的不足。
25
一、个人成长方面:
1、心态转变。学校的生活养尊处忧,无需我们担忧某些问题,学校三点一线的生活,学习跟得上就可以,而在工作当中就不然,工作中,我们要考虑如何提高工作效率,怎样处理与上级领导、同事的关系,还有在工作当中的不尽人意等事情,这些都要我们以一颗平常心去对待,及时的转变心态会让我们工作更加顺利。
2、计划做事。有了明确的计划,目标才清晰,以至于在工作中不会茫然。在采购部工作的一年中,我每天都整理工作日志,记录下我要做的事情,然后再总结一下完成状况,日志看似平常,但在无形中提高你做事的效率和工作的有序程度。也改变了我刚开始工作缺乏系统和逻辑性的缺点。
3、处处留心皆学问。这是我毕业的时候导师对我讲的一句话,对这句话并没有给我多说什么,但在工作当中我深有体会,初到采购部我把仔细阅读以往的采购合同。在整理过程中我仔细的看了一下采购合同的内容,这为我以后的修改合同起到了很大的帮助,我可以直接套用以前的合同范本,这个结果直接归为我的留心。在生活中只要你留心处处都有学问在,不要总是期盼别人告诉你怎么去做,应该学会思考自己应该怎样去做,留心别人怎么做。
4、不以事小而不为。做大事小事有不同的阶段,要想做大事,小事情必须做好。这是我急需知识和经验的阶段,做一些繁琐的小事情,很有必要。工作中我努力做好每一个细节,但我并没有感到烦,而是把它当作我素质培养的大讲堂,正因为这些小事情改变了我对工作的态度。小事情值得我去做,事情虽小,可过程至关重要。在xx有一群乐于帮助我的同事,在工作过程中,我虚心求教,同事也不吝啬热情帮助。从最简单的电子元器件,到产品特征、市场情况,让我在找到了学习了方向,使我更有针对性地提高自己的工作能力。
5、认识的提高。以前我只泛泛认为采购就是买东西,简单的金钱与物质的交易,只要价格合适、质量过关那就可以。通过工作才知道其实不然,这个简单的买卖关系并不简单。保证适时适地适质适价都是采购过程中必须满足的要求。进入xx,我首先思想上转变了原来不正确的观念,在思想上和工作职责要求相统一。特别采购是公司供应链中一个非常重要的环节,要求我们以满足市场和生产需求为准绳,任何错误都有可能造成经济损失。所以说采购岗位需要的是完美的人,是有根据的。我自觉自己离要求还有很远,但是我一步步向这个方向靠近。我会通过自己的努力成为一名优秀的采购工作者。
二、工作方面:
自入职以来,在公司和部门领导的悉心指导下,在部门同事的言传身教下,我很快融入xx公司。从基本的物料库存查询开始,到下订单,收货入库等工作都很快上手。
要说这一年积累的经验,我首先学会的是核价,不管采购任何一种物料,在采购前应熟悉它的价格组成,了解你的供应商所生产成品的原料源头价格,为自己的准确核价打下基础。这样谈判时,做到知已知彼,百战百胜。现今的社会是一个电子化的社会,作为采购人员要由不同的方面收集物料的采购信息,地域差别等。只有了解了市场,才真正了解了所需产品的价格定位,为采购活动做好先期准备。
公司内部的沟通很重要,特别像我一样,刚进公司的新人来说,尤为重要。八月份公司xxx项目采购任务下来了,这个项目在钣金件以及一些电子元器件方面有特殊的要求。刚开始我并未发现有这个的情况,等订单下了以后,问题才从供应商处反馈到我这里,我即使和已调任其他部门的前任同事沟通,才逐渐解决了这些问题。没了解清楚我就做出了决定,后果是非常严重的,所幸此次并未造成经济损失和生产的延误。这个事情让我明白沟通很重要,只有在有把握的情况下才做决定,才不会造成损失。
26
xx对产品质量严格把关在业内是出名的。成品的合格率一个重要因素就是采购材料的品质是否达到产品要求。材料合格率、以及售后服务都属于质量范围。我们对物料的要求高了,就是对供应商的要求高了。例如包装问题,有的供应商任务包装有瑕疵不会影响产品质量,但对我们来说,不能够以点盖面,特别是对电子产品来说,任何细小的瑕疵都有可能影响品质。我晓之以理、动之以情,使有不同观点的供应商改变了不正确的看法。xxxx电子有限公司,是我们公司在接插件方面的主要供应商,原来因为我们在那里采购产品的系列多、供应产品多而杂,在来料准确率上存在这一定问题。但后来通过采购、品质的联合改善以及供应商自身的努力,在每个品种的物料上贴标示,包括我司物料代码和规格名称、数量、生产日期等内容,来料不合格情况基本杜绝,而且标签还方便了我们检验和仓库入库,一举两得。这只是一个典型的例子。在更新供应商和品质方面沟通下,在我负责的供应商里电子元器件到货不合格率降低到1%以下,钣金结构件到货合格率达到90%,没有对生产正常进行造成延误,也没有增加我们的采购成本。
采购成本的控制对任何公司来说都是很重要的,在采购过程中我不仅要考虑到价格因素,更要最大限度的节约成本,做到货比三家;还要了解供应链各个环节的操作,明确采购在各个环节中的不同特点、作用及意义。只要能降低成本,不管是哪个环节,我们都会认真研究,商讨办法。我们采购部遵循按照订单计划量向供应商下订单的原则,除却必要的余量,在满足供应商最少采购量的原则下,尽量不造成库存积压。避免因为库存造成公司经营成本的积压。同时不断正对市场变化寻找更优秀的供应商,例如,我司xxx项目的双头预置网线,采购成本一直较高,而且原供应商制作方法落后造成偶有不合格现象。十一月,我寻找到xxxx电子有限公司,经商谈发现此公司加工方法较原供应商先进,而且能够降低此网线25%的采购成本,从原2.0元/pcs降低到1.5元/pcs。十一月由xx电子供应的xx项目一个批次和xxx项目两个批次的双头预置网线,合格率达到100% 。降低了xx项目的采购成本,而且更加完善了产品品质。今年下半年金属价格开始回落,我及时和供应商联系,使我司分频卡等项目用的铜柱采购成本降低了15%;还有xxx项目金属外壳通过更换供应商等措施,价格下降了20% 。如何保障生产的正常供给,同时降低成本、保证来料质量是采购部每天都思考的问题。在部门领导的带领下,我们推陈出新,不断优化供应商资源库,根据技术工程师选型要求,及时反馈市场情况。身在采购部,确实感到很大的压力,同时也是动力,有压力才促使我不断去学习,跟进市场的发展,这对我个人经验积累是有很大帮助的。
三、存在不足: 我渴望通过自己的不懈努力和奋斗为xx多做一些贡献,但离领导及同事对工作的要求还存在一定的距离。譬如我的产品知识、工作系统性、逻辑性还不能完全达到采购岗位的要求;对市场变化的应变能力较低。面对以上不足,今后,我一定认真克服,发扬成绩,向先进学习,加强与领导和同事沟通交流,自觉把自己置于同事监督之下,刻苦学习、勤奋工作,认真查摆、分析、总结自己的各项不足,以最佳的工作状态努力完成各项工作任务,做一名合格的xx员工并完成从采购到优秀采购的进步。
最后,感谢公司所有领导和同事,我有今天的进步离不开大家的帮助和支持,是他们的协同和支持使我成功。总之,xxxx年我会以一颗感恩的心,不断学习,努力工作。我要用全部的激情和智慧创造差异,让事业充满生机和活力!我保证以发自内心的真诚和体察入微服务对待我的工作,追求完美,创造卓越!和大家一起齐心协力,从新的起点开始,迈向成功!
27