文档视界 最新最全的文档下载
当前位置:文档视界 › 《java游戏程序设计教程》—实验任务书

《java游戏程序设计教程》—实验任务书

《java游戏程序设计教程》—实验任务书
《java游戏程序设计教程》—实验任务书

《java游戏程序设计教程》实验任务书

实验一弹跳小球游戏设计

一实验目的

通过设计和制作弹跳小球游戏来了解游戏程序的基本结构,理解游戏循环和双缓冲机制的基本原理,并掌握游戏运行框架的设计方法。

二实验内容

学习和了解游戏基本框架的设计方法(参考教材第3章内容及相关代码),在此基础上设计弹跳小球游戏,实现小球在程序窗口边界反弹的效果。要求实现如下功能:

1. 创建游戏程序主窗体(GameFrame)和绘图面板(GamePanel);

2. 设计游戏循环,并通过线程来控制游戏运行的帧速率;

3. 在游戏逻辑更新部分实现小球的运动逻辑,使得小球可以朝着窗口四周移动,并在边界处反弹。

4. 在游戏绘制部分实现小球的图形绘制,并通过双缓冲机制消除屏幕闪烁。三实验步骤

1. 阅读实验要求,设计程序整体结构及各个类的功能。

2. 启动java开发环境,新建游戏项目。

3. 根据实验内容要求编写代码,以实现相应的功能。

4.书写实验报告,详细阐述代码编写的基本思想及主要过程。

四课时分配

2课时

五提交文档

实验报告、源程序代码

实验二贪食蛇游戏设计

一实验目的

通过设计和制作贪食蛇游戏来理解游戏程序的运行机制,同时学习运用java 的事件处理机制来改变游戏状态和传递控制命令。

二实验内容

学习和了解贪食蛇游戏的基本设计思想(参考教材4.4节内容及相关代码),在此基础上进行改进,要求实现如下功能:

1.当窗口最小化或被遮挡时暂停游戏;

2.改变蛇的运动速度,按+号键加速,按-号键减速;

3.手动控制蛇的移动,按下方向键时让蛇朝对应的方向移动,否则静止不动;

4.能够添加多个食物,如当按下某个键后随机添加一个新食物(原来的食物不消失);

5.添加游戏结束规则(比如蛇头碰到边界或蛇身时结束),并能重新开始游戏。

要求至少实现3个功能。还可以根据自己的创意,加入更多功能。

三实验步骤

1. 启动java开发环境,运行示例程序。

2. 阅读示例程序,分析程序整体结构及各个类的功能。

3. 根据实验内容要求修改或添加代码,以实现相应的功能。

4.书写实验报告,详细阐述代码编写的基本思想及主要过程。

四课时分配

2课时

五提交文档

实验报告、源程序代码

实验三打砖块游戏设计

一实验目的

通过设计和制作打砖块游戏来理解游戏程序的运行机制,同时学习运用java 编程来实现游戏世界中物体间的碰撞检测。

二实验内容

学习和了解打砖块游戏的基本设计思想(参考教材4.5节内容及相关代码),在此基础上进行改进,要求实现如下功能:

1 增加生命,如初始时设小球3条命,掉下挡板三次游戏结束;

2 增加难度,每个砖块要敲击两次才能消失;

3 分数显示,设计积分规则,并在游戏结束时显示出来;

4 设置宝物,让宝物隐藏砖块后,打中相应的砖块后改变属性,如小球减速,挡板增长,小球穿越砖块,小球停在挡板上等等;

5 增加新的关卡,在初始的游戏过关后能生成新的关卡(改变砖块布局)。

要求至少实现3个功能。还可以根据自己创意,加入更多功能。

三实验步骤

1. 启动java开发环境,运行示例程序。

2. 阅读示例程序,分析程序整体结构及各个类的功能。

3. 根据实验内容要求修改或添加代码,以实现相应的功能。

4.书写实验报告,详细阐述代码编写的基本思想及主要过程。

四课时分配

2课时

五提交文档

实验报告、源程序代码

实验四角色扮演游戏设计

一实验目的

通过设计和制作简单的角色扮演游戏来了解游戏场景设计和角色设计的基本概念和原理,并掌握游戏场景滚动和角色动画播放的基本实现方法。

二实验内容

学习和了解游戏场景设计和角色设计的基本原理(参考教材5、6章内容),在此基础上设计简单的角色扮演游戏,要求实现如下功能:

1.创建一副大尺寸图像(宽和高均超过程序窗口的宽和高),作为游戏的场景图像。

2.实现场景的滚动控制,要求能够在水平方向和垂直方向进行场景滚动(用键盘左右键进行水平滚动控制,上下键进行垂直滚动控制)。

3.创建游戏角色,并实现角色上下左右四个方向行走时的精灵动画播放。

4.将游戏角色加入游戏场景,并控制角色在场景中四处走动,当按下某个方向键时,滚动游戏场景并播放角色朝着相应方向行走的动画。

三实验步骤

1. 阅读实验要求,设计程序整体结构及各个类的功能。

2. 启动java开发环境,新建游戏项目。

3. 根据实验内容要求编写代码,以实现相应的功能。

4.书写实验报告,详细阐述代码编写的基本思想及主要过程。

四课时分配

2课时

五提交文档

实验报告、源程序代码

实验五横版动作游戏设计

一实验目的

通过设计和制作横版动作游戏来理解游戏场景与角色的交互、游戏规则设计、游戏音乐设计及游戏关卡设计的基本原理,并掌握横版动作游戏程序的基本实现方法。

二实验内容

学习和了解横版动作游戏的基本设计思想(参考教材7-10章的内容和相关代码),在此基础上进行改进,要求实现如下功能:

1.用其它图像资源替换教材游戏示例中的场景及精灵,同时用其它声音资源替换示例中的音乐和音效;

2.改进NPC(电脑角色)间的碰撞检测及处理规则,如让两个NPC碰到后相互按相反的方向移动等;

3.在游戏地图中设置秘密出口,玩家走到该处可以直接过关;

4.增加新的道具,让玩家得到道具后获得新技能;

5.增加移动障碍物,比如上下(或左右)浮动的木头等;

6.使用关卡编辑器设计一个新关卡。

要求至少实现3个功能。还可以根据自己创意,加入更多功能。

三实验步骤

1. 启动java开发环境,运行示例程序。

2. 阅读示例程序,分析程序整体结构及各个类的功能。

3. 根据实验内容要求修改或添加代码,以实现相应的功能。

4.书写实验报告,详细阐述代码编写的基本思想及主要过程。

四课时分配

2课时

