搜档网
当前位置:搜档网 › 西电JAVA第五次上机实验报告

西电JAVA第五次上机实验报告

西电JAVA第五次上机实验报告
西电JAVA第五次上机实验报告

JAVA第五次上机实验报告

一、实验内容:

Java多线程同步实验

在很多系统中,需要日志管理功能,该功能通常可由一个类实现,在系统生命周期中,日志管理类仅存在一个对象实例,实现将各个功能线程的日志写入日志文件的功能。要求:

实现日志管理类Logger,实现向唯一的日志文件写入日志的功能,并使用Singleton设计模式实现在系统生命周期中仅存在该类的唯一对象实例实现多个功能线程,各个线程排他性地使用日志管理对象的日志写入功能,每隔一段随机的时间就执行写入日志动作。系统终止时观察被写入的日志文件。

二、实验分析:

1、日志管理类Logger:

Logger所对应的属性文件在安装jdk目录下的jre/lib/logging.properties logging.properties文件中的

handlers= java.util.logging.ConsoleHandler 将日志内容输出到控制台handlers= java.util.logging.FileHandler 将日志文件输出到文件中handlers=

java.util.logging.ConsoleHandler,java.util.logging.FileHandler 将日志内容同时输出到控制台和文件中

# Limit the message that are printed on the console to INFO and above. java.util.logging.ConsoleHandler.level = INFO //日志输出级别

java.util.logging.FileHandler.pattern = %h/java%u.log 为生成的输出文件名称指定一个模式。

模式由包括以下特殊组件的字符串组成,则运行时要替换这些组件:

"/" 本地路径名分隔符

"%t" 系统临时目录

"%h" "user.home" 系统属性的值

"%g" 区分循环日志的生成号

"%u" 解决冲突的惟一号码

"%%" 转换为单个百分数符号"%"

如果未指定 "%g" 字段,并且文件计数大于 1,那么生成号将被添加到所生成文件名末尾的小数点后面。

java.util.logging.FileHandler.limit = 50000 限制文件的大小,以字节为单位

java.util.logging.FileHandler.count = 1 指定有多少输出文件参与循环(默认为 1)。

java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter

指定要使用的Formatter 类的名称(默认为

java.util.logging.XMLFormatter)。另外一个是:java.util.logging.SimpleFormatter。XMLFormatter是以xml样式输出,SimpleFormatter是以普通样式输出。

java.util.logging.FileHandler.append 指定是否应该将 FileHandler 追加到任何现有文件上(默认为 false)。

.. Logger: 应用程序进行日志记录调用的主要实体。 Logger对象用于记录特定系统或应用程序的消息。

.. LogRecord: 用于在日志框架和单个记录处理程序之间传递记录请求。

.. Handler: 日志数据的最终输出处理器。它将LogRecord对象导出到各种目标,包括内存、输出流、控制台、文件和套接字。多种 Handler子类可供用于这种用途。

.. Level: 定义一组标准的记录级别,可用于控制记录的输出。可以把程序配置为只输出某些级别的记录,而忽略其他级别的输出。

.. Filter: 精细过滤、控制记录的内容,比记录级别所提供的控制准确得多。

记录API支持通用的过滤器机制,这种机制允许应用程序代码添加任意过滤器以便控制记录的输出。

.. Formatter: 为LogRecord对象的格式化提供支持。

.. LogManager: Java Logging框架中唯一的、全局的对象,用于维护与Logger 记录器及日志服务的一系列共享的数据结构及状态。它负责整个日志框架的初始化、维护一组全局性的Handle对象、维护一个树形结构的Logger的名字空间、诊测日志框架配置文件的改变从而重新读入并应用相关的参数以及负责程序停止运行时整个日志框架的清理工作。

本次代码实现如下:

