实验一词法分析器的设计与实现

时间:2019-05-15 10:01:24下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《实验一词法分析器的设计与实现》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《实验一词法分析器的设计与实现》。

第一篇:实验一词法分析器的设计与实现

实验一词法分析器的设计与实现

一、实验目的1.了解并掌握词法分析器的原理及工作过程

2.理解词法分析器的状态图表示方法

二、实验内容

用适当的程序设计语言编制一个词法分析程序,并完成相应的调试,要求该程序能够从指定的文件中读入源程序,并将此源程序变成语义等价的单词序列,输出单词序列。

提示:

1.源程序可限定为某个语言的子语言,如C语言的子集,允许源程序中有注释行,其中的关键字自行设定,可参见书66页的编码表,保留字表为词法分析器已知的表格(可采用二维数组的形式存储)

2.参考程序见书中104-105页,程序中涉及的gettoken()和install_id()两个过程的解释见91页上面3段的说明。

3.词法分析器的输入输出示例:

输入:if(i>10)then i=0

输出:

(10, if)

(20,()

(50,i)

(21,>)

(51,10)

(22,))

(11,then)

(50,i)

(23,=)

(51,0)

其中:50代表标识符的编码,51代表常量的编码

第二篇:用JAVA实现的Pascal语言的词法分析器

import java.io.*;public class WordAnalyse { static char[] strbuf = new char[150];//定义一个数组,用以存放从文件读取来的字符串

int keywordIndex;//取关键字的类号

String[] keyWord = {“and”,“begin”,“const”,“div”,“do”,“else”,“end”,“function”,“if”,“integer”,“not”,“or”,“procedure”,“program”, “read”,“real”,“then”,“type”,“var”,“while”,“write”};public static void main(String[] args)throws IOException {

WordAnalyse wa = new WordAnalyse();

wa.readFile(“d:/pascal.txt”);System.out.println(“******用JAVA实现的Pascal语言的词法分析器*********”);

System.out.println(“******The Result:******”+“n”);

wa.run();

System.out.println(“n”+“******Complete!******”);}

//从文件中把字符串读取到一个字符数组中

private void readFile(String url)throws IOException{

int ch,i=0;

FileReader fr = new FileReader(url);

while((ch=fr.read())!=-1){

strbuf[i++]=(char)ch;

} }

private boolean isLetter(char ch){

if('a'<=ch&ch<='z'||'A'<=ch&ch<='Z')

return true;

else return false;}

private boolean isDigit(char ch){

if('0'<= ch&&ch<='9')

return true;

else return false;}

private void run(){ //分析整个strbuf里的字符串

StringBuffer buf = new StringBuffer();//定义一个缓冲区

for(int i=0;i

//当读头读到spaceenterline的时候,忽略!

if(strbuf[i]==' '||strbuf[i]=='t'||strbuf[i]=='n')

i++;

if(isLetter(strbuf[i])){

int k;

buf.delete(0, buf.length());

while(isLetter(strbuf[i])||isDigit(strbuf[i])){

buf.append(strbuf[i]);

i++;

}

i--;

//查找buf里面的字符串是否为关键字

for(k =0;k

if(new String(buf).equals(keyWord[k])){

keywordIndex = k;

System.out.println(buf + “tt” +keywordIndex);

break;

}

}

if(k>20)

System.out.println(buf + “tt” +21);

}

if(isDigit(strbuf[i])){ 1

buf.delete(0, buf.length());

while(isDigit(strbuf[i])){

buf.append(strbuf[i]);

i++;

}

i--;

System.out.println(buf + “tt” +22);}

} } 2 } switch((char)strbuf[i]){ case',':System.out.println(strbuf[i] + “tt” + 23);break;case';':System.out.println(strbuf[i] + “tt” + 24);break;case'.':System.out.println(strbuf[i] + “tt” + 26);break;case'(':System.out.println(strbuf[i] + “tt” + 27);break;case')':System.out.println(strbuf[i] + “tt” + 28);break;case'[':System.out.println(strbuf[i] + “tt” + 29);break;case']':System.out.println(strbuf[i] + “tt” + 30);break;case'+':System.out.println(strbuf[i] + “tt” + 34);break;case'-':System.out.println(strbuf[i] + “tt” + 35);break;case'=':System.out.println(strbuf[i] + “tt” + 38);break;case':':{ buf.delete(0, buf.length());buf.append(strbuf[i]);i++;if(strbuf[i]=='='){

buf.append(strbuf[i]);

System.out.println(buf + “tt” + 44);} else{

System.out.println(buf + “tt” + 25);i++;}

};break;case'>':{ buf.delete(0, buf.length());buf.append(strbuf[i]);i++;if(strbuf[i]=='='){

buf.append(strbuf[i]);

System.out.println(buf + “tt” + 43);} else{

System.out.println(buf + “tt” + 40);i--;} };break;case'<':{ buf.delete(0, buf.length());buf.append(strbuf[i]);i++;if(strbuf[i]=='='){

buf.append(strbuf[i]);

System.out.println(buf + “tt” + 42);i++;} else if(strbuf[i]=='>'){

buf.append(strbuf[i]);

System.out.println(buf + “tt” + 41);i++;} else{

System.out.println(buf + “tt” + 39);i++;} };break;

}//switch结束

