
一、问题描述
设计一个宠物商店,在商店中可以有多种宠物,试表示出此种关系,并要求可以根据关键字查找相应的宠物信息。所需要的宠物信息自行设定。
1、可以保存多个宠物的信息
2、宠物的属性:名字、年龄等
3、可以实现宠物上架、下架、模糊查询等功能。
实现思路
1.首先需要定义一个宠物类,因为宠物种类有很多,因此需要定义一个抽象类。该类中需要包含宠物的各种信息,例如:种类、名字、年龄、雌雄等。
2.有了宠物后还需要定义一个商店类,来存放各种宠物。该商店类可以展示出商店内的宠物信息,以满足用户需求。
3.因为要实现宠物的上架和下架 *** 作,因此还需要定义一个上架类和下架类。可以通过该类对宠物进行上架和下架 *** 作,以存放到商店中。
4.要实现模糊查询功能,需要定一个查询类,该类可以通过输入关键字来查询商店内的宠物信息来展现出来。
5.要实现上诉功能,还需要定义一个测试类,来实现上述 *** 作。
代码实现:
1.宠物类
package 宠物商店
public abstract class 宠物类 {
public String species//种类
public String name//名字
public String sex//雌雄
public int age//年龄
public 宠物类() {
}
public 宠物类(String species,String name,String sex,int age) {
this.species=species
this.name=name
this.sex=sex
this.age=age
}
public abstract void pet1()
public void setspecies(String species) {
this.species=species
}
public String getspecies() {
return species
}
public void setname(String name) {
this.name=name
}
public String getname() {
return name
}
public void setsex(String sex) {
this.sex=sex
}
public String getsex() {
return sex
}
public void setage(int age) {
this.age=age
}
public int getage() {
return age
}
}
2.商店类
package 宠物商店
public class 商店类 extends 宠物类{
public 商店类(String species,String name,String sex,int age) {
super(species, name, sex,age)
}
public void pet1() {
System.out.println("宠物种类:"+species+"\t宠物名称:"+name+"\t宠物性别"+sex+"\t宠物年龄"+age+"岁")
}
static 商店类 doug1=new 商店类("金毛","豆豆","雄性",1)
static 商店类 doug2=new 商店类("牧羊犬","花花","雌性",2)
static 商店类 doug3=new 商店类("泰迪","毛毛","雄性",1)
static 商店类 doug4=new 商店类("二哈","笨笨","雌性",2)
static 商店类 cat1=new 商店类("加菲猫","胖胖","雄性",1)
static 商店类 cat2=new 商店类("波斯猫","玲玲","雌性",2)
}
3.下架类
package 宠物商店
import java.util.Scanner
public class 下架类 {
public static void XJ() {
Scanner scanner = new Scanner(System.in)
System.out.println("现在本店有以下宠物:")
商店类.doug1.pet1()
商店类.doug2.pet1()
商店类.doug3.pet1()
商店类.doug4.pet1()
商店类.cat1.pet1()
商店类.cat2.pet1()
System.out.println("请您选择要下架的宠物名称")
String name = scanner.next()
System.out.println("您好,您已成功下架名字为:"+name+"的宠物")
}
}
4.上架类
package 宠物商店
import java.util.Scanner
public class 上架类 {
public static String species//种类
public static String name//名字
public static String sex//雌雄
public static int age//年龄
public static void SJ() {
Scanner scanner = new Scanner(System.in)
System.out.println("请输入你要上架宠物的种类:")
species=scanner.next()
System.out.println("请输入你要上架宠物的名字:")
name=scanner.next()
System.out.println("请输入你要上架宠物的雌雄:")
sex=scanner.next()
System.out.println("请输入你要上架宠物的年龄:")
age=scanner.nextInt()
商店类 cw=new 商店类(species,name,sex,age)
System.out.println("恭喜您,您已经成功上架:")
cw.pet1()
System.out.println("现在本商店有:")
商店类.doug1.pet1()
商店类.doug2.pet1()
商店类.doug3.pet1()
商店类.doug4.pet1()
商店类.cat1.pet1()
商店类.cat2.pet1()
cw.pet1()
}
}
5.查询类
package 宠物商店
import java.util.Scanner
public class 查询类 {
public static void CX() {
Scanner scanner = new Scanner(System.in)
System.out.println("尊敬的顾客您好,我会为您提供最优的服务")
System.out.println("1:查询本店宠物种类\t2:查询本店宠物信息")
int n = scanner.nextInt()
if(n==1) {
System.out.println("尊敬的顾客,目前本店有:1、宠物狗\t2、宠物猫")
}
if(n==2) {
System.out.println("请输入您要查询宠物的种类信息:")
String name = scanner.next()
if(name.equals("狗")||name.equals("gou")) {
System.out.println("本店提供"+name+"的品种为:")
商店类.doug1.pet1()
商店类.doug2.pet1()
商店类.doug3.pet1()
商店类.doug4.pet1()
}
else if(name.equals("猫")||name.equals("mao")) {
System.out.println("本店提供"+name+"的品种为:")
商店类.cat1.pet1()
商店类.cat2.pet1()
}
else {
System.out.println("给常抱歉,本店不能提供你所需要的宠物:"+name)
}
}
}
}
6.测试类
package 宠物商店
import java.util.Scanner
public class 测试类 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in)
System.out.println("**********欢迎来到宠物商店在线系统**********")
System.out.println("我们将为您提供最优秀的服务,请您做以下选择")
System.out.println("1:员工登录\t2:尊敬的顾客")
int i = scanner.nextInt()
if(i==1){
System.out.println("亲爱的员工您好,请选择您要进行的 *** 作:")
System.out.println("1:对宠物进行上架 *** 作\t2:对宠物进行下架 *** 作")
int n = scanner.nextInt()
if(n==1) {
//转到上架类
上架类.SJ()
}
if(n==2) {
//转到下架类
下架类.XJ()
}
}
if(i==2) {
查询类.CX()
}
}
}
楼主,给你给建议,如果,是很急的问题,建议把分标高点(80~120比较适合你的问题),5个编程题,却只给20分,就是全做了,你也只加50分。。这样做很难在你希望的时间内解决问题的,也就是我这种菜鸟会在这里帮你敲代码。。不是别人不帮你,只是这种分的问题,没有多少高手注视,而像我这种注视的,却不能完全解决。你说朋友让你帮他做两个题,可以发出来就是五个。。。
画图题我不太会,先做了两个,明天再给你把第二题补上,然后我研究下画图题,看能不能帮你解决。。
第二题:
import java.awt.*
import java.awt.event.*
import javax.swing.JTextArea
public class L {
public static void main(String[] args) {
new C2()
}
}
class C2 extends Frame {
JTextArea t1, t2
Font f1, f2
C2() {
f1 = new Font("黑体", Font.PLAIN, 24)
f2 = new Font("宋体", Font.BOLD + Font.ITALIC, 16)
t1 = new JTextArea()
t2 = new JTextArea()
t1.setFont(f1)
t1.setText("张三")
t2.setFont(f2)
t2.setText("091班 091109")
add(t1, BorderLayout.NORTH)
add(t2, BorderLayout.CENTER)
setLayout(new FlowLayout())
setBounds(100, 100, 180, 120)
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0)
}
})
setVisible(true)
validate()
}
}
第三题:
import java.awt.*
import java.awt.event.*
public class L {
public static void main(String[] args) {
new C3()
}
}
class C3 extends Frame implements ActionListener {
Label l
TextField tf
TextArea ta
Button b, b1
C3() {
setLayout(new FlowLayout())
l = new Label("请输入姓名:")
l.setBackground(Color.cyan)
tf = new TextField(20)
ta = new TextArea(5, 20)
b = new Button(" 确定 ")
b.addActionListener(this)
b1 = new Button(" 取消 ")
b1.addActionListener(this)
add(l)
add(tf)
add(b)
add(b1)
add(ta)
setBounds(100, 100, 180, 225)
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0)
}
})
setVisible(true)
validate()
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == b) {
String str = "您好," + tf.getText() + ",欢迎访问\n"
ta.append(str)
} else if (e.getSource() == b1) {
ta.setText(null)
}
}
}
第五题:
import java.awt.*
import java.awt.event.*
import javax.swing.JOptionPane
public class L {
public static void main(String[] args) {
new C5()
}
}
class C5 extends Frame implements ItemListener {
Label l
CheckboxGroup choice
Checkbox c1, c2, c3, c4
C5() {
setLayout(new FlowLayout())
l = new Label("拉丁文第一个字母是: ")
l.setBackground(Color.cyan)
choice = new CheckboxGroup()
c1 = new Checkbox("A", false, choice)
c2 = new Checkbox("B", false, choice)
c3 = new Checkbox("C", false, choice)
c4 = new Checkbox("D", false, choice)
c1.addItemListener(this)
c2.addItemListener(this)
c3.addItemListener(this)
c4.addItemListener(this)
add(l)
add(c1)
add(c2)
add(c3)
add(c4)
setBounds(100, 100, 180, 120)
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0)
}
})
setVisible(true)
validate()
}
public void itemStateChanged(ItemEvent e) {
Checkbox b = (Checkbox) e.getSource()
if (b.getLabel() == "A") {
JOptionPane.showMessageDialog(this, "选择正确")
}else
JOptionPane.showMessageDialog(this, "选择错误,答案选A")
}
}
画图的真不怎么会。。抱歉啊。。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)