多个java程序设计实验.docx
- 文档编号:28383714
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:36
- 大小:167.95KB
多个java程序设计实验.docx
《多个java程序设计实验.docx》由会员分享,可在线阅读,更多相关《多个java程序设计实验.docx(36页珍藏版)》请在冰豆网上搜索。
多个java程序设计实验
实验报告
课程名称Java程序设计
实验项目实验一Java基础编程
系别光电信息与通信工程学院
专业/班级
姓名
实验日期
成绩_______________________
指导教师
一、实验题目:
实验一Java基础编程
二、实验内容:
(1)创建一个JavaApplication程序,实现流式交互输入输出
要求:
从键盘输入自己的姓名,学号,专业
在屏幕上输出:
“姓名:
,学号:
,专业:
”
(2)创建一个JavaApplication程序,编写输出乘法口诀表的程序
1*1=1
1*2=22*2=4
1*3=32*3=63*3=9
1*4=42*4=83*4=124*4=16
。
。
。
三、程序清单及结果:
(需要标明实现程序对应的实验内容,并给出合理的程序注释及运行结果)
1)程序清单及注释
(1)
importjava.util.*;
publicclassinfor
{
publicstaticvoidmain(Stringargs[])throwsException
{
String[]i=newString[3];
Scannerstdin=newScanner(System.in);
System.out.println("Pleaseinputyourname,number,profession:
");
i[0]=stdin.nextLine();
i[1]=stdin.nextLine();
i[2]=stdin.nextLine();
System.out.println("NAME:
"+i[0]+",NUMBER:
"+i[1]+",PROFESSION:
"+i[2]);
}
}
(2)
classNineNine{
publicstaticvoidmain(String[]args)
{
intj;intk;
System.out.println();
for(j=1;j<10;j++)
{for(k=1;k<10;k++)
{if(k>j)break;
System.out.print(""+k+"X"+j+"="+j*k);
}
System.out.println();
}
}
}
2)程序运行结果
结果显示:
(2)结果显示:
四、程序调试报告及总结
实验报告
课程名称Java程序设计
实验项目实验二Java中的面向对象特性
系别光电信息与通信工程学院
专业/班级
姓名
实验日期
成绩_______________________
指导教师
一、实验题目:
实验二Java中的面向对象特性
二、实验内容:
(1)创建一个JavaApplication程序,实现Java的面向对象特性
要求:
1)创建父类Person,具有姓名、性别、年龄等属性,以及与属性相关的set。
。
方法。
并具有一个show方法,分行显示父类所有的属性值,显示形式为“父类的。
。
属性的值为。
。
”
2)创建子类Student继承自父类Person,新增了专业、班级、学号属性以及对应的set。
。
方法;子类中show方法显示新增属性的值,显示的形式为“子类的。
。
属性的值为。
。
”
3)创建实际的应用类(包含main方法),创建Student类的实例对象,调用父类方法设置姓名、性别、年龄,调用子类方法设置专业、班级、学号。
并显示所有属性的值。
(2)选作:
定义一个接口Area,其中包含一个计算面积的抽象方法calculateArea(),然后设计MyCircle和MyRectangle两个类都实现这个接口中的方法calculate(),分别计算圆和矩形的面积。
三、程序清单及结果:
(需要标明实现程序对应的实验内容,并给出合理的程序注释及运行结果)
3)程序清单及注释
classPerson{\\建立父类:
设置相关属性
privateStringname;
privateStringsex;
privateintage;
publicPerson(){}
publicPerson(Stringname,Stringsex,intage){
this.name=name;
this.sex=sex;
this.age=age;}
publicStringgetName(){
returnname;}
publicvoidsetName(Stringname){
this.name=name;}
publicStringgetSex(){
returnsex;}
publicvoidsetSex(Stringsex){
this.sex=sex;}
publicintgetAge(){
returnage;}
publicvoidsetAge(intage){
this.age=age;}
publicvoidshow()
{System.out.println("在父类中:
");
System.out.println("父类的name属性的值为:
"+name);
System.out.println("父类的sex属性的值为:
"+sex);
System.out.println("父类的age属性的值为:
"+age);
}
}
classStudentextendsPerson{\\建立子类:
设置相关属性
privateStringprofessional;
privateStringclassnumber;
privateStringnumber;
publicStudent(){}
publicStudent(Stringname,Stringsex,intage,Stringprofessional,Stringclassnumber,Stringnumber)
{super(name,sex,age);
this.professional=professional;
this.classnumber=classnumber;
this.number=number;
}
publicStringgetProfessional(){
returnprofessional;}
publicvoidsetProfessional(Stringprofessional){
this.professional=professional;
}
publicStringgetClassnumber(){
returnclassnumber;}
publicvoidsetClassnumber(Stringclassnumber){
this.classnumber=classnumber;
}
publicStringgetNumber(){
returnnumber;}
publicvoidsetNumber(Stringnumber){
this.number=number;}
publicvoidshow(){
super.show();
System.out.println("在子类中:
");
System.out.println("子类的professional属性的值为:
"+professional);
System.out.println("子类的classnumber属性的值为:
"+classnumber);
System.out.println("子类的number属性的值为:
"+number);
}
}
publicclassXY{
publicstaticvoidmain(String[]args){
Studentstudent=newStudent();
student.setName("XXX");
student.setSex("X");
student.setAge(X);
student.setProfessional("XXX");
student.setClassnumber("XX");
student.setNumber("XXX");
student.show();
}
}
4)程序运行结果
选作:
程序编码:
interfaceArea{
doublecalculateArea();}
classMyCircleimplementsArea{
publicdoubler;
MyCircle(doubler)
{this.r=r;}
publicdoublecalculateArea()
{System.out.println("圆的面积是:
"+3.14*r*r);
return0;}
}
classMyRectangleimplementsArea
{
publicdoublewidth,height;
MyRectangle(doublew,doubleh)
{this.width=w;this.height=h;}
publicdoublecalculateArea()
{System.out.println("矩形的面积是:
"+width*height);
return0;}
}
classA
{
publicdoublet(Areas)//接口类型参数
{
s.calculateArea();//接口回调
return0;
}
}
classJK
{
publicstaticvoidmain(String[]args)
{
Areas;
s=newMyCircle(5);
s.calculateArea();//接口回调
Aa=newA();
a.t(newMyRectangle(1,2));
}
}
结果显示:
四、程序调试报告及总结
实验报告
课程名称Java程序设计
实验项目实验三Java的图形用户界面
系别光电信息与通信工程学院
专业/班级
姓名
实验日期
成绩_______________________
指导教师
一、实验题目:
实验三Java的图形用户界面
二、实验内容:
创建一个窗口
(1)窗口有“退出”菜单,选择后可退出程序
(2)窗口内有“提示”按钮,单击后显示自己的班级、学号、姓名
(3)“退出”按钮,单击后可退出程序
(4)在窗口内实现一个计算器,可进行简单的加、减、乘、除操作
三、程序清单及结果:
(需要标明实现程序对应的实验内容,并给出合理的程序注释及运行结果)
5)程序清单及注释
importjava.awt.*;
importjava.awt.event.*;
importjava.awt.datatransfer.*;
importjavax.swing.*;
publicclassSimpleCalculatorextendsTextFieldimplementsActionListener
{
//私有成员变量的定义:
/*以下为计算机的各部分组件*/
FramemainFrame;//主框架
JTextFieldanswerText;//显示计算结果
JTextFieldmemoryState;//显示计算器内存的使用情况
MenuBarmenuGroup;//菜单栏
MenuExitMenu;//退出
MenuItemTips,Exit;//提示,退出
ButtonbuttonBackSpace,buttonCE,buttonC;//退格,清除,清空按钮
ButtonbuttonNum[];//数字按钮
ButtonbuttonAdd,buttonSub,buttonMul,buttonDiv;//+,-,*,/
ButtonbuttonDot,buttonEqual;//.=
/*以下为运算时所用到的变量*/
StringBuffertextBuffer;//记录数值的字符串
intnumDot;//小数点的个数
intoperator;//操作符:
1-加法2-减法3-乘法4-除法
doublefirstValue,secondValue,result;//第一、二个数及结果
booleanenterSecond;//是否已经输入了第二个数
intforFirOrSec;//此时输入的是第一个还是第二个数
booleanb_remFir,b_remSec,b_remFun;//指示是否此时还记的上次的数和运算符
intremFun;//记住上次的运算符
doubleremFir,remSec;//记住上次参加运算的第一二个数
booleanisNumGroup=false;//记录是否为数字分组
booleancanBeBack;//是否可以使用退格键
doublememory;//用于内存操作时保存的数据
/*以下为本计算器与系统其他资源数据交换的变量*/
Clipboardclipbd=getToolkit().getSystemClipboard();
//构造函数:
SimpleCalculator()
{
initMainFrame();
initTextField();
initButtons();
initMenu();
OverallArrangement();
reSet();
mainFrame.setVisible(true);
}
/*voidinitMainFrame()函数是对主框架进行初始化,设置其框架大小250*250,初始位置180*140,背景颜色Color.lightGray,是否显示true,能否改变窗口大小false,以及增加了addWindowListener委托事件,当关闭窗口时调用System.exit(0)系统指令,结束程序。
*/
voidinitMainFrame()
{
mainFrame=newFrame("计算器");
mainFrame.setSize(250,250);
mainFrame.setLocation(180,140);
mainFrame.setBackground(Color.lightGray);
mainFrame.setResizable(false);
mainFrame.addWindowListener(
newWindowAdapter()
{publicvoidwindowClosing(WindowEvente)
{System.exit(0);}
}
);
}
/*
initTextField()是对文本textBufferanswerTextmemoryState得初始化,textBuffer是用于对文本的缓冲处理,StringBuffer类优于String类是因为StringBuffer是对字符串直接操作,从而节省了内存。
由于在这个计算器程序中,对字符串的操作量很大,因此,StringBuffer在这方面体现出了其本身的优势。
answerText和memoryState用swing的组件JTextField是因为JTextField显示文本框时可以在文本框的右边显示,符合Windows自带计算器的特点。
answerText和memoryState的背景色为白色,都不能进行编辑。
answerText为右对齐,大小为18个字符,而memoryState为2个字符。
*/
voidinitTextField()
{
textBuffer=newStringBuffer("");
answerText=newJTextField(textBuffer.toString(),18);
answerText.setHorizontalAlignment(JTextField.RIGHT);
answerText.setEditable(false);
answerText.setBackground(Color.white);
memoryState=newJTextField
(2);
memoryState.setEditable(false);
memoryState.setBackground(Color.white);
}
/*
initButtons()函数是对各按钮进行初始化,为每一个按钮增加其标签并增加了addActionListener(this)功能,用于给各按钮增加属性,具体的功能代码,请见actionPerformed(ActionEvente);其中,数字按钮、四则运算按钮、小数点按钮都增加了键盘输入功能addKeyListener其参数为匿名类KeyListener的适配器newKeyAdapter(),当在键盘上按下相应的键时,为其增加相应的属性功能。
*/
voidinitButtons()
{
buttonBackSpace=newButton("BackSpace");
buttonBackSpace.addActionListener(this);
buttonCE=newButton("CE");
buttonCE.addActionListener(this);
buttonC=newButton("C");
buttonC.addActionListener(this);
buttonNum=newButton[10];
for(inti=0;i { buttonNum[i]=newButton(Integer.toString(i)); buttonNum[i].addActionListener(this); buttonNum[i].addKeyListener(newKeyAdapter(){ publicvoidkeyTyped(KeyEvente){ if(Character.isDigit(e.getKeyChar())) { textBuffer.append(e.getKeyChar()); answerText.setText(textBuffer.toString()); AddNum(); } } }); } buttonAdd=newButton("+"); buttonAdd.addActionListener(this); buttonAdd.addKeyListener(newKeyAdapter(){ publicvoidkeyTyped(KeyEvente){ if(e.getKeyChar()=='+') AddFunction (1); } }); buttonSub=newButton("-"); buttonSub.addActionListener(this); buttonSub.addKeyListener(newKeyAdapter(){ publicvoidkeyTyped(KeyEvente){ if(e.getKeyChar()=='-') AddFunction (2); } }); buttonMul=newButton("*"); buttonMul.addActionListener(this); buttonMul.addKeyListener(newKeyAdapter(){ publicvoidkeyTyped(KeyEvente){ if(e.getKeyChar()=='*') AddFunction(3); } }); buttonDiv=newButton("/"); buttonDiv.addActionListener(this); buttonDiv.addKeyListener(newKeyAdapter(){ publicvoidkeyTyped(KeyEvente){ if(e.getKeyChar()=='/') AddFunction(4); } }); buttonDot=newButton("."); buttonDot.addActionListener(this); buttonDot.addKeyListener(newKeyAdapter(){ publicvoidkeyTyped(KeyEvente){ if(e.getKeyChar()=='.') { textBuffer.append(e.getKeyChar()); answerText.setText(textBuffer.toString()); AddNum(); } } }); buttonEqual=newButton("="); buttonEqual.addActionListener(this); buttonEqual.addKeyListener(newKeyAdapter(){ publicvoidkeyTyped(KeyEvente){ if(e.getKeyChar()=='=') OnGo(); } }); } /* initMenu()函数是对各菜
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 程序设计 实验