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

南昌大学Java实验报告(2)

南昌大学Java实验报告(2)
南昌大学Java实验报告(2)

南昌大学实验报告

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

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

一、实验项目名称

字符串和数组

二、实验的评分标准

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

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

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

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

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

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

三、实验目的和要求

1.掌握java的基础知识。

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

3.掌握和运用java的字符串。

四、实验内容

1.使用BigInteger计算超大整数的问题。

2.结合字符串和数组计算超大整数的问题

这里,我模仿Math写了专门计算数组形式存放整数的一个工具类(见后面源代码),只有静态函数,想来挑战Biginteger类。在循环体计算前后,分别用时间函数获取系统当前时间,作差来近似等价于核心运算时间。Biginteger类耗时1ms,自己写的方法耗时13ms,相差13倍,惨败。

3.字符串的“==”和equals()方法。

详细结果解释在源代码注释中给出。

4.统计英文单词

5.用StringBuffer模拟扑克牌洗牌

6.数独游戏

Clear:清除用

户输入的所

有数据

Restart:开始

新的数独游

Check:检查

用户输入数

据的正确性

提示框

用户输入的数字显示蓝色,已知的数字显示黑色

为增加可判断性,做出了灰色阴影效果

7.财务应用程序,比较不同利率下的贷款。

8.财务应用程序,信用卡号的合法性

实验源代码如下:

1.使用Biginteger计算大数

package one;

importjava.math.BigInteger;

public class BigintegerCal {

public static void main(String args[]){ BigInteger res = new BigInteger("1"); BigInteger b = new BigInteger("1");

long start = System.currentTimeMillis();

for(inti = 1;i<=100;i++){

b = b.multiply(new BigInteger("2"));

res = res.multiply(b.add(BigInteger.ONE));

}

long end = System.currentTimeMillis(); System.out.println(res.toString());

System.out.println("After " + (end-start) + "ms");

}

}

2.字符串或数组计算大数

========part1=======

package two;

/*

* this class is designed to offer tools to calculate * huge integer numbers via plain integer array */

