m[i]=Integer.parseInt((String)list.get(i));
}
}
catch(Exceptione)
{System.out.println("由于您输入了非数字,无法进行排序,程序终止!
");
System.exit
(1);
}
returnm;
}
}
2.
packagecom.sy2_2;
importjava.io.*;
publicclasssy2_2
{
publicstaticvoidmain(Stringargs[])throwsIOException
{
intarray[][]=newint[3][3];
intsum;
System.out.println("请依次输入3×3矩阵的元素");
for(inti=0;i<3;i++)
{
for(intj=0;j<3;j++)
{
System.out.println("请输入第"+(i+1)+(j+1)+"个位置的元素:
");
BufferedReaderin=newBufferedReader(newInputStreamReader(System.in));
array[i][j]=Integer.parseInt(in.readLine());
}
}
sum=array[0][0]+array[1][1]+array[2][2];
System.out.println("这个矩阵的对角线元素之和为:
"+sum);
}
}
3.
packagecom.sy2_3;
importjava.util.Scanner;
publicclasssy2_3{
publicstaticvoidmain(String[]args){
System.out.println("请输入字符串(请用一个空格分隔):
");
Scannersca=newScanner(System.in);
Strings1=sca.nextLine();
String[]split=s1.split("");
System.out.println("长度为:
"+split.length);
}
}
遇到的问题和解决方法
在做实验时,我遇到的问题是无论是字体还是字体颜色,他们只能改变一次,我通过自己的不断尝试与阅读自己的程序最终找到问题所在,程序中if判断语句的位置不正确,通过改变判断语句的位置,最终我是实现了程序。
心得体会
通过实验1,我又重新复习了方法重载,方法重载要求方法中的参数类型或个数不同;通过实验2,我掌握了异常类及异常的捕获、抛出和抛弃,了解了如何定义一个异常类及如何使用;通过实验3,我了解了Applet小程序,了解了如何创建及实现一个小程序,了解了如何添加按钮与如何处理事件,掌握了如何使用java.awt包提供的用来设计GUI的组件类及其方法。
实验名称
实验三Java面向对象程序设计
实验目的和要求
掌握Java面向对象程序设计中类、继承、包和接口的概念与应用,能熟练应用方法、类、成员变量等元素。
实验内容
(1)创建一个复数类complex,以附属进行数学运算、复数具有如下格式:
RealPart+ImaginaryRart*I,其中,I为-1的平方根。
要求如下:
1 利用浮点变量表示此类的私有数据。
提供两个构造方法,一个用于此类声明的对象的初始化;一个为默认的无参构造方法。
2 提供两复数加、减、乘的运算方法。
3 按格式(a,b)打印复数。
其中a为实部,b为虚部。
(2)创建银行账号Account类,实现存款(balance)的存(deposit)、取(withdraw)和查询(getbalance)等功能。
(3)编程定义一个接口,实现三个数中求最小值和最大值的方法,并将程序存放在mymaths包中。
(4)编程实现以下简单超市管理,具体要求如下:
1 实现描述超市的类Suppermacket类,具有货架属性,记录系统中现有商品,定义盘点商品的函数check(盘点各类商品的数量,并输出盘点结果),查询商品的函数query,并显示查询结果;
2 定义商品类Goods,具有商品名称Name,商品价格Price,商品产地Producer等属性,操作Sale(销售商品,余额不足时给予提示)、Add(商品上架操作)和ShowMe(显示商品信息)。
3 main函数,测试以上所要求的各种功能,即可以根据菜单命令增加、删除、查询商品、盘点商品,以及商品销售和商品上架的操作
提示:
①超市货架可以使用商品数组,数组大小100表明存放100个商品。
②注意实现商品查询的多态性,要求可以根据商品的名称或产地或价格查询商品的数量。
主要仪器设备
台式或笔记本计算机
实验记录(可分栏或加页)
1.
packagecom.sy3_1;
importjava.util.Scanner;
publicclasssy3_1{
privateintrealPart;
privateintimagPart;
publicintgetRealPart(){
returnrealPart;
}
publicvoidsetRealPart(intrealPart){
this.realPart=realPart;
}
publicintgetImagPart(){
returnimagPart;
}
publicvoidsetImagPart(intimagPart){
this.imagPart=imagPart;
}
publicsy3_1plus(sy3_1c){
intreal=this.realPart+c.realPart;
intimag=this.imagPart+c.imagPart;
sy3_1result=newsy3_1();
result.setRealPart(real);
result.setImagPart(imag);
returnresult;
}
publicsy3_1minus(sy3_1c){
intreal=this.realPart-c.realPart;
intimag=this.imagPart-c.imagPart;
sy3_1result=newsy3_1();
result.setRealPart(real);
result.setImagPart(imag);
returnresult;
}
publicsy3_1cheng(sy3_1c){
intreal=(this.realPart*c.realPart)-(this.imagPart*c.imagPart);
intimag=(this.imagPart*c.realPart)+(this.realPart*c.imagPart);
sy3_1result=newsy3_1();
result.setRealPart(real);
result.setImagPart(imag);
returnresult;
}
publicStringformat(){
if(this.imagPart<0){
returnthis.realPart+(this.imagPart+"i");
}else{
returnthis.realPart+"+"+this.imagPart+"i";
}
}
publicstaticvoidmain(String[]args){
System.out.println("请输入第一个复数(格式:
a+bi):
");
Scannerin=newScanner(System.in);
Stringcomplex1=in.nextLine();
System.out.println("请输入第二个复数(格式:
a+bi):
");
Stringcomplex2=in.nextLine();
sy3_1c1=newsy3_1();
sy3_1c2=newsy3_1();
String[]c1Arr=complex1.split("\\+");
intreal1=Integer.parseInt(c1Arr[0]);
intimag1=Integer.parseInt(c1Arr[1].substring(0,1));
c1.setRealPart(real1);
c1.setImagPart(imag1);
String[]c2Arr=complex2.split("\\+");
intreal2=Integer.parseInt(c2Arr[0]);
intimag2=Integer.parseInt(c2Arr[1].substring(0,1));
c2.setRealPart(real2);
c2.setImagPart(imag2);
System.out.println("和为:
"+c1.plus(c2).format());
System.out.println("差为:
"+c1.minus(c2).format());
System.out.println("积为:
"+c1.cheng(c2).format());
}
}
遇到的问题和解决方法
验3时,我遇到的问题是,图形颜色填充不正确,我是先写g.drawLine(30,25,350,30);然后在写的g.setColor(Color.green);导致颜色填充不正确,通过查阅课本,发现这两句代码的顺序写反了,应先设置画笔颜色,在进行图形绘制。
心得体会
通过实验,我掌握了事件、事件的监听及事件的处理,事件可通过实现接口和继承事件适配器类来监听和处理事件。
通过实验1,我了解了鼠标事件及其应用。
通过实验2,我了解了点击事件及其应用。
通过实验3,我学习了java.awt.Graphics类中绘制简单图形的方法。
实验名称
实验四Java异常处理
实验目的和要求
掌握异常的概念,以及如何定义、抛出和捕获处理异常。
实验内容
(1)做实验之前要求思考以下问题,作为预习内容;
1 错误和异常有何区别?
查看Java异常类的关系图。
2 异常是如何抛出、捕获和处理的?
3 Java捕获和处理异常的结构式怎样的?
4 Try语句如何嵌套?
Trow语句有何作用?
Finally程序快的作用是什么?
(2)运行下面的程序,理解异常的抛出、捕获与处理。
Importjava.io.*;
publicclassvoidmain(Stringargs[]){
publicstaicvoidmain(Stringargs[]){
for(inti=0;i<4;i++){
intk;
try{
switch(i){
case0:
//dividedbyzero
intzero=0;
k=911//zero
break;
case1:
//nullpointer
intb[]=null;
k=b[0];
break;
case2;//arrayindexoutofbound
intc[]=newint[2];
k=c[9];
break;
case3:
//stringindexoutofbound
charch="abc".charAt(99);
break;
}
}catch(Exceptione){
System.out.println("\nTestcase#"+i+"\n");
System.out.println(e);
}
}
}
}
(3)在实验三中的超市、商品类中创建一个自定义异常类。
要求:
在定义商品类时,若销售商品数量大于余额则作为异常处理(InsufficientFundsException)。
提示:
1 产生异常条件是某类商品销售数量大于库存额,因此是否抛出异常要先判断该条件。
2 确定产生异常的方法,应该在sale方法中产生异常InsufficientFundsException。
3 处理异常安排在调用sale的时候,因此sale方法要声明异常,由上级方法捕获并处理。
4 要定义好自己的异常。
主要仪器设备
台式或笔记本计算机
实验记录(可分栏或加页)
packagecom.sy4_2;
importjava.io.*;
@SuppressWarnings("unused")
publicclasssy4_2{
publicstaticvoidmain(Stringargs[]){
for(inti=0;i<4;i++){
intk;
try{
switch(i){
case0:
//dividedbyzero
intzero=0;
k=911;//zero
break;
case1:
//nullpointer
intb[]=null;
k=b[0];
break;
case2:
//arrayindexoutofbound
intc[]=newint[2];
k=c[9];