第三篇:编译原理实验二(设计一个词法分析器)

编译原理实验二

1.实验名称:一个简单语言词法分析器设计

2.实验内容

(1)阅读并理解教材第三章词法分析p42“简单语言”词法分析构造实例

(2)完善P45给出的“简单语言”词法分析程序,使得该程序能够在计算机上运行,完

全达到词法分析器的设计基本要求:

① 读入“简单语言”源程序

②滤掉“简单语言”源程序中的“空白”字符

③滤掉“简单语言”源程序中的“注释”字符

④能够识别出“简单语言”源程序中的合法“单词”并输出识别出的一个个“单词”符号序列。

⑤ 识别出的一个个“单词”符号要求为二元组形式: 指出单词类别属性,标识符自身值,常数值.3.提交实验报告

 “简单语言”词法分析程序“源程序”文件

 “简单语言”词法分析程序“源程序”可执行文件

 对“简单语言”词法分析程序的测试实例:“简单语言”源程序及其词法分析结果。

第四篇:《编译原理》课程设计报告--词法分析器

201X-201X学年第x学期

《编译原理》课程设计报告

院 系: 计算机科学与技术 班 级: XX级XX 班 学生姓名: XXXXXX 学 号: XXXXXXXX 指导老师: XXXXXX

计算机科学与技术学院监制

20XX年X月

目录

1.课程设计的目的 2.课程设计的内容和要求 3.问题分析和相关知识介绍 4.设计思路和关键问题及其解决方案 5.测试和结果分析 6.总结和心得体会

附件1:参考文献 附件2:核心源代码

1.课程设计的目的(1)编写词法分析器

(2)加深对词法分析器工作原理的了解和认识

2.课程设计的内容和要求

编写词法分析器,词法分析器能够识别关系算符,词法分析器能够识别标识符和关键字,词法分析器能够识别无符号数。

3.问题分析和相关知识介绍

构成词法分析器的一种简单方法是用状态转换图来描述源语言词法记号的结构,然后手工把这种状态转换图翻译成为识别词法记号的程序。词法分析器的任务是把构成源程序的字符流翻译成词法记号流。

4.设计思路和关键问题及其解决方案

把自然语言构造成正规式,把正规式构造成有限自动机NFA,然后根据子集构造法把有限自动机构造成无限自动机DFA,根据极小化DFA状态数算法把DFA构造成最简DFA,其次根据最简DFA画出转换表,根据转换表画出装换图,最后根据装换图就可以编写词法分析器。

5.测试和结果分析

6.总结和心得体会

通过本次试验,不仅仅是我学会了C#基础知识,而且还是我对词法分析器有了更深入的认识,虽然在编写词法分析器过程中遇到了很多困难,例如:C#语言不熟悉,对此法分析器的工作原理分析的不透彻,但在老师和同学的帮助下,我有了很大的提高,通过不断的努力最终顺利的完成了课程设计,很感谢帮助我的XX同学和XX老师。附件1:参考文献

《编译原理(第2版)》 高等教育出版社; 《C#程序设计及应用教程(第2版)》 人民教育出版社。附件2:

1.Code文档截图

