java实验报告 华电版.docx
- 文档编号:10242034
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:20
- 大小:104.03KB
java实验报告 华电版.docx
《java实验报告 华电版.docx》由会员分享,可在线阅读,更多相关《java实验报告 华电版.docx(20页珍藏版)》请在冰豆网上搜索。
java实验报告华电版
华北电力大学
实验报告
实验名称基于Java的软件系统实现
课程名称面向对象程序设计(Java)
专业班级:
软件1102学生姓名:
FSL
学号:
2011****0205成绩:
指导教师:
YY
实验日期:
2012-3-9,2012-3-24
2012-4-7,2012-4-11
实验一:
日期类的设计
实验目的及要求
定义一个类表示日期,并要求提供多种构造方法(包括同类型引用做参数形式);提供设置数据成员的方法;提供按一定格式显示日期的方法,如2009/5/2;提供比较两个日期是否相同的方法;提供检查日期是否为合法值的方法,要求在构造方法和设置日期方法中使用它,保证对象的数据成员在任何时候都是合法的;添加一个方法,返回值为当前日期的前一天;添加一个方法,返回值为当前日期n天后的日期。
所用仪器、设备
电脑(Eclipse)
三、实验内容
包含类date(public主类)
包含方法voiddisplay1()(用于计算前n天)voiddisplay2()(用于计算后n天)
四、实验结果
packagedate;
importjava.util.Scanner;
publicclassdate{
intmonth,day,year;
date(intmon,intda,intye){
month=mon;
day=da;
year=ye;
}
voiddisplay1(){
System.out.println("n天前为"+year+"/"+month+"/"+day);
}
publicstaticvoidmain(String[]args){
intyear,month,day,n;
Scannerscan=newScanner(System.in);
System.out.println("请输入年份:
");
year=scan.nextInt();
System.out.println("请输入月份:
");
month=scan.nextInt();
System.out.println("请输入日期:
");
day=scan.nextInt();
System.out.print("请输入n的值:
");
n=scan.nextInt();
for(inti=1;i<=n;i++)
{day=day-1;
if((month==1|month==3|month==5|month==7|month==8|month==10|month==12)&&day>30)
System.out.println("输入错误!
此月最多有31天!
");
elseif(month==4|month==6|month==9|month==11&&day>29)
System.out.println("输入错误!
此月最多有30天!
");
elseif(month==2)
{
if(((year%4==0&&year%100!
=0)|(year%400==0))&&day>28)
System.out.println("输入错误!
此月最多有29天!
");
if((year%4!
=0)&&day>27)
System.out.println("输入错误!
此月最多有28天!
");
}
if((month==2|month==4|month==9|month==11)&&day==0)
{month=month-1;day=31;}
elseif(month==5|month==6|month==7|month==8|month==10|month==12&&day==0)
{month=month-1;day=30;}
elseif((month==3)&&day==0)
{
if((year%4==0&&year%100!
=0)|(year%400==0))
{month=2;day=29;}
if(year%4!
=0)
{month=2;day=28;}
}
elseif((month==1)&day==0){year=year-1;month=12;day=31;}
}
if(month>12)System.out.println("输入错误!
一年12个月");
datea=newdate(month,day,year);//TODOAuto-generatedmethodstub
a.display1();
}
}
publicclassdate{
intmonth,day,year;
date(intmon,intda,intye){
month=mon;
day=da;
year=ye;
}
voiddisplay(){
System.out.println("n天后为"+year+"/"+month+"/"+day);
}
publicstaticvoidmain(String[]args){
intyear,month,day,n;
Scannerscan=newScanner(System.in);
System.out.println("请输入年份:
");
year=scan.nextInt();
System.out.println("请输入月份:
");
month=scan.nextInt();
System.out.println("请输入日期:
");
day=scan.nextInt();
System.out.println("请输入n值:
");
n=scan.nextInt();
if((month==1|month==3|month==5|month==7|month==8|month==10|month==12)&day>32)
System.out.println("输入错误!
此月最多有31天!
");
elseif(month==4|month==6|month==9|month==11&day>31)
System.out.println("输入错误!
此月最多有30天!
");
else{if(month==2)
{
if(((year%4==0&&year%100!
=0)|(year%400==0))&day>30)
{System.out.println("输入错误!
此月最多有29天!
");}
else{if((year%4!
=0)&day>29)
{System.out.println("输入错误!
此月最多有28天!
");}}
}}
for(inti=1;i<=n;i++)
{day=day+1;
if((month==1|month==3|month==5|month==7|month==8|month==10)&day+1>31)
{month=month+1;day=1;}
elseif(month==4|month==6|month==9|month==11&day+1>30)
{month=month+1;day=1;}
if(month==2)
{
if(((year%4==0&&year%100!
=0)|(year%400==0))&day+1>29)
{month=3;day=1;}
else{if((year%4!
=0)&day+1>28)
{month=3;day=1;}}
}
elseif((month==12)&day+1>31){year=year+1;month=1;day=1;}
}
if(month>12)System.out.println("输入错误!
一年12个月");
datea=newdate(month,day,year);//TODOAuto-generatedmethodstub
a.display2();
}
}
packagedate;
importjava.util.Scanner;
publicclassdate{
publicstaticvoidmain(String[]args){
intyear1month1,day1,year2,month2,day2;
Scannerscan=newScanner(System.in);
System.out.println("请输入第一个年份:
");
intyear1=scan.nextInt();
System.out.println("请输入第一个月份:
");
intmonth1=scan.nextInt();
System.out.println("请输入第一个日期:
");
intday11=scan.nextInt();
System.out.println("请输入第二个年份:
");
intyear21=scan.nextInt();
System.out.println("请输入第二个月份:
");
intmonth21=scan.nextInt();
System.out.println("请输入第二个日期:
");
intday21=scan.nextInt();
if(year1==year21&month1==month21&day11==day21)
{System.out.println("两个日期相同");}
elseSystem.out.println("两个日期不同");
}}
程序截图
五、讨论与结论
用了两个方法完成题目前n天以及后n天要求,刚开始在n天这个环节上出现问题,后来加了一个for循环解决问题。
最后又添加一个程序用来实现两个日期比较。
实验目的及要求
编写简易计算器,能够进行小数以及整数的加减乘除
所用仪器、设备
电脑(Eclipse)
实验内容
包含类Calculator(public主类),MyActionListener(监听);包含方法(actionPerformed();handalDigit();handalEqual();handalOper();handalNonOper();operationResult();resetAllValue();printAllValue())
actionPerformed():
用于运算中各种方法的调用;
handalDigit():
处理数字及小数点的处理;
handalEqual():
“=”的处理;
handalOper():
处理运算符;
handalNonOper():
处理非运算符;
operationResult():
用于加减乘除运算;
resetAllValue():
重置变量值
printAllValue():
打印变量值
实验结果
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
classCalculator1extendsJFrame{
String[]buttons=
newString[]{"7","8","9","/","4","5","6","*","1","2","3","-",
"0","+/-",".","+"};
JPanelpWest=newJPanel();
JPanelpMain=newJPanel();
JPanelpNorth=newJPanel();
JPanelpMain_North=newJPanel();
JPanelpMain_Center=newJPanel();
JPanelpMain_East=newJPanel();
JButtonbuttonMain[];
JButtonbuttonNorth[];
JButtonbuttonEast[];
JTextFieldfieldResult=newJTextField();
staticprivateStringvalue1="";
staticprivateStringvalue2="";
staticprivateStringoper="";
staticprivateStringresult="";
staticprivateStringlastChar="";
staticprivatebooleanvalue1Input=true;
staticprivatebooleanvalue2Input=false;
staticprivatebooleanstart=false;
publicCalculator1(Stringtitle){
super(title);
ContainercontentPane=this.getContentPane();
fieldResult.setHorizontalAlignment(JTextField.RIGHT);
pMain_Center.setLayout(newGridLayout(4,4,5,5));
buttonMain=newJButton[buttons.length];
for(inti=0;i buttonMain[i]=newJButton(buttons[i]); pMain_Center.add(buttonMain[i]); } buttonNorth=newJButton[3]; buttonNorth[0]=newJButton("Back"); buttonNorth[1]=newJButton("CE"); buttonNorth[2]=newJButton("C"); pMain_North.setLayout(newGridLayout(1,3,5,5)); pMain_North.add(buttonNorth[0]); pMain_North.add(buttonNorth[1]); pMain_North.add(buttonNorth[2]); buttonEast=newJButton[4]; buttonEast[0]=newJButton("sqrt"); buttonEast[1]=newJButton("%"); buttonEast[2]=newJButton("1/x"); buttonEast[3]=newJButton("="); pMain_East.setLayout(newGridLayout(4,1,5,5)); pMain_East.add(buttonEast[0]); pMain_East.add(buttonEast[1]); pMain_East.add(buttonEast[2]); pMain_East.add(buttonEast[3]); contentPane.add(fieldResult,BorderLayout.NORTH); pMain.setLayout(newBorderLayout(5,5)); pMain.add(pMain_Center,BorderLayout.WEST); pMain.add(pMain_East,BorderLayout.EAST); pMain.add(pMain_North,BorderLayout.NORTH); contentPane.add(pMain,BorderLayout.CENTER); pack(); setVisible(true); MyActionListenerlistener=newMyActionListener(); for(inti=0;i buttonMain[i].addActionListener(listener); } buttonNorth[0].addActionListener(listener); buttonEast[3].addActionListener(listener); buttonNorth[2].addActionListener(listener); buttonMain[13].setEnabled(false); buttonNorth[1].setEnabled(false); buttonEast[0].setEnabled(false); buttonEast[1].setEnabled(false); buttonEast[2].setEnabled(false); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } privateclassMyActionListenerimplementsActionListener{ publicvoidactionPerformed(ActionEvente){ Stringstr=e.getActionCommand(); if(Character.isDigit(str.charAt(0))||str.equals(".")){ handalDigit(str); } if(start==true){ if(str.equals("=")||str.charAt(0)=='.'){ handalEqual(str); return; } if(str.equals("Back")||str.equals("C")){ handalNonOper(str); } if(str.equals("+")||str.equals("-")||str.equals("*")||str.equals("/")){ handalOper(str); } } } privatevoidhandalDigit(Stringstr){ charcurrentChar=str.charAt(0); if((! lastChar.equals("="))){ if(value2Input==false){ value1+=String.valueOf(currentChar); if(value1.charAt(0)=='.'){ value1="0."; } intn=0; for(inti=0;i if(value1.charAt(i)=='.'){ n++; } if(n>1){ value1=value1.substring(0,value1.length()-1); } } fieldResult.setText(value1); } else{ value2+=String.valueOf(currentChar); if(value2.charAt(0)=='.'){ value2="0."; } intm=0; for(inti=0;i if(value2.charAt(i)=='.'){ m++; } if(m>1){ value1=value2.substring(0,value2.length()-1); } } fieldResult.setText(value2); } start=true; lastChar=str; } else{ resetAllValue(); value1+=str; fieldResult.setText(value1); } printAllValue(); } privatevoidhandalEqual(Stringstr){ if(Character.isDigit(lastChar.charAt(0))&&value2.length()>0) { handalOper(str); } } privatevoidhandalOper(Stringstr){ if(start==true){ if(value1.length()>0&&value2.length()>0){ result=operationResult(value1,value2,oper.charAt(0)); fieldResult.setText(result); if(! result.equals("除数不能为零")) { value1=result; value2=""; } } else{ value1Input=false; value2Input=true; } oper=str; lastChar=str; printAllValue(); } } privatevoidhandalNonOper(Stringstr){ if(str.equals("Back")){ if(Character.isDigit(lastChar.charAt(0))==true||lastChar.charAt(0)=='.'){ if(value2Input==true){ if(value2.length()>0){
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java实验报告 华电版 java 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)