南昌大学web实验一.docx
- 文档编号:6679790
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:12
- 大小:120.10KB
南昌大学web实验一.docx
《南昌大学web实验一.docx》由会员分享,可在线阅读,更多相关《南昌大学web实验一.docx(12页珍藏版)》请在冰豆网上搜索。
南昌大学web实验一
实验一Java语言基础
学生姓名:
学号:
专业班级:
实验类型:
□验证□综合□设计□创新实验日期:
2014.03实验成绩:
一.实验目的
(1)学习和掌握JDK常见的工具;
(2)学会使用Eclipse开发工具;
(3)学习开发Applet和Application程序
二.实验内容
实验任务由五个练习构成:
1.安装和配置JDK环境变量。
2.实现安装Eclipse开发工具,并将开发工具汉化。
三.编程,选择绘制围棋棋盘
四.编程,输入年份和月份,输出指定年份和月份的月历
五.编程,模拟多付扑克牌洗牌的过程。
可以从键盘输入扑克牌的付数。
六.实验过程
题目三:
围棋棋盘的打印
Main主类:
packagechessboard.java.lidanshiyan1;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
publicclassChessBoard{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
JFrameframe=newJFrame("棋盘");
frame.setLayout(null);
JPanelpanel=newJPanel();
JButtonbutton=newJButton("棋盘");
Chessa=newChess();
a.setBounds(40,40,600,600);
frame.add(panel);
frame.add(a);
frame.setSize(900,900);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
}
调用的类:
packagechessboard.java.lidanshiyan1;
importjava.awt.Graphics;
importjavax.swing.JPanel;
publicclassChessextendsJPanel{
publicvoidpaint(Graphicsg)
{
String[]number1={"一","二","三","四","五","六","七","八","九",
"十","十一","十二","十三","十四","十五","十六","十七","十八","十九"};
String[]number={"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"};
for(inti=1;i<=19;i++)//打印数字
{
g.drawString(number[i-1],i*30,20);
g.drawString(number1[i-1],5,i*30);
}
for(inti=1;i<=19;i++)//画19根横线
{
intj=30;
g.drawLine(j,i*j,j*19,j*i);
}
for(inti=1;i<=19;i++)//画19根竖线
{
intj=30;
g.drawLine(j*i,j,j*i,j*19);
}
for(inti=0;i<3;i++)//棋盘中间的黑点
for(intj=0;j<3;j++)
g.fillOval(115+180*i,115+180*j,10,10);
}
}
结果截图:
题目四:
打印日历
Main主类:
packagemycalendar.java.lidan;
importjava.util.Scanner;
publicclassTestMyCalenda{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
intyear,month;
System.out.println("请输入年份");
Scannerin=newScanner(System.in);
year=in.nextInt();
System.out.println("请输入月份");
month=in.nextInt();
MyCalendarca=newMyCalendar(year,month);
ca.displayCalendar();
}
}
调用的类:
packagemycalendar.java.lidan;
importjava.util.Calendar;
publicclassMyCalendar{
privateintmonth;
privateintyear;
privateString[]wee={"一","二","三","四","五","六","日"};
privateint[]days={31,28,31,30,31,30,31,31,30,31,30,31};
publicMyCalendar(intyea,intmon)//MyCalendar类的带参数构造函数
{
this.year=yea;
this.month=mon;
}
publicMyCalendar()//MyCalendar类的带参数构造函数
{
this.month=0;
this.year=1900;
}
publicbooleanisLeapYear()//判断输入的年份是否为闰年
{
if((year%4==0&&year%100!
=0)|year%400==0)
{
returntrue;
}
elsereturnfalse;
}
publicintgetDays()//根据输入的月份确立这个月有多少天
{
if(isLeapYear()==true)returndays[month-1]+1;
elsereturndays[month-1];
}
publicintgetFirstOfWeek()//计算该月的1日对应星期几
{
Calendard=Calendar.getInstance();
d.set(year,month-1,1);//默认是当前日期
intweekday=d.get(Calendar.DAY_OF_WEEK)-1;//获取当前日期在星期中的第几天
returnweekday;
}
publicvoiddisplayTitle()//打印表头
{
System.out.println(""+year+"年"+month+"月"+"的日历");
System.out.println();
for(inti=0;i System.out.printf("%7s",wee[i]); System.out.println(); } publicvoiddisplayCalendar()//输入整个日历 { displayTitle(); Stringformat="%"+4*getFirstOfWeek()+"s";//格式 if(getFirstOfWeek()==0){//不能省略这个判断,假如getFirstOfWeek()==0时,格式不成立 System.out.printf("%28s",""); } elseSystem.out.printf(format,"");for(inti=1;i<=getDays();i++) { if(i==1)System.out.print(i); elseSystem.out.printf("%4s",i); if((getFirstOfWeek()+i-1)%7==0)System.out.println(); } } } 结果截图: 输入2014年3月份 输入2004年2月 输入2013年2月 题目三: 洗牌 Main主类: packagemycalendar.java.lidan; importjava.util.Scanner; publicclassCard{ /** *@paramargs */ publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub Porkcards=newPork(); intpair; System.out.println("请输入几副牌"); Scannerin=newScanner(System.in); pair=in.nextInt(); cards.setPair(pair); System.out.println("原始牌的顺序"); cards.setDigit(); cards.display(); System.out.println(); System.out.println("洗牌后的顺序"); cards.shuffle(); cards.display(); System.exit(0); } } 所调用的类: //定义牌的花色 packagemycalendar.java.lidan; importjava.lang.String; publicenumColorType{ DIAMONDS("方块"), SPADE("黑桃"), REDHEARD("红心"), CLUB("梅花"); privateStringmcolor; privateColorType(Stringmc){ this.mcolor=mc; } publicStringtoString() { returnString.valueOf(this.mcolor); } } //初始化牌和洗牌的pork类 packagemycalendar.java.lidan; publicclassPork{ intpair; privateString[]pork; Stringvalue[]={"A","2","3","4","5","6","7","8","9","10","J","Q","K"}; ColorType[]type=ColorType.values(); publicvoidsetPair(intmpair) { if(pair<=1)pair=1; this.pair=mpair; pork=newString[52*pair];//在方法里创建时,能根据所需来决定 } publicvoidsetDigit() { intj=0; for(inti=0;i<52*pair;i++){ this.pork[i]=type[0]+value[j%13]; this.pork[++i]=type[1]+value[j%13]; this.pork[++i]=type[2]+value[j%13]; this.pork[++i]=type[3]+value[j%13]; j++; } } publicvoidshuffle() { inttemp=0; Stringtcard; for(inti=0;i<52*pair;i++){ temp=(int)(Math.random()*10000)%(52*pair); tcard=pork[temp]; pork[temp]=pork[i]; pork[i]=tcard; } } publicvoiddisplay() { for(inti=0;i<52*pair;i++){ if(i%13==0)System.out.println(); System.out.printf("%7s",pork[i]); } } } 输入1副牌 输入3副牌 七.实验体会 遇到问题时多思考,寻找解决方案,在我做洗牌的时候,首先做的程序只能洗一副牌,不能满足实际需求,后来我开始尝试用StringBuffer类类型,但是老是遇到String类不能转化为StringBuffer,多次试了以后还是不行,于是再想其他办法,突然脑门开光了,创建一个方法来实现。 刚开始接触java时有点小不适应,不过通过这次实验,开始有点感觉了。 (这次实验本来可以提早提交的,但是由于电脑拿去维修了,只能推迟提交,下次一定按时完成)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 南昌大学 web 实验
![提示](https://static.bdocx.com/images/bang_tan.gif)