文档库 最新最全的文档下载
当前位置:文档库 › 南昌大学Java实验报告

南昌大学Java实验报告

南昌大学Java实验报告
南昌大学Java实验报告

南昌大学实验报告

学生姓名:学号:专业班级:

实训类型:□验证□综合□设计□创新实验日期:2017.11.1 实验成绩:

一、实验项目名称

Java开发环境搭建和Java语言基础

二、实验的评分标准

实验分为A~F,A为最高,F最低。

F:在规定时间内没有完成所有的实验,而且没有及时提交实验报告,或者实验过程中出现了抄袭复制他人实验代码。

D:能完成实验,但是实验结果出现严重错误,不能体现对教学内容的理解。

C:能基本完成实验,实验结果基本正确。但是实验内容有较少的错误,提交的实验代码质量一般。

B:能较好的完成实验,实验报告条理清楚,实验代码结构清晰,代码质量较高,及时更正试验中出现的错误,并对运行中一些异常错误进行分析,解释错误产生的原因。

A:能较好的完成实验,实验代码质量高,实验报告完成度高,能在实验完成的基础上,根据个人的理解增加实验的新功能,具有一定的创新能力。

三、实验目的和要求

1.掌握Java的基础知识

2.掌握和运用Java的控制语句和数组

3.使用Eclipse平台开发Java应用

四、实验内容

1.HelloWorld的应用程序和Applet程序。

A.javap工具解析HelloWord字节码的类

B.javap反汇编HelloWorld字节码

C.修改代码,使之成为应用程序和Applet小程序

两种程序的“入口”不同,一个是main()函数,一个是init()函数,所以直接添加代码即可,运行时,根据IDE的run功能,选择相应的程序执行即可。

第一个和最后一个分别是Applet程序

和Application程序

D.写文档注释,生成文件

一些效果截图

2.打印日历程序

3.枚举类统计Java成绩

非法输入程序会报错退出

正确结果

自学了一下javafx,写了个简陋的UI。(要配合控制台输入数据,有待改进)

4.四连子游戏

继续自学了一下javafx,给这个游戏包装了一个UI。本题和老师理解的要求可能有出入,游戏规则有点差别,但是底层逻辑是差不多的,于是我还是按照自己的想法写了下去,希望老师理解。

某一列下满,按钮失效

获胜,信息提示

绿色指示当前局该哪一方落子

平局

Restart:清盘重玩

Quit:退出

实验源代码如下:

-------1.helloworld---------------

package one;

import java.applet.Applet;

import java.awt.*;

/**

* This class is used to show hello world information

* in two kinds of ways

*

* 1.print the information in the console

* 2.generate an applet to display the info

*

* @author Yuchen Tian

*/

public class HelloWorld extends Applet{

/**

* main function for Application

* @param args

*/

public static void main(String[] args){//for application

System.out.println("Hello World!");

}

public void init(){ }//for applet

/**

* create an graph on applet to show info

* @param g

*/

public void paint(Graphics g){

g.drawString("Hello World!",20,20);

}

}

------2.printCalendar----

---------Part1---------------

package two;

/*

this Month enum defines the 12 months of all year

including the information of:

index:the order in current class

name:the full name of the month

day:days in this month

*/

public enum Month {

JAN(1,"January",30),FEB(2,"February",28),MAR(3,"March",31),APR(4,"April",30 ),

MAY(5,"May",31),JUN(6,"June",30), JUL(7,"July",31),AUG(8,"August",31), SEP(9,"September",30),OCT(10,"October",31),NOV(11,"November",30),DEC(12,"De cember",31);

private int index;

private String name;

private int day;

Month(int index,String name,int day){

this.index = index;

https://www.wendangku.net/doc/2017464420.html, = name;

this.day = day;

}

public String getName(){

return name;

}

public int getDay(){

return day;

}

//when a month call this method,it becomes the month following it

public Month next(){

int index = (this.index+1 > 12) ? 1 : this.index+1;

return getMonthByIndex(index);

}

//get a month according to the it's index in the enum

public Month getMonthByIndex(int index){

for(Month c:Month.values()){

if(c.index == index)

return c;

}

return null;

}

}

-------part2-------

package two;

import java.util.Calendar;

import java.util.GregorianCalendar;

public class MyCalendar {

private int year;

private int startDay;

private Month m;

public MyCalendar(int year){

this.year = year;

this.startDay = getFirstDay(0,1) % 7;//month1,day1

m = Month.JAN; //start month of the year

}

public int getFirstDay(int month, int day){

GregorianCalendar tool = new GregorianCalendar(this.year,month,day); return tool.get(Calendar.DAY_OF_WEEK);//0 for Sun ,1 for Mon...

}

public void printMonth(Month m){

//generate the head information of each month

System.out.printf("%20s\n",m.getName());

System.out.println("--------------------");

System.out.println("Su Mo Tu We Th Fr St");

int count = 0;

for(int i=0;i

System.out.printf("%3c",' ');

count++;

}

for(int i=1;i<=getDays(m);++i){//print days

System.out.printf("%2d ",i);

count++;

if(count%7==0)

System.out.println();

}

System.out.println();

startDay = (getDays(m) + startDay) % 7; //change the startDay for the next month

}

public boolean isLeapYear(){

return year%400 == 0 || (year%4 == 0 && year%100 !=0);

}

//get days in specific month

//days in February is unique when it is leap year

//hence,a special approach is implement to alter it right

public int getDays(Month m){

int days = m.getDay();

if(isLeapYear() && m.getName().equals(Month.FEB.getName()))//special

for February

days += 1;

return days;

}

//once printed the first month

//change the m to the next month

public void printAllMonth(){

for(int i = 0;i<12;++i){

printMonth(m);

m = m.next();

}

}

}

---------part3----------

package two;

import java.util.Scanner;

public class PrintCalendar {

public static void main(String[] args){

//Prompt the user to input a year

Scanner input = new Scanner(System.in);

System.out.print("Please input a year:");

int year = input.nextInt();

//create a MyCalendar instance

MyCalendar cal = new MyCalendar(year);

cal.printAllMonth();

}

}