五提交文档

实验报告、源程序代码

实验六、七、八、九为综合实验,要求模仿经典游戏“推箱子”来独立地设计一款java游戏,以此理解游戏设计的基本原理,同时练习使用面向对象的程序设计方法。(说明:只需要实现任务书上的基本功能,不能从网上copy现成的代码。需提交可玩的游戏源程序及各次实验的实验报告。)

实验六推箱子游戏场景设计

一实验目的

理解游戏循环的实现原理,掌握java图像绘制、tile贴图、精灵动画及移动控制的程序实现。

二实验内容

1.绘制游戏场景。背景底层使用一副图片作为场景,前层用tile贴图表示障碍

物。

2.绘制精灵。包括箱子、玩家角色、标志点。

3.控制玩家移动。按上下左右方向键后玩家分别向对应的方向移动,同时播放

该方向的行走动画。

三实验步骤

1. 阅读实验要求,设计程序整体结构及各个类的功能。

2. 启动java开发环境,新建游戏项目。

3. 根据实验内容要求编写代码,以实现相应的功能。

4.书写实验报告,详细阐述代码编写的基本思想及主要过程。

四课时分配

2课时

五提交文档

实验报告、源程序代码

实验七推箱子游戏交互设计

一实验目的

理解碰撞检测的原理,并掌握其程序的实现方式。

二实验内容

1.玩家与障碍物碰撞。玩家碰到障碍物后停止移动。

2.玩家与箱子碰撞。玩家碰到箱子后,箱子朝玩家行走的方向移动一个单位。

3.箱子与障碍物碰撞。箱子碰到障碍物后停止移动(箱子与箱子碰撞与此类

似)。

三实验步骤

1. 阅读实验要求,设计程序整体结构及各个类的功能。

2. 启动java开发环境,新建游戏项目。

3. 根据实验内容要求编写代码,以实现相应的功能。

4.书写实验报告,详细阐述代码编写的基本思想及主要过程。

四课时分配

2课时

五提交文档

实验报告、源程序代码

实验八推箱子游戏规则设计

一实验目的

理解并实现游戏的状态转换、游戏规则设计、游戏的背景音乐及音效设计。

二实验内容

1.完善游戏规则。当所有箱子都处在“标志点”上时游戏结束,在程序窗口正

中显示“finished”。

2.设定重置键。按“R”键重新开始游戏,所有箱子和玩家回到初始位置。

3.添加声音效果。为游戏设定一个背景音乐,在游戏过程中循环播放;当玩家

推动箱子时播放一个音效,当游戏结束时播放一个音效。

三实验步骤

1. 阅读实验要求,设计程序整体结构及各个类的功能。

2. 启动java开发环境,新建游戏项目。

3. 根据实验内容要求编写代码,以实现相应的功能。

4.书写实验报告,详细阐述代码编写的基本思想及主要过程。

四课时分配

2课时

五提交文档

实验报告、源程序代码

实验九推箱子游戏关卡设计

一实验目的

理解游戏关卡的设计原理及游戏菜单的制作方式,并掌握其程序实现方法。

二实验内容

1.设计新关卡。用文件保存关卡中的障碍物信息,并通过java的文件操作功能

读取关卡信息,同时生成新的关卡。

2.切换关卡。当前关卡完成后自动切换至下一关卡,当所有关卡完成后游戏结

束。

3.添加游戏菜单。为游戏设计一个菜单,当游戏程序启动时自动显示在屏幕正

中。菜单项需要包含“开始游戏”、“退出游戏”、“跳转关卡”以及“关闭/开启音乐”等功能。

三实验步骤

1. 阅读实验要求,设计程序整体结构及各个类的功能。

2. 启动java开发环境,新建游戏项目。

3. 根据实验内容要求编写代码,以实现相应的功能。

4.书写实验报告,详细阐述代码编写的基本思想及主要过程。

四课时分配

2课时

五提交文档

实验报告、源程序代码

实验1—软件项目计划任务书格式(1)

《网上书店软件项目计划任务书》 作者:高俭、李国静、马海山、马占龙(组长) 完成日期: 签收人: 签收日期: 修改情况记录:

目录 1. 项目背景、范围及目标 .................................. 错误!未定义书签。 开发背景............................................. 错误!未定义书签。 系统基本功能 ......................................... 错误!未定义书签。 达到的目标 ........................................... 错误!未定义书签。 2. 项目可行性分析 ........................................ 错误!未定义书签。 经济可行性 ........................................... 错误!未定义书签。 技术可行性 ........................................... 错误!未定义书签。 运行可行性 ........................................... 错误!未定义书签。 3. 项目的软件开发生命周期模型 ............................ 错误!未定义书签。 理由................................................. 错误!未定义书签。 生命周期模型的描述与概要解释 ......................... 错误!未定义书签。 生命周期模型各阶段说明(阶段目标、输入、阶段的行为与任务、输出)错误!未定义书签。 4. 项目实施计划.......................................... 错误!未定义书签。

数据结构实验指导书(2016.03.11)

《数据结构》实验指导书 郑州轻工业学院 2016.02.20

目录 前言 (3) 实验01 顺序表的基本操作 (7) 实验02 单链表的基本操作 (19) 实验03 栈的基本操作 (32) 实验04 队列的基本操作 (35) 实验05 二叉树的基本操作 (38) 实验06 哈夫曼编码 (40) 实验07 图的两种存储和遍历 (42) 实验08 最小生成树、拓扑排序和最短路径 (46) 实验09 二叉排序树的基本操作 (48) 实验10 哈希表的生成 (50) 实验11 常用的内部排序算法 (52) 附:实验报告模板 .......... 错误!未定义书签。

前言 《数据结构》是计算机相关专业的一门核心基础课程,是编译原理、操作系统、数据库系统及其它系统程序和大型应用程序开发的重要基础,也是很多高校考研专业课之一。它主要介绍线性结构、树型结构、图状结构三种逻辑结构的特点和在计算机内的存储方法,并在此基础上介绍一些典型算法及其时、空效率分析。这门课程的主要任务是研究数据的逻辑关系以及这种逻辑关系在计算机中的表示、存储和运算,培养学生能够设计有效表达和简化算法的数据结构,从而提高其程序设计能力。通过学习,要求学生能够掌握各种数据结构的特点、存储表示和典型算法的设计思想及程序实现,能够根据实际问题选取合适的数据表达和存储方案,设计出简洁、高效、实用的算法,为后续课程的学习及软件开发打下良好的基础。另外本课程的学习过程也是进行复杂程序设计的训练过程,通过算法设计和上机实践的训练,能够培养学生的数据抽象能力和程序设计能力。学习这门课程,习题和实验是两个关键环节。学生理解算法,上机实验是最佳的途径之一。因此,实验环节的好坏是学生能否学好《数据结构》的关键。为了更好地配合学生实验,特编写实验指导书。 一、实验目的 本课程实验主要是为了原理和应用的结合,通过实验一方面使学生更好的理解数据结构的概念

