Java实现简单的宠物商店管理系统

一、实验目的

1.掌握java类的继承、多态等的基本概念;

2.掌握简单的信息管理系统的设计与实现。

二、实验环境

实验建议在安装了以下软件的计算机上完成:

  1. Windows xp/win7/win8/win10操作系统
  2. JDK 1.6以上版本
  3. Eclipse或NetBeans IDE或EditPlus或其它开发工具

三、实验内容与要求

() 问题描述

要求采用java面向对象的基本知识,实现宠物商店管理系统。

() 实验要求

1、宠物商店有狗和猫两种动物,请为这两种动物创建各自的类,而且它们都继承宠物类,为这些类定义基本的属性和方法;

2、为宠物商店也创建一个类,该类有基本属性,比如商店名称等,还有宠物笼子的属性,此外,还具备一些方法,比如:买进宠物、销售宠物、清点宠物库存、销售统计和盈利情况等;

3、实现买进宠物的方法,输入狗或猫的基本属性和进货价格,并把该买进的宠物放进宠物笼子;

4、实现销售宠物的方法,输入狗或猫的基本属性和销售价格,并把宠物从宠物笼子取出;

5、实现清点宠物库存方法,列出所有库存的宠物清单;

6、实现销售和盈利统计,查询所有已销售的宠物清单,包括进货价格和销售价格,还有总利润;

 

四、实现提示

  1. 宠物笼子采用数组实现,数组的数据类型为宠物类;

  2. 销售清单也采用数组实现。

五、代码

 

Pet类

public class Pets {
	private String color;  //颜色
	private int age;  //年龄
	private String sex; //性别
	private String kind;
	 
	private double inPrice;  //进货价格
	private double outPrice;  //销售价格
	private double profit; //盈利

	
	public Pets(String color, int age, String sex) {
		this.color = color;
		this.age = age;
		this.sex = sex;
	}
	
	public Pets() {
		
	}
	
	public String getKind() {
		return kind;
	}
	
	public void setKind(String kind) {
		this.kind = kind;
	}
	
	public double getProfit() {
		return profit;
	}
	
	public void setProfit(double profit) {
		this.profit = profit;
	}
	
	public String getSex() {
		return sex;
	}
	
	public void setSex(String sex) {
		this.sex = sex;
	}
	
	public String getColor() {
		return color;
	}
	
	public void setColor(String color) {
		this.color = color;
	}
	
	public int getAge() {
		return age;
	}
	
	public void setAge(int age) {
		this.age = age;
	}
	
	public double getInPrice() {
		return inPrice;
	}
	
	public void setInPrice(double inPrice) {
		this.inPrice = inPrice;
	}
	
	public double getOutPrice() {
		return outPrice;
	}
	
	public void setOutPrice(double outPrice) {
		this.outPrice = outPrice;
	}
	
}

Cat类

public class Cat extends Pets{

	public Cat(String color, int age, String sex) {
		super(color, age, sex);
	}
	
	public Cat() {
		
	}

}

Dog类

public class Dog extends Pets{

	public Dog(String color, int age, String sex) {
		super(color, age, sex);
	}
	
	public Dog() {
		
	}
}

PetsStore类


import java.util.Scanner;
import java.util.Date;
public class PetsStore {
	Scanner input = new Scanner(System.in); 
	private String name;
	private Cat[] cats;
	private Dog[] dogs;
	private Pets[] pets;
	
	private int dogFoot = 0; // 狗的当前长度
	private int catFoot = 0; //猫的当前长度
	private int petFoot = 0; 
	
	private int num = 0;  //库存数量
	private int inNum = 0;  //进货数量
	private int outNum = 0;  //销售数量

