南昌大学Java实验报告.docx

上传人:b****7 文档编号:16395101 上传时间:2023-07-13 格式:DOCX 页数:28 大小:595.54KB
下载 相关 举报
南昌大学Java实验报告.docx_第1页
第1页 / 共28页
南昌大学Java实验报告.docx_第2页
第2页 / 共28页
南昌大学Java实验报告.docx_第3页
第3页 / 共28页
南昌大学Java实验报告.docx_第4页
第4页 / 共28页
南昌大学Java实验报告.docx_第5页
第5页 / 共28页
南昌大学Java实验报告.docx_第6页
第6页 / 共28页
南昌大学Java实验报告.docx_第7页
第7页 / 共28页
南昌大学Java实验报告.docx_第8页
第8页 / 共28页
南昌大学Java实验报告.docx_第9页
第9页 / 共28页
南昌大学Java实验报告.docx_第10页
第10页 / 共28页
南昌大学Java实验报告.docx_第11页
第11页 / 共28页
南昌大学Java实验报告.docx_第12页
第12页 / 共28页
南昌大学Java实验报告.docx_第13页
第13页 / 共28页
南昌大学Java实验报告.docx_第14页
第14页 / 共28页
南昌大学Java实验报告.docx_第15页
第15页 / 共28页
南昌大学Java实验报告.docx_第16页
第16页 / 共28页
南昌大学Java实验报告.docx_第17页
第17页 / 共28页
南昌大学Java实验报告.docx_第18页
第18页 / 共28页
南昌大学Java实验报告.docx_第19页
第19页 / 共28页
南昌大学Java实验报告.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

南昌大学Java实验报告.docx

《南昌大学Java实验报告.docx》由会员分享,可在线阅读,更多相关《南昌大学Java实验报告.docx(28页珍藏版)》请在冰点文库上搜索。

南昌大学Java实验报告.docx

南昌大学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---------------

packageone;

importjava.applet.Applet;

importjava.awt.*;

/**

*Thisclassisusedtoshowhelloworldinformation

*intwokindsofways

*

*1.printtheinformationintheconsole

*2.generateanapplettodisplaytheinfo

*

*@authorYuchenTian

*/

publicclassHelloWorldextendsApplet{

/**

*mainfunctionforApplication

*@paramargs

*/

publicstaticvoidmain(String[]args){//forapplication

System.out.println("HelloWorld!

");

}

publicvoidinit(){}//forapplet

/**

*createangraphonapplettoshowinfo

*@paramg

*/

publicvoidpaint(Graphicsg){

g.drawString("HelloWorld!

",20,20);

}

}

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

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

packagetwo;

/*

thisMonthenumdefinesthe12monthsofallyear

includingtheinformationof:

index:

theorderincurrentclass

name:

thefullnameofthemonth

day:

daysinthismonth

*/

publicenumMonth{

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,"December",31);

privateintindex;

privateStringname;

privateintday;

Month(intindex,Stringname,intday){

this.index=index;

this.name=name;

this.day=day;

}

publicStringgetName(){

returnname;

}

publicintgetDay(){

returnday;

}

//whenamonthcallthismethod,itbecomesthemonthfollowingit

publicMonthnext(){

intindex=(this.index+1>12)?

1:

this.index+1;

returngetMonthByIndex(index);

}

//getamonthaccordingtotheit'sindexintheenum

publicMonthgetMonthByIndex(intindex){

for(Monthc:

Month.values()){

if(c.index==index)

returnc;

}

returnnull;

}

}

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

packagetwo;

importjava.util.Calendar;

importjava.util.GregorianCalendar;

publicclassMyCalendar{

privateintyear;

privateintstartDay;

privateMonthm;

publicMyCalendar(intyear){

this.year=year;

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

m=Month.JAN;//startmonthoftheyear

}

publicintgetFirstDay(intmonth,intday){

GregorianCalendartool=newGregorianCalendar(this.year,month,day);

returntool.get(Calendar.DAY_OF_WEEK);//0forSun,1forMon...

}

publicvoidprintMonth(Monthm){

//generatetheheadinformationofeachmonth

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

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

System.out.println("SuMoTuWeThFrSt");

intcount=0;

for(inti=0;i

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

count++;

}

for(inti=1;i<=getDays(m);++i){//printdays

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

count++;

if(count%7==0)

System.out.println();

}

System.out.println();

startDay=(getDays(m)+startDay)%7;//changethestartDayforthenextmonth

}

publicbooleanisLeapYear(){

returnyear%400==0||(year%4==0&&year%100!

=0);

}

//getdaysinspecificmonth

//daysinFebruaryisuniquewhenitisleapyear

//hence,aspecialapproachisimplementtoalteritright

publicintgetDays(Monthm){

intdays=m.getDay();

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

days+=1;

returndays;

}

//onceprintedthefirstmonth

//changethemtothenextmonth

publicvoidprintAllMonth(){

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

printMonth(m);

m=m.next();

}

}

}

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

packagetwo;

