JAVA入门综合编程题

JAVA入门综合编程题–

1、在包cn.edu.gcu中定义一个商品类Goods,要求如下:
属性:名称、数量、单价(都是private的访问权限)
方法:(都是public访问权限)
构造方法:2个参数(名称、单价),数量取0,调用3个参数的构造方法进行赋值;
构造方法:3个参数(名称、数量、单价),根据参数的值给对应属性赋值;
分别定义名称、数量、单价的getter、setter访问器;
buy方法:1个参数(购买数量n),把商品的数量加n;
sale方法:1个参数(销售数量n),先判断商品数量是否足够销售,如果可以则把数量减n;
print方法:输出商品信息。

2、在包cn.edu.gcu.tools包中定义一个输入类KS,该类中有1个Scanner类型静态属性,有3个静态方法,分别实现返回键盘输入的字符串、整数、浮点数的功能。
在包cn.edu.gcu中定义GoodsManage类,要求如下:
私有属性:商品数组(Goods类型的数组)
公共方法:
构造方法:1个参数(商品数组长度n),根据参数的值创建商品数组,然后循环遍历数组,调用Goods类的带参数构造方法为每个数组元素创建Goods对象,并调用KS类的静态方法输入每个商品的名称、数量、单价等信息。
search方法: 1个参数(商品名称),在商品数组中查找是否包含与参数名称相同的商品,如果有则调用其print方法输出商品信息,返回其下标。否则输出查找失败信息,返回-1。
search方法: 2个参数(最低价格、最高价格),在商品数组中查找商品价格在最低价格和最高价格之间的所有商品,若查找成功则依次输出这些商品信息,返回true。若查找失败则输出错误信息,返回false。
buyGoods方法:两个参数(商品名称、购买数量),在商品数组中根据名称参数查找到对应的商品对象,并调用其buy方法实现购买操作。
saleGoods方法:两个参数(商品名称、销售数量),在商品数组中根据名称参数查找到对应的商品对象,并调用其sale方法实现销售操作。
total方法:遍历商品数组,返回数组所有商品的价值总和(注意:每个商品的总价=数量*单价)。
printAll方法:遍历数组,输出每个商品的信息。

3、在包cn.edu.gcu中编写测试类GoodsDemo,包含main方法,在main方法中执行以下操作:
创建GoodsManage类的对象
调用其printAll、total、buyGoods、saleGoods、search等方法实现多个商品的输出、汇总、购买、销售、查询等功能。

package cn.edu.gcu;
public class Goods {
	private String name;
	private int number;
	private float cost;
	Goods(String n,int num,float c) {
		name=n;number=num;cost=c;
	}
	Goods(String n,float c) {
		this(n,0,c);
	}
	public void setName(String n) {
		name=n;
	}
	public void setNumber(int n) {
		number=n;
	}
	public void setCost(float c) {
		cost=c;
	}
	public String getName() {
		return name;
	}
	public int getNumber() {
		return number;
	}
	public float getCost() {
		return cost;
	}
	public void buy(int n) {
		number=number+n;
		System.out.println("操作成功!");
	}
	public void sale(int n) {
		if(number>=n) {
			number=number-n;
			System.out.println("操作成功!");
		}else System.out.println("库存不足!");
	}
	public void print() {
		System.out.println("名称:"+name+"  "+"数量:"+number+"  "+"单价:"+cost);
	}
}

package cn.edu.gcu.tool;
import java.util.Scanner;
public class KS {
	public static Scanner in=new Scanner(System.in);
	public static String getString() {
		return in.next();
	}
	public static int getInt() {
		return in.nextInt();
	}
	public static float getFloat() {
		return in.nextFloat();
	}
}

package cn.edu.gcu;
import cn.edu.gcu.tool.KS;
public class GoodsManage {
	private Goods g[];
	KS k=new KS();
	GoodsManage(int n){
		g=new Goods[n];
		for(int i=0;i<g.length;i++) {
			g[i]=new Goods(KS.getString(),KS.getInt(),KS.getFloat());
		}
	}
	public int search(String n) {
		for(int i=0;i<g.length;i++) {
			if(g[i].getName().equals(n)) {
				g[i].print();
				return i;
			}
		}
		System.out.println("查找失败!");
		return -1;
	}
	public boolean search(float min,float max) {
		int i=0;
		for(Goods t:g) {
			if(t.getCost()>min && t.getCost()<max) {
				t.print();
				i++;
			}
		}
		if(i==0) {
		System.out.println("查找失败!");
		return false;
		}else return true;
	}
	public void buyGoods(String n,int buynum) {
		for(Goods i:g) {
			if(i.getName().equals(n)) {
				i.buy(buynum);
			}
		}
	}
	public void saleGoods(String n,int salenum) {
		for(Goods i:g) {
			if(i.getName().equals(n)) {
				i.sale(salenum);
			}
		}
	}
	public float total() {
		float sum=0;
		for(Goods i:g) {
			sum=sum+i.getNumber()*i.getCost();
		}
		return sum;
	}
	public void printAll() {
		for(Goods i:g) {
			i.print();
		}
	}
}

package cn.edu.gcu;
import java.util.Scanner;
public class GoodsDemo {

	public static void main(String[] args) {
		Scanner s=new Scanner(System.in);
		System.out.println("录入商品的个数为:");
		int i=s.nextInt();
		System.out.println("请分别输入"+i+"个商品名称、商品个数、商品价格");
		GoodsManage o=new GoodsManage(i);
		System.out.println("******************************************");
		System.out.println("请选择:1、显示所有商品;2、商品总价 ;3、购买商品; 4、销售商品;5、查找商品名称;6、查找商品价格在最低价格和最高价格之间的所有商品;7、退出程序");
		System.out.println("******************************************");
		
		while(true) {
			switch(s.nextInt()) {
			case 1:o.printAll();break;
			case 2:System.out.println("商品总价为:"+o.total());break;
			case 3:System.out.println("请分别输入商品名称和购买数量:");o.buyGoods(s.next(),s.nextInt());break;
			case 4:System.out.println("请分别输入商品名称和销售数量:");o.saleGoods(s.next(),s.nextInt());break;
			case 5:System.out.println("请输入商品名称:");o.search(s.next());break;
			case 6:System.out.println("请分别输入最低价格和最高价格");o.search(s.nextFloat(), s.nextFloat());break;
			case 7:System.exit(0);
			}
		}	
	}

}

在这里插入图片描述

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值