一、需求分析

完成一个单机版的购物车

(1)先建立一个文本文件,定义出自己想要的商品。以商品编号;商品名称;商品品牌;价格作为文件的内容,中间要求用分号或者分割

(2)编写程序,定义一个商品类,文件中的内容为该类的所有属性,当程序运行起来的时候,文件中每一条记录,对应该类的每一个实例,并将所有商品加载到内存中。

(3)将所有商品显示到图形界面上,提供1.购买,2.查看,3.结账(退出),4.删除,5.修改 5种方法,客户可以通过编号进行选择。

(4)当选择购买的时候,要提示客户输入要购买的商品,并将购买后的商品加入到购物车中(必须要支持购买同样的商品多次),购买后要显示出客户之前已放入购物车中的所有商品价格总和。

(5)删除和修改都是针对购物车中的商品而定的,而不是针对已经存在的商品。

(6)结账表示退出,程序结束。

二、本组课题及本人任务

课题:购物车

任务:

①从文件中读入商品信息

②将所有商品显示到图形界面上

③提供1.购买,2.查看,3.结账(退出),4.删除,5.修改 5种方法

④将购买的商品加入购物车

⑤删除和修改购物车中商品

⑥结账计算购物车中商品总价并退出

三、总体设计(概要设计)

①从文件中读入商品信息并载入内存中,每条信息对应一个商品Good类的实例,使用Map进行保存

②JScrollPane中装载JTable来展示所有商品

③购物车中商品用ArrayList来存放,购买商品即调用add()方法加入ArrayList中(购物车中无此商品的情况下),删除即ArrayList移除某元素,修改则调用Good类中的setNum()方法进行数量的修改

④购物车中商品的展示也使用JScrollPane中装载JTable的方式

⑤每个界面都有自己的背景图片,设置在LayeredPane层中,其他容器均设置透明使背景图片可见

四、本人负责的主要功能展示与代码分析

主界面:

代码分析:点击按钮时new出相应的界面

商城:

代码分析:根据输入的商品编号获得Map中对应key的商品类Good实例,如果购物车的ArrayList中没有这个Good,则直接加入,如果已经存在,则只设置他的数量为原数量加上新输入的数量

购物车:

代码分析:提供计算购物车中商品总价的方法,点击对应button时产生对应反应

结账:

代码分析:调用getTotalMoney()方法获得总价,使用系统方法exit()退出程序

修改:

代码分析:遍历存放购物车中商品的ArrayList,找到对应编号的Good实例,对其num属性进行修改

删除:

代码分析:遍历存放购物车中商品的ArrayList,找到对应编号的Good类实例,调用remove方法将其从中移除

四、测试与改进

测试:可实现需求中的要求

改进:使用try-catch块处理可能抛出异常的代码段,如输入的编号或数量不是数字时弹出消息框对用户进行提示并清空文本框。