	public PetsStore(int len) {
		if (len > 0) {
			this.cats = new Cat[len]; // 开辟数组大小 
			this.dogs = new Dog[len];
			this.pets = new Pets[len];
		} else {
			this.dogs = new Dog[1]; // 至少开辟一个空间
			this.cats = new Cat[1];
			this.pets = new Pets[1];
		}
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	public void add() { // 添加的是一个宠物
		System.out.println("您添加的是狗还是猫?\n" + "1.狗          2.猫");
		String choice = input.next();
		if(choice.equals("1")) {
			Dog dog = new Dog();
			
			System.out.println("请输入您要添加的宠物的信息");
	    	System.out.print("颜色:");
	    	dog.setColor(input.next());
	    	System.out.print("年龄:");
	    	dog.setAge(input.nextInt());
	    	System.out.print("性别:");
	    	dog.setSex(input.next());
	    	System.out.print("进货价格:");
	    	dog.setInPrice(input.nextDouble());
	    	System.out.print("出售价格:");
	    	dog.setOutPrice(input.nextDouble());
	    	
			if(dogFoot < dogs.length) {
				dogs[dogFoot] = dog;
				dogFoot++;
				System.out.println("添加成功!");
				inNum++;
				num++;
			}	
			else {
				System.out.println("添加失败!");
			}
		}	
		else if(choice.equals("2")) {
			if(catFoot < cats.length) {
				Cat cat = new Cat();
				
				System.out.println("请输入您要添加的宠物的信息");
		    	System.out.print("颜色:");
		    	cat.setColor(input.next());
		    	System.out.print("年龄:");
		    	cat.setAge(input.nextInt());
		    	System.out.print("性别:");
		    	cat.setSex(input.next());
		    	System.out.print("进货价格:");
		    	cat.setInPrice(input.nextDouble());
		    	System.out.print("出售价格:");
		    	cat.setOutPrice(input.nextDouble());
		    	
		    	
				cats[catFoot] = cat;
				catFoot++;
				System.out.println("添加成功!");
				inNum++;
				num++;
			}	
			else {
				System.out.println("添加失败!");
			}
		}	
	    else {
			System.out.println("没有这个选项,请重新输入!");
		}
	}

	public void print() {
		Date date = new Date();
		System.out.println("===============宠物商店库存清单===============");
		System.out.println("*******************C A T S*******************");
		System.out.println("Color    Age    Sex    InPrice    OutPrice");
		for (int i = 0; i < cats.length; i++) {
			if (cats[i] != null) {
				System.out.println(cats[i].getColor() + "\t" + cats[i].getAge() + "\t" + cats[i].getSex() + "\t" + cats[i].getInPrice() + "\t" + cats[i].getOutPrice());
			}
		}
		System.out.println("\n*******************D O G S*******************");
		System.out.println("Color    Age    Sex    InPrice    OutPrice");
		for (int i = 0; i < dogs.length; i++) {
			if (dogs[i] != null) {
				System.out.println(dogs[i].getColor() + "\t" + dogs[i].getAge() + "\t" + dogs[i].getSex() + "\t" + dogs[i].getInPrice() + "\t" + dogs[i].getOutPrice());
			}
		}
		System.out.println("=============================================");
		System.out.println("date:      " + date);
	}
	
	public void sell() {
		if(num == 0) {
			System.out.println("库存为零,请及时购进宠物!\n");
		}
		else {
		System.out.println("您要出售的是猫还是狗?\n" + "1.猫              2.狗");
		String choice = input.next();
		if(choice.equals("1")) {
			System.out.println("请输入您要出售的猫的特征");
			System.out.print("颜色:");
			String color1 = input.next();
			System.out.print("年龄:");
			int age1 = input.nextInt();
			System.out.print("性别:");
			String sex1 = input.next();
			
			int i, flag = catFoot;
			for(i = 0; i < catFoot; i++) {
				if(color1.equals(cats[i].getColor()) && age1 == cats[i].getAge() && sex1.equals(cats[i].getSex())) {
					flag = i; break;
				}
			}
			if(i == catFoot) {
				System.out.println("查无此猫!请核对后重新输入 \n");
				sell();
			}
			else {
				pets[petFoot] = cats[i];
				pets[petFoot].setKind("cat");
				petFoot++;
				for(int j = flag; j < catFoot; j++) {
					cats[j] = cats[j + 1];
				}
				System.out.println("售出成功!\n");
				catFoot -= 1;  //不减1会报数组越界的错误
				outNum++;
				num--;
			}
		}
		else if(choice.equals("2")) {
			System.out.println("请输入您要出售的狗的特征");
			System.out.print("颜色:");
			String color1 = input.next();
			System.out.print("年龄:");
			int age1 = input.nextInt();
			System.out.print("性别:");
			String sex1 = input.next();
			
			int i, flag = dogFoot;
			for(i = 0; i < dogFoot; i++) {
				if(color1.equals(dogs[i].getColor()) && age1 == dogs[i].getAge() && sex1.equals(dogs[i].getSex())) {
					flag = i; break;
				}
			}
			if(i == dogFoot) {
				System.out.println("查无此狗!请核对后重新输入 ");
				sell();
			}
			else {
				pets[petFoot].setKind("dog");
				pets[petFoot] = dogs[i];
				petFoot++;
				for(int j = flag; j < catFoot; j++) {
					dogs[j] = dogs[j + 1];
				}
				System.out.println("售出成功!\n");
				dogFoot -= 1;  //不减1会报数组越界的错误
				outNum++;
				num--;
			}
		}
		else {
			System.out.println("没有这个选项,请重新输入!");
		}
		}
	}
	
	public void note() {
		Date date = new Date();
		System.out.println("===============宠物商店销售记录清单===============");
		System.out.println("Kind    Color    Age    Sex    InPrice    OutPrice");
		for(int i = 0; i < pets.length; i++) {
			if(pets[i] != null) {
				System.out.println(pets[i].getKind() + "\t" + pets[i].getColor() + "\t" + pets[i].getAge() + "\t" + pets[i].getSex() + "\t" + pets[i].getInPrice() + "\t" + pets[i].getOutPrice());
			}
		}
		System.out.println("=================================================");
		System.out.println("date:          " + date);
	}
	
	public void profitNote() {
		Date date = new Date();
		System.out.println("===========宠物商店盈利情况===========");
		double cost = 0.0;
		double income = 0.0;
		double myProfit = 0.0;
		for(int i = 0; i < pets.length; i++) {
			if(pets[i] != null) {
				cost += pets[i].getInPrice();
				income += pets[i].getOutPrice();
			}
		}
		myProfit = income - cost;
		 System.out.println("成本:" + cost + "\n" + "总收入:" + income + "\n" + "利润:" + myProfit);
		if(myProfit > 0) {
		     System.out.println("恭喜,您的店处于盈利状态!");
		}
		else {
			System.out.println("很遗憾,您的店处于亏损状况!");
		}
		System.out.println("=======================================");
		System.out.println("date:      " + date);
	}
	
	public int getOutNum() {
		return outNum;
	}
	
	public int getInNum() {
		return inNum;
	}
	
	public int getNum() {
		return num;
	}        
}

Main类

import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		PetsStore store = new PetsStore(100);
		