2.程序源代码

using System;using System.Collections.Generic;using System.Text;using System.IO;

namespace LexicalAnalysis { class Program { static string[] keys = { “static”, “true”, “return”, “string”, “Length”, “break”, “Console”, “WriteLine”, “bool”, “false”, “ture”, “void”, “if”, “else”, “while”, “int”, “float”, “for”, “enum”, “default”, “case”, “double”, “do” };

static List key = new List();//保存关键字

static List bsf = new List();//保存标识符

static List sz = new List();//保存数字

static List gx = new List();//保存关系运算符

static List ys = new List();//保存数字运算符

//数字,标识符,空白,关系符,运算符

static void Main(string[] args){

string[] date = File.ReadAllLines(@“d:code.txt”);//路径,并存入data

for(int i = 0;i < date.Length;i++){ Console.WriteLine(“第” +(i + 1)+ “行code: ” + date.GetValue(i));analysisByLine(date[i]);

} //分别输出存储在四个List中的String

Console.WriteLine(“关键字,输入回车”);//输出所有的关键字 Console.ReadLine();

foreach(string id in key){ Console.WriteLine(id);

}

Console.WriteLine(“标识符,输入回车”);//输出所有的标识符

Console.ReadLine();foreach(string id in bsf){ Console.WriteLine(id);

}

Console.WriteLine(“数字,输入回车”);Console.ReadLine();foreach(string id in sz){ Console.WriteLine(id);

}

Console.WriteLine(“关系运算符,输入回车”);Console.ReadLine();foreach(string id in gx){ Console.WriteLine(id);

}

Console.WriteLine(“算数运算符,输入回车”);Console.ReadLine();foreach(string id in ys){ Console.WriteLine(id);

}

Console.WriteLine(“输入回车退出”);

Console.ReadLine();

} static void analysisByLine(string code)

//输出所有的数字 //输出所有的关系运算符//输出所有的算数运算符

{

char a = ' ';string temp = “";int j = 0;while(j < code.Length){ a = code[j];temp = ”“;if(Char.IsLetter(a)|| a == '_')//是否为标识符 { temp = temp + a.ToString();j++;a = code[j];while(Char.IsLetterOrDigit(a)){ temp = temp + a.ToString();j++;a = code[j];} if(isKey(temp)){

//Console.WriteLine(”保留字:“+temp);

if(!key.Contains(temp)){ // Console.WriteLine(”添加成功“);key.Add(temp);}

} else {

//Console.WriteLine(”标识符:“+temp);

if(!bsf.Contains(temp)){ //Console.WriteLine(”添加成功标识符==“);bsf.Add(temp);} }

} else if(Char.IsDigit(a)){ temp = temp + a.ToString();j++;a = code[j];while(Char.IsDigit(a)){ temp = temp + a.ToString();j++;a = code[j];

} //判断是否是小数

if(a.Equals('.')){ temp = temp + a.ToString();j++;a = code[j];while(Char.IsDigit(a)){ temp = temp + a.ToString();j++;a = code[j];} //判读是否是科学记数法

if(a.Equals('E')|| a.Equals('e')){ temp = temp + a.ToString();j++;a = code[j];while(Char.IsDigit(a)){

temp = temp + a.ToString();j++;a = code[j];} }

}

// Console.WriteLine(”数字:“+temp);if(!sz.Contains(temp)){ //Console.WriteLine(”添加成功标识符==“);sz.Add(temp);} } else if(a == '<'){ temp = temp + a.ToString();j++;a = code[j];if(a == '='){ temp = temp + a.ToString();j++;a = code[j];} else if(a == '>'){ temp = temp + a.ToString();j++;a = code[j];} //Console.WriteLine(”关系符“+temp);if(!gx.Contains(temp)){ //Console.WriteLine(”添加成功标识符==“);gx.Add(temp);} } else if(a == '='){ temp = temp + a.ToString();j++;

a = code[j];// Console.WriteLine(”关系符“+temp);if(!gx.Contains(temp)){ //Console.WriteLine(”添加成功关系==“);gx.Add(temp);} } else if(a == '>'){ temp = temp + a.ToString();j++;a = code[j];if(a == '='){ temp = temp + a.ToString();j++;a = code[j];}

// Console.WriteLine(”关系符“+temp);if(!gx.Contains(temp)){ //Console.WriteLine(”添加成功标识符==“);gx.Add(temp);}

} else { if(a == '+' || a == '-' || a == '/' || a == '*'){ temp = temp + a.ToString();j++;a = code[j];//Console.WriteLine(”运算符“+temp);if(!ys.Contains(temp)){ //Console.WriteLine(”添加成功标识符==“);ys.Add(temp);} } else

{ j++;}

} } }

//判断是不是保留字的IsKey方法

static bool isKey(string key){

bool flag = false;for(int i = 0;i < keys.Length;i++)

if(keys[i] == key){ flag = true;//Console.WriteLine(key+”是不是key“+flag);break;} else { flag = false;

} //Console.WriteLine(key+”是不是key“);// Console.WriteLine(flag+”是不是key");return flag;

} } }

第五篇:PLC一体化教学实验平台设计与实现

题目:

2013 PLC组态一体化教学实验平台

设计与实现

单位部室:阳煤职教中心实践教学部 专 业:机电一体化与自动控制 作 者:陈志鹏 指导教师:

年10月23日

PLC组态一体化教学实验平台设计与实现

摘要: 随着阳煤集团高产高效矿井的建设,矿井机电设备向着高电压、大功率、控制系统高科技方向发展,PLC在煤矿应用上越来越广泛,它的简化接线、性能可靠、事故率低、编程容易、控制多样等特点,为越来越多的工程师所喜欢,有着广阔的发展前景。同时PLC是一门实践性非常强的课程,实验环节至关重要。针对如何在低成本条件下进行PLC一体化教学,同时保证教学效果,提出了PLC电气控制系统设计与组态监控设计相结合的PLC一体化教学课程。实践表明,监控组态技术的应用可以大大提高学生的编程技巧和动手能力,丰富学生的工程实践经验,达到一体化教学的目的。

关键词:PLC ;一体化教学 ;教学实验平台 ;组态控制技术 PLC简介及它在煤矿生产方面的应用

PLC称作可编程逻辑控制器(Programmable Logic Controller,PLC),它主要用来代替继电器实现逻辑控制。随着技术的发展,这种采用微型计算机技术的工业控制装置的功能已经大大超过了逻辑控制的范围,因此,今天这种装置称作可编程控制器,简称PC。但是为了避免与个人计算机(Personal Computer)的简称混淆,所以将可编程序控制器简称PLC。PLC自1969年美国数据设备公司(DEC)研制出现,现行美国、日本、德国的可编程序控制器质量优良,功能强大。PLC主要特点有:

① 可靠性高,抗干扰能力强。② 配套齐全,功能完善,适用性强。③ 易学易用,深受工程技术人员欢迎。④ 系统的设计、建造工作量小,维护方便。⑤ 体积小,重量轻,能耗低,通用性强。

随着煤矿机械化程度的不断提升,PLC在实际生产中得到了广泛

PLC一体机 的应用。例如:主井箕斗提升就是利用了PLC控制系统实现了定量装载。地面主提升绞车均采用了双PLC加可控硅模块控制系统。煤矿井下采煤机、综掘机、主要扇风机、主排水泵等大型控制设备的核心元件均采用PLC,井下各种低压磁力启动器核心元件也逐步为PLC所代替。地面厂的数控机床等也已经采用了PLC控制,随着现代化管理水平的不断提高,PLC和组态软件的有效结合在煤矿生产领域中得到了越来越广泛的应用。

2 组态控制技术简介及应用

组态控制技术属于计算机控制技术,利用组态控制技术构成的计算机测控系统的原理框图所示可以看出它们是由传感器、下位机、上位机等几部分组成。虽然从结构上看与一般计算机测控系统

组态控制技术框图

基本相似,但是采用组态技术的计算机控制系统从硬件设计到软件开发都具有组态性,系统的可靠性和开发速度都得到了大幅度提高。通常认为,组态技术是计算机控制技术综合发展的结果,是技术成熟化的标志。在组态概念出现之前,要用计算机实现某一控制任务,都是通过编写程序(如使用 C等)来实现的。编写程序不但工作量大、周期长、而且可靠性差。组态控制技术的出现,解决了这个问题,对于过去需要几个月的工作,通过组态几天就可以完成。

目前,国内外许多自动化设备生产厂家,如德国西门子公司、日本三菱、台湾研华、中国时利和等,生产了众多供选择的工业标准机 箱、工业级元件、总线结构过程通道板卡、工控机接口模块等,为推广硬件组态奠定了基础。在软件设计上由于采用成熟的组态软件进 行系统设计,软件开发周期大大缩短了。组态软件是在自动控制系统监控层一级的软件平台和开发环境,能以灵活多样的组态方式(而不是编程方式)提供良好的用户开发界面和简捷的使用方法,其予设置的各种软件模块可以非常容易地实现和完成监控层的各项功能,并能同时支持各硬件厂家的计算机和I/O设备,与高可靠的工控计算机和网络系统结合,可向控制层和管理层提供软硬件的全部接口,进行系统集成。需要指出,组态软件不仅是组态控制技术中的重要组成部分,而且由于具有远程监控、数据采集、数据分析、过程控制等强大功能,在自动化系统中占据主力军的位置,逐渐成为工业自动化系统中的灵魂。实例介绍PLC一体化教学实验平台的设计与实现 下面用西门子公司的Step7 Pro(内部包含有模拟器PLCSIM)和WINCC组态软件来仿真PLC基础实验--机械手实验。

3.1软件准备与硬件连接

首先需要一台装好了Step7 Pro和 WINCC的计算机,然后准备一台型号为S7-200(300,400)的西门子PLC。S7-200的编程口通过一条通信电缆(PC/PPI)与计算机的USB通信口连接,这样就可以在计算机上进行编程和监控了。

编程下载

仿真模拟

3.2 控制要求及I/O分配

机械手最开始处于左上端(左限位行程开关处于动作状态)。运行过程为:下将YV2--夹紧YV5--上升YV1--右移YV4--下将YV2--放松YV5上升YV1向左返回初始位置。自动控制:按下自动控制的起动按钮,机械手运行上述控制过程。按下停止时,机械手必须运行完当前周期停在初始位置。

I/O分配

梯形图

打开Step7 Pro根据控制要求进行程序的梯形图的编制,程序通过编译后下载到PLC中。下载完成后,关闭Step7 Pro,打开WINCC进行组态设计。

3.3 WINCC组态设计

利用WINCC组态软件建立监控系统,在工作台实时数据库中建立 对应的变量,都为开关型。然后设置好组态软件与PLC的串口通信方式。至此,已经将组态软件中的变量与外部PLC设备的端子进行连接,当PLC的输入、输出继电器状态发生变化时,将直接反映到组态软件的变量。最后建立监控画面模拟机械手实际工作情况。WINCC组态软件内部提供基本绘图工具,同时提供了丰富的元件库,用于画较复杂但常用的元件图形,如电机、阀门等。利用这些元件进行组态,可建立监控画面。对于各个元件对应设置相应的动画连接。监控画面中指示灯分别用颜色的变化指示机械手的工作状态,即当放下物体时,下移指示灯为绿色,否则显示红色,其它灯工作情况相似。接下来将元件的动作与变量的变化进行动画连接,即可利用监控画面控制机械手的动作情况。当没有实际装置时,通过监控画面可以让学生有实际操作的感受,从而增加工程实践的经验。

组态软件最突出的特点就是实时多任务。其用户是自动化工程设计人员,目的就是让用户迅速开发出适合自己需要的可靠的应用系统。典型应用实例如图。

I/O分配流程图

梯形图

传统PLC实训课与组态一体化教学

传统PLC实训课的被控对象多为工业设备,一般都有体积大、质量大、价格高等特点,很难在实验室配备。为了尽可能模拟被控对象,使缺乏实际知识的学生增加感性认识,许多学校在PLC实验室安装了模拟盘,如十字路口交通灯模拟盘、洗衣机模拟盘等,实验相应内容时,将PLC输入端/输出端连接到模拟盘对应的发光二极管上。这种模拟盘方法,一则限制了实验内容,二则不形象,不直观,三则连线很多,耽误时间。实践证明,教学效果并不理想。但是,即使这种模拟盘,在阳煤职教中心实践部微机控制实验室中也只有两套。从一体化教学角度上讲,这种配置远远不能满足为学生开设实验课的需要。另外,随着申办示范校工作的深入展开,PLC实验室也有扩充和更新的必要。如果仍然采用模拟盘方式,不仅占地大、花钱多,而且随着PLC实验内容的不断更新,模拟盘方式也会很快落后,最后被淘汰。

既然的PLC被控对象多为工业设备和机械,那么就给PLC实训课带来一个问题:采用真实被控对象既不现实,也不安全;没有被控对象模型,既不便学生理解实验内容,也很难激发学生的学习兴趣。将可编程控制器技术与组态软件有机结合,能为PLC的实训课教学提供一条新的途径。利用组态软件全真模拟PLC的被控对象,学生不需要实物而仅通过微机的显示器就可检验所编程序的正确与否和执行结果,这给师生双方都提供了很大方便。结束语

从教学意义上来说,用计算机组态全真模拟被控对象,不但可以

克服采用真实被控对象的缺点,而且可以用有限的设备、低廉的成本、多样化的程序,来丰富学生的实验课内容,大大增强PLC实验课的教学效果,形成理论、仿真、实践三位一体的教学模式,达到一体化教学的目的。

参考文献: [1] 林小峰.可编程控制器原理及应用[M].北京:高等教育出版社,1994.[2] 田瑞庭.可编程控制器应用技术[M].北京:机械工业出版社,1994.[3] 张万忠.可编程控制器应用技术[M].北京:化学工业出版社,2001.[4] 梁冠英,等.PLC在矿井提升信号系统中的应用[J].煤炭技术,2008.[5] 袁秀英 组态控制技术[1] 北京:电子工业出版社。

[6] 严盈富 监控组态软件与PLC入门[1]北京:人民邮电出版社。

[7] 周美兰,周封,王岳宇 电气控制与组态设计[1]北京:科学出版社。

下载实验一词法分析器的设计与实现word格式文档
下载实验一词法分析器的设计与实现.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    计算机网络课程设计-编程实现简单的TCP协议分析器

