第一范文网 - 专业文章范例文档资料分享平台

东北大学软件学院2015级面向对象实验报告

来源:用户分享 时间:2025/5/25 8:31:00 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

五、实验总结

(1) 单例模式以及策略模式,这是JAVA设计模式的两个非常重要的知识点。通过单例模

式可以保证系统中一个类只有一个实例,这在一些需求上是必要的。策略模式,对于用户来说,通过不同的选择,在代码中提供了不同的解决方式,但是这些解决方式都会走同一条路径去实现问题。这是策略模式提供的一个非常重要的思想。

(2) 对于创建单例这一点还有一种饱汉式单例模式,在类中并不先创建一个该类的实例

对象,而是在别处需要用时再创建而且仅能创建一个。

实验四

一、实验目的

增强使用文件I/O的能力

二、实验内容

实现FileCatalogLoader类,并实现GourmetCoffee类的writeFile方法。 三、实验步骤

(1) 分析要解决的问题,给出你的思路。要求在给出的Catalog.dat文件中,对数据进行切割,并通过判断进行分类,并添加到Catalog上,返回这个Catalog。GourmetCoffee类中writeFile方法要求对特定的文件名创建文件,并将Sales以设置好的格式写入。 (2) 根据对问题的分析,写出你的设计思路,可以用类图等表达。 (3) 给出你的关键数据结构设计。

FileCatalogLoader类的loadCatalog方法。

public Catalog loadCatalog(String fileName) throws

FileNotFoundException, IOException, DataFormatException { File file = new File(fileName); Catalog catalog=new Catalog();

if(!file.exists()||file.isDirectory()){ throw new FileNotFoundException(); }

BufferedReader br=new BufferedReader(new FileReader(file)); String temp=null;

while((temp=br.readLine())!=null){ if(temp.startsWith(\

catalog.addProduct(readProduct(temp)); }

else if(temp.startsWith(\

catalog.addProduct(readCoffee(temp)); } else{

catalog.addProduct(readCoffeeBrewer(temp)); } }

br.close(); return catalog; }

FileCatalogLoader类的readProduct方法。

private Product readProduct(String line)throws DataFormatException {

double d;

StringTokenizer st=new StringTokenizer(line,\ st.nextToken();

String code=st.nextToken();

String description=st.nextToken(); String price=st.nextToken(); try{

d = Double.parseDouble(price); }catch(Exception e){

throw new DataFormatException(); }

Product product=new Product(code,description,d); return product; }

(4) 描述你在进行实现时,主要的功能或方法的实现。 (5) 你在程序设计过程中遇到了怎样的问题?如何解决得? (6) 其它(你认为需要在此说明的)。

四、实验结果

测试FileCatalogLoader类。

测试GourmetCoffee类writeFile方法。

五、实验总结

理解和掌握StringTokenizer的用法,熟悉多种文件输入输出方法,能够熟练运用并做好异常处理。

实验五

一、实验目的

基本掌握JavaGUI的设计,Jlist,Jpanel,JtextArea。

二、实验内容

利用GUI设计出一个简单的商品信息查询界面。

三、实验步骤

(1) 问题是写一个方法,在点击Jlist里面的code时,在Product Information中以JtextArea形式展示出商品信息。信息需要从DataField中获得。并且按照指导书所给格式展示出来。 (2) 利用迭代器将DataField中的商品信息提取出来,在JPanel中,以JLabel展示信息的标题,具体内容用JtextField来展示,并设置为不可编辑。

(3) 实现代码如下:productPanel.setLayout(new GridLayout(10,3)); for (Iterator iterator = dataFields.iterator(); iterator .hasNext();) { DataField dataField = iterator.next(); JLabel m1=new JLabel(dataField.getName()+\ JTextField m2=new JTextField(dataField.getValue()); m2.setEditable(false); m2.setBorder(BorderFactory.createBevelBorder(1)); productPanel.add(m1); productPanel.add(m2); }

(4) 对该panel设置了一下布局,表格形式9行2列。Iterator遍历获得dataFields中的信息,并将其存入存入m1(JLabel),m2(JTextField)中,最后将m1,m2添加进该panel中去。返回panel即可。

(5) 在返回panel对象的时候总是达不到不低效果,后来将returnproductPanel改为return new panel()即可。

四、实验结果

(1) 测试截图如下:

东北大学软件学院2015级面向对象实验报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c8kq404klyj1xep036fj71ujtp7zqyg019g8_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top