		System.out.print("请为您的宠物商店取个名字:");
		store.setName(input.nextLine());
		System.out.println("您好!" + store.getName() + "的店长,欢迎使用宠物商店管理系统!");
		
		String choice = "1";
		
		while(choice.equals("0") == false) {
			System.out.println("==========宠物商店管理系统==========");
			System.out.println("1.查看库存\n" + "2.添加宠物\n" + "3.出售宠物\n" + "4.查看盈利\n" + "5.销售记录\n" + "0.退出程序");
			System.out.println("===================================");
			System.out.print("请输入你的选择:");
			choice = input.next();
			
			switch(choice) {
			    case "1":
			    	store.print();
			    	System.out.println("请问您还需要什么服务?");
			    	break;
			    	
			    case "2":
			    	String choice1 = "1";
			    	do {
			    		store.add();
				    	System.out.println("是否继续添加?\n" + "1.是             2.否");
				    	choice1 = input.next();
			    	} while(choice1.equals("1"));
			    	System.out.println("请问您还需要什么服务?");
			    	break;
			    	
			    case "3":
			    	String choice2 = "1";
			    	do {
			    		store.sell();
				    	System.out.println("是否继续出售?\n" + "1.是             2.否");
				    	choice2 = input.next();
			    	} while(choice2.equals("1"));			    	
			    	System.out.println("请问您还需要什么服务?");
			    	break;
			    	
			    case "4":
			    	store.profitNote();
			    	System.out.println("请问您还需要什么服务?");
			    	break;
			    	
			    case "5":
			    	store.note();
			    	System.out.println("请问您还需要什么服务?");
			    	break;
			    	
			    case "0":
			    	System.out.println("谢谢您的使用,欢迎下次再来!\n" + "**********按任意键结束程序**********");
			    	break;
			    	
			    default:
			    	System.out.println("错误输入, 请重新输入!");
			    	break;
			}
			
		}
	}

}

没用很复杂的容器类,只适合萌新看的,大佬勿喷,完成作业还是不错的

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值