重庆交通大学信息科学与工程学院
综 合 性 设 计 性 实 验 报 告
班 级: 计算机科学与技术 2104 班
学 号:姓 名 :
实验项目名称: 饮料销售系统
实验项目性质: 综合性实验
实验所属课程: 程序设计模式
实验室(中心): 软件与信息技术实验中心
指 导 教 师 :
实验完成时间:2023 年 12 月 23 日
评 价 等
级
评分标准
优
实验设计目的明确,思路清晰,功能完善,运行准确无误,能够流利回答所
提出的问题,实验报告格式规范,内容详尽,图表完备,能充分反映出设计
思想。
良
设计内容合理,工作量充足,完成情况基本符合任务书要求,程序运行基本
正确,能够及时发现并更正程序错误,在提示情况下能较好回答所提出问题,
论文书写规范,内容能较好反映程序功能和算法思想。
中
实验较为认真,偶尔有迟到早退情况,设计思路较为清晰,模块功能基本实
现,程序运行结果基本正确,无重大程序运行错误,能够回答部分问题,论
文格式教为规范,内容比较充分。
及格
实验设计简单,功能基本实现,程序运行存在问题,但经过较大调试后能够
正确运行,能回答较为简单的提问,论文格式经修改后较为规范,论文逻辑
性教差,内容不充分。
不及格
程序无法运行或结果存在严重错误,无法回答简单提问,实验报告内容不完
整,格式不规范。具备下面一项者为不及格: 1.没有交报告。 2.报告内
容基本上是抄袭。 3.报告内容太空泛,太简单。4.实验主要功能均未实现。
评分表:
考察内容
评分标准
得分
实验内容完成度
按设计程序功能完成情况及系统展示效果,实验
过程描述(较详细地描述实验过程),内容齐全,
组织合理,描述有逻辑。(30%)
实验过程分析
按程序设计实现分析详细程度及正确度给分,要
求代码有解释分析或流程图(20%)
实验结果分析
程序输出有结果截图,按要求输出,并有实验结
果分析(针对实验过程中存在的问题、不足进行
分析)(20%)
实验报告格式
按文档格式及文字表达效果给分(流利通顺、无
错别字)(20%)
综合性实验
实验总结体会
按个人体会具体情况给分(内容具体、言之有物)
(10%)
综合实验总分
目录
1 实验目的 .....................................................................................................................4
2 实验内容及要求 .........................................................................................................4
3 实验设备及软件 .........................................................................................................4
4 设计方案 .....................................................................................................................4
4.1 需求分析 ..........................................................................................................4
4.2 选用的设计模式 ..............................................................................................5
4.3 设计的主要思路 ..............................................................................................5
4.4 系统模块类图 ..................................................................................................6
5 代码实现分析 .............................................................................................................8
6 测试结果分析 ...........................................................................................................20
7 实验体会 ...................................................................................................................24
7.1 系统实现的功能和优点 ................................................................................24
7.2 实验心得 ........................................................................................................24
1 实验目的
在现代社会中,人们的生活节奏日益加快,时间变得越来越宝贵。为了充分合理地利
用有限的时间,我设计了一个系统,该系统模拟了可乐代理商从进货到可乐公司生产发货
以及销售给顾客的整个过程。
首先,可乐代理商选择进货。他们根据市场需求和库存情况,决定进货的数量和种类。
一旦决定好,他们会通过电子邮件通知可乐公司。这个过程不仅高效,而且减少了人为错
误的可能性。
其次,收到通知后,可乐公司开始生产可乐。他们根据订单的具体要求,调整生产线,
确保生产出的可乐符合代理商的需求。生产完成后,他们会及时发货,并通过电子邮件提
醒代理商收货。这个过程确保了产品的新鲜度和质量。
最后,顾客购买可乐。他们可以根据自己的需求,选择不同的取货的方式,比如门店
自取或者快递公司送货上门。购买完成后,系统会自动生成订单,方便顾客和代理商跟踪
订单状态。
整个系统采用互答界面,可以有效地回应客户的需求。无论是代理商还是顾客,都可
以通过这个界面,获取他们需要的信息,提出他们的问题。这个系统不仅提高了工作效率,
也提升了客户满意度。总的来说,这个系统是一个高效、便捷、用户友好的解决方案,可
以帮助人们更好地利用他们的时间。
2 实验内容及要求
本次实验要求使用几种特定的设计模式,完成业务功能完整的应用程序。
3 实验设备及软件
本次实验在 Windows11 操作系统上完成,使用 IDEA2023 编写 Java 代码,使用的 Java
版本是 JDK1.8,图形化界面使用了 Java 的 Swing 组件进行开发。
4 设计方案
4.1 需求分析
这个系统是为了满足多个角色的需求而设计的,包括可乐代理商、可乐公司以及顾客。
它模拟了从可乐代理商进货,到可乐公司生产发货,再到销售给顾客的整个过程。在年轻
人中,可乐被亲切地称为"快乐肥宅水"。可口可乐和百事可乐作为可乐市场的两大巨头,
他们每年的销售量和需求量都非常庞大,工作压力巨大。这个项目为每个角色在供应链中
的位置提供了明确的定义,每个角色都有明确的工作职责。
4.2 选用的设计模式
在设计这个系统时,我采用了五种设计模式:原型模式、单例模式、抽象工厂模式、
代理模式和建造者模式。
4.3 设计的主要思路
(1)原型模式。当需要大量相同或相似的对象时,原型模式是最佳选择。原型模式
通过在内存中复制对象,比直接创建新对象更高效。在需要大量对象时,原型模式的优势
更加明显。在本系统中,邮件的发送相关的类 Message 使用到了原型模式。
(2)单例模式。在单例模式中,只有一个活动的实例——代理商。所有的单例类实
例化(可口可乐和百事可乐)都是同一个代理商。这样可以防止其他对象实例化自己,确
保所有对象都访问同一个实例。通过声明一个静态方法,可以确保该类不会被实例化,并
且可以获取唯一可用的对象,返回一个唯一的值。在本系统中,代理商类、可口可乐公司
类和百事可乐公司类都使用到了代理模式,而且代理商类使用了懒汉式来实现单例模式,
可口可乐公司类使用了饿汉式实现单例模式,而百事可乐类使用了双重检查锁来实现单例
模式。
(3)抽象工厂模式。抽象工厂模式是围绕一个超级工厂创建其他工厂的模式。这个
超级工厂也被称为其他工厂的工厂。在抽象工厂模式中,接口负责创建相关对象的工厂,
不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。在本系统中,抽
象工厂模式的实现涉及到可乐生产工厂类、百事可乐类、可口可乐类等。
(4)代理模式。在代理模式中,一个类代表另一个类的功能。我们创建具有现有对
象的对象,以便向外界提供功能接口。这种模式的意图是为其他对象提供一种代理,以控
制对这个对象的访问,主要解决在直接访问对象时带来的问题。在本系统中,商品配送方
式类、快递配送类、门店自取类使用了代理模式进行编码。
(5)建造者模式。建造者模式使用多个简单的对象一步一步构建成一个复杂的对象。
这种类型的设计模式属于创建型模式,提供了一种创建对象的最佳方式。一个 Builder 类
会一步一步构造最终的对象,该 Builder 类是独立于其他对象的。这种模式的意图是将一
个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。主要解决在软
件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定
的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将
它们组合在一起的算法却相对稳定。在本系统中,订单类和订单生成者类使用到了建造者
模式。
根据以上内容,我们可以看出,这个系统的设计旨在提供一个清晰、准确和详实的描