----------3,aggregate the scores--------

--------part1--------

package three;

public enum GradeRank {

A("优秀",0),B("良好",1),C("中等",2),D("及格",3),E("不及格",4); private String info;

private int index;

GradeRank(String info, int index){

https://www.wendangku.net/doc/2017464420.html, = info;

this.index = index;

}

public int getIndex() {

return index;

}

public String getInfo() {

return info;

}

public GradeRank changeRank(Double grade){

GradeRank g;

if(grade>=90 && grade<=100)

g = GradeRank.A;

else if(grade<90 && grade>=80)

g = GradeRank.B;

else if(grade<80 && grade>=70)

g = GradeRank.C;

else if(grade<70 && grade>=60)

g = GradeRank.D;

else if(grade<60 && grade>=0)

g = GradeRank.E;

else

g = null;

return g;

}

}

-------part2-------

package three;

import java.util.Scanner;

public class EvaluateGrade {

private int[] collection;

private GradeRank g; //the standard for Aggregating

private int num; //how many scores you need to calculate

public EvaluateGrade(int num) {

this.collection = new int[5];//n different ranks

g = GradeRank.A;

this.num = num;

}

//when a new score is input

//g is gonna to change according to the value of the score

public void checkRank(Double grade){

g = g.changeRank(grade);

if(g==null){

System.out.println("Invalid input!");

System.exit(1);

}

collection[g.getIndex()]++;

}

public void countRank(){

Scanner input = new Scanner(System.in);

System.out.println("Input the scores:");

for(int i = 0;i

Double grade = input.nextDouble();

checkRank(grade);

}

}

public void display(){

for(int i=0;i<5;i++)

System.out.printf("%s%c%5.1f%c\n",indexToStr(i),':',getPercent(i),'%'); }

//acquire the information using index

//to display the outcome better

public String indexToStr(int i){

for(GradeRank c : GradeRank.values()){

if(c.getIndex()==i)

return c.getInfo();

}

return null;

}

public double getPercent(int i){

return ((double) collection[i]/num)*100;

}

}

--------part3--------

package three;

import java.util.Scanner;

public class Aggregate {

public static void main(String[] args){

Scanner number = new Scanner(System.in);

System.out.print("Please input the number of scores you want to deal with:");

int n = number.nextInt();

EvaluateGrade checker = new EvaluateGrade(n);

checker.countRank();

checker.display();

}

}

-----------4,chessgame--------

--------part1------

/*

this class is designed to store data in playing games

and make the rule of the playing as well

*/

public class Game {

private int[][] board;

private int[] full;

private boolean isBlack;

public Game(){

this.board = new int[7][];

for(int i=0;i<7;i++)

this.board[i] = new int[6];

this.isBlack = true;//black side is first

full = new int[7];

for(int i=0;i<7;i++)

full[i] = 5;

}

public boolean isBlack() {

return isBlack;

}

//change to the other side to play

public void inTurn(){

this.isBlack = !this.isBlack;

}

public boolean isFull(int i){

return full[i] == -1;

}

public boolean isAllFull(){

for(int i=0;i<7;++i)

if(!isFull(i))

return false;

return true;

}

//the most important part

//check whether one side has won the game

public boolean checkWin(int i,int j){

if(line(i,j)||column(i,j)||leftR(i,j)||rightL(i,j))

return true;

else

return false;

}

public boolean line(int i,int j){

int cx = 0;

for(int m =i+1;m<7 && board[m][j]==board[i][j];++m)

cx++;

for(int m = i-1;m>=0 && board[m][j]==board[i][j];--m)

cx++;

if(cx>=3)

return true;

else

return false;

}

public boolean column(int i,int j){

int cx = 0;

for(int n =j+1;n<6 && board[i][n]==board[i][j];++n)

cx++;

for(int n = j-1;n>=0 && board[i][n]==board[i][j];--n)

cx++;

if(cx>=3)

return true;

else

return false;

}

public boolean leftR(int i,int j){

int cx = 0;

for(int m=i+1,n=j+1;m<7 && n<6 && board[m][n]==board[i][j];++m,++n) cx++;

for(int m=i-1,n=j-1;m>=0 && n>=0 && board[m][n]==board[i][j];--m,--n) cx++;

if(cx>=3)

return true;

else

return false;

}

public boolean rightL(int i,int j){

int cx = 0;

for(int m=i-1,n=j+1;m>=0 && n<6 && board[m][n]==board[i][j];--m,++n) cx++;

for(int m=i+1,n=j-1;m<7 && n>=0 && board[m][n]==board[i][j];++m,--n) cx++;

if(cx>=3)

return true;

else

return false;

}

//change the data of game when one side drop the chess

public int dropChess(int i){

board[i][full[i]] = (isBlack()) ? 1 : 2;

inTurn();

full[i]--;

return full[i]+1;

}

}

-----part2------

import javafx.geometry.Insets;

import javafx.scene.control.Button;

import javafx.scene.control.TextField;

import https://www.wendangku.net/doc/2017464420.html,yout.BorderPane;

import https://www.wendangku.net/doc/2017464420.html,yout.GridPane;

import javafx.scene.paint.Color;

import javafx.scene.shape.*;

import javafx.scene.text.*;

/*

this class is designed to append graph of each element into the game determined the layout of these elements as well

more importantly, the change of the elements as the game playing

*/

