南昌大学web实验一Word下载.docx
《南昌大学web实验一Word下载.docx》由会员分享,可在线阅读,更多相关《南昌大学web实验一Word下载.docx(12页珍藏版)》请在冰豆网上搜索。
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);
}
}
调用的类:
importjava.awt.Graphics;
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);
}
i++)//画19根横线
intj=30;
g.drawLine(j,i*j,j*19,j*i);
i++)//画19根竖线
g.drawLine(j*i,j,j*i,j*19);
for(inti=0;
3;
i++)//棋盘中间的黑点
for(intj=0;
j<
j++)
g.fillOval(115+180*i,115+180*j,10,10);
结果截图:
题目四:
打印日历
Main主类:
packagemycalendar.java.lidan;
importjava.util.Scanner;
publicclassTestMyCalenda{
intyear,month;
System.out.println("
请输入年份"
Scannerin=newScanner(System.in);
year=in.nextInt();
请输入月份"
month=in.nextInt();
MyCalendarca=newMyCalendar(year,month);
ca.displayCalendar();
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;
wee.length;
i++)
System.out.printf("
%7s"
wee[i]);
publicvoiddisplayCalendar()//输入整个日历
displayTitle();
Stringformat="
%"
+4*getFirstOfWeek()+"
s"
;
//格式
if(getFirstOfWeek()==0){//不能省略这个判断,假如getFirstOfWeek()==0时,格式不成立
System.out.printf("
%28s"
elseSystem.out.printf(format,"
=getDays();
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月
洗牌
publicclassCard{
Porkcards=newPork();
intpair;
请输入几副牌"
pair=in.nextInt();
cards.setPair(pair);
原始牌的顺序"
cards.setDigit();
cards.display();
System.out.println();
洗牌后的顺序"
cards.shuffle();
System.exit(0);
所调用的类:
//定义牌的花色
importjava.lang.String;
publicenumColorType{
DIAMONDS("
方块"
),
SPADE("
黑桃"
REDHEARD("
红心"
CLUB("
梅花"
privateStringmcolor;
privateColorType(Stringmc){
this.mcolor=mc;
}
publicStringtoString()
{
returnString.valueOf(this.mcolor);
//初始化牌和洗牌的pork类
publicclassPork{
intpair;
privateString[]pork;
Stringvalue[]={"
A"
J"
Q"
K"
ColorType[]type=ColorType.values();
publicvoidsetPair(intmpair)
if(pair<
=1)pair=1;
this.pair=mpair;
pork=newString[52*pair];
//在方法里创建时,能根据所需来决定
publicvoidsetDigit()
intj=0;
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;
temp=(int)(Math.random()*10000)%(52*pair);
tcard=pork[temp];
pork[temp]=pork[i];
pork[i]=tcard;
publicvoiddisplay()
if(i%13==0)System.out.println();
%7s"
pork[i]);
输入1副牌
输入3副牌
七.实验体会
遇到问题时多思考,寻找解决方案,在我做洗牌的时候,首先做的程序只能洗一副牌,不能满足实际需求,后来我开始尝试用StringBuffer类类型,但是老是遇到String类不能转化为StringBuffer,多次试了以后还是不行,于是再想其他办法,突然脑门开光了,创建一个方法来实现。
刚开始接触java时有点小不适应,不过通过这次实验,开始有点感觉了。
(这次实验本来可以提早提交的,但是由于电脑拿去维修了,只能推迟提交,下次一定按时完成)