    编程实现简单的TCP协议分析器 编程实现简单的TCP协议分析器 一、问题描述 编程实现简单的TCP协议分析器,TCP协议分析器是一种用于监督和跟踪网络活动的诊断工具,它从局域网中......

    实验一 市场调研项目设计

    实验一:市场调研项目设计 [实验目的] (1)了解市调研方案设计的意义,掌握调查研究设计的内容与方法。 (2)体会、掌握市场调研的流程与注意事项。 (3)学习依托团队进行调研方案的总体......

    报告压力传感器设计与实现

    传感器设计与实现报告 学生姓名学 号专 业题 目教 师——压力传感器设计 电气自动化技术 压力传感器设计 刘艳伟 PS压力传感器设计与实现 ——PS压力传感器 摘 要 压......

    04-queue设计与实现专题讲座

    Queue设计与实现专题讲座Queue基本概念队列是一种特殊的线性表队列仅在线性表的两端进行操作队头(Front):取出数据元素的一端队尾(Rear):插入数据元素的一端队列不允许在中间......

    GIS设计与实现总结

    西北农林科技大学(地理信息系统08 冰封艺人) 一、名词解释: 地理信息系统:以计算机技术为系统,已具有空间内涵的地理数据为处理对象,云管用系统工程和信息科学的理论,采集、存储、......

    音乐网站的设计与实现

    电子商务网站建设课程论文 论文题目: 豆蔻年华音乐网系 别: 计算机系 专 业: 信息管理与信息系统 班 级: 1班 姓 名: 张伟兴 学 号: 2012103080131 指导老师: 李春红 职 称: 讲师......

    设计与实现[五篇范文]

                                         平办公自动化管理系统的设计与实现-原创论文-毕业设计 工资管理系统的设计与实现-原创论文-毕业设计 工商管理毕业论文-原创论文-毕......

    班级网站设计与实现

    沈阳化工学院 本科毕业论文 题 目: 班级网站设计与实现 院 系: 计算机科学与技术学院 专 业: 计算机科学与技术 班 级: 计算机0802 学生姓名: 金智宇 指导教师: 张 丽 论文......