public class ArrayCal {

privateArrayCal(){};

/*array a multiply array b*/

public static int[] mul(int[] a,int[] b){

int[] res = new int[a.length + b.length];

for(inti = 0;i

res[i] = 0;

inttmp = 0;

for(inti = b.length-1;i>=0;--i){

for(int j = a.length-1;j>=0;--j){

tmp += (res[j+i+1] + a[j]*b[i]);

res[j+i+1] = tmp %10;

tmp /= 10;

}

res[i] = tmp;

tmp = 0;

}

returnArrayCal.clean(res);

}

/*array a add a single integer*/

public static int[] add(int[] a,intnum){

int[] res = new int[a.length+1];

for(inti = a.length-1;i>=0;i--){

num = a[i] +num;

res[i+1] = num % 10;

num /= 10;

}

res[0] = num;

returnArrayCal.clean(res);

}

/* array a multiply a single integer*/

public static int[] mul(int[] a,intnum){

int[] res = new int[a.length+1];

int c = 0;//pre

for(inti = a.length-1;i>=0;i--){

c = a[i] * num + c;

res[i+1] = c %10;

c /= 10;

}

res[0] = c;

returnArrayCal.clean(res);

}

/*clean the redundant 0 in the front of the array*/

public static int[] clean(int[] a){

if(a[0]!=0)

return a;

else{

int count = 0;

for(inti = 0;i

count++;

int[] res = new int[a.length - count];

System.arraycopy(a,count,res,0,a.length-count);

return res;

}

}

}

======part2=======

package two;

public class Calculate {

public static void main(String[] args){

int[] part2 = {1};

int[] part1;

int[] res = {1};

long start = System.currentTimeMillis();

for(inti = 1;i<=100;++i){

part2 = ArrayCal.mul(part2,2);

part1 = ArrayCal.add(part2,1);

res = ArrayCal.mul(res,part1);

}

long end = System.currentTimeMillis();

for(int c : res)

System.out.print(c);

System.out.println("\nAfter " + (end-start) + "ms");

}

}

3.字符串的相等和equals方法

package three;

public class TestString {

public static void main(String[] args){

String one = "hello";

String two = "hello";

String three = new String ("hello");

//whether one and two refers to a same object,obviously true System.out.println("1."+(one == two));

//first,calculate "1."+one,namely:"1.hello",a new string,different address System.out.println("2."+one == three);

//in String class,equals() has been override,two and tree has the same content ,hence,true

System.out.println("3."+one.equals(two));

//0 for equal,>0 for more ,<0 for less

System.out.println("4."+ https://www.wendangku.net/doc/c517470542.html,pareTo(three));

//same as 2

System.out.println("5."+one.intern() == three.intern());

}

}

4.统计英文单词

package four;

importjava.util.ArrayList;

importjava.util.Scanner;

public class CountWord {

public static void main(String[] args){

Scanner input = new Scanner(System.in);

ArrayList list = new ArrayList();

System.out.println("Please input an English sentence,seperated by blank:");

String data = input.nextLine();

int[] count = new int[data.length()];

//split the string inputted by the user with ' '

// making it String[]

String[] dataNew = data.split(" ");

for(String e:dataNew){

if(!list.contains(e)){

list.add(e);

count[list.size()-1]++;

}

else

count[list.indexOf(e)]++;

}

int max = count[0];

int index = 0;

for(inti = 1;i

if(count[i]>max){

max = count[i];

index = i;

}

System.out.println("The word with the most appearance time:" + dataNew[index]); System.out.println("The times of its appearance:" + max);

}

}

5.StringBuffer模拟扑克牌洗牌

======part1=====

package five;

/*

* the class is designed to create the basic Poke model

* in which user can shuffle it ,display the cards

*/

class Poke {

private char[] type = {'?','?','?','?'};

private String[] value = {"3 ","4 ","5 ","6 ","7 ","8 ","9 ","10","J ","Q ","K ","A ","2 "};

privateStringBuffer cards = new StringBuffer("");

public Poke() {

for(char x : type)

for(String y : value)

this.cards.append(x+y);

}

void shuffle(int times) {

for(inti=0;i

//the start index of each side

intlen = cards.length();

intleft,right;

left = right = len/2;

StringBuffer temp = new StringBuffer("");

intnumOfL, numOfR;

while((left-0)/3 >= 3 && (len-1 -right)/3 >= 3) {

//the amount of cards to be shuffled at random on each side(1~3)

numOfL = (int)(Math.random()*3+1);

numOfR = (int)(Math.random()*3+1);

temp.append(cards.substring(left-numOfL*3, left));

temp.append(cards.substring(right, right+numOfR*3));

left -= numOfL*3;

right += numOfR*3;

}

//less than 3 cards in each side,put them all in the new string

if(left!=0)

temp.append(cards.substring(0, left));

if(right!=len-1)

temp.append(cards.substring(right, len));

cards = temp;//renew the original cards

}//shuffle finished

}

voidshowCards() {

for(inti = 0;i<52;i++) {

if((i+13)%13==0)

System.out.println();

System.out.print(cards.substring(3*i, 3*i+3)+" ");

}

System.out.println();

}

}

=====part2======

package five;

public class Shuffle {

public static void main(String[] args){

Poke poke = new Poke();

poke.shuffle(4); //shuffle for 4 times

poke.showCards();

}

}

6.数独游戏

=====part1=====

package six;

import java.util.Arrays;

/*

this class is designed to generate one solution of Sudo,

to mask several numbers at random in all 81 numbers to raise a Sudo problem, to define the rules to check whether the numbers inputted by user are correct */

public class Sudo{

private int[][] solution;

//initialize the sudoku according to

//-the regularity of the sum of i and j

public Sudo(){

solution = new int[9][];

for(inti = 0;i<9;i++){

solution[i] = new int[9];

for(int j = 1;j<=9;++j)

this.solution[i][j-1] = (i+j>9)?(i+j-9):i+j;

}

martrix();

colSwap();

mask();

}

//return a concrete and random solution

public intgetDigit(inti,int j){

return solution[i][j];

}

//construct a situation object to the sudoku rules

//by extracting the line[147,258,369] from the solution

private void martrix(){

int[][] temp = new int[9][9];

for(inti = 0,j = 0;i<3;i++){

temp[j++] = Arrays.copyOf(solution[i],solution[i].length);

temp[j++] = Arrays.copyOf(solution[i+3],solution[i+3].length);

temp[j++] = Arrays.copyOf(solution[i+6],solution[i+6].length);

}

solution = temp;

}

//based on the[123,456,789] column group

//swap each column value among each group

private void colSwap(){

intcolForSwap= 0;

int[] temp = new int[9];

for(inti = 0;i<9;i++){

switch(i){ //choose the column to swap

case 0:

case 1:

case 2: colForSwap = (int)(Math.random()*3); break;//group1

case 3:

case 4:

case 5: colForSwap = (int)(Math.random()*3 + 3); break;//group2

case 6:

case 7:

case 8: colForSwap = (int)(Math.random()*3 + 6);//group3

}

if(colForSwap!=i)

for(int j = 0;j<9;j++){ //j for line

temp[j] = solution[j][colForSwap]; //the same column,diffent line

solution[j][colForSwap] = solution[j][i];

solution[j][i] = temp[j];

}//finish one-column swap

}//finish all-columns swap

}

private void mask(){

//choose the value masked at random

for(inti = 0;i<9;++i){

for(int j = 0;j<9;j++){

int difficulty = (int)(Math.random()*2); //0 or 1

if(difficulty==0)

solution[i][j] = 0;

}

}

}

private booleanlineVlid(inti,intj,int value){

for(int m = 0;m<9 && m != j;m++)

if(solution[i][m] == value)

return false;

return true;

}

private booleancolValid(inti,intj,int value){

for(int n = 0;n<9 && n!=i;n++)

if(solution[n][j] == value)

return false;

return true;

}

private booleanrecValid(inti,intj,int value){

for(int m = 3*(i/3);m<=3*(i/3)+2;++m)

for(int n = 3*(j/3);n<3*(j/3)+2;++n)

if(i!=m && j!=n && solution[m][n]==value)

return false;

return true;

}

public booleanisValid(inti,intj,int value){

if(value>0 && value<10)

return (lineVlid(i,j,value)&&colValid(i,j,value)&&recValid(i,j,value));

else

return false;

}

}

=====part2=====

package six;

import javafx.geometry.Insets;

import javafx.geometry.Pos;

import javafx.scene.control.Button;

import javafx.scene.control.TextField;

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

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

import javafx.scene.text.Font;

import javafx.scene.text.FontWeight;

/*

this class is designed to add UI elements of the plain Sudo game define the simple rules of the users' operation on ui

and the layout of all these elements

*/

public class SudoUI {

private Sudo rule;

private Font fontButton;

private Font fontDigit;

private GridPane board;

private GridPaneinfoCenter;

private BorderPane frame;

private TextField result;

private Button[] control;

private TextField[] grid;

public SudoUI(){

this.rule = new Sudo();

https://www.wendangku.net/doc/c517470542.html,Center = new GridPane();

this.board = new GridPane();

this.frame = new BorderPane();

this.grid = new TextField[81];

this.result = new TextField();

this.control = new Button[4];

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

this.fontDigit = Font.font(null, FontWeight.BOLD,30);

}

public void init(){

result.setPrefSize(150,40);

result.setEditable(false);

result.setAlignment(Pos.CENTER);

control[0] = new Button("Clear");

control[1] = new Button("Restart");

control[2] = new Button("Quit");

control[3] = new Button("Check");

for(inti = 0;i<4;++i){

control[i].setPrefSize(150,40);

control[i].setFont(fontButton);

}

control[2].setStyle("-fx-background-color:rgba(230,0,0);");

control[0].setStyle("-fx-background-color:orangered;");

control[1].setStyle("-fx-background-color:rgba(0,230,0);");

control[3].setStyle("-fx-background-color:rgba(72,118,255);");

//set the property of all the textfields

for(inti = 0;i<81;++i){

grid[i] = new TextField();

grid[i].setPrefSize(60,60);

grid[i].setFont(fontDigit);

grid[i].setAlignment(Pos.CENTER);

}

}

public void load(){

for(inti = 0;i<81;++i)

board.add(grid[i],i/9,i%9);

for(inti = 0;i<4;++i){

infoCenter.add(control[i],0,i);

infoCenter.setVgap(30);

}

infoCenter.add(result,0,7);

board.setGridLinesVisible(true);

frame.setRight(infoCenter);

frame.setCenter(board);

BorderPane.setMargin(infoCenter,new Insets(40,20,0,0));

}

public BorderPanegetFrame(){

return frame;

}

public Button getControl(inti){

return control[i];

}

public void setGame(){

for(inti = 0;i<9;++i)

for(int j = 0;j<9;++j){

//set the different color in textfilds ,hence,the borders

//of 9 squares are clearer

booleanisGray = i/3==0&&j/3==0 || i/3==0&&j/3==2 || i/3==1&&j/3==1 ||

i/3==2&&j/3==0 || i/3==2&&j/3==2;

int content = rule.getDigit(i,j);

if(content!=0 &&isGray){

grid[i*9+j].setEditable(false);

grid[i*9+j].setStyle("-fx-background-color: lightgray;");

grid[i*9+j].setText(String.valueOf(content));

}

else if(content == 0 &&isGray){

//for user to fill in

grid[i*9+j].setEditable(true);

grid[i*9+j].setText("");

grid[i*9+j].setStyle("-fx-background-color: lightgray;-fx-text-fill:blue;");

}

else if(content == 0 && !isGray){

grid[i*9+j].setEditable(true);

grid[i*9+j].setText("");

grid[i*9+j].setStyle("-fx-text-fill:blue;");

}

else{

grid[i*9+j].setEditable(false);

grid[i*9+j].setText(String.valueOf(content));

}

}

}

public booleancheckValid(){

for(inti = 0;i<9;++i)

for(int j = 0;j<9;++j){

//find the grid in which user input answer

if(grid[i*9+j].isEditable()){

String data = grid[i*9+j].getText();

int value = (data.equals("")) ? 0: Integer.parseInt(data);//if no input data

if(!rule.isValid(i,j,value))

return false;

}

}

return true;

}

//restart the game using new game scheme

public void reStart(){

this.rule = new Sudo();//new rule

cleanStrains();

setGame();

}

//clear all the answers that user input

public void clean(){

for(inti = 0;i<9;++i)

for(int j = 0;j<9;++j){

if(grid[i*9+j].isEditable())

grid[i*9+j].clear();

}

}

//clear all the data in grid[]

public void cleanStrains(){

for(inti = 0;i<81;i++){

grid[i].clear();

grid[i].setStyle("");//need clear the style of the textfield too }

}

public void setResult(String resultInfo){

result.setText(resultInfo);

result.setFont(fontButton);

}

}

=====part3=====

7.package six;

import javafx.application.Application;

import javafx.event.ActionEvent;

import javafx.event.EventHandler;

import javafx.scene.Scene;

import javafx.stage.Stage;

/*

this class is designed to organize all the elements when playing

add some events on the game

*/

public class SudoGame extends Application{

private SudoUIui = new SudoUI();

public void start(Stage stage){

ui.init();

ui.load();

ui.setGame();

addClearEvent();

addRestartEvent();

addQuitEvent();

addCheckEvent();

Scene scene = new Scene(ui.getFrame(),750,600);

stage.setScene(scene);

stage.show();

}

public void addClearEvent(){

ui.getControl(0).setOnAction((event ->ui.clean()));

}

public void addRestartEvent(){

ui.getControl(1).setOnAction((event ->ui.reStart()));

}

public void addQuitEvent(){

ui.getControl(2).setOnAction(event ->System.exit(0));

}

public void addCheckEvent(){

ui.getControl(3).setOnAction(event ->

{

if(ui.checkValid())

ui.setResult("Correct!");

else

ui.setResult("Incorrect!");

});

}

8.财务应用程序,比较不同利率下的贷款。

package seven;

import java.util.Scanner;

public class LoanCalculator {

public static void main (String[] args){

Scanner input = new Scanner(System.in);

System.out.print("Loan Amount:");

double totalMoney = input.nextDouble();

System.out.print("Number of years:");

int years = input.nextInt();

double annualRate = 0.05;

double monthlyRate = annualRate/12;

double count =(int)((8-5)/0.125);

double monthlyPay;

double totalPay;

System.out.printf("%-20s%-20s%-20s\n","InterestRate","MonthlyPayment","Total payment");

for(inti = 0;i<=count;++i){

monthlyPay = totalMoney * monthlyRate/(1-1/Math.pow(1+monthlyRate,years*12));

totalPay = monthlyPay * years * 12;

System.out.printf("%.3f%c %-20.2f%-10.2f\n",annualRate*100,'%',monthlyPay, totalPay);

annualRate += 0.00125;

monthlyRate = annualRate/12;

}

}

}

9.财务应用程序,信用卡号的合法性

package eight;

importjava.util.Scanner;

public class CheckCreditCard {

/*return true if the card number is valid*/

public static booleanisVaild(long number) {

booleansizeValid = (getSize(number)>=13 &&getSize(number)<=16);

booleanprefixValid = prefixMatched(number, 4) || prefixMatched(number, 5) || prefixMatched(number, 37) || prefixMatched(number, 6);

booleandivValid = (sumOfDoubleEvenPlace(number) + sumOfOddPlace(number))%10==0; return (sizeValid&&prefixValid&&divValid);

}

/*get the result of the step 2*/

public static intsumOfDoubleEvenPlace(long number) {

longnum = number;

long sum = 0;

while (number != 0) {

num = number % 100 / 10;

number = number / 100;

num = getDigit( (int)num * 2);

sum += num;

}

return (int) sum;

}

/*Return this number is it is a single digit else return the sum of the two digit*/

public static intgetDigit(int number) {

return (number >= 10) ? number%10 + number/10 : number;

}

/*return sum of digits in number*/

public static intsumOfOddPlace(long number) {

longnum = number % 10;

number /= 10;

while (number != 0) {

num += number % 100 / 10;

number /= 100;

}

return (int) num;

}

//return true if the digit is the prefix of the number

public static booleanprefixMatched(long number, int d) {

if (getPrefix(number, getSize(number)-2)==d || getPrefix(number, getSize(number)-2)/10==d) return true;

return false;

}

//return the number of digits in d

public static intgetSize(long d) {

inti = 0;

while (d != 0) {

d /= 10;

i++;

}

returni;

}

/*return the first k number of digits from number

* if the number of digits in number is less than k ,return the number*/

public static long getPrefix(long number, int k) {

return number / (long) Math.pow(10, k);

}

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

System.out.println("Enter a credit card as a lon integer:");

long number = input.nextLong();

if (isVaild(number))

System.out.println(number + " is valid");

else

System.out.println(number + " is invalid");

}

}

五、问题和讨论

1.分析和说明String,StingBuffer,StringBuild表示字符串的特点以及比较他们的异同。

String是最普通的字符串类型,其对象创建后不可修改。

StringBuffer和StringBuilder处理字符串更加多样,允许在原处进行改变,有append()等更加灵活的方法。后者具有线程安全,在多线程允许行下改变字符串具有安全性,不过效率比Builder要差一点。

2.比较和说明基本数据类型和复合型数据类型的数组在初始化的时候有什么特点。

如果没有用具体的数据来初始化,基本类型的数组初始化后,其中的默认值是0,false 一类的值,而复合类型的数组初始化后,其中的每个元素都是null。

六、体会和建议

本次实验,写了8个小程序,进一步熟悉了字符串和数组的使用,以及更高级的StringBuffer类型。编写带图形界面的程序也更加流畅,更加体会到了程序模块化设计的重要性,不仅是前期设计还是后期修改维护都是十分便利的。编程中犯了整数除法的小错误,若a,b为整数,a/b是等于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安装结果:

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.wendangku.net/doc/c517470542.html,/j2se,根据提示

南昌大学《编译原理》实验报告(用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( ),输出单词种别和属性。

java第二次实验报告

java实验报告 实验题目运用JavaFx实现时钟动画学生姓名 指导教师 学院 专业班级 完成时间2014年12

目录 一、实验目的 (3) 二、实验开发环境和工具 (3) 三、实验内容 (3) 四.实际简要描述: (3) 五.程序清单 (4) 六.结果分析 (10) 七.调试报告 (11) 八.实验心得 (11)

一、实验目的 1.了解和掌握JavaFx动画基本概念和相关用法 二、实验开发环境和工具 可以在Linux或者Windows操作系统上搭建开发环境,可使用集成开发环境Eclipse,使用Java语言,工具包使用JDK1.8。 三、实验内容 基于JavaFx画出如下所示可动态变化的时钟。要求按‘start’按钮可启动时钟,按‘stop’按钮可让时钟暂停。时钟初始时显示当前时间并开始动态变化。 四.实际简要描述: 1.新建一个动态时针 EventHandlereventHandler = e -> { clock.setCurrentTime(); // 设置时钟时间 }; 2.建立一个动画使时钟走起来 Timeline animation = new Timeline( newKeyFrame(https://www.wendangku.net/doc/c517470542.html,lis(1000), eventHandler)); animation.setCycleCount(Timeline.INDEFINITE); animation.play(); // 开始动画

3.建立按钮 HBoxhbox=new HBox();//新建HBOX布局 hbox.setSpacing(20); hbox.setLayoutX(310); hbox.setLayoutY(520); Start = new Button("Start");//建立start按钮 Start.setPrefSize(80, 40); Stop = new Button("Stop");//建立stop按钮 Stop.setPrefSize(80, 40); hbox.getChildren().addAll(Start,Stop);//将按钮加入HBOX getChildren().add(hbox); 五.程序清单 importjavafx.application.Application; importjava.util.Calendar; importjava.util.GregorianCalendar; https://www.wendangku.net/doc/c517470542.html,yout.Pane; importjavafx.scene.paint.Color; importjavafx.scene.shape.Circle; importjavafx.scene.shape.Line; importjavafx.scene.text.Text; importjavafx.application.Application; importjavafx.stage.Stage; importjavafx.animation.KeyFrame; importjavafx.animation.Timeline; importjavafx.event.ActionEvent;

实验二 Java类-实验报告

南京信息工程大学实验(实习)报告 实验(实习)名称Java类实验(实习)日期 10.17 得分指导教师刘文杰院计算机与软件学院专业软件工程年级 2017级班次 1 姓名张成学号20171344024 1.实验目的: 1)熟练MyEclipse工具的使用与调试; 2)掌握Java类、方法和变量的定义和使用; 3)熟悉方法重载和覆盖、掌握this和supper关键字使用; 4)掌握4类访问控制符的使用。 2.实验内容: (1)定义一个类Circle,实现其面积计算功能getArea(); (2)编写程序,读入一个正整数并按降序显示它的所有最小因子。(教材第3章习题9)(3)利用多态性编程,实现求三角形、正方形和圆形的面积。(教材第4章习题6) 3.实验步骤 1、 public class Circle { public double radius; public Circle(double r) { radius= r; } public double getArea() { return radius*radius*Math.PI; } public static void main(String[] args) { Circle area1 = new Circle(5); System.out.println("The area is " + area1.getArea()); } }

2、 import java.util.Scanner; public class Read { public static void main(String[] args) { Scanner input =new Scanner(System.in); System.out.print("输入一个正整数:"); int n=input.nextInt(); int []a=new int[n]; int []b=new int[n]; int p,q=0,m=0; for(p=2;p<=n;p++) { while(n%p==0) { n=n/p; if(n!=1) { a[q]=p; q++; } else { a[q]=p; } } } while(q!=-1) { b[m]=a[q]; m++; q--; } for(p=0;p

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;

java实验报告样本2

实验项目名称:继承和多态 (所属课程:Java语言程序设计) 院系:计算机科学与信息工程专业班级:12级物联网工程姓名:张懿 学号:201203040042 实验地点:A-06 411 指导老师:张阳 本实验项目成绩:教师签字:日期: 1.实验目的 (1)掌握类的继承机制。 (2)熟悉类中成员变量和方法的访问控制。 (3)熟悉方法或构造方法多态性。 2.实验内容 (1)模拟编写程序,理解类的继承、多态、继承和多态规则。 (2)独立编程,实现类的继承和多态。 3.实验作业 设计一个类Shape(图形)包含求面积和周长的area()方法和perimeter()方法以及设置颜色的方法SetColor(),并利用Java多态技术设计其子类Circle (圆形)类、Rectangle(矩形)类和Triangle(三角形)类,并分别实现相应的求面积和求周长的方法。每个类都要覆盖toString方法。 海伦公式:三角形的面积等于s(s-a)(s-b)(s-c)的开方,其中s=(a+b+c)/2 4.实验程序 import java.util.Scanner; public class TEST { public static void main(String[] args) { float radius; float chang,kuan; float a,b,c; Scanner input = new Scanner(System.in);

System.out.print("请输入圆的半径:"); radius = input.nextFloat(); Circle circle = new Circle(radius); System.out.println("圆的面积为:"+circle.area()+" 圆的周长为:"+circle.perimeter()+"\n"+circle.toString()); System.out.print("请输入矩形的长:"); chang = input.nextFloat(); System.out.print("请输入矩形的宽:"); kuan = input.nextFloat(); Rectangle rectangle = new Rectangle(chang,kuan); System.out.println("矩形的面积为:"+rectangle.area()+" 矩形圆的周长为:"+rectangle.perimeter()+"\n"+rectangle.toString()); System.out.print("请输入三角形的第一条边:"); a = input.nextFloat(); System.out.print("请输入三角形的第二条边:");

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实训总结

实习报告 学生姓名:陈育伟 学号: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服务器和其他数据库管理器的比较结

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期末复习题及答案

一、填空题 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/c517470542.html,ng.Thread类和https://www.wendangku.net/doc/c517470542.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 种状态 _新生_、__就绪_、_运行_、_阻塞_和_死亡_。

JAVA实验报告 (2)

附件2:实验报告封皮 2015—2016学年第1学期 Java应用程序设计课程 实验报告 学院:计算机科学技术 专业:软件工程 班级:14402 姓名:邵磊 学号:041440230 任课教师:王薇

实验日期:2015年11月02日实验题目Java简介及开发环境搭建 实验内容1.熟悉Java开发环境2.Java程序的编辑和运行 实验目的1.熟悉Java开发环境 (1)熟悉JDK工具包的下载及安装过程。 (2)掌握JAVA_HOME、CLASSPATH及Path的配置内容。(3)掌握Java程序运行原理及javac、java命令的使用。2.Java程序的编辑和运行 (1)熟悉用记事本编写Java程序的过程。 (2)了解Java程序的基本结构。 (3)掌握javac及java命令的使用。 (4)熟悉MyEclipse集成开发环境的使用。 实验步骤1.熟悉Java开发环境 (1)登录Oracle官方网站Java首页https://www.wendangku.net/doc/c517470542.html,/technetwork/java/index.html并下载最新版JDK工具包。 (2)将JDK工具包安装在D:\java\jdk1.6.0_18\文件夹中。 (3)完成JDK环境配置。创建JAVA_HOME变量并设置其值为”D:\java\jdkl1.6.0_18”,创建CLASSPATH 变量并设置其值为”D:\java\jdkl1.6.0_18\lib”文件夹中的dt.jar、tools.jar及当前目录,在Path变量原有值的基础上增加”D:\java\jdk1.6.0_18\bin”。 (4)验证JDK是否配置正确。 2.Java程序的编辑和运行 (1)创建D:\javaExecise文件夹。 (2)设置显示已知文件夹类型的扩展名。 (3)利用记事本完成Java程序的编写。 (4)利用命令编译运行Javs程序 (5)在MyEclipse中编译并运行Java程序 实验结果1.熟悉Java开发环境 单击【开始】|【运行】命令打开【运行】对话框。在该对话框的【打开】文本框中输入”cmd”命令,进入【命令提示符】窗口。在命令提示符后面输入”javac”命令。出现相关与javac命令相关的参数说明,也可以在命令提示符后面输入”java-version”,如果配置成功会显示当前JDK版本。2.Java程序的编辑和运行 在【我的电脑】的D盘创建了【javaExecise】文件夹,并且取消【隐藏已知文件夹类型的扩展名】复选框的勾选状态。在【开始】里的所有程序中选择【附件】|【记事本】命令,打开【无标题-记事本】窗口。在记事本中书写代码。写完保存代码并存在D:\javaExecise路径把文本名字改为Start.java。在【开始】|【运行】命令中,输入cmd命令进入【命令提示符】窗口完成java Start,解释执行。在MyEclipse中实现了第一个程序。 遇到1.熟悉Java开发环境 在网上搜索官方网站,因为官网都是英文版所以应用起来不是很方便,下载后把软件安装在D盘,在安装JDK时,步骤不再是一直按“下一步”,而是要在【我的电脑】里的【属性】中找到【系统属性】对话框,单击【高级】选项卡,打开【环境变量】。在里面新添加两个系统变量和更改一个

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

南昌大学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服务器.

JAVA第四版实验2实验报告

实验1 1.实验要求: 编写一个Java应用程序,该程序在命令行窗口输出希腊字母表。 2.实验内容: 3.实验分析: (1)将一个double型数据直接赋值给float型变量,程序编译时提示怎样的错误。 可能损失精度。 (2)在应用程序的main()方法中增加语句:float x=0.618,程序能编译通过吗? 不能通过编译,提示可能损失精度。 (3)在应用程序的main()方法中增加语句:byte b=128编译能通过吗?在应用程序的main()方法中增加语句:int z=(byte)128;程序输出变量z的值是多少? 增加byte b=128时编译不能通过,提示可能损失精度。 增加int z=(byte)128时结果如下所示。 实验2 1.实验要求: 编写一个Java应用程序,该程序在命令行窗口输出数组的引用以及元素的值。 2.实验内容:

3.实验分析: (1)在程序的【代码4】之后增加语句”a[3]=200;”,编译是否有错?运行是否有错? (2)在程序的【代码4】之前输出二维数组b的各个一维数组的长度和引用。

(3)在程序的【代码4】之后输出二维数组b的各个一维数组的长度和引用。

实验3 1.实验要求: 编写一个Java应用程序,输出数组a的全部元素,并将数组a的全部或部分元素复制到其他数组中,然后改变其他数组的元素的值,再输出数组a的全部元素。 2.实验内容: 3.实验分析:

(1)在程序的【代码4】之后增加语句:int []tom=Arrays.copyOf(c,6); System.out.println(Arrays.toString(tom)); (2)在程序的最后一个语句之后增加语句:int []jerry=Arrays.copyOf(d,1,8); System.out.println(Arrays.toString(jerry));

java第三次实验报告

南京信息工程大学实验(实习)报告实验课程 java程序设计实验名称第三次实验实验日期 2016-4-11 指导老师 专业年级姓名学号得分 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 实验目的:对java的类的熟悉与练习。 实验内容: 1、定义一个类,它包含了一个int 类型的变量x、若干个构造函数(根据用户自己的需要) 和一个输出方法show( )。编程:从键盘输入一个两位以上的数,将这个数传递给这个类的变量x,采用方法show( )逆序输出这个数。 程序如下: package reversenum; /** * * @author Administrator */ public class Reversenum { private int x; Reversenum (int x){ this.x = x; } public void show() { String str; str = Integer.toString(x); char array[] = new char[str.length()]; array = str.toCharArray(); for(int i = str.length()-1; i >= 0;i--) System.out.print(array[i]); } public static void main(String[] args) { Reversenum temp = new Reversenum(325425); temp.show(); } }运行结果如下: run: 524523成功构建(总时间: 0 秒) 2、定义一个复数类complex,它的内部具有两个实例变量:realPart 和imagPart,分别代 表复数的实部和虚部,编程实现要求的数学运算。 (1)实现两个复数相加。复数加运算的原则是:复数的实部和虚部分别相加。 (2)实现两个复数相减。复数减运算的原则是:复数的实部和虚部分别相减。 (3)输出运算结果,判断是否正确。 程序如下: package complex;

参考_JAVA实验报告

实验报告 实验名称工资管理程序第 2 次实验实验日期 2009- - 指导教师 班级 04软件工程学号姓名成绩 一、实验目的 1、掌握类的定义、域的定义及方法的定义。 2、掌握对象的定义与使用 3、掌握抽象类的用法 二、实验内容 1、建立一个抽象类Employee类 至少包括成员变量: 名、姓、年龄、性别 至少包括构造函数: 名和姓作为参数 至少包括方法: 取名称 至少包括抽象方法: 取收入earnings() 重写Object的toString()方法,返回Employee类的描述信息如名称信息 2、建立老板类Boss类继承Employee类 至少构造函数以名和姓及周工资作为参数 老板的工资是周工资 3、建立销售人员类 销售人员的收入= 销售量* 单价 要求:每个销售人员对象都能知道当前共有多少个销售人员 ... ... 4、在main函数中,分别创建老板对象、销售人员对象 三、实验步骤 3.1 进入eclips,创建一个名为employ的工程,新建一个抽象类Employee类 类中的成员变量有private String firstname; private String lastname; private String sex; private String age; 构造函数为employee(){} //无参数的构造函数 employee(String fn,String ln) //以名和姓为参数的构造函数 { this.firstname=fn; https://www.wendangku.net/doc/c517470542.html,stname=ln; } employee(String fn,String ln,String s,String a)//参数完整的构造函数 { this(fn,ln);

java实验报告实验二

实验报告 班级: 学号: 姓名:

实验二标识符、关键字和数据类型 一、实验目的 1.认识标识符、关键字、运算符及数据类型。 2.掌握标识符的书写格式、常见的基本数据类型以及运算符的使用方式。 3.了解强制数据类型转换和弱类型转换。 二、实验原理 Java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数。 Java标识符给变量起上一个名字叫做变量名称,这个自定义的变量名称其实就是一个标识符,其实你自定义的类名称也是一个标识符,也就是说你自定义的名称都是标识符,它可以是类的名称、变量的名称、包的名称、方法的名称等。 1. 标识符可以由字母,数字,下划线(__),美元($)组成,但是不能包含@,%,空格等其他的特殊符号,不能以数字开头。例如 123name 就是不合法的。 2.标识符不能是Java关键字和保留字(Java预留的关键字,或者以后升级版本中有可能作为关键字),但可以包含关键字和保留字~例如:不可以使用void 作为标识符,但是Myvoid 可以。 3.标识符是严格却分大小写的,所以一定要分清alibaba和ALIbaba是两个不同的标识符哦。 4.标识符的命名最好能反应出其作用,做到见名知意。 Java运算符算术运算符、赋值运算符、比较运算符、逻辑运算符、条件运算符。

1.算术运算符:算术运算符主要用于进行基本的算术运算,如加法、减法、乘法、除法等。 2.赋值运算符:赋值运算符是指为变量或常量指定数值的符号。如可以使用“=” 将右边的表达式结果赋给左边的操作数。 3.比较运算符:比较运算符用于判断两个数据的大小,例如:大于、等于、不等于。比较的结果是一个布尔值( true 或 false )。 4.逻辑运算符:逻辑运算符主要用于进行逻辑运算。 5.条件运算符: 条件运算符( ? : )也称为“三元运算符”。 语法形式:布尔表达式?表达式1 :表达式2。 运算过程:如果布尔表达式的值为true ,则返回表达式1 的值,否则返回表达式2 的值。 Java类型转换:基本数据类型中,布尔类型boolean占有一个字节,由于其本身所代码的特殊含义,boolean类型与其他基本类型不能进行类型的转换(既不能进行自动类型的提升,也不能强制类型转换),否则,将编译出错。 1.基本数据类型中数值类型的自动类型提升。 数值类型在内存中直接存储其本身的值,对于不同的数值类型,内存中会分配相应的大小去存储。如:byte类型的变量占用8位,int类型变量占用32位等。相应的,不同的数值类型会有与其存储空间相匹配的取值范围。 2.基本数据类型中的数值类型强制转换

JSP技术的运用实验报告

南昌大学实验报告 学生姓名:XXX 学号:xxxxxxxxxx 专业班级:xxxxxxx 实验类型:■验证□综合□设计□创新实验日期:xxxx.xx.xx 实验成绩: 一、实验项目名称: JSP技术的运用 二、实验目的 掌握JSP的基本语法、JSP指令和JSP动作以及JSP的内置对象,每种对象的使用方法与使用技巧,会简单的web应用程序的开发设计。 三、主要仪器设备及耗材 1.Myeclipse开发环境 2.Tomcat服务器 3.联想电脑一台 四、实验内容 1、运用Date函数读取系统当前时间,根据不同的时间段,在浏览器输出不同的问 候语 2、加载文件,制作一个jsp文件,计算一个数的平方,然后再制作一个jsp文件。 在客户端显示出来 3、设计表单。制作读者选购图书的界面,当读者选中一本图书后,单击“确定” 按钮,用”jsp:forward page=”语句将页面跳转到介绍该图书信息页面 4、设计求任意两个整数和的web程序,要求用户通过提交页面输入两整书,并提 交给一个jsp程序,再改程序中计算两个整数和。如果结果为正,跳出“结果为正” 页面,如果结果为负,跳出“结果为负”界面 5、设计一个用户注册表单,提交页面信息后,会输出用户填写的信息 五、实验步骤 1.应用Date函数读取系统当前时间,根据不同的时间段输出不同的问候,主要代码 如下: <%@page language="java"import="java.util.*"pageEncoding="UTF-8"%> 读取系统当前时间 <% Date date=new Date();%>

当前时间是:<%= date.toLocaleString()%>

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