public class ChessBoard {

private Game rule;

//the elements

private Font font;

private Rectangle[] recs;

private TextField result;

private Button[] bts;

private Button[] indicator;

private Button[] choice;

private Circle[] light;

private Circle[] chess;

//the framework

private GridPane board;

private BorderPane frame;

private GridPane control;

//initialize all the elements

ChessBoard() {

this.rule = new Game();

this.font = Font.font(null, FontWeight.NORMAL, null, 20);

this.recs = new Rectangle[42];

浙大JAVA 实验题答案05answer1

实验5 分支结构程序的设计 1.程序填空题,不要改变与输入输出有关的语句。 20004 计算旅途时间 输入2个整数time1和time2,表示火车的出发时间和到达时间,计算并输出旅途时间。 有效的时间范围是0000到2359,不需要考虑出发时间晚于到达时间的情况。 例:括号内是说明 输入 712 1411(出发时间是7:12,到达时间是14:11) 输出 The train journey time is 6 hrs 59 mins. import java.util.Scanner; public class Test20004 { public static void main(String[] args) { Scanner in=new Scanner(System.in); int time1, time2, hours, mins; time1=in.nextInt(); time2=in.nextInt(); /*------------------*/ /*计算两个时间之间的小时数和分钟数*/ hours=time2/100-time1/100; mins=time2%100-time1%100; /*当计算得到的分钟数为负数时进行调整*/ hours=mins>0?hours:hours-1; mins=mins>0?mins:mins+60; //或:if(mins<0){hours-=1;mins+=60;} System.out.println("The train journey time is "+hours+" hrs "+ mins+" mins."); } } 30001 显示两级成绩 输入一个正整数repeat (0

南昌大学WEB实验报告

实验报告 实验课程:《 WEB编程》 学生姓名: 学号: 专业班级: 2010年 12 月 20 日

目录 ●实验一 .............................................. ●实验二 ............................................. ●实验三 ............................................. ●实验四 ............................................. ●实验五 ............................................. ●实验六 ............................................. ●实验七 ..............................................

南昌大学实验报告 学生姓名:学号:专业班级: 实验类型:□验证□综合■设计□创新实验日期:2010年9月15 日实验成绩:实验一 Web编程环境 一、实验目的 1.搭建Web编程环境,能正确安装配置java运行环境、WEB服务器和数据库服务器 2.熟悉WEB编程集成环境MYEclipse. 3.熟练掌握WEB工程的创建、发布、运行流程。 二、实验内容 1.安装并配置java运行环境JDK和JRE 2.安装Web服务器tomcat, 配置Tomcat服务器 3.安装并配置数据库MySQL. 4.安装MyEclispe,熟悉各项菜单项 5.为MyEclispe集成配置JDK和Tomcat 6.创建、发布、运行一个WEB工程。 三、实验仪器及耗材 计算机,JDK,TOMCAT, MySQL, MyEclipse等软件。 四、实验步骤 1、安装并配置JDK和JRE 2、设置好classpath和path路径 3、安装Tomcat5.5 4、设置Tomcat的配置属性 5、安装并配置MySQL数据库 6、安装MySqL Administrator工具 7、安装MyEclipse 8、新建并配置一个工程,运行发布一个新的工程。 五、实验结果 1、JDK、JRE安装结果:

WEB编程实验报告---南昌大学

实验报告 实验课程:JA V A WEB编程技术 学生姓名: 学号: 专业班级:物流101班 2013年 06 月 12 日 目录

实验一WEB编程环境......................... 错误!未定义书签。实验二HTML和CSS编程技术 (7) 实验三JA V ASCRIPT编程技术 (10) 实验四SERVLET编程技术 (13) 实验五JSP编程技术 (16) 实验六JA V ABEAN编程技术 (21) 实验七基于MVC模式构建系统 (25) 南昌大学实验报告 学生姓名:学号:专业班级:物流101班

实验类型:□验证□综合■设计□创新实验日期:实验成绩: 一、实验项目一Web编程环境 二、实验目的 第1章搭建Web编程环境,能正确安装配置java运行环境、WEB服务器和数据库服务器 第2章熟悉WEB编程集成环境MYEclipse. 第3章熟练掌握WEB工程的创建、发布、运行流程。 三、实验内容 1.安装并配置java运行环境JDK和JRE 2.安装Web服务器tomcat, 配置Tomcat服务器 3.安装并配置数据库MySQL. 4.安装MyEclispe,熟悉各项菜单项 5.为MyEclispe集成配置JDK和Tomcat 6.创建、发布、运行一个WEB工程。 四、实验仪器及耗材 计算机,JDK,TOMCA T, MySQL, MyEclipse等软件。 五、实验步骤 1.先安装jdk1.6,选择自定义安装,安装到C:\JDK 2.配置环境变量,class:.;C:\JDK\bin , classpath:.;C:\JDK\lib ,java_home: C:\JDK 安装tomcat,安装在C:\ Tomcat 下,配置tomcat_home环境变量,CATALINA_HOME: C: \Tomcat,CATALINA_BASE: C: \Tomcat,TOMCAT_HOME: C:\Tomcat 然后修改环境变量中的classpath,把tomat安装目录下的common\lib下的servlet.jar 追加到classpath中去,修改后的classpath如下: classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\c ommon\lib\servlet.jar;

惠斯通电桥实验报告南昌大学

南昌大学物理实验报告 课程名称:_____________ 大学物理实验 实验名称:_______________ 惠斯通电桥 学院:___________ 专业班级: 学生姓名:_________ 学号: 实验地点:___________ 座位号: 实验时间:第11周星期4上午10点开始

、实验目的: 1. 掌握电桥测电阻的原理和方法 2. 了解减小测电阻误差的一般方法 、实验原理: (1) 惠斯通电桥原理 惠斯通电桥就是一种直流单臂电桥,适用于测中值电阻,其原理电路如图 7-4所示。若调节电阻到合适阻值时, 可使检流计 G 中无电流流过,即 B 、D 两点的电位相等,这时称为“电桥平衡”。电桥平衡,检流计中无电流通过, 相当于无BD 这一支路,故电源 E 与电阻R ,、R x 可看成一分压电路;电源和电阻 R 1 上面两式可得 R 2 桥达到平衡。故常将 R 、R 2所在桥臂叫做比例 臂,与R x 、R S 相应的桥臂分别叫做测量臂和比 较臂。 V B C 点为参考,贝y D 点的电位V D 与B 点的电位V B 分别为 R 2 R S R S V D R X 因电桥平V B V D 故解 R 2、R S 可看成另一分压电路。若以 R x 为 E 待测电阻,则有 R>< R X R S 上式叫做电桥的平衡条件,它说明电桥平衡时,四个臂的阻值间成比例关系。如果 1 10,10 1等)并固定不变,然后调节 金使电

(2)电桥的灵敏度

n R S R S 灵敏度S 越大,对电桥平衡的判断就越容易,测量结果也越准确。 此时R s 变为R s ,则有:R x R2 R s ,由上两式得R x . R s R s 三、 实验仪器: 线式电桥板、电阻箱、滑线变阻器、检流计、箱式惠斯通电桥、待测电阻、低压直流电源 四、 实验内容和步骤: 1. 将箱式电桥打开平放,调节检流计指零 2. 根据待测电阻(线式电桥测量值或标称值)的大小和 R 3值取满四位有效数字原则,确定比例臂的取值,例如 R 为数千欧的电阻,为保证 4位有效数字,K r 取 3. 调节F 3的值与R <的估计 S _____ S 的表达式 R S R S S-i S 2 _____________________ ES R i R 2 R s R x 1 R E % R i R 2R X Rg 2 R x R s R 2 R - R E 2 R R s R x (3) 电桥的测量误差 电桥的测量误差其来源主要有两方面,一是标准量具引入的误差, 二是电桥灵敏度引入的误差。为减少误差传递, 可采用交换法。 交换法:在测定R x 之后,保持比例臂 R -、R 2不变,将比较臂 R s 与测量臂R x 的位置对换,再调节 R s 使电桥平衡,设 电桥的灵敏程度定义: R i

南昌大学《编译原理》实验报告(用Java编写)

实验报告 学院:信息工程学院系计算机系 专业班级:计算机科学与技术 学生姓名:学号: 任课教师:

目录 实验1 词法分析程序的设计 (3) 实验2 语法分析程序的设计 (9) 实验3 逆波兰式的翻译和计算 (17)

南昌大学实验报告 学生姓名:学号:专业班级: 实验类型:□验证□综合■设计□创新实验日期:实验成绩: 实验1 词法分析程序的设计 一、实验项目名称 词法分析程序的设计 二、实验目的 掌握计算机语言的词法分析程序的开发方法。 三、实验基本原理 编制一个能够分析三种整数、标识符、主要运算符和主要关键字的词法分析程序。 1、根据以下的正规式,编制正规文法,画出状态图; 标识符<字母>(<字母>|<数字字符>)* 十进制整数0 | ((1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)*) 八进制整数0(1|2|3|4|5|6|7)(0|1|2|3|4|5|6|7)* 十六进制整数0x(0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f)(0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f)* 运算符和界符+ - * / > < = ( ) ; 关键字if then else while do 2、根据状态图,设计词法分析函数int scan( ),完成以下功能: 1)从文本文件中读入测试源代码,根据状态转换图,分析出一个单词, 2)以二元式形式输出单词<单词种类,单词属性> 其中单词种类用整数表示: 0:标识符 1:十进制整数 2:八进制整数 3:十六进制整数 运算符和界符,关键字采用一字一符,不编码 其中单词属性表示如下: 标识符,整数由于采用一类一符,属性用单词表示 运算符和界符,关键字采用一字一符,属性为空 3、编写测试程序,反复调用函数scan( ),输出单词种别和属性。

南昌大学化学实验报告

南昌大学化学实验报告 篇一:南昌大学实验报告 南昌大学实验报告 学号:6100512094 专业班级:信息管理与信息系统122班 实验类型:□验证□综合□设计□创新实验日期:XX/4/3 实验成绩: 实验一实验环境的建立 一、实验目的: 1.了解SQL Server XX常用版本和对操作系统的不同要求 2.熟悉SQL Server XX的基本性能 3.正确安装和配置SQL Server XX 二、实验基本原理 SQL即结构化查询语言,是关系数据库的标准语言,SQL 是一个综合的、功能极强同时又简洁易学的语言。它集数据查询、数据操纵、数据定义和数据控制功能于一体。自SQL 成为国际标准语言之后,各个数据库厂家纷纷推出各自的SQL软件或与SQL的接口软件。这就使大多数 数据库均用SQL作为共同的数据存取语言和标准接口,使不同数据库系统之间的互操作有了共同的基础。

三、主要仪器设备及耗材 相互连成LAN的计算机2台以上,windows XX server 操作系统,SQL Server XX安装标准版安装软件。 四、实验步骤 安SQL Server XX:将安装光盘放入CD-ROM,将自动弹出“SQL Server自动菜单”界面,如果没有自动弹出则选择光盘根目录下的autorun.exe,双击运行: 选择运行“安装SQL Server XX组件”进入安装组件界面,选择“安装数据库服务器”。进入安装界面后,按照安装提示进行安装;一般需要人工进行干预的有: 选择安装类型和安装路径:安装类型有:典型安装、最小安装、和自定义安装。安装路径是指SQL Server的系统文件和数据文件的安装位置。默认情况下“安装类型”是典型安装,“安装路径”是操作系统设定的“Program Files”文件夹。你可以自行改变,初次安装最好不要改变他,按默认情况使用; 配置启动服务的帐号:有两类用户帐号:一类是与Windows操作系统的集成帐号,一类是混合帐号。选择第一类帐号进行安装;配置服务器端网络库:SQL Server支持多种网络库,这些网络库必须与操作系统的网络协议共同工作,才能实现客户机与数据库服务器的通信。安装完成后,可以通过操作系统的开始菜单操作:“开始”―>SQL Server”->

南昌大学DSP实验报告

实验报告 实验课程:DSP原理及应用 学生姓名: 学号: 专业班级: 2012年 5月 25日

目录 实验一定点除法运算 实验二FIR滤波器 实验三FFT算法 实验四卷积计算 实验五数码管显示 实验六语音录放

实验一定点除法运算 一、实验目的 1、熟悉C54指令系统,掌握常用汇编指令,学会设计程序和算法的技巧。 2、学习用指令实现除法运算。 二、实验设备 计算机;DSP 硬件仿真器;DSP 实验开发平台。 三、实验原理 由内置的硬件模块支持,数字信号处理器可以高速的完成加法和乘法运算。但TMS320 系列DSP不提供除法指令,为实现除法运算,需要编写除法子程序来实现。二进制除法是乘法的逆运算。乘法包括一系列的移位和加法,而除法可分解为一系列的减法和移位。本实验要求编写一个16 位的定点除法子程序。 1.除法运算的过程设累加器为8 位,且除法运算为10 除以3,除的过程包括与除数有关的除数逐步移位,然后进行减法运算,若所得商为正,则在商中置1,否则该位商为0 例如:4 位除法示例:(1)数的最低有效位对齐被除数的最高有效位00001010 - 00011000 11110010 (2)由于减法结果为负,丢弃减法结果,将被除数左移一位再减00010100 - 00011000 11111000 (3)结果仍为负,丢弃减法结果,将被除数左移一位再减00101000 - 00011000 00010000 (4)结果为正,将减法结果左移一位后把商置1,做最后一次减00100001 - 00011000 00001001 (5)结果为正,将减法结果左移一位加1 得最后结果,高4 位是余数,低4 位商:00010011 2.除法运算的实现为了尽量提高除法运算的效率,’C54x 系列提供了条件减指令SUBC 来完成除法操作。 四、实验步骤 1.用Simulator 方式启动Code Composer。 2 .执行Project New 建立新的项目,输入chuf作为项目的名称,将程序定位在D:\ti\myprojects\chuf目录。 3.执行File New Source File 建立新的程序文件,为创建新的程序文件命名为chuf.asm 并保存;执行Project Add Files to Project,把chuf.asm 加入项目中。4.执行File New Source File 建立新的文件并保存为chuf.cmd;执行Project Add Files to Project,把chuf.cmd 加入项目中。 5.编辑chuf.asm 加入如下内容: ;*** 编制计算除法运算的程序段。其中|被除数|<|除数|,商为小数*** .title "chuf.asm" .mmregs .def start,_c_int00

java实验答案解读

实验一 水仙花数: class shuixianhua {//水仙花数 public static void main(String arg[]) { int i,a,a1,b,b1,c; for(i=100;i<1000;i++) { a=i%10; a1=i/10; b=a1%10; b1=a1/10; c=b1%10; if(i==(a*a*a+b*b*b+c*c*c)) System.out.println(i); } } } 输出如下: 153 370 371 407 打印出100以内素数: public class sushu { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int i,j,k=0; for(i=2;i<100;i++){ if(i==2) System.out.println(i); i++; for(j=2;j

k=1; } if(k==1) System.out.println(i); } } 求1!+2!+ (20) public class jiecheng { public static void main(String[] args) { int i,sum=0,k; for(i=1;i<=20;i++) { k=ji(i); sum=k+sum; } System.out.print(sum); } static int ji(int n) { if(n==1) return 1; else return ji(n-1)*n; } } 习题2.6 public class Test{ public static void main(String[] args)//第19题,打出图形.菱形{ int n=3; for(int i=1;i<=n;i++) { for(int k=n-1;k>=i;k--) { System.out.print(" "); } for(int j=1;j<=2*i-1;j++)//打印* {

实验四序列发生器

南昌大学实验报告学生姓名:学号:专业班级:中兴101班 实验类型:□验证□综合■设计□创新实验日期:2012、11、16成绩: 实验四序列信号发生器与检测器设计 一、实验目的 1、学习VHDL文本输入法 2、学习有限状态机的设计 3、利用状态机实现串行序列的输出与序列的检测 4、继续学习优化设计 二.实验内容与要求 1. 设计序列发生器,完成序列为0111010011011010的序列生成器 2.用有限状态机设计序列检测器,实现串行序列11010的检测器 3. 若检测到符合要求的序列,则输出显示位为“1”,否则为“0” 4. 对检测到的次数计数 5.整个工程采用顶层文件+底层模块的原理图或文本的设计思路 三、实验仪器 PC机、Quartus II软件、EDA实验箱 四、实验思路 1.设计序列发生器 基本思想为一个信号CQ1计数,给另一个信号CO(代表序列的每一位)赋值的方法: 先设定端口CQ1用于产生序列时计数,因为序列共16位,因此端口CQ1为标准逻辑矢量,位宽为4,设另一个端口M代表序列的每一位,CQ1每计一个数,就给M赋一个值,这样产生一个16位的序列。由于端口不能参与相关运算,因此在结构体中我分别定义了信号CQ1(标准逻辑矢量,位宽4),信号Q与相应的端口CQ1 CO对应,在进程中参与相应的运算,在程序的最后再用端口接收信号: CO<=Q; 在进程中我采用case –when 语句,如当CQ1为“0000”的时候,给另一信号Q赋‘0’,当CQ1为“0001” 2.序列检测器 序列检测器设计的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及序列,直到在连续的检测中收到的每一位码都与实验要求相同。在此,必须利用状态转移图。 电路需要分别不间断记忆:初始状态、1、11、110、1101、11010共六种状态,状态转移如图:

java实训总结

实习报告 学生姓名:陈育伟 学号:20096361 专业班级:信息与计算科学1班 实习单位:高博教育 实习时间:2012-7-1——2012-7-14 2012年 7 月 14 日

一、实习目的 通过对java语言、JavaWeb、Oracle数据库应用设计及SQL语言的复习和锻炼,并且通过使用MyEclipse 开发平台设计库存管理系统项目,以达到充分熟悉开发平台及其应用设计。同时掌握并实践软件项目设计规范及其开发流程:需求分析、概要设计、详细设计、代码编写、系统测试及软件手册编写,以便提前适应软件公司开发流程、环境和工作要求进一步了解java开发的相关知识,掌握java开发的基本技术,丰富java开发的实战经验。学习SQL的基础知识及正确的运用方法,和有用的相关技术,提高自己的工作效率。通过实习,培养我们综合运用已学知识Java语言的面向对象编程能力;培养我们动手能力;培养我们良好编程规范、编程方法;以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力;增强自己的团队协作意识,了解软件开发的思考角度和主要流程。为毕业之后能够更快地进入工作状态并且能够更好的工作,打好一定的基础。 二、实习主要流程 1、公司管理规则,程序员素质,程序员编码规范; 2、需求开发与管理; 3、面向对象分析与设计,面向对象编程的特性; 4、javaSE、javaWeb 、页面设计-JSP页面; 5、数据库设计、SQL应用; 6、软件需求分析与设计; 7、项目实战 三、实习内容 Oracle数据库 数据库是数据的结构化集合。计算机是处理大量数据的理想工具,因此,数据库管理系统在计算方面扮演着关键的中心角色,或是作为独立的实用工具,或是作为其他应用程序的组成部分。 Oracle服务器还有一套实用的特性集合,这些特性是通过与我们用户的密切合作而开发的。在我们的基准测试主页上,给出了Oracle服务器和其他数据库管理器的比较结

南昌大学《MATLAB与控制系统仿真》实验报告综述

实验报告 实验课程: MATLAB与控制系统仿真 姓名: 学号: 专业班级: 2016年 6月

目录实验一 MATLAB的环境与基本运算(一) 实验二 MATLAB的环境与基本运算(二) 实验三 MATLAB语言的程序设计 实验四 MATLAB的图形绘制 实验五基于SIMULINK的系统仿真 实验六控制系统的频域与时域分析 实验七控制系统PID校正器设计法 实验八线性方程组求解及函数求极值

实验一 MATLAB的环境与基本运算(一) 一、实验目的 1.熟悉MATLAB开发环境 2.掌握矩阵、变量、表达式的各种基本运算 二、实验基本原理 1.熟悉MATLAB环境: MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器、文件和搜索路径浏览器。 2.掌握MA TLAB常用命令 表1 MA TLAB常用命令 3.MATLAB变量与运算符 3.1变量命名规则 3.2 MATLAB的各种常用运算符 表2 MA TLAB算术运算符 表4 MATLAB逻辑运算符

表5 MATLAB特殊运算 4.MATLAB的一维、二维数组的寻访 表6 子数组访问与赋值常用的相关指令格式 三、主要仪器设备及耗材 计算机 四、实验内容 1.新建一个文件夹(自己的名字命名,在机器的最后一个盘符) 2.启动MATLAB,将该文件夹添加到MATLAB路径管理器中。 3.学习使用help命令。 4.窗口命令 ● close ● close all ● clc ● hold on ● hold off 了解其功能和作用,观察command window、command history和workspace等窗口的变化结果。5.工作空间管理命令 ● who ● whos ● clear 6.随机生成一个2×6的矩阵,写出实现矩阵左旋(以第1行第1列为中心逆时针)90°或右旋(顺

南昌大学自动装置实验报告

实验报告 实验课程:自动装置原理 学生姓名: 学号: 专业班级:电力系统及其自动化班

目录实验一:无功调差及自动检测实验 实验二:综合放大及调节特性实验

实验一:无功调差及自动检测实验一、实验目的 1.深入理解调差原理,掌握改变发电机电压调节特性斜率的方法。2.深入了解测量和比较整定电路的结构形式和工作原理。 3.掌握自动检测各个环节的工作特性及其调试方法。 二、实验设备 三、实验内容与步骤 1.无功调差和自动检测实验接线 见图1-9,将三相调压器输出调至 零输出位置,电源开关处于断开 状态,按图接线,接线完毕后要 自行检查接线正确性,然后,请 指导老师检查,确定无误后,接 入交流电源(注意:在整个实验 过程中,由三相调压器输入实验 电路测量变压器1-3T一次侧的电 压不得大于120V“线电压”,并且 U AB=U BC=U CA)。 2.将调差整定开关置于“0”档。 “调试”“运行”插头插入“运行” 位置。“远”“近”控开关置于“近” 控位置。 3.将输入电压调至 U AB=U BC=U CA =105V,按表1-1 要求进行检测: ①检测测量变压器的变比(测 出二次侧线电压进行计算)。 ②检测三相桥式整流器的输出 电压 ③检测二个比较桥上四个稳压 管反向击穿后的稳压值。把各项 测试数据记录在表2-1中。 4.用示波器观察测试整流输出 直流电压叠加的交流纹波。

5.比较桥检测特性实验 实验接线见图1-9,当电压整定电位器RP分别置于“0圈”“5圈”“10圈”位置时,在测量变压器一次侧加入三相交流电压U f,按表1-2改变交流电压输入值,用高内阻电压表测出U f从小到大调节变化过程中各对应点的U CB、U DB、U CD(即△U)及U EB、U FB,记录在表1-2中。 6.根据表1-2中测得的数据绘制检测桥的特性曲线。 四、实验记录表 表1-1 测量变压器变比、整流及稳压管稳压值测试记录表(见下表)。调差电阻“0 AB BC CA 表1-2 比较桥检测特性实验记录表 整定电位器位置不同时,测试交流电压U f与测量桥的输出关系,测量桥输出一点为RP滑动端(C),另一点为4VW c和3R c的连接点(D),即为比较桥输出电压U CD(△U),及U CB、U DB、U EB、U FB各点电位见图1-9。

最新JAVA实验6答案

广东海洋大学学生实验报告书(学生用表) 实验名称实验六. Java的接口与实现课程名称Java程序设计与开发 技术 课程号16232204 学院(系) 信息学院专业计算机科学与技术班级计科 学生姓名学号实验地点钟海楼 04019 实验日期 2015年 10月26日 一、实验目的 (1)学习掌握Java中类怎样实现接口、接口回调技术; (2)学习掌握Java 程序中面向接口的编程思想。 二、实验任务 完成实验六指导上实验1、实验2、实验3的实验任务。 三、实验仪器设备和材料 安装有J2SE开发工具的PC机。 四、实验内容和步骤 实验1 代码如下: Estimator.java interface CompurerAverage{ public double average(double x[]); } class Gymnastics implements CompurerAverage{ public double average(double x[]){ int count=x.length; double aver=0,temp=0; for(int i=0;i

aver=aver+x[i]; } if(count>2) aver=aver/(count-2); else aver=0; return aver; } } class School implements CompurerAverage{ public double average(double[] x){ int count=x.length; double sum=0; for(int i=0;i

南昌大学JAVA期末复习题及答案

一、填空题 1.对象之间可能存在的关系有三种:_包含_、_继承__和_关联_。2.面向对象的软件开发过程大体可分为 __面对对象分析、__面对对象设计_和_面对对象测试__三个阶段。 3. Java 语言中实现多态的方法有 __继承__、_方法重载_ 和_成员覆盖__。 4. Java 语言具有可移植性、高性能、健壮性、安全性和独立于体系结构的__跨平台_特点。 5. JAVA语言规定object类是JAVA 程序中所有类的父类,当前类的构造方法用this()表示,直接父类的构造方法用super()表示。 6.如果一个Java Applet 源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet 必须是Applet类的子类并且存储该源程序文件的文件名为MyApplet.java。 7.如果一个Java Applet 程序文件中定义有3 个类,则使用Sun 公司的JDK 编译器javac.exe编译该源程序文件将产生3个文件名与类名相同而扩展名为.class的字节码文件。 8.在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用2 字节内存空间,这样,无论是中文字符还是英文字符,都是占用2字节内存空间。 10. Applet 是能够嵌入到HTML格式的文件中,并能够在浏览器中运行的Java。

11.在Java 中,线程的模型就是一个CPU、程序代码和数据的封装体。 12.键盘键入字符串并在计算机屏幕上显示,这时的数据源是键盘。13. JAVA语言是第一个语言本身就支持线程的编程语言,其对线程的支持主要通过 https://www.wendangku.net/doc/2017464420.html,ng.Thread类和https://www.wendangku.net/doc/2017464420.html,ng.Runnable接口来实现。14.设有数组定义:int MyIntArray[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70}; 则执行以下几个语句后的输出结果是120。 int s = 0 ; for ( int i = 0 ; i < MyIntArray.length ; i + + ) if ( i % 2 = = 1 ) s += MyIntArray[i] ; System.out.println( s ); 15. JVM 是Java Virtual Machine的缩写; AWT 是abstrac window toolkit的缩写。 16.单重继承是指只有一个父类的继承;多重继承是指有一个以上父类的继承;Java 语言出于安全、可靠的考虑,仅支持单重继承;但Java 语言可通过接口来实现多重继承。 17. Java 中构成图形用户界面的元素和成分可分为 _容器_、_控制组件_和___用户自定义________________等三类。 18.一个线程的完整生命周期包括如下 5 种状态 _新生_、__就绪_、_运行_、_阻塞_和_死亡_。

实验一 一位二进制全加器设计实验

南昌大学实验报告 学生姓名: 学 号: 专业班级: 中兴101 实验类型:■ 验证 □ 综合 □设计 □ 创新 实验日期: 2012 9 28 实验成绩: 实验一 一位二进制全加器设计实验 一.实验目的 (1)掌握Quartus II 的VHDL 文本设计和原理图输入方法设计全过程; (2)熟悉简单组合电路的设计,掌握系统仿真,学会分析硬件测试结果; (3) 熟悉设备和软件,掌握实验操作。 二.实验内容与要求 (1)在利用VHDL 编辑程序实现半加器和或门,再利用原理图连接半加器和或门完成全加器的设计,熟悉层次设计概念; (2)给出此项设计的仿真波形; (3)参照实验板1K100的引脚号,选定和锁定引脚,编程下载,进行硬件测试。 三.设计思路 一个1位全加器可以用两个1位半加器及一个或门连接而成。而一个1位半加器可由基本门电路组成。 (1) 半加器设计原理 能对两个1位二进制数进行相加而求得和及进位的逻辑电路称为半加器。或:只考虑两个一位二进制数的相加,而不考虑来自低位进位数的运算电路,称为半加器。图1为半加器原理图。其中:a 、b 分别为被加数与加数,作为电路的输入端;so 为两数相加产生的本位和,它和两数相加产生的向高位的进位co 一起作为电路的输出。 半加器的真值表为 表1 半加器真值表 由真值表可分别写出和数so ,进位数co 的逻辑函数表达式为: b a b a b a so ⊕=+=- - (1) ab co = (2) 图1半加器原理图 (2) 全加器设计原理 除本位两个数相加外,还要加上从低位来的进位数,称为全加器。图2全加器原理图。全加器的真值表如下:

java实验题及答案

面向对象程序设计(Java)实验报告 实验四数组 指导教师:赵丹 姓名:刘坤(贵州民大)学号: 专业:信息管理与信息系统日期:2015-04-22 一、实验目的: 熟悉Java数组的创建、初始化、遍历、排序等操作。 二、实验内容: 1、将一个给定的整型数组转置输出, 例如:源数组,1 2 3 4 5 6 转置之后的数组,6 5 4 3 2 1。 2、现在有如下的一个数组: int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} ; 要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为: int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5} ; 3、现在给出两个数组: 数组a:“1,7,9,11,13,15,17,19”; 数组b:“2,4,6,8,10” 两个数组合并为数组c,按升序排列。 4、自己出一个和本章有关的有趣的题目,并编程解答。 三、实验步骤、分析与结论: 1、将一个给定的整型数组转置输出, 例如:源数组,1 2 3 4 5 6 转置之后的数组,6 5 4 3 2 1。 ①java程序如下: public class ArraySwap { public static void main(String[] args){ int oldArr[]=new int[]{1,2,3,4,5,6}; System.out.println("转置前的数组为:"); printArray(oldArr); //输出一维数组 int newArr[]=new int[oldArr.length]; for(int i=0;i

南昌大学JavaWeb实验报告

实验一Java Web开发环境配置 学生姓名:学号:专业班级: 实验类型:□验证□综合□设计□创新实验日期: 2018.04.11 实验成绩:一、实验目的 1.掌握设置JDK环境。 2.掌握设置Tomcat环境。 3.安装、掌握Eclipse,MyEclipse 或IntellijIDEA软件,为学习 JSP和进行 JSP的实验做好准备工作。 4.编写JSP 程序并运行JSP页面。 二、实验要求 1.安装并设置 Java SDK 软件包。 2.安装并设置Tomcat软件包。 3.安装并设置 Eclipse软件、MyEclipse或IntellijIDEA软件。 4.编写一个简单的JSP,并在浏览器中浏览。 5.创建一个Web项目,并进行部署运行。 三、实验步骤 (一) JDK安装与配置 (二) Tomcat安装与配置 (三) IDE(Eclipse、MyEclipse、或IntelliJ IDEA)的安装与配置 (四)在IDE中建立一个jsp (五)部署JSP工程文件 (六)启动Tomcat服务器 (七)浏览JSP 四、实验数据 (一)JDK安装与配置 首先去oracle官方网站下载jdk的压缩包,根据自己的系统类型选择合适的版本即可.我的系统是Linux,于是选择Linux x64版本的下载即可.

下载后,将压缩包解压,下面是我解压的路径,以及压缩包中的内容 然后就是进行环境变量的配置,将jdk关键组件添加到环境变量.我使用的是zsh,在/home/.zshrc配置文件中添加下面三行即可: 验证是否安装成功: (二)Tomcat安装与配置 首先去apache的官网下载适合自己系统的tomcat版本,进行解压即可. 在bin目录下有一些可执行脚本,运行startup.sh,就可以成功开启tomcat服务器.

南昌大学PLC实验报告

实验一三相异步电动机接触器点动控制线路 (2) 实验二三相异步电动机的可逆运转控制 (4) 实验三通电延时型控制线路 (6) 实验四可编程控制器的基本指令编程练习 (8) 实验五喷泉的模拟控制 (10) 实验六交通灯的模拟控制 (13) 实验七液体混合的模拟控制 (16)

实验一 三相异步电动机接触器点动控制线路 一、概述 三相笼式异步电机由于结构简单、性价比高、维修方便等优点获得了广泛的应用。在工农业生产中,经常采用继电器接触控制系统对中小功率笼式异步电机进行点动控制,其控制线路大部分由继电器、接触器、按钮等有触头电器组成。 图2是三相鼠笼异步电动机接触器点动控制线路(电机为Y 接法) 起动时,合上漏电保护断路器及空气开关QF ,引入三相电源。按下起动按钮SB2时,交流接触器KM1的线圈通电,主触头KM1闭合,电动机接通电源起动。当手松开按钮时,接触器KM1断电释放,主触头KM1断开,电动机电源被切断而停止运转。 FR1 FU1KM1 QF L1 L2 L3 L KM1 M 3~ FR1 N FU2 FU2 L SB1 SB2 二、实验目的 1、 了解时间继电器的结构,掌握其工作原理及使用方法。 2、 掌握Y-Δ起动的工作原理。 3、 熟悉实验线路的故障分析及排除故障的方法。 三、实验设备 序号 设备名称 使用仪器名称 数量 1 DL-CX-001 三相交流电源 1 2 WD01G 空开、熔断器模块 1 3 WD04G 热继电器模块 1 4 WD09G 按钮模块 1 5 WD02G 接触器模块 1 6 M04 三相鼠笼式异步电动机 1 四、实验内容及步骤 1、检查各实验设备外观及质量是否良好。 2、按图2三相鼠笼式异步电动机接触器点动控制线路进行正确的接线。先接主回路,再接控制回路。自己检查无误并经指导老师检认可后方可合闸通电实验。 (1)、热继电器值调到1.0A 。 (2)、合上漏电保护断路器及空气开关QF ,调节三相电源输出220V 。 (3)、按下起动按钮SB2时,观察电机工作情况,体会点动操作。(注意,操作次数不宜频

南昌大学实验报告

南昌大学实验报告 学生姓名:学号:专业班级:_____________ 实验类型:■验证□综合□设计□创新实验日期: 2012-12 实验成绩:______ 实验三三容水箱的专家控制实验 一、实验目的 ①掌握三容水箱的基本构成,能够熟练地运用专家PID控制原理,来实现 对三容水箱的液位控制。 ②进一步掌握专家控制原理,清楚了解PID控制的过程和相应的matlab程 序实现方法。 ③了解matlab中关于的相关绘图函数的使用方法,懂得有关向量的定义及 循环操作,熟练掌握MATLAB的编程语句。 二、实验设备及条件 微型计算机,且此计算机必须装有matlab软件。 三、实验原理 专家系统是一类包含知识和推理的智能计算机程序,其内部包含某领域专 家水平的知识和经验,具有解决专门问题的能力。 直接型专家控制器用于取代常规控制器,直接控制生产过程或被控对象。 具有模拟(或延伸、拓展)操作工人智能的功能。该控制器的任务和功能相对 比较简单,但需要在线、实时控制。因此,其知识表达和知识库也比较简单, 通常由几十条产生式规则构成,以便于增删和修改。直接型专家控制器的结构 如a图中的虚线所示。 专家PID控制的实质是:基于受控对象和控制规律的各种知识,无需知道 被控对象的精确模型,利用专家经验来设计PID参数。专家PID控制是一种直 接型专家控制器。 本实验的专家控制器输入为h3的设定值,而输出为阀门开度kk,根据实 验的要求设计专家PID控制器的基本原理框图如下图所示Array 图(a)

三容水箱结构框图如下 四、实验要求 通过专家PID 控制,随着下水箱流量q4的正弦变化,要求能够通过调节阀门开度kk 来使第三个水箱中的下水箱液位h3稳定在设定值,并且其他两水箱水不会流尽和溢出。 五、 实验设计过程及结果 1、 三容水箱数学模型 可应用实验一建立的三容水箱数学模型 3 33433| 0.45)+i *pi *(2.58sin |*343222 321112kk *1q 21h h h s q q h y q s q q h h y q s q q h h y q a ?+=-=?=-=?=-=?==

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