昆 明 理 工 大 学 理 学 院 信息与计算科学专业 操作性实验报告
年级: 10级 姓名: 刘陈 学号: 201011101128 指导教师: 朱志宁
实验课程名称: java程序设计 开课实验室: 理学院机房 实验成绩: 学风(5) 观察能力(15) 操作能力(30) 调试能力(50) 其它 总分
实验内容:
1.实验/作业题目: 面向对象程序设计1、2 2.实验/作业课时:各2学时,共4学时
3.实验过程(包括实验环境、实验内容的描述、完成实验要求的知识或技能): 实验环境:eclipse
实验内容:编写一个简单的程序,利用数组保存书(Book),cd(CompactDisk),磁带(Tape)信息,并能实现插入、删除、查找功能。注意使用面向对象的思想进行程序设计。
完成实验要求的知识或技能:通过这个实验,能用eclipse来编写java程序,掌握java数组的使用和面向对象的编程思想。
第1页
Media-父类+insert()+delete()+update()< 4.程序结构(程序中的函数调用关系图) 5.算法描述、流程图或操作步骤: 程序: 父类: package Product; import java.io.IOException; import java.util.Scanner; import BookMain.BookMain; public class Product { private String name; private String type; private float price; Tape-tape+insert()+delete()+update()+...() 第2页 public String getName() { return name; } public void setName(String name) { this.name = name; } public String getType() { return type; } public void setType(String type) { this.type = type; } public float getPrice() { return price; } public void setPrice(float price) { this.price = price; } //子类继承 class Book extends Product{ } public static void main(String[] args) throws IOException { BookMain test = new BookMain (); Product []productdb = new Product[100]; int op = -1; try { do { System.out.println(\"1.添加 2.查找 3.删除 0.退出\"); System.out.println(\"请选择:\"); Scanner cin=new Scanner(System.in); 第3页 private int weight;//书的重量 public int getweight(){ } public void setweight(int weight){ } this.weight = weight; return weight; op = cin.nextInt(); switch( op ) { case 0: System.out.println(\"系统退出!\"); return; case 1: Product p = new Product(); System.out.println(\"请输入产品名称:\"); p.setName(cin.next()); System.out.println(\"请输入产品类型:\"); p.setType(cin.next()); System.out.println(\"请输入产品价格:\"); p.setPrice(cin.nextFloat()); System.out.println(\"请输入书的质量:\"); p.setPrice(cin.nextFloat()); boolean flagadd = test.add(productdb,p); if (flagadd) System.out.println(\"添加成功!\"); else System.out.println(\"添加失败!\"); break; case 2: Product searchP = new Product(); int search = -1; String key = \"\"; System.out.println(\"请输入查询内容:1.按名称 2.按类型 3.按价格4.列 出所有产品\"); search = cin.nextInt(); if (search == 1) { System.out.println(\"请输入产品名称:\"); searchP.setName(cin.next()); Product resultP = test.getProductByKey(productdb,searchP); if (resultP != null) { System.out.println(\"名称:\" + resultP.getName() + \类型:\" + resultP.getType() + \价格:\" + resultP.getPrice()); } else { 第4页 System.out.println(\"没有匹配产品!\"); } } else if (search == 2) { System.out.println(\"请输入产品类型:\"); searchP.setType(cin.next()); Product resultP = test.getProductByKey(productdb,searchP); if (resultP != null) { System.out.println(\"名称:\" + resultP.getName() + \类型:\" + resultP.getType() + \价格:\" + resultP.getPrice()); } else { System.out.println(\"没有匹配产品!\"); } } else if (search == 3) { System.out.println(\"请输入产品价格:\"); searchP.setPrice(cin.nextFloat()); Product resultP = test.getProductByKey(productdb,searchP); if (resultP != null) { System.out.println(\"名称:\" + resultP.getName() + \类型:\" + resultP.getType() + \价格:\" + resultP.getPrice()); } else { System.out.println(\"没有匹配产品!\"); } } else if (search == 4) { for (Product product : productdb) { if (product != null) { System.out.println(\"名称:\" + product.getName() + \类型:\" + product.getType() + \价格:\" + product.getPrice()); } } } break; case 3: System.out.println(\"请输入要删除的产品名称:\"); String name = cin.next(); boolean flagdel = test.delete(productdb, name); 第5页 } if (flagdel) System.out.println(\"删除成功!\"); else System.out.println(\"删除失败!\"); break; } } while (op != 0); } catch (Exception e) { System.out.println(\"输入了无效值!系统退出!\"); e.printStackTrace(); } } //子类继承测试类 package BookMain; import Product.Product; public class BookMain { 第6页 public Product getProductByKey(Product []productdb,Product p) { for (Product product : productdb) { if (product == null) { continue; } if (product.getName().equals(p.getName())) { return product; } if (product.getType().equals(p.getType())) { return product; } if (product.getPrice() == p.getPrice()) { return product; } } return null; } public boolean add(Product []productdb, Product addP) { for (int i = 0; i < productdb.length; i++) { if (productdb[i] == null) { productdb[i] = addP; return true; } } return false; } public boolean delete(Product []productdb, String name) { for (int i = 0; i < productdb.length; i++) { if (productdb[i].getName().equals(name)) { productdb[i] = null; return true; } } return false; } } 6.实验数据和实验结果(用屏幕图形表示,可另加附页): 第7页 程序运行结果: 第8页 因篇幅问题不能全部显示,请点此查看更多更全内容