JAVA课程设计学籍管理系统

课程设计任务书题目:学籍管理系统 组员 学号 组员 学号 组员 学号 专业 课程JAVA 指导教师 完成时间:2011年9月——2011年12月 计算机科学系制

课程设计任务书及成绩评定

本学籍管理系统共有6个java源文件。类之间的主要关系如图所示。 该java文件的类负责创建学籍管理系统主窗口。该类含有main方法,程序从该类开始执行。 该文件的类负责创建学籍管理系统的学生信息录入界面。 该文件的类负责创建学籍管理系统的学生信息修改界面。 该文件的类负责创建学籍管理系统的学生信息查询界面。 该文件的类负责创建学籍管理系统的学生信息删除界面。 负责创建存放学生信息的对象。 1.具体设计 1.1主类StudentManager 1.成员变量(见下表) 主要成员变量(属性) 成员变量描述变量类型名称 基本信息录入界面StudentSituation 基本信息录入 基本信息修改界面ModifySituation 基本信息修改 基本信息查询界面Inquest 基本信息查询 基本信息删除界面Delete 基本信息删除 菜单选项JmenuItem 录入,修改,查询,删除存放基本信息的散列表Hashtable 基本信息 存放散列表的文件File file 2.方法(见下表) 主要方法 名称功能备注 StudentManager 创建程序主窗口构造方法actionPerformed 处理ActionEvent事件接口方法 main 程序开始运行 3.代码 import .*; import .*;

import .*; public class StudentManager extends JFrame implements ActionListener { StudentSituation 基本信息录入=null; ddActionListener(this); 修改.addActionListener(this); 查询.addActionListener(this); 删除.addActionListener(this); card=new CardLayout(); con=getContentPane(); pCenter=new JPanel(); (card); file=new File("基本信息.txt"); if(!()) { try{ FileOutputStream out=new FileOutputStream(file); ObjectOutputStream objectOut=new ObjectOutputStream(out); (基本信息); (); (); } catch(IOException e) { } } 基本信息录入=new StudentSituation(file); 基本信息修改=new ModifySituation(file); 基本信息查询=new Inquest(this,file); 基本信息删除=new Delete(file); ("欢迎语界面",label); ("录入界面",基本信息录入); ("修改界面",基本信息修改); ("删除界面",基本信息删除); (pCenter,; (); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { (0); } }); setVisible(true); setBounds(100,50,420,380); validate(); } public void actionPerformed(ActionEvent e) { if()==录入) { (pCenter,"录入界面"); } else if()==修改) { (pCenter,"修改界面"); } else if()==查询) { etVisible(true); }

编译原理实验指导

编译原理实验指导 实验安排: 上机实践按小组完成实验任务。每小组三人,分别完成TEST语言的词法分析、语法分析、语义分析和中间代码生成三个题目,语法分析部分可任意选择一种语法分析方法。先各自调试运行,然后每小组将程序连接在一起调试,构成一个相对完整的编译器。 实验报告: 上机结束后提交实验报告,报告内容: 1.小组成员; 2.个人完成的任务; 3.分析及设计的过程; 4.程序的连接; 5.设计中遇到的问题及解决方案; 6.总结。

实验一词法分析 一、实验目的 通过设计编制调试TEST语言的词法分析程序,加深对词法分析原理的理解。并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。 编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的内部编码及单词符号自身值。 二、实验预习提示 1.词法分析器的功能和输出格式 词法分析器的功能是输入源程序,输出单词符号。词法分析器的单词符号常常表示 成以下的二元式(单词种别码,单词符号的属性值)。 2.TEST语言的词法规则 |ID|ID |NUM →a|b|…|z|A|B|…|Z →1|2|…|9|0 →+|-|*|/|=|(|)|{|}|:|,|;|<|>|! →>=|<=|!=|== →/* →*/ 三、实验过程和指导 1.阅读课本有关章节,明确语言的语法,画出状态图和词法分析算法流程图。 2.编制好程序。 3.准备好多组测试数据。 4.程序要求 程序输入/输出示例:

实训项目五抹灰工程实训任务书抹灰工程实践的目的通过对抹灰

实训项目五:抹灰工程实训任务书 1.抹灰工程实践的目的 通过对抹灰工程的现场实践,学生应对抹灰工程的施工全过程有全面的了解和掌握,掌握抹灰工程的施工方法和要点,使学生上岗这后能能熟练的组织抹灰工程的施工。 通过实训,使学生掌握以下专业技能: (1)掌握内墙各部位各层抹灰的标准; (2)掌握墙面抹灰的操作要点; (3)掌握2~3中常见装饰抹灰的操作要点; (4)掌握常见装饰抹灰的操作要点和做法。 2.基本要求 1)认真阅读和实习指导书,依据实习指导书的内容,明确实习任务。 2)实习期间要严格遵守工地规章制度和安全操作规程,进入施工工地必须带安全帽,随时注意安全防止发生安全事故。 3)学生实习中要积极主动,遵守纪律,服从实习指导老师的工作安排,要虚心向工程技术人员及工人师傅学习,脚踏实地,扎扎实实,深入工程实际,参加具体工作以培养实际工作能力。 4)严格遵守国家法令,遵守学校及实习所在单位的各项规章制度和纪律。 5)每天写好实训日记、记录施工情况、心得体会、革新建议等。 6)实训结束前写好实训报告卡,对业务收获进行小结 3.抹灰工程实践顶岗的内容 1)按各类抹灰工程的施工方法、施工工艺和要点,合理的组织抹灰工程的施工。 2)处理好抹灰工程对材料的要求。 3)做好抹灰工程的技术交底工作。 4)安排好抹灰工程的施工顺序。 5)严格把好抹灰工程的质量关,做好检查验收和质量评定工作。