importjava.util.Scanner;

publicclassPrintCalendar{

publicstaticvoidmain(String[]args){

//Prompttheusertoinputayear

Scannerinput=newScanner(System.in);

System.out.print("Pleaseinputayear:

");

intyear=input.nextInt();

//createaMyCalendarinstance

MyCalendarcal=newMyCalendar(year);

cal.printAllMonth();

}

}

----------3,aggregatethescores--------

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

packagethree;

publicenumGradeRank{

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

privateStringinfo;

privateintindex;

GradeRank(Stringinfo,intindex){

this.info=info;

this.index=index;

}

publicintgetIndex(){

returnindex;

}

publicStringgetInfo(){

returninfo;

}

publicGradeRankchangeRank(Doublegrade){

GradeRankg;

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

g=GradeRank.A;

elseif(grade<90&&grade>=80)

g=GradeRank.B;

elseif(grade<80&&grade>=70)

g=GradeRank.C;

elseif(grade<70&&grade>=60)

g=GradeRank.D;

elseif(grade<60&&grade>=0)

g=GradeRank.E;

else

g=null;

returng;

}

}

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

packagethree;

importjava.util.Scanner;

publicclassEvaluateGrade{

privateint[]collection;

privateGradeRankg;//thestandardforAggregating

privateintnum;//howmanyscoresyouneedtocalculate

publicEvaluateGrade(intnum){

this.collection=newint[5];//ndifferentranks

g=GradeRank.A;

this.num=num;

}

//whenanewscoreisinput

//gisgonnatochangeaccordingtothevalueofthescore

publicvoidcheckRank(Doublegrade){

g=g.changeRank(grade);

if(g==null){

System.out.println("Invalidinput!

");

System.exit

(1);

}

collection[g.getIndex()]++;

}

publicvoidcountRank(){

Scannerinput=newScanner(System.in);

System.out.println("Inputthescores:

");

for(inti=0;i

Doublegrade=input.nextDouble();

checkRank(grade);

}

}

publicvoiddisplay(){

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

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

',getPercent(i),'%');

}

//acquiretheinformationusingindex

//todisplaytheoutcomebetter

publicStringindexToStr(inti){

for(GradeRankc:

GradeRank.values()){

if(c.getIndex()==i)

returnc.getInfo();

}

returnnull;

}

publicdoublegetPercent(inti){

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

}

}

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

packagethree;

importjava.util.Scanner;

publicclassAggregate{

publicstaticvoidmain(String[]args){

Scannernumber=newScanner(System.in);

System.out.print("Pleaseinputthenumberofscoresyouwanttodealwith:

");

intn=number.nextInt();

EvaluateGradechecker=newEvaluateGrade(n);

checker.countRank();

checker.display();

}

}

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

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

/*

thisclassisdesignedtostoredatainplayinggames

andmaketheruleoftheplayingaswell

*/

publicclassGame{

privateint[][]board;

privateint[]full;

privatebooleanisBlack;

publicGame(){

this.board=newint[7][];

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

this.board[i]=newint[6];

this.isBlack=true;//blacksideisfirst

full=newint[7];

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

full[i]=5;

}

publicbooleanisBlack(){

returnisBlack;

}

//changetotheothersidetoplay

publicvoidinTurn(){

this.isBlack=!

this.isBlack;

}

publicbooleanisFull(inti){

returnfull[i]==-1;

}

publicbooleanisAllFull(){

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

if(!

isFull(i))

returnfalse;

returntrue;

}

//themostimportantpart

//checkwhetheronesidehaswonthegame

publicbooleancheckWin(inti,intj){

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

returntrue;

else

returnfalse;

}

publicbooleanline(inti,intj){

intcx=0;

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

cx++;

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

cx++;

if(cx>=3)

returntrue;

else

returnfalse;

}

publicbooleancolumn(inti,intj){

intcx=0;

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

cx++;

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

cx++;

if(cx>=3)

returntrue;

else

returnfalse;

}

publicbooleanleftR(inti,intj){

intcx=0;

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

cx++;

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

cx++;

if(cx>=3)

returntrue;

else

returnfalse;

}

publicbooleanrightL(inti,intj){

intcx=0;

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

cx++;

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

cx++;

if(cx>=3)

returntrue;

else

returnfalse;

}

//changethedataofgamewhenonesidedropthechess

publicintdropChess(inti){

board[i][full[i]]=(isBlack())?

1:

2;

inTurn();

full[i]--;

returnfull[i]+1;

}

}

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

importjavafx.geometry.Insets;

importjavafx.scene.control.Button;

importjavafx.scene.control.TextField;

importjavafx.scene.layout.BorderPane;

importjavafx.scene.layout.GridPane;

importjavafx.scene.paint.Color;

importjavafx.scene.shape.*;

importjavafx.scene.text.*;

/*

thisclassisdesignedtoappendgraphofeachelementintothegame

determinedthelayoutoftheseelementsaswell

moreimportantly,thechangeoftheelementsasthegame

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2