Java初学者,哪位友友能帮我设计一个简单的类似超市购物车的程序,参考一下~谢谢!
就是一个循环。Vector可以增加任何数据类型输出时判断了下数据类型是char[]用了string.copyvalueof其它的直接tostring基本数据类型
按照你的要求编写的Java小程序如下:
//改变JLabel背景颜色的小程序import java.awt.BorderLayout;import java.awt.Color;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JApplet;import javax.swing.JButton;import javax.swing.JLabel;public class ChangeColor extends JApplet implements ActionListener{ JLabel jl=new JLabel(); JButton jb=new JButton("改变颜色"); public void init(){ jb.addActionListener(this); jl.setOpaque(true); add(jl,BorderLayout.CENTER); add(jb,BorderLayout.SOUTH); setSize(300, 300); } @Override public void actionPerformed(ActionEvent ae) { if(ae.getSource()==jb){ int red=(int)(Math.random()*256); int green=(int)(Math.random()*256); int blue=(int)(Math.random()*256); jl.setBackground(new Color(red,green,blue)); } }}运行结果:
1.首先我先列出我们所需要的java类结构。
1)Database.java --------- 模拟存储商品的数据库。
2)McBean.java ------------ 商品实体类,一个普通的javabean,里面有商品的基本属性。
3)OrderItemBean.java --- 订单表。
4)ShoppingCar.java ------ 这个就是最主要的购物车,当然比较简单。
5)TestShoppingCar.java --- 这个是测试类。
2.下面贴出具体代码并带关键注释。
---Database.java
public class Database {
/*采用Map存储商品数据,为什么呢?我觉得这个问题你自己需要想下。
* Integer 为Map的key值,McBean为Map的value值。
*/
private static Map<Integer, McBean> data = new HashMap<Integer, McBean>();
public Database() {
McBean bean = new McBean();
bean.setId(1);
bean.setName("地瓜");
bean.setPrice(2.0);
bean.setInstuction("新鲜的地瓜");
data.put(1, bean);//把商品放入Map
bean = new McBean();
bean.setId(2);
bean.setName("土豆");
bean.setPrice(1.2);
bean.setInstuction("又好又大的土豆");
data.put(2, bean);//把商品放入Map
bean = new McBean();
bean.setId(3);
bean.setName("丝瓜");
bean.setPrice(1.5);
bean.setInstuction("本地丝瓜");
data.put(3, bean);//把商品放入Map
}
public void setMcBean(McBean mcBean){
data.put(mcBean.getId(),mcBean);
}
public McBean getMcBean(int nid) {
return data.get(nid);
}
}
---McBean.java
public class McBean {
private int id;//商品编号
private String name;//商品名
private double price;//商品价格
private String instuction;//商品说明
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getInstuction() {
return instuction;
}
public void setInstuction(String instuction) {
this.instuction = instuction;
}
}
---ShoppingCar.java
public class ShoppingCar {
private double totalPrice; // 购物车所有商品总价格
private int totalCount; // 购物车所有商品数量
private Map<Integer, OrderItemBean> itemMap; // 商品编号与订单项的键值对
public ShoppingCar() {
itemMap = new HashMap<Integer, OrderItemBean>();
}
public void buy(int nid) {
OrderItemBean order = itemMap.get(nid);
McBean mb;
if (order == null) {
mb = new Database().getMcBean(nid);
order = new OrderItemBean(mb, 1);
itemMap.put(nid, order);
update(nid, 1);
} else {
order.setCount(order.getCount() + 1);
update(nid, 1);
}
}
public void delete(int nid) {
OrderItemBean delorder = itemMap.remove(nid);
totalCount = totalCount - delorder.getCount();
totalPrice = totalPrice - delorder.getThing().getPrice() * delorder.getCount();
}
public void update(int nid, int count) {
OrderItemBean updorder = itemMap.get(nid);
totalCount = totalCount + count;
totalPrice = totalPrice + updorder.getThing().getPrice() * count;
}
public void clear() {
itemMap.clear();
totalCount = 0;
totalPrice = 0.0;
}
public void show() {
DecimalFormat df = new DecimalFormat("¤#.##");
System.out.println("商品编号\t商品名称\t单价\t购买数量\t总价");
Set set = itemMap.keySet();
Iterator it = set.iterator();
while (it.hasNext()) {
OrderItemBean order = itemMap.get(it.next());
System.out.println(order.getThing().getId() + "\t"
+ order.getThing().getName() + "\t"
+ df.format(order.getThing().getPrice()) + "\t" + order.getCount()
+ "\t" + df.format(order.getCount() * order.getThing().getPrice()));
}
System.out.println("合计: 总数量: " + df.format(totalCount) + " 总价格: " + df.format(totalPrice));
System.out.println("**********************************************");
}
}
---OrderItemBean.java
public class OrderItemBean {
private McBean thing;//商品的实体
private int count;//商品的数量
public OrderItemBean(McBean thing, int count) {
super();
this.thing = thing;
this.count = count;
}
public McBean getThing() {
return thing;
}
public void setThing(McBean thing) {
this.thing = thing;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
}
---TestShoppingCar.java
package com.shop;
public class TestShoppingCar {
public static void main(String[] args) {
ShoppingCar s = new ShoppingCar();
s.buy(1);//购买商品编号1的商品
s.buy(1);
s.buy(2);
s.buy(3);
s.buy(1);
s.show();//显示购物车的信息
s.delete(1);//删除商品编号为1的商品
s.show();
s.clear();
s.show();
}
}
3.打印输出结果
商品编号 商品名称 单价 购买数量 总价
1 地瓜 ¥2 3 ¥6
2 土豆 ¥1.2 1 ¥1.2
3 丝瓜 ¥1.5 1 ¥1.5
合计: 总数量: ¥5 总价格: ¥8.7
**********************************************
商品编号 商品名称 单价 购买数量 总价
2 土豆 ¥1.2 1 ¥1.2
3 丝瓜 ¥1.5 1 ¥1.5
合计: 总数量: ¥2 总价格: ¥2.7
**********************************************
商品编号 商品名称 单价 购买数量 总价
合计: 总数量: ¥0 总价格: ¥0
**********************************************
4.打字太累了,比较匆忙,但是主要靠你自己领会。哪里不清楚再提出来。
给你一个大致的想法做参考吧 :
1、商品作为一个类,其属性包括名称、价格等等
2、超市作为一个类,里面建立一个商品的集合,可以对其进行商品添加删除、显示等操作,这个用arrylist或vector可以非常方便的实现
3、购物车作为一个类,里面包含了购买商品的集合,初始化为空,可以添加删除,其中可以包含一个方法计算总的花费
4、主函数类,其中楼主不管有什么想法都可以自由实现啦
楼主,程序是要自己写才能真正弄到知识,具体实现思路已经给你了,直接按照这个去写出源代码就行啦 有什么问题再联系我就行
想要你的分,但是我出差在外不能给你发资料,都在我自己的本子上。
一个图书管理系统。还有超市系统。
WEB程序?
这个你全写在main里吧。。。因为你不链接数据库,没有办法写实体类
常见的十五种Java开发工具是什么,有什么特点
1、JDK (Java Development Kit)Java开发工具集 从初学者角度来看,采用JDK开发Java程序能够很快理解程序中各部分代码之间的关系,有利于理解Java面向对象的设计思想。JDK的另一个显著特点是随着Java (J2EE、J2SE以及J2ME)版本的升级而升级。但它的缺点也是非常明显的就是从事大规模企业级Java应用开发非常...
AVA中DSR-1好还是SR25好
dsr-1是一枪毙命,有时会要打两枪,比较便宜,射速慢,而且有时会射不中.sr25属于连射枪,打了一枪后,敌人会产生反映,就不能开枪了,这时再迅速补一枪,就挂了,火力比较猛,如果有钱的话,还是买那把38000GP的连狙把,很稳,适合初学者.或者你可以,开两个号,一个买DSR-1,一个买SR25...
开发Java用什么软件最好?
允许开发者快速开 发可以通过Web、无线设备及语音界面访问的Web服务和交易应用,以往只能通过将传统J ava编程技巧与最新模块化方式结合到一个单一集成的开发环境中之后才能完成J2EE应用 开发生命周期管理的事实,从根本上得到改变。缺点就是对于初学者来说,较复杂,也 比较难。
java编程学习教程有哪些?求推荐!
让你能够比较熟练的使用Java来编程,解决一般的问题 。 最后向大家推荐的是《Java2核心技术》《java基础教程大全301集》,这两个一个是书一个是视频教程,主要讲述了基础层面的全部,以及Java的核心技术也是J ava的难点之处,具有很高的参考价值,无论是Java的初学者还是Java编程老手,都 能从这个教学...
avaxt杀毒软件效果怎么样啊?
avast!,国内的查杀率明显低于国外,但监控很全面,对破解软件和注册机报毒较多。没有卡巴好,但卡巴占CPU太多,配置一般的电脑会不太流畅。AVAST防护比金山、瑞星好,但查杀率低了点。因为技术上比不上卡巴,又没有瑞星那么大的病毒库。优点是免费,有中文版。麦咖啡很复杂,不适合初学者,你就别考虑...
Java的市场需求量很高么?
Java行业一直是热门行业之一,很多人想转行做Java。但是现在很多人说Java行业已经饱和,行业前景并不好,做到30岁就要转行,所以现在参加Java培训已经晚了。那么现实真是如此吗?Java前景怎么样?ava前景怎么样主要从人才需求、平均薪资以及岗位晋升三个方向来看。第一,Java人才需求很大。从职友集数据可以看出...
AVA里,HK416,虎啸P90好不好用?
虎啸P90比一般的P90要稳定的多,弹容量更高,十连发不成问题。射速超好,较近距离是单兵利器。HK416不够稳定,五连发以后就不稳定了,远距最高两连发。
Java和python相比哪个好就业
下面给大家详细分析他们二者之间的区别:从开发难度上看的话:python难度小于java的。Python的语法简洁清晰,语法接近英语,Python简单的语法和少到可以忽略不计的语法糖,可以让初学者专注于思考要做的事情,而不需要在过程上大费周章。开发环境简单,能打字就能写代码,适合新手入门学习;而java的话ava语法...
python和Java哪个好?他们有什么区别?
Python则在2016年排在第五位。Python在国外应用相对成熟,在国内还处于起步阶段,近两年,随着人工智能、机器学习的、大数据以及云计算的兴起,Python发展势如破竹,很多企业开始进入该行列,Python人才的需求量也在不断上升,但相对于发展较为成熟的ava来说,需求量还是较少。且目前Python就业岗位主要集中在...
如何学好java语言啊?
建议一:有系统的学习方案,系统的学习教程,先把Java学了一遍之后才是真正的入门,然后就是不断的练习,不断的巩固,为之后的工作打下坚实的基础。建议二:学习Java不要先看书学,一定要先把一块的知识点学完一遍,并且自己多多少少会动手操作,然后去看书温习。还有不要盲目的看视频,很多人都是光看...
秋苛阿魏: class test {public static void main(String[] args){System.out.println("Hello World!");} }在C盘保存文件名为test 进入cmd运行 javac test.java 进行编译 然后运行test.java看到输出hello world 我的第一个程序就完成了 如果运行javac 报错的话那可能是环境变量没有配置好,在仔细看看重新配置一下
上街区15853729295: 初学JAVA,老师要求编写一程序,谁能帮忙看看,指导一下也好~~?
秋苛阿魏: 你说的应该是个万年历吧? 要判断闰年和平年 还要判断每个月的天数而且还有2月这个特殊的月 int yearday = 0;// 每年的天数 int monthday = 0;// 每月的天数 for (int i = 1900; i < year; i++) {//1900是起始年,可自定义 if (i % 4 == 0 && i % 100 !...
上街区15853729295: 我是Java初学者,哪位大虾能教教我如何在自己的电脑上配置自己的Java开发环境,我用java2JDK? - ?
秋苛阿魏: 设置环境变量:我假设我的java安装在D:\JAVA 目录下 我的电脑点右键,选择“属性”.选择“高级”标签.进入环境变量设置:分别设置如下三个环境变量:JAVA_HOME=D:\JAVA PATH=%JAVA_HOME%\bin CLASSPATH=.;%JAVA_...
上街区15853729295: 初学者用什么开发软件来编写JAVA程序 - ?
秋苛阿魏: 1、 初学者的话不建议上来就用IDE开发工具比如说:Eclipse、MyEclipse、 IntelliJ IDEA、netbean.但是也可以使用这些,不建议的原因不便于你了解JavaAPI,及相关的编译原理,编译过程之类的.主要是就是熟悉基础.2、 刚开始可以使用...
上街区15853729295: java初学者,有哪位哥哥能帮我解答下??? - ?
秋苛阿魏: boolean isright=true; do{ switch a; case 1...isright==true; return; case 2...isright==true; return;........defule isright==false; }while(isright==false) 没地方试.有语法错误
上街区15853729295: 我是一个java的初学者?
秋苛阿魏: 多看一些书,多敲一下代码,多动动脑思考;会对你有帮助的, 如果有一定基础了,看看《Think in Java》
上街区15853729295: 想学习JAVA 从哪里入门 我没有基础?哪位位大侠可以指导啊 ! - ?
秋苛阿魏: 不知道你有没有基础,有多少时间.Java是一个很庞大的技术体系,既包括Java编程语言,还包括Java应用平台和其他很多相关技术. 如果你没有编程基础,建议你从Java语言开始,从最基础的基本概念和Java的语法学起,在学习Java的API,...
上街区15853729295: 我是一名java初学者,不知道用什么软件好,哪位大神能给推荐一下,谢谢 - ?
秋苛阿魏: JDK可以使用JDK8或以上版本;开发工具可以用Eclipse或MyEclipse.Eclipse是免费的;MyEclipse要收费,但是网上有破解版.中间件可以用Tomcat,数据库可以用MySQL或Oracle,不过这些是你入门成功之后才会开始考虑的.软件不必苛求一定是版本最新的,因为太新的版本可能不甚完善,而且相关社区上的资源资料也比较少,稳定好用就成.
上街区15853729295: 我想学JAVA软件制作,谁能教教!我算0基础!!?
秋苛阿魏: 首先,楼主你必须掌握C语言,可以去图书馆或者网上下载C语言的教程,视频的,文字的很多.之后自己尝试使用C语言做一些小的项目,一个人完成.做泡论坛.不过很想当艰苦,楼主要做好吃苦的准备.之后再考虑研究JAVA.如有疑问可以直接找我.
上街区15853729295: java初学怎么学? - ?
秋苛阿魏: 第一步,实现你的helloworld.那么你需要: 1、安装JDK,配置环境变量. 包括Cla...