class MyLogger1 extends Thread{

static void Logger1()

{

Logger logger1 = Logger.getAnonymousLogger();

int rand1=(int)(Math.random()*100);

for(int t=0;t<100;t++)

{

if(t==rand1)

{

logger1.log(https://www.sodocs.net/doc/993228316.html,,"logger1的日志记录");

}

}

}

}

2、Singleton设计模式----单例模式(Singleton)

(1)介绍:也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的

全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息。这种方式简化了在复杂环境下的配置管理。

(2)实现单例模式的思路是:一个类能返回对象一个引用(永远是同一个)和一个获得该实例的方法(必须是静态方法,通常使用getInstance这个名称);当我们调用这个方法时,如果类持有的引用不为空就返回这个引用,如果类保持的引用为空就创建该类的实例并将实例的引用赋予该类保持的引用;同时我们还将该类的构造函数定义为私有方法,这样其他处的代码就无法通过调用该类的构造函数来实例化该类的对象,只有通过该类提供的静态方法来得到该类的唯一实例。

(3)本次试验实现如下:

public class Singleton {

private static Singleton singleton;

private Singleton() {

}

public static Singleton getInstance() {

if (singleton == null) {

synchronized (Singleton.class) {

if (singleton == null) {

singleton = new Singleton();

}

}

}

return singleton;

}

}

3、其他所用知识点如随机时间、日志输出文件等不做一一阐述。

三、本次实验代码:

import java.util.logging.*;

import java.io.*;

import java.util.Date;

class MyLogger1 extends Thread{

static void Logger1()

{

Logger logger1 = Logger.getAnonymousLogger();

int rand1=(int)(Math.random()*100);

for(int t=0;t<100;t++)

{

if(t==rand1)

{

logger1.log(https://www.sodocs.net/doc/993228316.html,,"logger1的日志记录");

}

}

}

}

class MyLogger2{

static int i = 1;

private static MyLogger2 mylogger2 = new MyLogger2();

public MyLogger2(){ }

public static MyLogger2 getInstance2()

{

return mylogger2;

}

public void print()

{

int rand2=(int)(Math.random()*100);

for(int t=0;t<100;t++)

{

if(t==rand2)

{

Date date=new Date();

System.out.println(+date.getTime()+"\n"+"Mylogger2的日志记录"+"\n");

}

}

}

}

public class MyLogger {

FileHandler fhandler;

Logger logger;

MemoryHandler mhandler;

MyLogger() {

try {

fhandler = new FileHandler("c:/my.log",true); //构造名为my.log 的日志记录文件 ,放在c盘里

int numRec = 5; //构造一个5个日

志记录的MemoryHandler,其目标Handler为一个FileHandler

mhandler = new MemoryHandler (fhandler, numRec, Level.OFF) ; //构造一个记录器

logger = Logger.getLogger("com.mycompany");

logger.addHandler(mhandler); //为记录器添加一个MemoryHandler

}

catch (IOException e)

{ }

}

public static void main(String args[]) {

MyLogger2 mylogger2 = new MyLogger2();

MyLogger mt = new MyLogger();

int trigger = (int)(Math.random()*100);

for (int i=1;i<100;i++)

{

MyLogger1.Logger1();

mylogger2.print();

mt.logger.log(https://www.sodocs.net/doc/993228316.html,,"日志记录"+i); //在MemoryHandler中缓存日志记录

if (i==trigger)

{

mt.mhandler.push(); //push方法触发目标Handler输出日志记录到my.log文件中

break;

}

}

} }

四、在eclipse中运行结果如下:

杭电计组实验报告10

计组实验十 老师:包健 一、源代码测试模块代码: module Top( inputinclk, inputmem_clk, inputrst, outputreg[7:0] LED, input [3:0] SW ); wireclk; MyButtonmb( .clk_100MHz(mem_clk), .BTN(inclk), .BTN_Out(clk) ); wire [31:0] ALU_F; wire [31:0] M_R_Data; wire ZF; wire OF; wire [31:0]PC; My_I_CPUmy_i_cpu( .clk(clk), .mem_clk(mem_clk), .rst(rst), .ALU_F(ALU_F), .M_R_Data(M_R_Data), .ZFF(ZF), .OF(OF), .PC_out(PC) ); always@(*) begin case(SW) 4'd0:LED=ALU_F[7:0]; 4'd1:LED=ALU_F[15:8]; 4'd2:LED=ALU_F[23:16]; 4'd3:LED=ALU_F[31:24]; 4'd4:LED=M_R_Data[7:0];

4'd5:LED=M_R_Data[15:8]; 4'd6:LED=M_R_Data[23:16]; 4'd7:LED=M_R_Data[31:24]; 4'd8:LED={ZF,6'd0,OF}; 4'd12:LED=PC[7:0]; 4'd13:LED=PC[15:8]; 4'd14:LED=PC[23:16]; 4'd15:LED=PC[31:24]; default:LED=8'b0000_0000; endcase end endmodule 顶层模块代码: moduleMy_I_CPU( inputclk, inputmem_clk, inputrst, output [31:0] ALU_F, output [31:0] M_R_Data, output ZFF, output OF, output [31:0]PC_out ); //wire clk_n = ~clk; wire[31:0] codes; wire [31:0]PC_new; reg [31:0]PC; Inst_Fetch1 inst_fetch( .PC(PC), .rst(rst), .clk(clk), .Inst_codes(codes), .PC_new(PC_new) ); wire[5:0] OP; wire[5:0] func;

javaweb上机实验报告(学生管理系统)

javaweb上机实验报告(学生管理系统)

————————————————————————————————作者:————————————————————————————————日期: 2

一实验题目 在线学生管理系统 二开发背景简介 随着网络技术的发展和普及许多以前基于CS的应用都开始向BS方向发展,而Java在这方面的应用有着许多其他技术不具备的优点,Java开发Web应用的主要技术是Servlet和Jsp技术,其实Jsp 只Servlet的一种进化方便了开发者的使用。它们都具有强大的功能适用于许多大型项目的开发。在未来基于BS的应用也必将得到较好的发展。本实验是在讲完Jsp和Servlet课程后为掌握所学的知识而做的实验。 三开发工具 本次试验是在Windows平台下开发采用的集成开发工具是Myeclipse8.5,数据库使用的是MySql5.5,服务器采用的是Tomcat7.0。 四实验设计 在本实验中模仿的是MVC设计模式,但由于系统比较小所以省略了业务层,在页面层中直接调用了数据层。在做这个在线学生管理系统中业务基本上都是由Jsp页面完成的没有用到Servlet控制器。 五实现的功能 Bro Tomcat 请求的 JSP处 Mysql Mysql 3

六试验截图 1.登陆界面 登录可以选择是身份,可以是学生,老师,和管理员。 登录界面是login.html,它想login.jsp页面传了3个参数来进行页面的验证,其中验证的部分代码是, String uname = request.getParameter("userName"); String pwd = request.getParameter("userPass"); int i =Integer.parseInt(request.getParameter("identity")); String sql = "select * from userManger where username='"+uname+"' and userpassword='"+pwd+"'"; Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); if(rs.next()){ session.setAttribute("userId",rs.getString("id")); session.setAttribute("userMark",rs.getString("identitymark")); response.sendRedirect("index.jsp"); }else{ response.sendRedirect("2.html"); } 2.其中系统用的学生表是 4

JAVA实验报告一

Java语言程序设计实验报告一 班级:姓名:学号: 一、实验教学目的与基本要求 Java程序设计的实验是Java程序设计课程重要的实践教学环节。实验的目的不仅仅是验证理论知识,更重要的是通过上机加强学生的动手能力,掌握常用Java开发环境的使用方法,培养学生分析问题、解决问题、应用知识的能力和创新精神。充分放手让学生自行设计、自主调试,真正培养学生的实践动手能力,全面提高学生的综合素质。 本课程是一门程序设计语言课程,通过本课程的学习,学生能够掌握Java 语言程序的基本特点、基本编程方法和基本开发技巧,培养学生阅读、分析、设计和调试Java语言的能力,并具备一定的面向对象程序设计思想。 本课程的主要任务是在已学习的编程语言基础上,讲述Java语言的数据结构和语法规则;基本控制结构和编程技巧;Java语言面向对象的特点、编程方法和程序设计思路;Java语言的GUI程序和文件及I/O流的编程方法;能够正确配置Java开发环境,并使用相关的编辑、编译、调试、运行命令。 (1)掌握Java语言的编程技巧,能够独立进行面向对象的开发能力。 (2)具有根据编程需求独立查询Java类库文档及相关资料,完成系统的能力。 (3)具有分析、寻找和排除程序中常见问题的能力。 二、实验内容与收获 (1)Java的安装与配置。熟悉语言环境及简单程序设计的使用练习,正确配置Java 开发环境(Eclipse 集成开发环境的安装、配置与使用) a)安装JDK Sun公司为所有的Java程序员提供了一套免费的Java开发和运行环境。 可以通过IE或Netscape浏览器浏览网址:https://www.sodocs.net/doc/993228316.html,/j2se,根据提示

计组实验报告

计算机组成原理实验报告 实验1:VERILOG 设计基础 专业班级:14级计算机二班 学号:14048001 姓名:杨娜 学号:14048003 姓名:周蓉 实验地点:理工楼901 实验时间:2016年5月14日

实验十VGA显示控制器的设计 一、实验目的 1、学习VERILOG的基本语法和编程规则 2、掌握通用寄存器等常用基本数字模块的VERILOG描述和基本设计方法 3、理解带使能控制和异步清零的8位寄存器的设计原理 4、掌握使用VERILOG设计和验证带使能控制和异步清零的8位寄存器的方法 5、掌握移位寄存器的设计方法 二、实验任务 1、设计一个带使能控制和异步清零的8位寄存器REG8X,实现8位输入的锁存,在时钟的上升沿处得到一个8位的输出和一个8位的反向输出,将结果显示在发光二极管。 模块的端口描述如下: 模块的参考物理结构如下: R7 R6 R i R 0 7 6 i 0 带使能控制和异步清零的8位寄存器 模块的使用注意事项

1.数据源D(7..0)一直加在寄存器的数据输入端; 2.周期性的时钟信号Clock一直加在寄存器的时钟输入端 3.使能信号Enable控制寄存器是否接受数据。当Enable = '0'时,寄存器不 接受数据,保持原来的状态不变;当Enable = '1'时,在时钟信号Clock正 跳变时,寄存器接受并保存当时D(7..0)的数据; 4.本寄存器其它方面的功能与上述的寄存器相同。 完成的参考电路图如下:dout=q 2、设计一个有左、右移位功能的8位寄存器REGSHIFT8,并仿真验证。

三、实验内容 1、通过输入数据先进行计算,并通过实验进行验证REG8X。 (1)、将清零信号Resetn(sw17)设为0,将输入信号D(sw7~sw0)设为10101010,观察输出信号Q(ledr7~ledr0)和Qb(ledg7~ledg0),观察并记录输出。 (2)、将清零信号Resetn(sw17)设为1,在时钟信号处输入一个上升沿(按下key0),观察并记录输出。 (3)、将输入信号D(sw7~sw0)设为01010101,观察并记录输出。 (4)、在时钟信号处输入一个上升沿(按下key0),观察并记录输出。 (5)、自行完善设计表格,观察并记录测试输出。 实验数据表 2、通过输入数据先进行计算,并通过实验进行验证REGSHIFT8。 (1)、测试清零信号Resetn (2)、测试移位功能 (3)、测试寄存功能 (4)、自行设计表格观察并记录测试输出。 实验数据表

java实验报告完整版

实验报告 (计算机与信息工程学院实验中心) 学期: 2014-2015 课程名称:《Java程序设计实验》 班级:信息1202 姓名:方逸梅 学号: 31 指导老师:费玉莲

《Java程序设计》 独立实验教学安排 一、实验的教学方式、安排及实验环境 (一)教学方式 对照本课程的实验教材,实验一至实验十一,由教师提示实验原理、方法、步骤等内容,在教师的指导下,学生独立完成程序设计及调试工作。实验十二的内容由学生自行设计完成。 (二)教学安排 学时数:30课时 学时安排:每次实验3学时,从学期第五周开始,共十次上机实验。 (三)实验环境 实验环境为JDK 。 (四)具体安排 地点:信息大楼实验室。 辅导:每个班次一名辅导老师,原则上由任课老师担任。 登记:实验完成,由辅导老师登记实验纪录。 学生:实验做完,完成实验报告内容,并在学期末上交实验册。 老师:批改实验,成绩与平时成绩一起占期末的30%。 二、实验的具体内容和要求 见实验报告。

浙江工商大学 计算机与信息工程学院实验报告(1)日期:地点:成绩: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 实验目的、实验原理和内容: 一、实验目的:熟悉Java开发环境及简单程序Java设计。 二、实验原理:SDK 的下载与安装,设置环境变量,安装java 虚拟机,使用Eclipse,编译Java 源程序,运行Java 程序。 三、实验内容及要求: 1.下载、安装并设置Java SDK 软件包。 2.熟悉Eclipse 编辑软件。 3.掌握运行Java 程序的步骤。 4.分别编写Application和Applet程序,显示字符串”Hello Java!欢迎使用!”。 要求:请同学把预备知识、步骤、程序框图、调试好的程序及存在的问题写在下面(不够可以附页)。 程序一 public class hello { public static void main(String[] args) { for(int i=0;i<=4;i++) { "Hello java! 欢迎使用!"); } }

计组-加法器实验报告

半加器、全加器、串行进位加法器以及超前进位加法器 一、实验原理 1.一位半加器 A和B异或产生和Sum,与产生进位C 2.一位全加器 将一位半加器集成封装为halfadder元件,使用两个半加器构成一位的全加器 3.4位串行进位加法器 将一位全加器集成封装为Fulladder元件,使用四个构成串行进位加法器

4.超前进位加法器(4位) ⑴AddBlock 产生并行进位链中的ti(即Cthis)和di(即Cpass),以及本位结果Sum ⑵进位链(Cmaker) 四位一组并行进位链,假设与或非门的级延迟时间为1.5ty,与非门的延迟时间为1ty,在di和ti产生之后,只需2.5ty就可产生所有全部进位

⑶超前进位加法器 将以上二者结合起来即可完成,A和B各位作为各个AddBlock的输入,低一位的进位Ci-1作为本位AddBlock的C-1的输入。各个AddBlock输出的C_this和C_pass作为对应的Cmaker的thisi和passi的输入。

二、实验器材 QuartusII仿真软件,实验箱 三、实验结果 1.串行进位加法器结果 2.超前进位加法器结果

四、实验结果分析 1.实验仿真结果显示串行加法器比超前进位加法器快,部分原因应该是电路结构优化 不到位。另外由于计算的位数比较少,超前进位加法链结构较复杂,所以优势没体现出来,反倒运作的更慢一点。当位数增加的时候,超前进位加法器会比串行的更快。 2.波形稳定之前出现上下波动,应该与“竞争冒险”出现的情况类似,门的延迟和路径 的不同导致了信号变化时到达的时间有先有后,因此在最终结果形成前出现了脉冲尖峰和低谷;另外也可能部分原因由于电路结构优化的不到位所致

计组课设实验报告

《计算机组成原理与系统结构》课程设计 实 验 报 告 课题:两个16位二进制数加法计算 班级: 成员: 完成日期:2013年10月11日

一:课程设计步骤 1.确定设计目标 综合考虑实验条件及自身能力水平,以及设计功能的可靠性和实用性,我们小组决定将设计目标定为“两个16位二进制数相加”。分两次分别输入两个加数的低八位和高八位,输出两个16位二进制数相加的结果。 2.确定指令系统 (1)数据格式 模型机规定数据采用定点整数补码表示,字长为8位,其格式如下: 7 6 5 4 3 2 1 0 符号尾数 (2)指令格式 模型机设计四大类指令共16条,其中包括算术逻辑指令、I/O指令、访问及转移指令和停机指令。 ①算术逻辑指令 设计九条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下: 7 6 5 4 3 2 1 0 OP-CODE RS RD 其中,OP-CODE为操作码,RS为源寄存器,RD为目的寄存器,并规定: RS或RD 选定的寄存器 00 01 10 R0 R1 R2 ②I/O指令 输入(1N)和输入(OUT)指令采用单字节指令,其格式如下: 7 6 5 4 3 2 1 0 OP-CODE addr RD 其中,addr=01时,选中“INPUT DEVICE”中的开关组作为输入设备,addr=10时,选中“INPUT DEVICE”中的数码块作为输入设备。 ③访问指令及转移指令 模型机设计两条访问指令,即存数(STA)、取数(LDA),两条颛臾指令,即无条件转移(JMP)、结果为零或有进位转移(BZC),指令格式如下: 7 6 5 4 3 2 1 0 00 M OP-CODE RD D 其中,OP-CODE为操作码,rd为目的寄存器地址(LDA、STA指令使用)。D为位移量(正负均可),M为寻址模式,其定义如下: 寻址模式有效地址E 说明 00 E=D 直接寻址

java课程设计实验报告

一实验目的 加深学生对课堂讲授内容的理解,从计算机语言的基本概念、程序设计的基本方法、语法规则等方面加深理解,打好程序设计、开发软件的良好基础。在上机实验中,提高学生对Java语言各部分内容的综合使用能力,逐步掌握Java语言程序设计的规律与技巧。在对Java 程序的调试过程中,提高学生分析程序中出现的错误和排除这些错误的能力。通过上机实践,加深学生对计算机软件运行环境,以及对操作系统与计算机语言支持系统相互关系的了解。 二、实验要求 (1)问题描述准确、规范; (2)程序结构合理,调试数据准确、有代表性; (3)界面布局整齐,人机交互方便; (4)输出结果正确; (5)正确撰写实验报告。 三、设计内容 1、计算器 计算器要有GUI界面,用户可以输入所需计算的数值,可以进行加、减、乘、除四种最基本的运算和混合运算,可以求一个数值的平方及倒数,可以进行阶乘运算,要能运算小数,并且不会产生精度损失,在必要情况下,可以进行四舍五入的运算。允许正负数间的运算。要求使用Applet实现该计算器,当用浏览器运行程序时,点击网页中的按钮,则计算器弹出,浮在网页上,再次点击按钮时,计算器消失。 2、文本编辑器 可以设置文本的字体、大小、颜色等基本参数,可以读取计算机中TXT文件,可以生成一个新的TXT文件。其他功能参照windows的文本编辑器。

四.实验步骤 (1)上机实验之前,为课程设计的内容作好充分准备。对每次上机需要完成的任务进行认真的分析,画出程序流程图,手工写出符合任务要求的程序清单,准备出调试程序使用的数据,以便提高上机实验的效率。 (2)按照实验目的和实验内容进行上机操作。录入程序,编译调试,反复修改,直到使程序正常运行,得出正确的输出结果为止。 (3)根据实验结果,写出实验报告。 五. 源代码及运行结果 1.计算器源代码 import .*; import .*; import .*; public class jisuanqi extends WindowAdapter { , "=", "+","n!" ,"关闭" }; static double a, sum=1; static String s, str ;rame(); } public void frame() { etBackground; txt = new TextField(""); (false);ddActionListener(new buttonlistener());ddActionListener(new close()); (this); (new BorderLayout());.计算器运行界面(1)计算器主界面

计组实验报告.

武汉大学计算机学院计算机科学与技术专业 CPU设计实验报告 实验名称:开放式实验CPU设计课题名称: 计算机组成原理 班级: 指导教师:徐爱萍 组长: 组员: 二零一五年三月

目录 目录 (1) 1 实验环境 (2) 1.1 Quartus Ⅱ介绍 (2) 1.2 硬件描述语言(VHDL) (3) 1.3实验的主要成果 (3) 2 实验要求 (5) 2. 1 指令格式要求 (5) 2. 2 指令流程及微信号序列分析 (6) 2.2.1 ADD指令分析 (6) 2.2.2 ADC指令分析 (7) 2.2.3 SUB指令分析 (7) 2.2.4 SBC指令分析 (7) 2.2.5 INC指令分析 (7) 2.2.6 DEC指令分析 (8) 2.2.7 SHL指令分析 (8) 2.2.8 SHR指令分析 (8) 2.2.9 MOVR指令分析 (8) 2.2.10 MOVD指令分析 (9) 2.2.11 LDRR指令分析 (9) 2.2.12 STRR指令分析 (10) 2.2.13 JMP指令分析 (10) 2.2.14 JRC指令分析 (11) 2.2.15 JRZ指令分析 (11) 2.2.16 JRS指令分析 (11) 2.2.17 CLC指令分析 (11) 2.2.18 STC指令分析 (11) 3.部件仿真实验 (11) 3.1 八个通用寄存器设计与仿真 (11) 3.1.1 设计代码 (11) 3.1.2 RTL连接图 (17) 3.1.3 仿真过程 (17) 3.2算术逻辑单元设计与仿真 (18) 3.2.1 设计代码 (18) 3.2.2 RTL连接图 (21) 3.2.3 仿真过程 (22) 4. CPU设计 (23) 4.1取指设计 (23) 4.2指令译码的设计 (25) 4.3执行部分设计 (28) 4.4存储器部分设计 (31) 4.5通用寄存器组设计 (32)

java实验报告心得体会

java实验报告心得体会 联合大学信息学院 “面向对象程序设计”课 程上机实验报告 题目: JAVA上机实验心得体会 姓名(学号):专业:计算机科学与技术 编制时间: xx年12月19日 版本: 1.0.0 指导教师:联合大学-信息学院编制 实验1 熟悉Java运行环境 实验目的:熟悉JDK环境和操作,编写简单的Java应用程序。

心得体会:在该实验中,我碰到的问题是JDK环境变量的设置。解决方法是通过查阅资料书和网上搜索相关解决方法及同学的有力 帮助。 实验2 选择语句练习 实验目的:正确理解并能够熟练操作和使用Java的if和switch 语句。 心得体会:我个人感觉有了C的编程基础,if和switch这些简单的流程控制语句运用起来比较轻松,实现简单的逻辑运算也跟C非常相近,所以上手比较快。但是在这次程序中,首次涉及到了java 程序的数据输入,与C区别很大。但经过老师的讲解和查阅相关资料,基本明白相关的使用规则和注意事项。在第二个小题中还涉及到了charAt()方法,经查阅JDK文档,知道charAt()方法返回一个位于提供给它的参数索引处的字符,如: str.chatAt(0)检索str中的第一个字符,str.charAt(str.length()-1)检索最后一个字符。我运用此方法解决了比较字符串间首字母异同的问题。 实验3 迭代练习

实验目的:正确理解并能够熟练操作和使用Java的for、while、do..while语句。心得体会:在该实验中,我学会了为具体操作选 择最合适的循环语句及for、while、do..while语句的相互转换使用。最重要的是,明白了JAVA程序中,定义方法中的局部变量时一定要 赋初始值,否则编译不能通过会报错;但类中的成员变量则不一定需要。如我在实验3main()方法定义的整型局部变量mand,当不初始化则不能通过编译。原因是局部变量不能有JVM自动赋给相关的默认值,而成员变量可以。 实验4 方法的实现练习 实验目的:声明、定义和调用方法,理解实参和形参的含义。 心得体会:在该实验中,我掌握如何写方法、调用方法,并掌握 如何向方法中传递信息和从方法中返回信息。方法声明为非void(构造方法除外)则需要用return语句返回一个相应类型的返回值。 实验5 简单类型数组练习 实验目的:学习创建简单类型的数组,并能用循环语句处理数组。

广工计组实验报告

计算机组成原理实验报告 课程名称计算机组成原理实验 学院计算机学院 专业班级 学号 学生姓名 指导教师 2015年 06 月20 日

计算机学院( 学号: 姓名教师评定 实验题目基础汇编语言程序设计实验 实验一:基础汇编语言程序设计实验 一、实验目的: (1)学习和了解TEC-XP+教学实验系统监控命令的用法; (2)学习和了解TEC-XP+教学实验系统的指令系统; (3)学习简单的TEC-XP+教学实验系统汇编语言程序。 二、实验设备与器材: TEC-XP+教学实验系统,仿真终端软件。 三、实验内容: 1、学习联机使用TEC-XP+教学实验系统和仿真终端软件PCEC; 2、学习使用WINDOWS界面的串口通讯软件; 3、使用监控程序的R命令显示/修改寄存器内容、D命令显示存储器内容、E命令修改存储器内容;

4、使用A命令编写一小段汇编程序,U命令反汇编刚输入的程序,用G命令连续运行改程序,用T、P命令单步运行并观察程序单步执行的情况。 四、实验步骤: 一、实验具体操作步骤: 1、准备一台串口工作良好的PC机; 2、将TEC-XP放在实验台上,打开实验箱的盖子,确定电源处于断开状态; 3、将黑色电源线一端接220V交流电源,另一端插在TEC--XP试验箱电源插座上; 4、取出通讯线,将通信线的9芯插头接在试验箱的串口“COM1”或“COM2”上,另一端接到PC机的串口上; 5、将TEC-XP实验系统左下方的6个黑色控制器开关置为001100,,控制开关的功能在开关上、下方有标识;开关拨向上方表示“1”,拨向下方表示“0”,“x”表示任意,其他实验相同; 6、打开电源,船形开关和5v电源指示灯亮。 7、在PC机上运行PCEC16.EXE文件,直接回车。 8、按一下“RESET”按键,再按一下“START”按键在主机上显示: TEC—2000 CRT MONITOR Version 1.0 April 2001 Computer Architectur Lab,Tsinghua University Programmed by He Jia > 二、实验注意事项: 几种常见的工作方式(开关拨到上方表示为1,拨到下方为0)

java实验报告完整版

实验报告 (计算机与信息工程学院实验中心) 学期: 2014-2015 课程名称: 《Java程序设计实验》 班级: 信息1202 姓名: 方逸梅 学号: 1212100231 指导老师: 费玉莲 《Java程序设计》 独立实验教学安排 一、实验的教学方式、安排及实验环境 (一)教学方式 对照本课程的实验教材,实验一至实验十一,由教师提示实验原理、方法、步骤等内容,在教师的指导下,学生独立完成程序设计及调试工作。实验十二的内容由学生自行设计完成。 (二)教学安排 学时数:30课时 学时安排:每次实验3学时,从学期第五周开始,共十次上机实验。 (三)实验环境 实验环境为JDK 1、6。

(四)具体安排 地点:信息大楼实验室。 辅导:每个班次一名辅导老师,原则上由任课老师担任。 登记:实验完成,由辅导老师登记实验纪录。 学生:实验做完,完成实验报告内容,并在学期末上交实验册。 老师:批改实验,成绩与平时成绩一起占期末的30%。 二、实验的具体内容与要求 见实验报告。

浙江工商大学 计算机与信息工程学院实验报告(1)日期:地点:成绩: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━实验目的、实验原理与内容: 一、实验目的:熟悉Java开发环境及简单程序Java设计。 二、实验原理:SDK 的下载与安装,设置环境变量,安装java 虚拟机,使用Eclipse,编译Java 源程序,运行Java 程序。 三、实验内容及要求: 1. 下载、安装并设置Java SDK 软件包。 2. 熟悉Eclipse编辑软件。 3.掌握运行Java 程序的步骤。 4.分别编写Application与Applet程序,显示字符串”Hello Java!欢迎使用!”。 要求:请同学把预备知识、步骤、程序框图、调试好的程序及存在的问题写在下面(不够可以附页)。 程序一 public class hello { public static void main(String[] args) { for(int i=0;i<=4;i++) { System、out、println("Hello java! 欢迎使用!"); } } } 结果示意图1

JAVA实验报告

日期: 2018年5月地点:明向校区公共机房6 (1)实验题目,实验原理和内容 一、实验目的:JAVA结构化程序设计 二、实验原理:声明不同数据类型的变量,使用关系运算符和逻辑运算符,使用表达式语句与复合语句,使用选择语句,使用循环语句。 实验内容及要求: 1、题目1:编写程序,实现从键盘输入一个0到100之内的整数,把百分制分数到等级分数的转换 键盘输入10个数,排序输出。 要求:请同学们把调试好的程序及运行结果、存在的问题写在下面(不够可以附页)。 1、 package test1; import .*; public class TEST1 { public static void main(String[] args){ "请输入一个0到100之间的整数"); Scanner scanner=new Scanner; int x; int m=(); x=m/10;

switch(x) { case 9: "A");break; case 8: "B");break; case 7: "C");break; case 6: "D");break; default: "E");break; } } } 2、 package test2; public class TEST2 { public static void main(String[] args){ int num;int m; for(int i=1;i<=9;i++){ for(int j=1;j<=i;j++){ num=i*j; "*"+i+"="+num+ "\t"); if(i==j) } }

计组实验报告--部分

2、设计报告 2、1实验方法 本实验要完成的工作主要包括: 1、指令系统的设计 2、利用VHDL语言完成实验CPU的设计,包括通用寄存器的设计、取值部分设计、指令译 码设计、执行设计、存储器设计、程序包设计和顶层设计设计 3、在Quatus II 平台上进行仿真,并下载到TEC-CA教学实验箱上进行调试。 这三大部分为并行关系,只有在完成上一部分的基础上才能继续进行下一步,而第二大部分可以同时并行进行。 实验的主要流程图为图2.1所示。 图2.1

在指令系统和CPU逻辑设计时,主要的方法是先根据老师给的指令要求,确定CPU所要实现的功能,根据寄存器等的情况划分指令格式,然后根据功能写出指令,根据不同指令的特点将它们分组并确定操作码;接下来设想每条指令的执行过程,需要哪些硬件支持,最后确定整个CPU的逻辑结构图。 2、2总体说明 2.2.1 CPU组成部件 实验CPU由5部分组成:取指部分instru_fetch、指令译码部分decoder_unit、执行部分exe_unit、存储器部分memory_unit和通用寄存器组fegile.另外,还有一个程序包exe_cpu_components,将各底层设计实体作为元件存储,供各设计实体使用。顶层设计实体exe_cpu完成5个组成部分的链接。 GR(8位,4个寄存器),ALU(8位),时序节拍发生器timer,AR(8位),IR(8位),PC(8位)、PC(8位),RAM(8位),组合期间T1,T2,T3。逻辑控制器件controller,地址总线(8位),数据总线(8位)。 2、2、2整机原理实验图

图2.2.1 图2.2.2

JAVA实验报告

学生实验报告册 (理工类) 课程名称:面向对象程序设计专业班级:16计算机科学与技术(专转本)学生学号:22 学生姓名:张义丹 所属院部:计算机工程指导教师:刘晶 20 16 ——20 17 学年第2 学期 金陵科技学院教务处制

实验报告书写要求 实验报告上交电子稿,标题采用四号黑体,正文采用小四号宋体,单倍行距。 实验报告书写说明 实验报告中实验目的和要求、实验仪器和设备、实验内容与过程、实验结果与分析这四项内容为必需项。教师可根据学科特点和实验具体要求增加项目。 填写注意事项 (1)细致观察,及时、准确、如实记录。 (2)准确说明,层次清晰。 (3)尽量采用专用术语来说明事物。 (4)外文、符号、公式要准确,应使用统一规定的名词和符号。 (5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。 实验报告批改说明 实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用五级记分制或百分制,按《金陵科技学院课堂教学实施细则》中作业批阅成绩评定要求执行。

实验项目名称:Java编程基础实验学时: 6 同组学生姓名:————实验地点:工科楼A101 实验日期:实验成绩: 批改教师:刘晶批改时间:

实验1 Java编程基础 一、实验目的和要求 (1)熟练掌握及编写调试Java应用程序及Java小程序的方法; (2)熟练掌握Java应用程序的结构; (3)了解Java语言的特点,基本语句、运算符及表达式的使用方法; (4)熟练掌握常见数据类型的使用; (5)熟练掌握if-else、switch、while、do-while、for、continue、break、return语句的使用方法; (6)熟练掌握数组和字符串的使用; (7)调试程序要记录调试过程中出现的问题及解决办法; (8)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经验; (9)做完实验后给出本实验的实验报告。 二、实验仪器和设备 奔腾以上计算机,Windows 操作系统,装有和软件。 三、实验过程 (1)分别使用JDK命令行和Eclipse编译运行Java应用程序;适当添加注释信息,通过javadoc生成注释文档;为主方法传递参数“Hello world”字符串,并输出,记录操作过程。 public class Hello { public static void main(String args[]) { "Hello!"); } } (2)分别使用JDK命令行和Eclipse编译Java Applet,并建立HTML文档运行该Applet。 压缩生成".jar"文件。记录操作过程。 import .*; import class HelloApplet extends Applet { public void paint(Graphics g) { ; ("Hello!",20,20); } }

计组实验报告-Debug使用进阶及80X86汇编初步

HUNAN UNIVERSITY 课程实习报告 题目:Debug使用进阶及80X86汇编初步学生姓名 学生学号 专业班级计算机科学与技术二班 指导老师 完成日期2013年4月14日

实验一(较高要求):Debug使用进阶及80X86汇编初步 一、实验目的 通过对基本要求程序的编写,了解debug的基本指令以及操作方法方法。通过对较高要求程序的编写,对寄存器、内存单元的一些复制、显示、转存等操作有了熟练的掌握,并且深刻理解debug指令的含义,执行过程。 二、实验要求 任务一: 课堂上曾书写一个求12+22+……+102的示例程序(见后面附录),请改写该程序,实现求一些毫无规律的任意数的平方和。将这些数定义在内存中,假设这些数据都是字节型的非零无符号数(即1~255),请选用合适的Debug命令定义它们,约定数据值0作为结束标记。 1、将结果放在数据寄存器中,请编写程序,并设计实验过程(用合适的debug 命令),验证程序执行的正确性; 2、若结果要求存放在内存中,请编写程序,并设计实验过程(用合适的debug 命令),验证程序执行的正确性; 注:编写程序和定义初始数据、查看程序运行结果都在Debug下直接进行。每次运行程序时请改变这些平方和数据的值以及数据元素个数,以多方验证程序正确性。 提示:程序中需要用到寄存器间接寻址方式,示例语句:MOV SI, 0200 MOV BL, [SI] 附:课堂上的示例程序

任务二: 假设有如下约束条件:一旦平方和结果超过16位字长,则报出错信息,在屏幕上显示字符串“Overflow Error!”,并停止计算终止程序。请在Debug下重新编写程序并调试,验证程序的正确性。 提示:判断结果超长可在加法指令之后,判断进位标志位CF的值,80X86指令集中条件转移指令JC或JB均可做到这点。 三、实验步骤 1、鼠标单击“开始->程序->附件->命令提示符”,打开DOS窗口,出现命令提示符,键入debug并回车,出现debug程序的提示符,一个短杆“-”。 2、开始汇编,在短杆后输入a100,并将如下所示的在记事本中写好的程序复制粘贴到dos界面中。 mov dx,0 //dx存放平方和,赋初值为0 mov si,200 //将200号内存单元给si mov bl,[si] //将si内存单元中存放的数据给bl mov al,bl //将bl的值给al mul bl //计算bl的平方 cmp al,0 //比较al和0的值,若al=0则停止循环求和 jz 0117 //跳到0117地址的命令继续执行 add dx,ax //计算dx=dx+ax jc 011e //判断是否溢出,若溢出,则跳到011e地址执行其存放的指令 inc si //si自加1 jmp 0106 //跳转到0106进行执行 mov si,240 //将240赋给si mov [si],dx //将平方和结果sx存到si所对应的内存单元中。 int 20 //中断跳转,回到jz 0117的下一步继续执行。 mov dx,0127 //将0127内存的值给dx

java实验报告完整版

java实验报告完整版 验报告(计算机与信息工程学院实验中心)学期: 全文结束》》-xx 课程名称: 《Java程序设计实验》班级: 信息1202 姓名: 方逸梅学号:1212100231 指导老师: 费玉莲《Java程序设计》独立实验教学安排 一、实验的教学方式、安排及实验环境 (一)教学方式对照本课程的实验教材,实验一至实验一,由教师提示实验原理、方法、步骤等内容,在教师的指导下,学生独立完成程序设计及调试工作。实验二的内容由学生自行设计完成。 (二)教学安排学时数:30课时学时安排:每次实验3学时,从学期第五周开始,共次上机实验。 (三)实验环境实验环境为JDK 1、6。 (四)具体安排地点:信息大楼实验室。辅导:每个班次一名辅导老师,原则上由任课老师担任。登记:实验完成,由辅导老师登记实验纪录。学生:实验做完,完成实验报告内容,并在学期末上交实验册。老师:批改实验,成绩与平时成绩一起占期末的30%。

二、实验的具体内容和要求见实验报告。浙江工商大学计算机与信息工程学院实验报告(1)日期: 地点: 成绩: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 实验目的、实验原理和内容: 一、实验目的:熟悉Java开发环境及简单程序Java设计。 二、实验原理:SDK 的下载与安装,设置环境变量,安装java 虚拟机,使用Eclipse,编译Java 源程序,运行Java 程序。 三、实验内容及要求: 1、下载、安装并设置Java SDK 软件包。 2、熟悉Eclipse 编辑软件。 3、掌握运行Java 程序的步骤。 4、分别编写Application和Applet程序,显示字符 串”Hello Java!欢迎使用!”。要求:请同学把预备知识、步骤、程序框图、调试好的程序及存在的问题写在下面(不够可以附页)。程序一public class hello {public static void main(String[] args) {for(int i=0;i<=4;i++){System、out、println("Hello java! 欢迎使用!");}}}结果示意图1存在的问题

java实验报告(全)

学生学号0120910680526 实验课成绩 武汉理工大学 学生实验报告书 实验课程名称软件工具与环境 开课学院计算机科学与技术学院 指导老师姓名付国江 学生姓名 学生专业班级软件工程0905 2011— 2012学年第1学期

实验课程名称: java语言程序设计 实验项目名称JDK安装与配置、简单的程序编写实验成绩 实验者专业班级软件0905 组别 同组者实验日期年月日第一部分:实验分析与设计(可加页) 一、实验内容描述(问题域描述) 实验目的: 熟悉JDK的安装、配置和使用,掌握Java Application程序的基本结构。 实验内容: (1)安装JDK,并练习设置JAVA_HOME、path和classpath环境变量; (2)编写一个打印出”HelloWorld”的Java Application程序,并编译运行; 二、实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或 者算法描述) (1)jdk的安装 (2)”HelloWorld”的编译运行 三、主要仪器设备及耗材 个人计算机,jdk 第二部分:实验调试与结果分析(可加页) 一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)(1)jdk的安装步骤: 1:双击jdk-6u10-windows-i586.exe安装文件 2:点击接受 3:点击下一步 4:选择JRE路径 5:点击下一步 6:完成 配置环境变量: 1:右键我的电脑,找到属性,高级中的环境变量 2:点击环境变量:3:系统变量针对所有用户,这里找到系统变量中的Path 点击编辑: 3:系统变量针对所有用户,这里找到系统变量中的Path 点击编辑: 4:在变量值末尾打上分号分隔,加入JDK库路径。 点击确定,完成! 5:变量配置好后。 6:测试环境是否好 在控制台中 输入javac指令,能显示参数,说明成功。

