文档库 最新最全的文档下载
当前位置:文档库 › 八枚银币 java,c实现

八枚银币 java,c实现

八枚银币 java,c实现
八枚银币 java,c实现

現有八枚銀幣a b c d e f g h,已知其中一枚是假幣,其重量不同於真幣,但不知是較輕或較重,如何使用天平以最少的比較次數,決定出哪枚是假幣,並得知假幣比真幣較輕或較重。

單就求假幣的問題是不難,但問題限制使用最少的比較次數,所以我們不能以單純的迴圈比較來求解,我們可以使用決策樹(decision tree),使用分析與樹狀圖來協助求解。

一個簡單的狀況是這樣的,我們比較a+b+c與d+e+f ,如果相等,則假幣必是g或h,我們先比較g或h哪個較重,如果g較重,再與a比較(a是真幣),如果g等於a,則g為真幣,則h 為假幣,由於h比g輕而g是真幣,則h假幣的重量比真幣輕。

完整的比較決策樹如下圖所示:

為了方便使用迴圈,使用號碼0至7表示銀幣,範例程式可以讓您輸入假幣重量,但您無法事先得知假幣是哪一枚,程式可得知假幣是哪一枚,且它比真幣輕或重。

C

Java

Java程序设计试卷及答案

XXXX大学2006 /2007学年第一学期考试试卷课程名称:Java程序设计考试方式:闭卷完成时限:120分钟班级名称:学号:姓名: 一、选择题(每题2分,共30分) 1、Java程序的执行过程中用到一套JDK工具,其中java.exe是指。 A.Java文档生成器 B.Java解释器 C.Java编译器 D.Java类分解器 2、Java语言中,下列标识符错误的是。 A.—sys1 B.&—m C.I D.40name 3、下列语句执行后,变量a、c的值分别是。 int x=182; int a,c; c=x/100; a=x%10; A) 1,2 B) 2,1 C) 1.82, 2 D) 100,82 4、应用程序的main方法中有以下语句,则输出的结果是。 String s1="0.5",s2="12"; double x=Double.parseDouble(s1); int y=Integer.parseInt(s2); System.out.println(x+y); A) 12.5 B) 120.5 C) 12 D) “12.5” 5、下列程序段执行后的结果是。 String s=new String("abcdefg");

