Java实验报告 2.docx
- 文档编号:24591303
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:21
- 大小:134.32KB
Java实验报告 2.docx
《Java实验报告 2.docx》由会员分享,可在线阅读,更多相关《Java实验报告 2.docx(21页珍藏版)》请在冰豆网上搜索。
Java实验报告2
本科实验报告
课程名称:
Java语言程序设计
实验项目:
Java面向对象程序设计
实验地点:
学院楼606
专业班级:
计Z1202学号:
2012001653
学生姓名:
崔会芳
指导教师:
相洁
2014年5月3日
实验名称
实验三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.mymaths;
importjava.util.Scanner;
publicclassComplex{
privatefloatRealPart;
privatefloatImagPart;
publicfloatgetRealPart(){
returnRealPart;
}
publicvoidsetRealPart(floatRealPart){
this.RealPart=RealPart;
}
publicfloatgetImagPart(){
returnImagPart;
}
publicvoidsetImagPart(floatImagPart){
this.ImagPart=ImagPart;
}
publicComplexplus(Complexc){
floatreal=this.RealPart+c.RealPart;
floatimag=this.ImagPart+c.ImagPart;
Complexresult=newComplex();
result.setRealPart(real);
result.setImagPart(imag);
returnresult;
}
publicComplexminus(Complexc){
floatreal=this.RealPart-c.RealPart;
floatimag=this.ImagPart-c.ImagPart;
Complexresult=newComplex();
result.setRealPart(real);
result.setImagPart(imag);
returnresult;
}
publicComplexchengfa(Complexc){
floatreal=this.RealPart*c.RealPart-this.ImagPart*c.ImagPart;
floatimag=this.RealPart*c.ImagPart+this.ImagPart*c.RealPart;
Complexresult=newComplex();
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){
//TODO自动生成的方法存根
System.out.println("请输入第一个复数(格式:
a+bi):
");
@SuppressWarnings("resource")
Scannerin=newScanner(System.in);
Stringcomplex1=in.nextLine();
System.out.println("请输入第二个复数(格式:
a+bi):
");
//Scannerin=newScanner(System.in);
Stringcomplex2=in.nextLine();
Complexc1=newComplex();
Complexc2=newComplex();
String[]c1Arr=complex1.split("\\+");
floatreal1=Integer.parseInt(c1Arr[0]);
floatimag1=Integer.parseInt(c1Arr[1].substring(0,1));
c1.setRealPart(real1);
c1.setImagPart(imag1);
String[]c2Arr=complex2.split("\\+");
floatreal2=Integer.parseInt(c2Arr[0]);
floatimag2=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.chengfa(c2).format());
}
}
程序运行结果:
(2)程序源代码:
packagecom.shiyan;
publicclassAccount{
privatelongbalance=0;
publicAccount(){
}
publicvoiddraw(intx)//存款
{
if(x<=balance){
balance=balance-x;
System.out.println("成功取款"+x+"元!
");
}else{
System.out.println("余额不足!
");
}
}
publicvoiddeposit(intx)//取款
{
balance=balance+x;
System.out.println("成功存款"+x+"元!
");
}
publicvoidcheck()//查询
{
System.out.println("当前存款为"+balance+"元");
}
publicstaticvoidmain(String[]args){
AccountAccount=newAccount();
Account.deposit(10000);
Account.check();
Account.draw(3000);
Account.check();
Account.draw(8000);
Account.deposit(5000);
Account.check();
Account.draw(8000);
Account.check();
}
}
程序运行结果:
(3)程序源代码:
packagecom.mymaths;
publicclassJiekou{
publicstaticvoidmain(String[]args){
//TODO自动生成的方法存根
QNumqr=newQNum(4,12,8);
qr.Max();
qr.Min();
}
}
interfaceNum{
publicvoidMax();
publicvoidMin();
}
classQNumimplementsNum{
inta,b,c;
publicQNum(inta,intb,intc){
this.a=a;
this.b=b;
this.c=c;
}
@Override
publicvoidMax(){
intmax;
max=a>b?
a:
b;
max=max>c?
max:
c;
System.out.println("三个数中最大值是:
"+max);
}
@Override
publicvoidMin(){
intmin;
min=a
a:
b;
min=min min: c; System.out.println("三个数中最小值是: "+min); } } 程序运行结果: (4)程序源代码: 超市类: packagechaoshi; importjava.util.ArrayList; importjava.util.List; publicclassSuperMarket{ privateList //增加商品 publicStringappend(Goodsgoods){ goodsList.add(goods); return"添加成功"; } //删除商品 publicStringdelete(Stringname){ Stringflag=null; if(name==null){ flag="删除商品["+name+"]不存在"; }else{ for(inti=0;i Goodsgoods=goodsList.get(i); if(goods.getName().equals(name)){ goodsList.remove(i); flag="删除商品["+name+"]成功"; break; } } } returnflag; } publicStringsale(Goodsgoods){ Stringflag="销售商品["+goods.getName()+"]失败"; if(goods! =null){ for(inti=0;i Goodsgoods_2=goodsList.get(i); if(goods_2.getName().equals(goods.getName())){ if(goods.getNumber()>goods_2.getNumber()){ flag+=" 原因: 库存不足"; }elseif((goods_2.getPrice()*goods.getNumber())>goods .getPrice()){ flag+="原因: 余额不足"; }else{ goods_2.setNumber(goods_2.getNumber() -goods.getNumber()); flag="销售商品["+goods.getName()+"]成功"; } break; } } } returnflag; } //查询商品 publicList returngoodsList; } publicvoidsetGoodsList(List this.goodsList=goodsList; } } 商品类: packagechaoshi; publicclassGoods{ privateStringname; privatefloatprice; privateintnumber; privateStringProducer; publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } publicfloatgetPrice(){ returnprice; } publicvoidsetPrice(floatprice){ this.price=price; } publicintgetNumber(){ returnnumber; } publicvoidsetNumber(intnumber){ this.number=number; } publicvoidProducer(Stringi){ this.Producer=i; } publicStringProducer(){ returnProducer; } } 主函数: packagechaoshi; importjava.io.*; publicclassTest{ publicstaticvoidmain(String[]args){ //TODO自动生成的方法存根 SuperMarketmarket=newSuperMarket(); @SuppressWarnings("unused") String[]label={"商品名称","商品价格","商品数量"}; inttype=-1; do{ System.out.println("==========="); System.out.println("请选择操作类型"); System.out.println("1添加商品"); System.out.println("2删除商品"); System.out.println("3查询商品"); System.out.println("4销售商品"); System.out.println("0退出系统"); System.out.println("==========="); inti=0; do{ try{ type=Integer.parseInt(readString()); i=0; }catch(Exceptione){ i=1; System.err.println("输入有误"); } }while(i! =0); switch(type){ case1: Goodsgoods=newGoods(); System.out.println("请输入商品名称"); goods.setName(readString()); do{ try{ System.out.println("请输入商品价格"); goods.setPrice(Integer.parseInt(readString())); i=0; }catch(Exceptione){ i=1; System.err.println("输入有误"); } }while(i! =0); do{ try{ System.out.println("请输入商品数量"); goods.setNumber(Integer.parseInt(readString())); i=0; }catch(Exceptione){ i=1; System.err.println("输入有误"); } }while(i! =0); do{ try{ System.out.println("请输入商品产地"); goods.Producer((readString())); i=0; }catch(Exceptione){ i=1; System.err.println("输入有误"); } }while(i! =0); System.out.println(market.append(goods)); break; case2: System.out.println("请输入要删除商品的名称"); Stringname=readString(); System.out.println(market.delete(name)); break; case3: System.out.println("商品名称\t商品价格\t商品数量"); for(intj=0;j Goodsg=market.getGoodsList().get(j); System.out.println(g.getName()+"\t"+g.getPrice()+"\t" +g.getNumber()); } break; case4: Goodsgoods_sals=newGoods(); System.out.println("请输入销售商品名称"); goods_sals.setName(readString()); do{ try{ System.out.println("请输入销售商品价格"); goods_sals.setPrice(Integer.parseInt(readString())); i=0; }catch(Exceptione){ i=1; System.err.println("输入有误"); } }while(i! =0); do{ try{ System.out.println("请输入销售商品数量"); goods_sals.setNumber(Integer.parseInt(readString())); i=0; }catch(Exceptione){ i=1; System.err.println("输入有误"); } }while(i! =0); System.out.println(market.sale(goods_sals)); break; default: System.out.println("退出"); break; } }while(type! =0); } privatestaticStringreadString(){ BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in)); Stringstr=null; try{ str=br.readLine(); }catch(IOExceptione){ //TODO自动生成的catch块 e.printStackTrace(); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java实验报告 Java 实验 报告