《Java程序设计》上机实验报告 实验四 异常类的定义及处理

信息科学与工程学院《Java程序设计》上机实验报告 专业班级姓名学号 实验时间指导教师成绩 实验名称实验四异常类的定义及处理 实验目的1)了解异常处理方法。 2)熟悉并掌握常见异常的捕获方法。 3)熟悉JDK中已经定义的若干异常类的层次结构。 4)掌握自定义异常类的创建方法。 主要实验记录及个人小结 (包括部分实验源程序、调试结果及实验结果分析等)1.编写程序实现如下功能:生成并捕获到NegativeArraySizeException和IndexOutOfBoundsException类型的异常,并显示捕获到的异常信息。然后在此基础上生成并捕获到NullPointerException类型的异常,并显示捕获到的异常信息。 1)实验源程序: public class TestException { public static void main(String[] args){ outofBound(); arraySize(); nullPointer(); } static void arraySize(){ try{int p=-5; int test1[]=new int[p]; //不一定要是-5,只要小于0的就能捕获到无效数组长度的异常} } catch (NegativeArraySizeException e) { System.out.println("捕获异常:\n"+e); System.out.println(e.toString()); //把捕获的错误异常转变为字符串类型,传给println()方法,用以输入。 }finally{ System.out.println("捕获完成\n"); } } static void outofBound(){ try {int test2[]=new int[10]; test2[100]=1; //超出数组长度 } catch (ArrayIndexOutOfBoundsException e) { System.out.println("捕获异常:\n"+e); System.out.println(e.toString()); } finally{ System.out.println("捕获完成\n\n"); } } static void nullPointer(){ try {int test3[]=null; test3[1]=100; //空指针无法赋值 } catch (NullPointerException e) {

相关主题