4.实训安排 由各校按实际情况安排实训指导教师和实训基地安排实训师傅,实训时间1周。实习单位应选择有一定施工水平和技术能力的施工企业,实习对象应选择中型的工业与民用建筑工程,每人或每组以一个工程项目为主要实习对象。(每组人数不宜超过5人) 5.实训相关知识 所谓抹灰工程,就是将各种砂浆、装饰性石屑浆、石子浆涂抹在建筑物的表面上的一种装修工程。按使用材料和装饰效果分为一般抹灰和装饰抹灰。 一般抹灰:水泥砂浆、混合砂浆、石灰砂浆、纸筋灰、麻刀灰、石膏灰、聚合物水泥砂浆。 装饰抹灰:水磨石、水刷石、干黏石、斩假石、喷涂、弹涂、漆涂。 (1)一般抹灰 1)组成与级别。 为确保抹灰黏结牢固,抹面平整,减少收缩裂缝,一般抹灰需分层进行。 ①底层。与基层起黏结作用,厚5~7mm;此外,还起初步找平作用,这就要求基层要达到横平竖直,表面不能凹凸不平,否则,底层的厚度会超过10mm,不但造成浪费,而且黏结也不牢固。 ②中层。主要起找平和传递荷载的作用,厚5~12mm。施工时,要求大面积平整、垂直,表面粗糙,以增加与面层的黏结能力。 ③面层。主要起装饰和保护作用。室内粉刷,还要起反光作用,增加室内亮度。厚2~5mm。 一般抹灰按质量要求不同分为普通、中级、高级三个级别。 ①普通抹灰。由一底一面组成,无中层,也可不分层,适用于简易住房,或地下室、储藏室等。 ②中级抹灰。由一底层、一中层和一层面层组成。 ③高级抹灰。由一底层、数层中层、一面层多遍完成。 2)抹灰工程的材料。 ①水泥。常用硅酸盐水泥或白水泥,其标号可用325,也可用425,但水泥体积的安定性必需合格,否则,抹灰层会起壳、起灰。

编译原理课程设计LL(1)文法 do while 三地址输出 报告加代码

学号: 课程设计 题目编译原理 学院计算机科学与技术 专业计算机科学与技术 班级 姓名 指导教师 2 年月日

课程设计任务书 学生姓名:专业班级: 指导教师:工作单位: 题目: DO-WHILE循环语句的翻译程序设计(LL(1)法、输出三地址表示)初始条件: 理论:学完编译课程,掌握一种计算机高级语言的使用。 实践:计算机实验室提供计算机及软件环境。如果自己有计算机可以在其上进行设计。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) (1)写出符合给定的语法分析方法的文法及属性文法。 (2)完成题目要求的中间代码三地址表示的描述。 (3)写出给定的语法分析方法的思想,完成语法分析和语义分析程序设计。 (4)编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。 (5)设计报告格式按附件要求书写。课程设计报告书正文的内容应包括: 1 系统描述(问题域描述); 2 文法及属性文法的描述; 3 语法分析方法描述及语法分析表设计; 4 按给定的题目给出中间代码形式的描述及中间代码序列的结构设计; 5 编译系统的概要设计; 6 详细的算法描述(流程图或伪代码); 7 软件的测试方法和测试结果; 8 研制报告(研制过程,本设计的评价、特点、不足、收获与体会等); 9 参考文献(按公开发表的规范书写)。 时间安排: 设计安排一周:周1、周2:完成系统分析及设计。 周3、周4:完成程序调试及测试。 周5:撰写课程设计报告。 设计验收安排:设计周的星期五第1节课开始到实验室进行上机验收。 设计报告书收取时间:设计周的次周星期一上午10点。 指导教师签名: 2011年 12月 23日 系主任(或责任教师)签名: 2011年 12月 23日

java课程设计报告书

《Java程序设计》课程设计报告2015—2016学年第二学期 设计题目:《数字连连看》 学生:黄杰 学号: 2 专业班级:软件工程1402 指导教师:国权 2016 年7 月2 日

目录 1.JAVA程序设计书 3 1.1《简易连连看》 3 1.1.1具体要求 3 1.2本系统设计的知识点 3 2.功能设计 3 2.1算法设计 3 2.2部分模块流程图 4 3.代码设计 5 4.界面及运行效果,测试工具与测试效果14 5.设计总结 16 5.1.程序调试情况:16 5.2.本人在程序设计中感想: 16 6.致 16 主要参考文献16

: 1.1Java程序课程设计任务书 1.1《简易连连看游戏》 本程序基本实现了小游戏连连看的功能,玩家找出游戏中2个相同图案的方块,如果它们之间的连接线不多于3根直线,则将其连接起来,就可以成功将图案相同的方块消除,否则不会消失,当游戏中已没有满足条件的图案时,点击重列,可重新排序,游戏结束会跳出所得分数,该游戏的特点是与自己竞争,超过自己之前所创纪录。 1.1.1具体要求(包括技术要求等): <1>. 该游戏界面为方格类型,由纵6横7的直线平行垂直交叉组成,分别是6行5列方块拼接,共有30格小方块。方块上随机分布一些数字,数字的要至少两两相同,位置随机打乱。 <2>. 当将相同数字的方块连接,但要满足只能至少单边无阻碍呈直线趋势连接,否则无效,若连接一对成功就消失于界面,继续游戏,直到游戏结束,并能返回所得分数。 <3>. 重列按钮(帮助)的功能:游戏过程中,遇到困难难以寻找下一符合要求的一对数字,可按左下按钮重置重新排列方可继续游戏。 <4>. 退出按钮:击左下方的“退出游戏”按钮,即可结束游戏。 1.2本系统涉及的知识点: 循环,javaGUI组件,函数,数组,分支等 2.功能设计 2.1算法设计 本系统需要实现的功能要求: 图一,数字按钮功能模块 图二,三个功能按钮模块

编译原理实验指导书2010

《编译原理》课程实验指导书 课程编号: 课程名称:编译原理/Compiler Principles 实验总学时数: 8 适用专业:计算机科学与技术、软件工程 承担实验室:计算机学院计算机科学系中心实验室、计算机技术系中心实验室 一、实验教学的目的与要求 上机实习是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。通常,实习题中的问题比平时的练习题要复杂,也更接近实际。编译原理这门课程安排的2次上机实验都属于一种设计类型的实验,每个实验的训练重点在于基本的编译技术和方法,而不强调面面俱到;实验的目的是旨在使学生进一步巩固课堂上所学的理论知识,深化理解和灵活掌握教学内容;培养学生编制算法的能力和编程解决实际问题的动手能力。 要求学生在上机前应认真做好各种准备工作,熟悉机器的操作系统和语言的集成环境,独立完成算法设计和程序代码的编写;上机时应随带有关的编译原理教材或参考书;要学会程序调试与纠错。 每次实验后要交实验报告,实验报告的内容应包括: (1)实验题目、班级、学号、姓名、完成日期; (2)简要的需求分析与概要设计; (3)详细的算法描述; (4)源程序清单; (5)给出软件的测试方法和测试结果; (6)实验的评价、收获与体会。 开发工具: (1)DOS环境下使用Turbo C; (2)Windows环境下使用Visual C++ 。 考核: 实验成绩占编译原理课程结业成绩的10%。 三、单项实验的内容和要求: 要求每个实验保证每个学生一台微机。 实验一(4学时):单词的词法分析程序设计。 (一)目的与要求 1.目的 通过设计、编制、调试一个具体的词法分析程序,加深对词法分析原理的理解,并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。

