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);
}
}
}
}