for(int i=0;i

编译原理词法分析java程序报告

软件学院 编译原理实验报告 实验名称:词法分析器 班级: Java104 姓名:周瑞芳 学号: 201007092413 时间: 2013年4月27日

1.实验题目 此次词法分析器实验的目的是设计并且实现一个词法分析程序,加深对词法分析原理的理解。并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。 实验要求 此次词法分析器实验要求源文件中的源代码,识别出具有独立意义的单词等,其中包括:保留字(关键字)、标识符、常数、运算符、分隔符等五大类。其中运算符要求识别出“++”,“+=”等复杂运算符。并依此将识别出的独立个体词法输出。输出的格式要求是按照二元式的形式,如(1,public)。另外,遇到错误时可显示“Error”,然后跳过错误部分继续显示。 2.算法设计 算法设计思路 1.利用循环数组和字符串下标和截取字符串等基本方法来实现。 2.调用isLetter(char charr)方法来判断读取的字符是否是字母。 3.调用isMath(char charr)方法来判断读取的字符是否是数字。 4.调用isJieFu(char charr)方法来判断读取的字符是否是界符。 5.调用isCompu(char charr)方法来判断读取的字符是否是运算符。 6.调用isKeyword(String str)方法来判断截取的字符串是否是关键字。 3.调试和测试 (1)调试过程总结 经过数次调试,最终成功调试了程序,实现了所需功能。 (2)给出实验结果,如下图:

4.实验总结 经过此次词法分析器的实验,利用所学的变成高级语言实现了一个词法分析器,输入的源代码能够被分析器解析出来。此次实验的要求程序能识别出具有独立意义的单词、字符等,其中包括关键字(保留字)、常数、标识符、运算符、分隔符等五类。其中运算符要求对“++”等复杂运算符能够成功识别。输出的格式要按照二元式的形式,如(public,关键字),而且在遇到错误时要显示“error”,紧接着跳过错误部分继续显示。 在此次编译原理实验,通过老师的细心讲解。我们利用老师讲的词法分析方法,用java语言来编程实现的。 此次词法分析实验,熟练掌握了词法分析的原理,在老师的指导下,顺利的独立完成。在这里对老师的指导和同学的帮助表示感谢。 5.附录(源程序) //import javax.swing.*; import javax.swing.border.TitledBorder; import java.awt.*;

Java词法分析器

Java语言词法分析器的设计与实现 一.实验目的 1.强化对系统软件综合工程实现能力、规划能力的训练; 2.加强对词法分析原理、方法和基本实现技术的理解; 二.实验内容 1.使用DFA实现词法分析器的设计; 2.实现对Java源程序中注释的过滤; 3.利用两对半缓冲区从文件中逐一读取单词; 4.词法分析结果属性字流存放在独立文件(文件名:scanner_output)中;5.统计源程序每行单词的个数和整个源文件单词个数; 6.具有报告词法错误和出错位置(源程序行号和该行字符)的功能;三.说明 1.先读进半个缓冲区的字符,以后前半区的字符读完了,先把后半区的字符读到前半区,再从文件中读入字符到后半区,从而实现两对半缓冲区读单词;每次前半区读完,把前半区的字符存到第一缓冲区,以免在第一个字符时无法回退;还要建立第二缓冲区,存放当要把第一缓冲区的内容放进缓冲区前半区时后半区的内容。 2.因为附录也有设计空格和注释的属性字,所以空格和注释也输出,但空格不算入单词总数 四.源程序主要函数功能 void readin1() //读取字符到缓冲区前半区 void readin2() //把后半区的内容送到前半区 void readin3() //把第二缓冲区的内容送到后半区 char readchar() //从缓冲区中读取一个字符 void untread() //回退一个字符 void writefile() //把属性字流信息写进文件里 void error(char *string) //扫描到错误的单词,string表示错误的单词已扫描过的字符 void identifier() //扫描标识符 void key() //识别关键字 void number() //扫描数字和点号 void explain(int a) //扫描注释,a表示注释是以// 开始还是以/* 开始 void op1(char a),void op2(char a),void op3(char a),void op4(char a) //分四类扫描运算符

java程序设计教案

《Java程序设计》 授 课 教 案 授课人: 授课班级:电子商务专业

第一章Java语言简介 教学目的要求 ?了解Java的基本特点和用途 ?掌握如何下载Java SDK软件包 ?了解设置Java程序的开发环境SDK ?如何运行Java程序 ?了解Java的概貌 主要内容 ?Java语言的发展历程; ?Java语言的特点; ?Java语言的开发工具; ?Java应用程序和小程序; ?Java程序的注释方法; ?写Java程序的风格规范。 重点内容 ?Java语言的特点; ?Java语言的开发工具; ?Java应用程序和小程序; 难点内容 无 课时分配 1课时 教学方法 讲授法、演示法、对比法 讲授内容提要 1.1 Java语言的发展简介 1991年Sun Mircosystem 公司成立了一个Green项目开发小组,Jame Gosling 为组长; 设计Java 采用虚拟机代码(Virtual Machine Code),即.class文件,它通过解释器运行; 1995年5月Sun Mircosystem 公司对外正式发布Java1.0; Java2 用途:适用于各种应用开发,尤其是网络应用,网络服务和嵌入式系统。 1.2 Java语言的特点 1.简单性 2.面向对象 3.网络适用性 4.健壮性 5.安全性 6.平台无关性 7.可移植性 8.解释型 9.高性能 10.多线程 11.动态性 12.丰富的类库 13.嵌入浏览器运行 1.3 Java类库的概念 1.4 网络浏览器 1.5 Java开发工具 NetBeans:这个集成环境可以方便地进行程序的编辑、编译、生成和运行。 J2sdk : http:// https://www.wendangku.net/doc/2113623177.html,免费下载; Visual J++ 6.0 / 8.0:VJ++还吸收了VB集成开发环境IDE的特征,是一个强有力的Java程序开发工具。Jcreator Eclipse (MyEclipse)等 1.6 Java程序的分类 基于控制台的应用程序; 基于浏览器运行的小程序applet。 小程序与应用程序的区别是:小程序必须依赖一个HTML文件和支持Java的网络浏览器。 老师演示小程序和applet程序

利用JAVA实现一个时钟的小程序

JAVA课程项目报告 项目题目:利用JAVA实现一个小时钟的程序 专业班级:10软件工程 利用JAVA实现一个时钟的小程序 1.软件开发的需求分析 在当今的信息时代,时钟已经成为人们生活中必不可少

的应用工具,Java语言是当今流行的网络编程语言,它具有面向对象、与平台无关、安全、多线程等特点。使用Java 语言不仅可以实现大型企业级的分布式应用系统,还能够为小型的、嵌入式设备进行应用程序的开发。面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。为了进一步巩固课堂上所学到的知识,深刻把握Java语言的重要概念及其面向对象的特性,锻炼我们熟练的应用面向对象的思想和设计方法解决实际问题的能力,开设了Java程序设计课程设计。 此次课程设计的题目为简单的小时钟程序设计,通过做巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、JCreator等开发工具的运用,拓宽常用类库的应用。使我们通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。 2.具体实现 2.1设计思路 Java是一种简单的,面向对象的,分布式的,解释的,键壮的,安全的,结构中立的,可移植的,性能很优异的,多线程的,动态的语言。Java去掉了C++语言的许多功能,让Java的语言功能很精炼,并增加了一些很有用的功能,如

自动收集碎片。这将减少平常出错的50%。而且,Java很小,整个解释器只需215K的RAM。 因此运用JAVA程序编写小时钟程序,实现简单显示时间的功能。本次课程设计做的是Java简单小时钟,它是图形界面、线程、流与文件等技术的综合应用,其界面主要采用了java.awt包,javax.swing包等。程序实现了小时钟的基本功能。 2.2设计方法 在设计简单小时钟时,需要编写5个Java源文件:Server.java、Objecting.java、LogIn.java、ClientUser.java、Client.java。 小时钟除了需要编写的上述5个Java源文件所给出的类外,还需要Java系统提供的一些重要的类,如JTextField、JTextArea和File类。 2.3 运行环境 CPU:Pentium 2.8GHz以上 内存:256MB以上 硬盘空间:80G以上 操作系统:Windows XP 运行环境:JDK,JCreator 2.4 程序功能图及程序相关说明 2.4.1 主功能框

编译原理 语法分析器 (java完美运行版)(精选.)

实验二语法分析器 一、实验目的 通过完成预测分析法的语法分析程序,了解预测分析法和递归子程序法的区别和联系。使学生了解语法分析的功能,掌握语法分析程序设计的原理和构造方法,训练学生掌握开发应用程序的基本方法。有利于提高学生的专业素质,为培养适应社会多方面需要的能力。 二、实验内容 ◆根据某一文法编制调试LL (1 )分析程序,以便对任意输入的符号串 进行分析。 ◆构造预测分析表,并利用分析表和一个栈来实现对上述程序设计语言的分 析程序。 ◆分析法的功能是利用LL(1)控制程序根据显示栈栈顶内容、向前看符号 以及LL(1)分析表,对输入符号串自上而下的分析过程。 三、LL(1)分析法实验设计思想及算法 ◆模块结构: (1)定义部分:定义常量、变量、数据结构。 (2)初始化:设立LL(1)分析表、初始化变量空间(包括堆栈、结构体、数组、临时变量等); (3)控制部分:从键盘输入一个表达式符号串; (4)利用LL(1)分析算法进行表达式处理:根据LL(1)分析表对表达式符号串进行堆栈(或其他)操作,输出分析结果,如果遇到错误则显示错误信息。

四、实验要求 1、编程时注意编程风格:空行的使用、注释的使用、缩进的使用等。 2、如果遇到错误的表达式,应输出错误提示信息。 3、对下列文法,用LL(1)分析法对任意输入的符号串进行分析:(1)E->TG (2)G->+TG|—TG (3)G->ε (4)T->FS (5)S->*FS|/FS (6)S->ε (7)F->(E) (8)F->i 输出的格式如下:

五、实验源程序 LL1.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.table.DefaultTableModel; import java.sql.*; import java.util.Vector; public class LL1 extends JFrame implements ActionListener { /** * */ private static final long serialVersionUID = 1L; JTextField tf1; JTextField tf2; JLabel l; JButton b0; JPanel p1,p2,p3; JTextArea t1,t2,t3; JButton b1,b2,b3;

C语言词法分析程序java版

附录:核心代码清单 C语言词法分析代码算法实习--------------------------------------------------------By NLLWRQ 功能类: package conversion; import java.io.*; public class Work{ public String filename; public int flage=1; public int error[]={0,0,0,0,0}; public int error1[]={0,0,0,0,0,0}; StringBuffer buffer=new StringBuffer(); private String Keychar[]={"int","char","long","float","double","short","unsigned","struct","union","enum","auto","ext ern", "static","register","typedef","void","if","else","switch","case","default","do","while","for","break", "continue","return","goto","define","include","undef","ifdef","endif","line","sizeof","asm","fortran","ad a","pascal"}; private String Keyfile[]={"stdio","windows","stdlib","ctype","math","time","string"}; public Work(String filename){ this.filename=filename; } boolean isKeyfile(String ch){ for(int i=0;i

实现屏幕截图的小程序java课程设计

经济与管理学院信息管理与信息系统专业 《java实验周》报告 (20132016学年第一学期) 学生姓名: 学生班级: 学生学号: 指导教师: 2015年12月25日

实现屏幕截图的小程序

、实验题目 实现屏幕截图的小程序 、实验要求 编程一个应用小程序,能够具有屏幕截图的功能,截图的具体实现有(1)显示出工作区域,即能够截屏的面积; (2)鼠标可以随意滑动进行截图; (3)将所截取的图片保存在想要保存的位置; (4)程序结束后可以退出整个应用。 三、程序流程 图3.1业务流程图

四、技术原理 程序的主类是cutScreen,继承自无边框的框架JWindow;cutScreen()是一个定义屏幕尺寸的构造方法;使用方法mousePressed(MouseEvent咪监听当前鼠标点击的动作;用方法mouseReleased(MouseEve nt e)监听鼠标松开时,显示操作窗口;方法mouseDragged(MouseEve nt e)监听拖动鼠标;pai nt(Graphics g)画出指定的工作区域;savelmage(保存图像。 工具栏ToolsWindow类,继承自有边框的框架JFrame方法init ()用来设置布局方式为BorderLayout; run()捕捉屏幕截图。 五、附实验代码 import java.awt.*; import java.awt.event.*; import java.awt.image.Bufferedlmage; import java.awt.image.RescaleOp; import java.io.File; import java.io.lOException; import java.text.SimpleDateFormat; import java.util.Date; import javax.imageio.lmagelO; import javax.swing.*; import javax.swing.filechooser.FileNameExtensionFilter; import javax.swing.filechooser.FileSystemView; //Jwindow 是一个无边框的框架 public class cutScreen extends JWindow { //beginX 开始的横坐标;beginY 开始的纵坐标 private int beginX, beginY , endX, endY; private Bufferedlmage image = null; private Bufferedlmage templmage = null; private Bufferedlmage savelmage = null; private ToolsWindow tools = null; //构造方法 public cutScreen() throws AWTException, IOException {

编译原理实验二

实验二语法分析 一、实验目的: 设计MiniC的上下文无关文法,利用JavaCC生成调试递归下降分析程序,以便对任意输入的符号串进行分析。本次实验的目的主要是加深对递归下降分析法的理解。 二、语法分析器: 按照MiniC语言的语法规则检查词法分析输出的记号流是否符合这些规则,并根据这些规则所体现出的语言中的各种语法结构的层次性。把规则写入到JavaCC的.jjt文件中,可以生成树状的层次结构。 三、JavaCC: 在JavaCC的文法规范文件中,不仅可以描述语言的语法规范,而且可以描述词法规范,本次实习中,利用JavaCC以MiniC语言构造一个不含语义分析的编译器前端,包括词法分析、语法分析,并要考虑语法分析中的错误恢复问题。通过使用JavaCC, 可以体会LL(k)文法的编写特点,掌握编写JavaCC文法规范文件的方法。 内容:利用JavaCC生成一个MiniC的语法分析器; 要求: 1.用流的形式读入要分析的C语言程序,或者通过命令行输入源程序。 2.具有错误检查的能力,如果有能力可以输出错误所在的行号,并简单提示 3.如果输入的源程序符合MiniC的语法规范,输出该程序的层次结构的语法树本次实习仅完成以下语法范畴的语法分析: 1. 写出一个源程序中仅包含if…else, else语句的语法分析。要求能分析其自身 嵌套. 其他语句可简化处理 2. 写出一个源程序中仅包含for语句的语法分析。要求能分析其自身嵌套, 其他语句可简化处理 3. 写出一个源程序中仅包含while语句的语法分析。要求能分析其自身嵌套。 其他语句可简化处理 4. 写出一个源程序中包含上面的12或者13或者23或者123语句的语法分析。 要求能分析除其自身嵌套外,还包括相互嵌套。其他语句可简化处理 具体实施步骤如下: 1.把MiniC转换为文法如下 <程序〉→ main()〈语句块〉 〈语句块〉→{〈语句串〉}

用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; i20) System.out.println(buf + "\t\t" +21); } if(isDigit(strbuf[i])) { 1

java小程序设计

课程设计报告 设计题目:用Java编的计算器 院系 班级 设计者 学号 指导教师 设计时间

前言: 通过上课学习了java程序设计的基本原理和模式,这次又以java语言为基本结合其图形应用界面来设计一个包括加、减、乘、除。还有带括号以及带负号、小数运算的计算程序。 系统功能和使用说明: 一.硬件环境: 本系统适用于现应用各种类型的计算机,内存容量为128MB以上,不必配备的外部附加设备。二.软件环境: 本系统的设计采用的是JAVA语言,应在JDK 5.0或者其更高版软件环境下本使用。 三.系统流程图: 1.下图是本程序的运行后的界面,其标注是此组件在程序中的名字 2.系统流程图中各个模块的功能说明: 本程序一共包括:构造方法A5i13w(),setup(), windowClosing(), actionPerformed(), appendchar(), countall(), counting(), Iscountnum()和一个windowcloser类。 (1). A5i13w()是构造方法,在程序创建其对象时就调用,初始化次程序的事件的监听机制。 (2). setup()是我定义的方法,是用来初始化程序的图形应用界面,由A5i13w()来调用。 (3). windowClosing()是用来响应用户的关闭功能。 (4). actionPerformed()是用来处理每个事件的响应的方法 (5). appendchar()方法的作用是在用户产生事件后向Textshow追加产生此事件的字符串 (6).countall()的意义是在用户按“=”号后,从最里层括号向最外层逐层把括号里的内容传递给counting()方法,并负责对括号本身是否符合数学语法要求进行检验。 (7).counting()方法的作用是首先对无括号的数学表达式有关的数学计算符号进行调整,并检验所有的数学符号,如发现错误的数学符号立即在Labelnow中显示出来。

PL0语言词法分析程序

PL/0语言词法分析程序 //这是我编译原理的一次作业,中间有许多不足之处希望大家指正 /*编写PL/0语言的词法分析程序 要求: 1、读入用PL/0语言编写的源程序,正确的进行词法分析,并输出二元式序列。 2、若源程序有词法错误,能够给出出错的准确位置。 3、词法代号如下 (+,+); (-,-); (*,*); (/,/); ((,(); (),)); (,,,); (;,;); (.,.); (#,#); (=,=); (>,>); (<,<); (:=,a); (>=,b); (<=,c); (数字,d); (标识符,e); 关键字代号: (begin,f);

(call,g); (const,h); (do,i); (end,j); (if,k); (odd,l); (procedure,m); (read,n); (then,o); (var,p); (while,q); (write,r); 4、等于运算符号为一个 = 测试程序: A.C ====================== CONST A=10; VAR B,C; PROCEDURE P; VAR D; PROCEDURE Q; VAR X; BEGIN READ(X); D:=X; WHILE X DO CALL P; END; BEGIN WRITE(D);

CALL Q; END; BEGIN CALL P; END. */ /*program name:chifufenxi*/ /*作者:小万 QQ:421404493*/ /*date:2004.10.11*/ #include #include #include #include #include #define N 256//每一行的字符数不能超过256个 char buffer[N]; //用作存放一行字符 char word[20]; //用作存放经过分析单词 char *kword[13]={"begin","call","const","do","end","if","odd","procedure","read","the n","var","while","write"}; char ktype[13]={'f','g','h','i','j','k','l','m','n','o','p','q','r'}; int len;//记录每一行的长度 int count=0;//用来记录行数 void write(char *wstr,char wc,FILE *wout)//将分析结果按照规则写入到文件 { fputc('(',wout); fputs(wstr,wout); fputc(',',wout);

Java程序设计实验题目

1.Java程序设计基础 实训项目一:Java开发环境安装与使用(2学时) 实训内容: (1)下载并安装JDK; (2)安装Java集成开发环境JCreator; (3)第1个java程序“Hello World”程序的编辑、编译与运行。 实训要求: 掌握Java开发环境的安装与配置,了解JCreator中ConfigureàoptionsàJDK Profiles的设置;掌握Java应用程序的编写、编译、运行过程。 实训项目二:Java基础应用(2学时) 实训内容: 编写简单的Java程序,将多种类型变量通过各种运算符组成不同的表达式,并将运算结果赋值给同类型的变量,使用print方法输出各变量的值。 实训要求: 掌握Java语言的各种数据类型;熟悉运算符和表达式的用法;学会编写完成一定目标的简单程序。 实训项目三:Java流程控制(2学时) 实训内容: (1)使用分支语句编写简单的Java程序,完成对某个实际问题的判断处理。 (2)使用循环语句编写简单的Java程序,解决需要重复处理的实际问题。 实训要求: 掌握条件语句的使用;掌握循环语句的使用;锻炼运用所学的知识解决实际问题的能力;了解常用的累加和、数学函数图形打印等基本问题的解决方法。 实训项目四:数组(2学时) 实训内容: (1)编写简单的Java程序,验证数组的声明、创建和使用。 (2)编写简单的Java程序,使用数组解决排序、查找等问题。 实训要求: 掌握一维数组、多维数组声明、创建和使用;掌握利用一维数组解决实际问题的方法;了解多维数组的应用。 2.类和对象、包、接口 实训项目五:类与对象的基本操作(2学时) 实训内容: 按照面向对象编程思想编写简单的类,对客观事物进行描述,类的定义包含成员变量声明及成员方法声明与实现,并创建对象进行类的测试。 实训要求: 掌握面向对象编程的思想;掌握类的定义、变量声明、方法声明及实现;掌握对象的创建。实训项目六:构造方法与方法重载(2学时) 实训内容: 编写含有构造方法与成员方法类,实现构造方法与成员方法的重载,编写该类的测试类。实训要求: 掌握构造方法的定义;理解构造方法的原理;掌握方法重载的实现;理解静态多态的概念。实训项目七:类的继承与多态(2学时) 实训内容:

java词法分析器

package JAccidenceAnalyse; import .*; import .*; import .*; public class AccidenceAnalyser { private SourceFile; private ReserveFile; private ClassFile; private OutputFile; public Pretreatment pretreatment; public KeyWordTable keyWordTable; public ClassIdentity classIdentity; public Scaner scaner; public ConcreteScanBufferFactory csbFactory; /** * 2)词法分析器主程序 * @roseuid 3D9BB93303D0 */ public AccidenceAnalyser() { "[INFOR]已经建立词法分析器!"); } /** * @roseuid 3D9BAEF9029F */ public void initAA() { getBytes()); ( ("etBytes()); ("etBytes()); (" getBytes()); (" getBytes()); ("词法分析结果如下:\n".getBytes()); ; import .*;

public class ClassIdentity { private Hashtable ClassHash; private File ClassFile; private FileReader classFileReader; rim(); "[INFOR]读取类型种别码: [KEY: " + classCounter + "][VALUE: " + classWord + "]"); classWord); } ; import .*; public class KeyWordTable { private Hashtable KWHash; private File ReserveFile; private FileReader resFileReader; rim(); "[INFOR]读取关键字: [INDEX: " + resCounter + "][VALUE: " + resWord + "]"); resWord); } tem(0). getFirstChild().getNodeValue().trim(); /******************/ cfgString[1] = ("ClassFileName").item(0). getFirstChild().getNodeValue().trim(); /******************/ cfgString[2] = ("SourceFileName").item(0). getFirstChild().getNodeValue().trim(); /******************/ cfgString[3] = ("OutputFileName").item(0). getFirstChild().getNodeValue().trim(); /******************/ } } catch (Exception e) { (); throw new Exception("[ERROR]加载配置文件 " + name + " 错误!");

LL1语法分析Java实现(有界面)

import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.table.DefaultTableModel; import java.sql.*; import java.util.Vector; public class LL1 extends JFrame implements ActionListener { /** * */ private static final long serialVersionUID = 1L; JTextField tf1; JTextField tf2; JLabel l; JButton b0; JPanel p1, p2, p3; JTextArea t1, t2, t3; JButton b1, b2, b3; JLabel l0, l1, l2, l3, l4; JTable table; Statement sta; Connection conn; ResultSet rs; DefaultTableModel dtm; String Vn[] = null; Vector P = null; int firstComplete[] = null;// 存储已判断过first的数据 char first[][] = null;// 存储最后first结果 int followComplete[] = null;// 存储已判断过follow的数据 char follow[][] = null;// 存储最后follow结果 char select[][] = null;// 存储最后select结果 int LL = 0;// 标记是否为LL(1) String vt_tou[] = null;// 储存Vt Object shuju[][] = null;// 存储表达式数据 char yn_null[] = null;// 存储能否推出空 LL1() { setLocation(100, 0); setSize(700, 780);

java程序设计答案

《java程序设计》复习题 第一部分选择题(单选) 1. javac 是 java的(B) A.解释器 B.编译器 C.小程序浏览器 D.调试器 2. appletviewer是java的(C) A.解释器 B.编译器 C.小程序浏览器 D.调试器 3. 编译一个定义了三个类和三个方法的 java源码文件,总共会产生几个字节码文件,其扩展名是什么?(C) A.5个字节码文件,其扩展名是“.java” B.2个字节码文件,其扩展名是“.java” C.3个字节码文件,其扩展名是“.class” D.2个字节码文件,其扩展名是“.class” 4. java源码文件的名称与主类的名称(B) A.必须相同但不区分大小写 B.必须相同且区分大小写 C.必须不同 D.任意 5. 下面那些选项不能用做变量名的首字符(C) A.字母 B.下划线(_) C.数字 D.美元符号($) 6. 下面哪个不是java的原始数据类型?(B) A.short B.boolean C.Int D.Float 7.下面哪条语句不会出现编译警告或错误?(A) A.float f=1.3F; B.chat c =”a”; C.float f=1.3;

D.boolean d=null; 8. 以下声明常量不正确的是(B) A.final int PI=3; B.final PI=3; C.static final int PI=3: D.public static final int PI=3; 9. java定义了4个整型数据类型:字节性(byte)短整型(short) 整型(int)长整型(long),其中byte占用内存为(A) A.8bit B.16bit C.32 bit D.64bit 10. 5%2.1的值是(D) A.1 B.0 C.0.8 D.不能通过编译 11. -11&3的值是(A) A.1 B.3 C.9 D.–11 12. 8<<2的值是(A) A.2 B.4 C.8 D.32 13 若有int a = 1, b= 2 , c = 3, d=4; 则表达式a>b?a:c>d?c:d的值是(D) A.1 B.2 C.3 D.4 14. 以下为合法类型转换的为(D) A.( int )”A” B.(char)”A” C.(boolean)(2-2) D.(char) (651/12)

JAVA课程设计计算器小程序报告

#####学院 JA V A语言课程设计报告 小程序计算器系统管理班级:####### 姓名:### ## 指导老师:### 时间:2012年6月25日至6月29日

目录 1、课程设计概述--------------------------------------------------3 1.1利用java编写计算器,使之具备一定的功能:-----------------3 1.2 课程设计的主要思想--------------------------------------------------3 1.3 该项目设计的目的-----------------------------------------------------3 2、需求分析方案--------------------------------------------------4 2.1功能需求分析-----------------------------------------------4 2.2 性能需求分析-----------------------------------------------4 3、总体设计方案--------------------------------------------------5 3.1界面设计----------------------------------------------------------------------5 3.2功能介绍-----------------------------------------------------------------------5 4、详细说明、调试---------------------------------------------6 4.1程序流程图-------------------------------------------------------6 4.2部分代码说明-----------------------------------------------------6 4.3程序调试与结果示例-------------------------------------------8 5、个人总结-----------------------------------------------------10 6、附录(代码)-----------------------------------------------11 6.1登陆界面代码--------------------------------------------11 6.2计算器主界面--------------------------------------------12 6.3 退出界面代码-------------------------------------------15

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