JAVA课程设计任务书 - 科学计算器

《高级语言程序设计(2)》课程设计报告 专业:班级:学号:姓名: 完成日期: 指导教师: 1、程序设计说明书 【设计题目】科学计算器 【问题描述】本程序为设计一个科学计算器,用于进行数值计算。可以进行数据的加减乘除,对数等计算。 【软件功能】 1 图形界面:应用AWT和Swing设计工作界面,按下数字时显示数字,按下“=”时显示结果。 2 计算器基本功能:加减乘除四则运算,倒数,开平方等。 3 附加运算功能:三角函数,对数,阶乘,度转化为弧度等。 4 计算器的存储功能:清除中间结果,使用中间结果,存储中间结果及累加中间结果 5 用不同颜色进行分区 【算法思想】 本程序设计一个主类和四个内部类。通过在主类中调用四个类来实现程序的各个功能。 【类的设计】 1主类SmartCalculator类,继承了JFrame类 ○1成员变量 tf是JTextField对象,单行文本框,用来显示数据。 panel1,panel2,panel3,panel4是JPanel对象,用来盛放按钮。Panel1盛放“←”,“CE”,“C”按钮,Panel2盛放功能区按钮,Panel3盛放记忆区按钮,Panel4盛放面板Panel1和Panel2 isResult,flag是布尔型变量 result是double型变量,存储结果 SpecialNumActionListener是SpecialNum类的对象,监听特殊数字按钮 df是DecimalFormat类的对象,控制输出格式 ○2方法 SmartCauculator是构造方法,完成面板的布局并调用init方法 init方法调用addButton方法向面板中增加按钮 addButtion方法统一设置按钮的使用方式,参数包括panel,name,action,color,每次完成向面板添加按钮,设置名字,添加键盘监听器和设置按钮颜色 getResult方法实现四则运算,并输出 main方法,程序入口 2内部类FunctionSigns,继承接口ActionListener,实现接口的actionProform抽象方法,完成开平方,求对数等操作 3内部类ClearArea,继承接口ActionListener,实现接口的actionProform抽象方法,对清除区三个按钮“←”,“CE”,“C”进行监听,实现删除功能。 4内部类SpecialNum,继承接口ActionListener,实现接口的actionProform抽象方法,对π,e,及数字键监听 5 Dot对小数点进行监听 【用户界面】

《编译原理》实验指导书-2015

武汉科技大学计算机科学与技术学院 编译原理实验指导书

实验一词法分析器设计 【实验目的】 1.熟悉词法分析的基本原理,词法分析的过程以及词法分析中要注意的问题。 2.复习高级语言,进一步加强用高级语言来解决实际问题的能力。 3.通过完成词法分析程序,了解词法分析的过程。 【实验内容】 用C语言编写一个PL/0词法分析器,为语法语义分析提供单词,使之能把输入的字符串形式的源程序分割成一个个单词符号传递给语法语义分析,并把分析结果(基本字,运算符,标识符,常数以及界符)输出。 【实验要求】 1.要求绘出词法分析过程的流程图。 2.根据词法分析的目的以及内容,确定完成分析过程所需模块。 3.写出每个模块的源代码,并给出注释。 4.整理程序清单及所得结果。 【说明】 运行成功以后,检查程序,并将运行结果截图打印粘贴到实验报告上。 辅助库函数scanerLib设计以及使用说明: 下面内容给出了一个辅助库函数的接口说明以及具体实现。 接口设计 //字符类 class Token { TokenType type; String str; Int line; } //词法分析结果输出操作类 class TokenWriter { ArrayList tokens; //用来记录所识别出来的token TokenWriter(); //构造函数指定输入文件名,创建文件输出流 V oid Add(Token); //将词法分析器中分析得到的Token添加到tokens中 WriteXML(); //将tokens写出到目标文件.xml中 } //词法分析操作词法分析生成文件接口<暂时不需要对该类的操作;下一步做语法分析的时候使用> class TokenReader

编译原理实验教(学)案

实验教学进度表

实验一 C语言子集编译程序 一、实验目的 用C语言对一个C语言的子集编制一个一遍扫描的编译程序,以加深对编译原理的理解,掌握编译程序的实现方法和技术。 1.设计、编制并调试一个词法分析程序,加深对词法分析原理的理解。 2.编制一个递归下降分析程序,并对C语言的简单子集进行分析。 3.通过上机实习,加深对语法制导翻译原理的理解,掌握将语法分析所识别的语法成分变换中间代码的语义翻译方法。 二、实验要求、容及学时 词法分析部分:2学时 (一)待分析的C语言子集的词法: 1.关键字 main if else int return void while 所有关键字都是小写。 2.专用符号 = + - * / < <= > >= == != ; : , { } [ ] ( ) 3.其他标记ID和NUM 通过以下正规式定义其他标记: ID→letter(letter|digit)*NUM→digit(digit)* letter→a|…|z|A|…|Z digit→0|…|9 4.空格由空白、制表符和换行符组成 空格一般用来分隔ID、NUM、专用符号和关键字,词法分析阶段空格通

(二)词法分析程序的功能: 输入:所给文法的源程序字符串。 输出:二元组(syn,token或sum)构成的序列。其中, syn 为单词类别码。 token 为存放的单词自身字符串。 sum 为整型常量。 具体实现时,可以将单词的二元组用结构进行处理。 例如:对源程序 main() { int i=10; while(i) i=i-1; } 的源文件,经词法分析后输出如下序列: (1,main) (26,() (27,)) (30,{) (2,int) (10,i) (21,=) (20,10) (34,;) (7,while) (26,() (10,i) (27,)) (10,i) (21,=) (10,i) (23,-) (20,1) (34,;) (31, }) (三)词法分析程序主要算法思想: 算法的基本任务是从字符串表示的源程序中识别出具有独立意义的单词符号,其基本思想是根据扫描到单词符号的第一个字符的种类,拼出相应的单词符号。 : 注: ①关键字表初值 关键字作为特殊标识符处理,把它们预先安排在一表格中(称为关键字),当扫描程序识别出标识符时,查关键字表。如能查到匹配的单词,则该单词为关键字,否则为一般标识符。关键字表可处理为一个字符串数组(实际为指向字符数组的指针数组),其描述如下: char *KEY_WORDS[8]= {“main”,”int”,”char”,”if”,”else”,”for”,”while”}; 为分析方便,这里把main作关键字处理。 ②程序中需要用到的主要变量:syn,token和sum。 2.扫描子程序(scaner)的算法思想