java系统课程设计报告_201621123063《JAVA课程设计报告》相关推荐

  1. 目标检测java系统_5分钟!用Java实现目标检测

    鱼羊 编辑整理 量子位 报道 | 公众号 QbitAI 编者按:作为一个Java开发者,你是否曾为在PyTorch上部署模型而苦恼?这篇来自AWS软件工程师的投稿,结合实例,详细介绍了DJL这个为Ja ...

  2. java系统缓存应用_著名java开源缓存系统 【zz】

    目前在学习缓存的一些开源代码,查询到 一些资料分享给大家 以下是几个著名java开源缓存系统的介绍: OSCacheOSCache是个一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何J ...

  3. java系统运维:使用java自带的工具监控系统(java)虚机的运行

    公司采用的B/S架构开发的系统林林总总,有时候系统不稳定,分析起来很头疼.除了看日志,还很希望能知道系统虚拟机的运行情况. java 虚拟机从1.5开始,有类似的工具 jconsole,1.6开始不但 ...

  4. java cpu监控,java系统监控CPU 磁盘

    java系统监控CPU 磁盘 import java.io.*; /** * linux 下cpu 内存 磁盘 jvm的使用监控 * @author avery_leo * */ public cla ...

  5. java 监控系统cpu,java系统监控CPU 磁盘

    java系统监控CPU 磁盘 import java.io.*; /** * linux 下cpu 内存 磁盘 jvm的使用监控 * @author avery_leo * */ public cla ...

  6. 没有基础可以学java吗?零基础学java

    很多人都知道Java作为市场第一大语言,其发展前景也是很可观的.无论IT市场需求如何变动,其Java的霸主地位依然未曾动摇,这足矣见证Java对于IT行业的作用以及价值何其之大.但是有可观的一面必然会 ...

  7. 新手java安装教程_新手安装Java开发工具图文教程

    类型:编程工具大小:403.4M语言:英文 评分:7.1 标签: 立即下载 写这些文字的目的是为了给像我一样的想学习Java的非计算机专业的人员提供一个简单明了和快速安装Java的方法,这里提到的可能 ...

  8. 《操作系统》课程设计报告——用JAVA语言模仿实现“吃水果”问题

    引言 操作系统是计算机的核心总控软件,是计算机系统的指挥和管理中心,是计算机系统的灵魂.进程管理与文件系统是操作系统都是操作系统的五大重要功能之一.通过模拟操作系统的实现,加深学生对计算机操作系统内核 ...

  9. java猜数字游戏课程设计报告_Java程序设计课程设计-猜数字游戏设计.doc

    Java程序设计课程设计-猜数字游戏设计.doc 还剩 23页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 课 程 设 计 报 告课程设计名称 Jav ...

  10. 计算器java程序设计报告总体设计_计算器设计的java课程设计报告.doc

    计算器设计的java课程设计报告.doc 华东交通大学课程设计1华东交通大学课程设计课程:Java程序设计题目:计算器设计年级:2010级专业:信息一班学号:姓名:组员:指导教师:课程设计题目:计算器 ...

最新文章

  1. 初探GNN-文本表示学习
  2. Xshell分屏显示
  3. 实现文本编辑器的设计与实现_ArrayList实现分析(三)——迭代器的实现
  4. python自动化框架2019_【转】python3实现自动化框架robotframework
  5. 微软Tech Summit 2017,等你来打Call
  6. python去干扰线_GitHub - Guardiant/VerifyCode: 验证码去干扰线识别
  7. 从零开始学前端:HTML的一些文本格式化标签、快捷键、和特殊符号 --- 今天你学习了吗?(CSS:Day02)
  8. 关于QQ的几点改进建议
  9. 一个简单的json解析器
  10. Maven搭建webService (一) 创建服务端---使用main函数发布服务
  11. 互联网+(怎样保证小孩的安全) 2
  12. 利用小波分解后,频率计算问题
  13. 应用添加分享至微信、QQ和微博
  14. 德国人预测世界杯: 冠军是西班牙!
  15. Android应用瘦身
  16. Solidworks 草图绘制
  17. php实现智能音箱播放内容,智能音箱应用分析 智能音箱五大功能介绍
  18. Robotframework-RED-red.xml引用library的介绍
  19. Apache运维中常用功能配置笔记梳理
  20. PHP Class SoapClient not found解决方法

热门文章

  1. Vue 开发环境搭建步骤
  2. js 获取mac地址和IP地址
  3. 威联通Nas进阶配置
  4. android多个点的圆形进度条,Android 自定义圆形进度条总结
  5. dll依赖查看工具-depends
  6. python 白噪声函数_干货 | 20个教程,掌握时间序列的特征分析(附代码)
  7. App Inventor 实现简单计步器
  8. vscode unins000.exe报错,尝试在目标目录创造文件时发生错误
  9. 利用python自动解析摩斯电码音频文件
  10. 手机html图片自适应屏幕大小,手机端 图片自适应屏幕尺寸