import java.util.HashMap;
创新互联建站服务项目包括枣庄网站建设、枣庄网站制作、枣庄网页制作以及枣庄网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,枣庄网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到枣庄省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
enum Huo {
TX(1, "T恤", 245), WQX(2, "网球鞋", 570), WQP(3, "网球拍", 320);
private int id;
private String name;
private double price;
private Huo(int id, String name, double price) {
this.id = id;
this.name = name;
this.price = price;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public double getPrice() {
return price;
}
public static Huo getById(int id) {
for (Huo item : Huo.values()) {
if (item.id == id) {
return item;
}
}
return null;
}
}
public class Test {
private static MapInteger, Integer countMap = new HashMapInteger, Integer();
private static double sum = 0;
public static void main(String args[]) {
Scanner in = new Scanner(System.in);
while (true) {
System.out.println("**********************************************");
System.out.println("请选择购买的商品编号:");
for (Huo item : Huo.values()) {
System.out.print(item.getId() + ":" + item.getName() + " ");
}
System.out.println();
System.out.println("**********************************************");
System.out.print("输入购买商品编号:");
int id = in.nextInt();
System.out.print("输入购买商品数量:");
int count = in.nextInt();
Integer tmp = countMap.get(id);
if (tmp == null) {
tmp = 0;
}
countMap.put(id, tmp + count);
show();
while (true) {
System.out.print("是否继续(y/n):");
String jixu = in.next();
if ("Y".equalsIgnoreCase(jixu)) {
break;
} else if ("N".equalsIgnoreCase(jixu)) {
System.out.print("请支付:");
double zhifu = in.nextDouble();
System.out.println("应付金额:" + sum);
System.out.println("客户支付:" + zhifu);
System.out.println("找钱:" + (zhifu - sum));
System.exit(0);
} else {
System.out.print("输入错误");
}
}
}
}
private static void show() {
IteratorInteger it = countMap.keySet().iterator();
while (it.hasNext()) {
Integer key = it.next();
Integer count = countMap.get(key);
Huo huo = Huo.getById(key);
double heji = huo.getPrice() * count;
System.out.println(huo.getName() + "¥" + huo.getPrice() + " 数量:" + count + " 合计:" + heji);
sum += heji;
}
}
}
for(int i=0;i商品一的数量;i++){
// 判断当前价格(商品一单价 乘以 数量i)
// 等于总价保存当前组合
// 大于 continue 退出当前循环
// 小于 继续下层循环
for(int j=0;j商品二的数量;j++){
// 判断当前价格(商品一单价 乘以 数量i + 商品二单价 乘以 数量j )
// 等于总价保存当前组合
// 大于 continue 退出当前循环
// 小于 继续下层循环
for(int k=0;k商品三的数量;k++){
// 判断当前价格(商品一单价 乘以 数量i + 商品二单价 乘以 数量j + 商品三单价 乘以 数量k)
// 等于总价保存当前组合
// 大于 continue 退出当前循环
// 小于 继续下层循环
.......
}
}
}
这么算时间复杂度肯定不是最优的
import java.util.Scanner;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int name;
Scanner sc = new Scanner(System.in);
System.out.println("请输入你想要查询的商品名称");
name=sc.nextInt();
switch(name){
case 1:System.out.println(" 苹果: 价格:5元; 数量:十个");break;
case 2:System.out.println(" 香蕉: 价格:3元; 数量:十一个");break;
case 3:System.out.println(" 梨子: 价格:5.9元; 数量:八个");break;
default :System.out.println(" 抱歉找不到该商品");break;
}
}
}
以oracle数据库为例,查询语句可参考下边的。
注意:同时group by商品id和商品名称,是因为不清楚是否id对应了唯一的名称。不过同样适用于一对一和一对多。
//下边的日期按数据库类型的不同稍微处理下即可,
//也可以同时加两个条件,比如2个日期之间的。
select
a.saledate as 日期,
a.unitid as 商品编号,
a.unitname as 商品名称,
sum(a.amount) as 售出数量,
sum(a.amount*a.unitprice) as 总销售额
from orderdetail a
where to_number(to_char(a.saledate,'yyyymm')) = 200910
group by a.saledate,a.unitid,a.unitname
order by a.saledate