教学实验室建设项目任务书SE

西北大学教学实验室专项建设任务书 (2005 年度) 项目名称:基础实验室补充建设项目承担单位:信息科学与技术学院负责人:彭进业 联系电话:88308119 填表日期:2005 年11月14日 西北大学资产设备管理处制

二、拟建设项目的可行论证

五、计划任务书签订双方 学校(甲方): 学校主管校长(签字): 年月日 项目承担单位(乙方): 项目承担单位负责人(签字): 年月日 六、共同条款 签约双方应共同遵守《西北大学教学实验室管理办法》。 (1)在项目建设过程中,与项目相关的各方都应密切配合、相互协作,保证计划的顺利进行。乙方在建设过程中如无正当理由,应保证任务书中的各项计划指标如期按时完成,对在建设过程中造成重大不良影响或失误的单位和个人,要追究有关当事人责任。 (2)在计划任务书执行过程中,甲方应按计划如期拨款,如因经费不能如期拨付造成项目建设延期而影响项目评估验收,或达不到预期验收指标,不能追究乙方责任。 (3)乙方在项目建设过程中向甲方提交的与项目建设有关的各种申请、报告等文字材料,甲方必须按有关管理文件的规定及时做相应处理。 (4)乙方在完成任务书各项指标后,必须及时向甲方和项目主管部门提交项目完成情况的总结报告,全面阐述建设项目各项指标任务的落实情况和取得的成绩。 (5)计划任务书执行过程中,任何一方提出变更计划任务书有关内容时,应详细提出变更理由。 (6)乙方建设经费的使用应严格按照批准后的经费额度使用,不得挪用,经费使用应严格遵守专款专用原则。 (7)乙方在项目建设过程中,仪器设备购置应严格遵守《西北大学仪器设备采购实施细则》。 (8)计划任务书正式文本分存甲方、乙方和资产设备处。 (9)其它补充条款:

编译原理课程设计报告_LL(1)分析过程模拟

课程设计(论文)任务书 软件学院学院软件工程专业07-1班 一、课程设计(论文)题目LL(1)分析过程模拟 二、课程设计(论文)工作自 2010 年 6 月 22日起至 2010 年 6月 28 日止。 三、课程设计(论文) 地点: 四、课程设计(论文)内容要求: 1.本课程设计的目的 (1)使学生掌握LL(1)模块的基本工作原理; (2)培养学生基本掌握LL(1)分析的基本思路和方法; (3)使学生掌握LL(1)的调试; (4)培养学生分析、解决问题的能力; (5)提高学生的科技论文写作能力。 2.课程设计的任务及要求 1)基本要求: (1)分析LL(1)模块的工作原理; (2)提出程序的设计方案; (3)对所设计程序进行调试。 2)创新要求: 在基本要求达到后,可进行创新设计,如改算法效率。 3)课程设计论文编写要求 (1)要按照书稿的规格打印誊写课程设计论文 (2)论文包括目录、绪论、正文、小结、参考文献、附录等 (3)课程设计论文装订按学校的统一要求完成 4)答辩与评分标准: (1)完成原理分析:20分; (2)完成设计过程(含翻译):40分; (3)完成调试:20分;

(4)回答问题:20分。 5)参考文献: (1)张素琴,吕映芝,蒋维杜,戴桂兰.编译原理(第2版).清华大学出版社 (2)丁振凡.《Java语言实用教程》北京邮电大学出版社 6)课程设计进度安排 内容天数地点 构思及收集资料2图书馆 编程与调试4实验室 撰写论文1图书馆、实验室 学生签名: 2009 年6 月22 日 课程设计(论文)评审意见 (1)完成原理分析(20分):优()、良()、中()、一般()、差();(2)设计分析(20分):优()、良()、中()、一般()、差();(3)完成调试(20分):优()、良()、中()、一般()、差();(4)翻译能力(20分):优()、良()、中()、一般()、差();(5)回答问题(20分):优()、良()、中()、一般()、差();(6)格式规范性及考勤是否降等级:是()、否() 评阅人:职称: 年月日

课程设计任务书JAVA课程设计

Java 面向对象程序设计课程设计》课程设计任务书 学年学期: 2014-2015学年第 1 学期 专业班级: 2014专升本 3 班 指导教师:朱薇 设计时间: 2015.1.12—2014.1.23 学时周数: 20学时/周,共计 40 学时 一、设计目的 通过该课程设计加深学生对面向对象概念、 JAVA 面向对象程序设计思想方法的理解和掌握;使学生熟悉开发一个小型的电子商务项目的基本过程,并能综合运用所学知识,初步应用软件工程方法进行软件开发;增强学生的动手能力。为后续学习和应用打下一定的基础。 二、设计任务及要求 以学过的Java程序设计,web编程基础为工具,完成一个小型电子商务系统的设计开发。要求学生 8-10 人一大组 , 大组中又分为 A,B 组,由 A, B 组分工配合实现前台及后台功能,最后组合成一完整的电子商务系统。详细要求如下: 1、针对给定的业务规划商务模型和商务系统,确定电子商务系统的具体组成部分,写出详细的规划说明书。 2、开发环境: Jsp(JavaBean+Servlet)+Mysql 3、开发一个小型的系统。每组最终提交一个电子商务系统软件和规范的课程设计说明书。 4、每大组设组长两名,(A组,B组)组内成员分工明确、各司其职。

三、设计时间进度安排

四、成绩考核 1、项目评分方法 为更好地体现实训成果,评定学生实训成绩,特制定本评分方法。具体评分细则如下: 项目完成后,应组织同学完成项目评审。评审时,项目经理应根据本小组项目 完成情况,制作PPT介绍本项目,并运行程序,进行演示,同时完成答辩老师 的提问。 根据学生项目的优良情况,评审老师给出项目的等级分。评分有如下等级: A/B/C/D/E/F/G,可根据情况打出A+或者B-等。 A-F 等级系数为:0.9/0.8/0.7/0.6/0.5/0.4/0.3 根据项目组的人数,考评项目的等级,打出学生项目的最后得分。 女口:该项目组等级为A (系数为0.9),项目组共4人,则该小组得分为: 4*100*0.9=360 女口:该项目组等级为D (系数为0.6),项目组共5人,则该小组得分为: 5*100*0.6=300 项目经理根据项目组中每个组员的实际完成情况,打出该组员在项目开发工 作中,所占的工作量比数,如: A完成约25%勺开发工作量,则A同学为25% 项目组中,所有成员开发工作量总和为 100% 根据项目小组中,项目经理打出的工作量比数和项目考核的实际分 数,计算项目组中每位同学的实际得分。若该分高于100分,则按

编译原理实验指导书

编译原理 实 验 指 导 书 作者:莫礼平 2011年3月

实验一简单词法分析程序设计 一、实验目的 了解词法分析程序的基本构造原理,掌握词法分析程序的手工构造方法。 二、实验内容 1、了解编译程序的词法分析过程。 2、根据PASCAL语言的说明语句形式,用手工方法构造一个对说明语句进行词法分析的程序。该程序能对从键盘输入或从文件读入的形如: “const count=10,sum=81.5,char1=’f’,string1=”hj”, max=169;” 的常量说明串进行处理,分析常量说明串中各常量名、常量类型及常量值,并统计各种类型常量个数。 三、实验要求 1、输入的常量说明串,要求最后以分号作结束标志; 2、根据输入串或读入的文本文件中第一个单词是否为“const”判断输入串或文本文件是否为常量说明内容; 3、识别输入串或打开的文本文件中的常量名。常量名必须是标识符,定义为字母开头,后跟若干个字母,数字或下划线; 4、根据各常量名紧跟等号“=”后面的内容判断常量的类型。其中:字符型常量定 义为放在单引号内的一个字符;字符串常量定义为放在双引号内所有内容;整型常量定 义为带或不带+、- 号,不以0开头的若干数字的组合;实型常量定义为带或不带+、- 号, 不以0开头的若干数字加上小数点再后跟若干数字的组合; 5、统计并输出串或文件中包含的各种类型的常量个数; 6、以二元组(类型,值)的形式输出各常量的类型和值; 7、根据常量说明串置于高级语言源程序中时可能出现的错误情况,模仿高级语言编 译器对不同错误情况做出相应处理。 四、运行结果 1、输入如下正确的常量说明串: const count=10,sum=81.5,char1=‘f’,max=169,str1=“h*54 2..4S!AAsj”, char2=‘@’,str2=“aa!+h”; 输出: count(integer,10) sum(float,81.5) char1(char, ‘f’) max(integer,169) str1(string,“h*54 2..4S!AAsj”) char2(char, ‘@’) str2(string,“aa!+h”) int_num=2; char_num=2; string_num=2; float_num=1. 2、输入类似如下的保留字const错误的常量说明串: Aconstt count=10,sum=81.5,char1=‘f’; 输出类似下面的错误提示信息:

关于申报2017年开放性实验项目的通知

关于申报2017年开放性实验项目的通知 各教学单位: 开放性实验项目的设立有利于高效利用实验室现有资源,有利于鼓励引导学生积极参与科学研究和实践探索,也是教育教学改革的重要内容。为做好2017年开放性实验项目申报,现将相关工作通知如下: 一、申报范围 为支持实验室开放工作,凡能向学生开设开放项目的实验室均可申请。 二、申报安排 1.实验室根据自身条件设计一定数量、切实可行、具有创新意义的开放项目,填写《开放性实验项目立项申报表》(附件1)。 2.各教学单位对申报的开放项目进行评审,评审通过的开放项目由项目负责人填写《开放性实验项目任务书》(附件2)。 3.各教学单位汇总通过评审的开放项目,填写《开放性实验项目信息汇总表》(附件3),于3月22日下班前报送教务处实践教学科(三办128),纸质版、电子版各一份。 联系人:毛江一联系电话: 附件: 1.开放性实验项目立项申报表 2.开放性实验项目任务书 3.开放性实验项目信息汇总表 教务处 2017年3月7日

附件1: 北京信息科技大学年开放性实验项目立项申报表教学单位:实验室:

附件2: 北京信息科技大学年开放性实验项目任务书

填表说明 一、项目具体形式说明 1.新开发或新研制实验项目型:实验技术人员或教师结合科研、教研成果,或利用新购置的实验设备研制新实验,编写实验讲义,组织学生试做,以了解学生对实验的操作程度和掌握程度,以及对提高学生实践能力的作用,为进一步更新实验内容、提高实验教学质量做好准备。 2.课内实验加强或拓展型:学生为了更好地掌握课内实验操作技能,于课外时间进入实验室操作,按照课内实验要求进行实验;涉及课内实验的先导问题,或后续延伸问题,学生有积极性的可作为自选项目,进入实验室进行实验。 二、总学时数、实验学时数与教师辅导学时数 1.总学时数是学生参与完成该开放性实验项目所需的总学时数,

java课程设计报告书

《Java程序设计》课程设计报告 2015—2016学年第二学期 设计题目:《数字连连看》 学生:黄杰 学号: 2 专业班级:软件工程1402 指导教师:国权 2016 年 7 月 2 日 目录 1.JAVA程序设计书 3 1.1《简易连连看》3 1.1.1具体要求 3 1.2本系统设计的知识点 3

2.功能设计 3 2.1算法设计 3 2.2部分模块流程图 4 3.代码设计 5 4.界面及运行效果,测试工具与测试效果14 5.设计总结 16 5.1.程序调试情况:16 5.2.本人在程序设计中感想: 16 6.致 16 主要参考文献16

: 1.1Java程序课程设计任务书 1.1《简易连连看游戏》 本程序基本实现了小游戏连连看的功能,玩家找出游戏中2个相同图案的方块,如果它们之间的连接线不多于3根直线,则将其连接起来,就可以成功将图案相同的方块消除,否则不会消失,当游戏中已没有满足条件的图案时,点击重列,可重新排序,游戏结束会跳出所得分数,该游戏的特点是与自己竞争,超过自己之前所创纪录。 1.1.1具体要求(包括技术要求等): <1>. 该游戏界面为方格类型,由纵6横7的直线平行垂直交叉组成,分别是6行5列方块拼接,共有30格小方块。方块上随机分布一些数字,数字的要至少两两相同,位置随机打乱。 <2>. 当将相同数字的方块连接,但要满足只能至少单边无阻碍呈直线趋势连接,否则无效,若连接一对成功就消失于界面,继续游戏,直到游戏结束,并能返回所得分数。 <3>. 重列按钮(帮助)的功能:游戏过程中,遇到困难难以寻找下一符合要求的一对数字,可按左下按钮重置重新排列方可继续游戏。 <4>. 退出按钮:击左下方的“退出游戏”按钮,即可结束游戏。 1.2本系统涉及的知识点: 循环,javaGUI组件,函数,数组,分支等 2.功能设计 2.1算法设计 本系统需要实现的功能要求: 图一,数字按钮功能模块 图二,三个功能按钮模块

编译原理实验指导书-语法分析

编译原理实验指导书 实验2 语法分析 实验目的 1.巩固对语法分析的基本功能和原理的认识。 2.通过对语法分析表的自动生成加深语法分析表的认识。 3.理解并处理语法分析中的异常和错误。 实验要求 一、对学生要求: 1.掌握语法分析程序的总体框架,并将其实现。 2.掌握语法分析表的构造方法 3.掌握语法分析的异常和错误处理。 二、对实验指导教师要求: 1.明确语法分析的基本功能和原理。 2.语法分析程序的总体结构及其关键之处。 3.语法分析表的生成程序。 4.语法分析的异常和错误处理。 5.编写并运行该题目程序代码,具有该题目的参考答案。 6.深刻理解题目内涵,能够清晰描述问题,掌握该题目涉及的知识点,指导学生实验时需要注意的问题。 实验内容 采用至少一种语法分析技术(LL(1)、SLR(1)、LR(1)或LALR(1))分析类高级语言中的基本语句(至少包括函数定义、变量说明、赋值、循环、分支等语句)。 对如下工作进行展开描述 (1)给出如下语言成分的文法描述 ?函数定义(或过程定义) ?变量说明 ?赋值

?表达式 ?循环 ?分支 (2) 语法分析程序的总体结构及物理实现(程序框图) (3) 核心数据结构和功能函数的设计 (4) 错误处理 错误的位置及类型等 实验评分标准 一、课堂表现(10分) 1.出勤情况(按时,迟到,早退,缺席) 2.是否遵守课堂纪律 二、实验结果(50分) 1.当堂按时完成(10分) 2.独立完成(10分),(和同学协商完成,在老师帮助下完成)3.结果正确无误(15分)其中分析表的输出占5分 4.功能齐全,界面美观,具有较好演示效果(10分) 5.在源程序中有必要的注释和说明,程序文档齐全(5分)三、实验报告(40分) 1.语言的文法描述(10分) 2.语法分析程序的模块结构图(10分) 3.核心数据结构的设计(10分) 4.错误处理(5分) 5.实验过程中遇到的问题的总结及实验的体会(5分)

开放课题教学提纲

目录 1.凝固技术国家重点实验室开放课题管理办法 2.附件一、开放课题申请书 3.附件二、开放课题任务书 4.附件三、开放课题年度进展报告 5.附件四、开放课题结题报告

开放课题管理办法 第一章总则 第一条依据国家科学技术部颁发的《国家重点实验室建设与运行管理办法》,本着"开放、流动、联合、竞争"的原则,为充分发挥并不断加强凝固技术国家重点实验室(以下简称凝固实验室)在凝固科学及相关领域的科学研究、人才培养、技术创新和学术交流等方面的优势,凝固实验室面向国内外科研人员设立开放课题。为进一步规范和加强开放课题管理,更好地服务于开放课题研究人员,促进高水平科研成果产出,培育高水平科研人才,特制定本管理办法。 第二条开放课题是实验室对外开放和合作交流的重要手段,是实验室科研工作和人才培养的重要补充,是实验室日常工作的重要组成部分。凝固实验室鼓励国内外高水平科研人员作为访问学者来实验室开展合作研究。 第三条凝固实验室开放课题主要支持涉及凝固过程的先进材料及其加工制备成形的基础研究或应用基础研究,重点支持凝固理论和技术的前沿研究,鼓励创新性或交叉学科的探索性研究。 第四条凝固实验室开放课题经费由实验室开放运行费支出,实行课题负责人制,单独核算,专款专用。 第二章申请 第五条凡具有博士学位或副教授以上职称,希望利用凝固实验室的科研条件开展研究工作的国内外科研人员,均可申请凝固实验室开放课题。实验室固定人员不得承担开放课题,但为了保障开放课题的执行和课题研究人员在实验室期间生活工作顺利,每项开放课题必须至少有一名实验室固定人员作为课题联系人。 第六条凝固实验室开放课题分为重点项目、普通项目和探索性项目三类,执行期限为1~3年。重点项目主要支持海外学者作为访问学者来室开展研究工作,每项资助金额不超过10万元,每年支持2~6项。一般项目主要

编译原理课程设计词法分析

目录 一、实验题目 (2) 二、实验目的 (2) 三、实验要求 (3) 四、实验步骤 (3) 基本设计思路 (3) 流程框图 (4) 算法设计 (5) 函数相关说明 (5) 输入与输出 (7) 程序运行结果 (8) 五、实验方案设计实现 (8) 六、实验程序亮点描述 (9) 七、实验程序使用说明 (9) 八、实验心得体会 (9) 九、源程序清单........................................................................................错误!未定义书签。

一、实验题目 设计、编制、调试一个识别一简单语言单词的词法分析程序。程序能够识别基本字、标识符、无符号整数、浮点数、运算符和界符)。单词符号及种别表如下: 二、实验目的 设计、编制并调试一个词法分析程序,加深对词法分析原理的理解。

三、实验要求 词法分析程序需具备词法分析的功能: 输入:所给文法的源程序字符串。(字符串以“#”号结束) 输出:二元组(syn,token或sum)构成的序列。 其中:syn为单词种别码; token为存放的单词自身字符串; sum为整型常数。 例如:对源程序begin x:=9: if x>9 then x:=2*x+1/3; end #的源文件,经过词法分析后输出如下序列: (1,begin)(10,x)(18,:=)(11,9)(26,;)(2,if)…… 四、实验步骤 基本设计思路 ?基本字作为一类特殊的标识符来处理:识别出标识符,差基本字表,给出相应种别码。 基本字表置初值:char *rwtab[6]={"begin","if","then","while","do","end"};(字符指针的数组) ?识别无符号整数是将数字串转换为无符号整数。我们在getchar()的时候是把数字当做字符从外部输出读取的。将数字串345#转换为整数: (3*10+4)*10+5=345送到sum中 ?程序主要由2个函数组成,主函数main()和扫描子函数scanner()。扫描程序每次读取1个独立意义的单词符号,并判断单词类型。主程序做相应处理后做控制台输出。

相关文档
相关文档 最新文档