`
angzhe
  • 浏览: 316 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

宠物商店

阅读更多
interface ILink {
    public void add(Object data) ;    // 这个方法向链表之中保存对象
    public int size() ;    // 取得链表的长度
    public boolean isEmpty() ;    // 判断该链表是否有数据
    public Object get(int index) ;    // 根据索引取得链表中保存的数据
    public boolean contains(Object obj) ;// 查询某个数据是否存在
    public void remove(Object obj) ;    // 删除不需要的数据
    public void set(int index,Object data) ;    // 根据索引修改指定数据
    public void clean() ;    // 清空链表
    public Object [] toArray() ;    // 变为对象数组后输出
}
class LinkImpl implements ILink {
    // Node类可以描述出对象保存的先后顺序
    private class Node {    // 这个类用户不需要知道,只有本类使用
        private Object data ;    // 保存数据
        private Node next ;    // 保存下一个节点
        // 保证每一个Node创建的时候都有要保存的数据
        public Node(Object data) {
            this.data = data ;
        }
        // 第1次执行:this = LinkImpl.root
        // 第2次执行:this = LinkImpl.root.next
        // 第3次执行:this = LinkImpl.root.next.next
        public void addNode(Node newNode) {    // 设置节点关系
            if (this.next == null) {    // 当前节点之后有位置
                this.next = newNode ;    // 保存新节点
            } else {    // 如果没有位置
                this.next.addNode(newNode) ;
            }
        }
        // 第1次执行:this = LinkImp.root
        // 第2次执行:this = LinkImp.root.next
        public Object getNode(int index) {
            if (LinkImpl.this.foot ++ == index) {
                return this.data ;
            } else {
                return this.next.getNode(index) ;
            }
        }
        // 第1次:this = LinkImpl.root.next,previous = LinkImp.root
        public void removeNode(Node previous,Object obj) {
            if (this.data.equals(obj)) {
                previous.next = this.next ;
            } else {    // 之前已经判断过要删除的数据存在
                this.next.removeNode(this,obj) ;
            }
        }
        public boolean containsNode(Object data) {
            if (this.data.equals(data)) {
                return true ;
            } else {
                if (this.next != null) {
                    return this.next.containsNode(data) ;
                } else {
                    return false ;
                }
            }
        }
        public void setNode(Object obj,int index) {
            if (LinkImpl.this.foot ++ == index) {
                this.data = obj ;
            } else {
                this.next.setNode(obj,index) ;
            }
        }
        public void toArrayNode() {
            LinkImpl.this.retObj [LinkImpl.this.foot ++] = this.data ;
            if (this.next != null) {
                this.next.toArrayNode() ;
            }
        }
    }
    // *******************************
    private Node root ;    // 表示根节点
    private int count = 0 ;
    private int foot = 0 ;    // 查找使用
    private Object retObj [] ;    // 返回的对象数组
    // ************* 覆写接口中的方法 **********
    public void add(Object data) {
        // 1、数据本身不包含有先后的顺序
        // 需要将数据包装在Node类对象之中,因为Node可以描述先后关系
        if (data == null) {    // 数据为null
            return ;    // 结束调用
        }
        // 2、将数据包装在Node类对象之中
        Node newNode = new Node(data) ;
        // 3、处理根元素
        if (this.root == null) {    // 现在没有根元素
            this.root = newNode ;    // 将第一个节点保存为根元素
        } else {
            this.root.addNode(newNode) ;// 交由Node处理
        }
        this.count ++ ;
    }
    public int size() {
        return this.count ;
    }
    public boolean isEmpty() {
        return this.count == 0 && this.root == null ;
    }
    public Object get(int index) {
        if (this.isEmpty()) {    // 为空元素
            return null ;
        }
        if (index >= this.count) {    // 超过了保存数量
            return null ;
        }
        this.foot = 0 ;
        return this.root.getNode(index) ;
    }
    public boolean contains(Object obj) {
        if (this.isEmpty()) {
            return false ;
        }
        return this.root.containsNode(obj) ;
    }
    public void remove(Object obj) {
        if (!this.contains(obj)) {    // 数据不存在
            return ;    // 结束方法
        }
        // 链表里面最关注的是根节点
        if (this.root.data.equals(obj)) {    // 根节点要删除
            this.root = this.root.next ;    // 下一个作为根节点
        } else {    // 根节点判断完了
            this.root.next.removeNode(this.root,obj) ;
        }
        this.count -- ;
    }
    public void set(int index,Object data){
        this.foot = 0 ;
        if (this.isEmpty()) {    // 为空元素
            return ;
        }
        if (index >= this.count) {    // 超过了保存数量
            return ;
        }
        this.root.setNode(data,index) ;
    }
    public void clean() {
        this.root = null ;
        this.count = 0 ;
    }
    public Object [] toArray() {
        if (this.isEmpty()) {
            return null ;
        }
        this.foot = 0 ;
        this.retObj = new Object [this.count] ;
        this.root.toArrayNode() ;
        return this.retObj ;
    }
}
interface Pet{//定义宠物标准
    public String getName();
    public int getAge();
}
class PetShop
{
    private ILink allPets;
    public PetShop(){
        this.allPets = new LinkImpl();
    }
    public void add(Pet pet){
        this.allPets.add(pet);
    }
    public void delete(Pet pet){
        this.allPets.remove(pet);
    }
    public ILink search(String keyWord){
        ILink result=new LinkImpl();
        Object obj[]=this.allPets.toArray();
        for (int x=0;x<obj.length ;x++ )
        {
            Object o = obj[x];
            Pet p = (Pet)o;
            if(p.getName().contains(keyWord)){
                result.add(p);
            }
        }
        return result;
    }
}
class Dog implements Pet
{
    private String name;
    private int age;
    public Dog(String name,int age){
        this.name=name;
        this.age=age;
    }
    public String getName(){
        return this.name;
    }
    public int getAge(){
        return this.age;
    }
    public boolean equals(Object obj){
        if(this==obj){
            return true;
        }
        if(obj==null){
            return false;
        }
        if(!(obj instanceof Dog)){
            return false;
        }
        Dog p = (Dog)obj;
        return this.name.equals(p.name)&&this.age==p.age;
    }
    public String toString(){
    return"狗名字:"+this.name+",年龄:"+this.age;
    }
}
class Cat implements Pet
{
    private String name;
    private int age;
    public Cat(String name,int age){
        this.name=name;
        this.age=age;
    }
    public String getName(){
        return this.name;
    }
    public int getAge(){
        return this.age;
    }
    public boolean equals(Object obj){
        if(this==obj){
            return true;
        }
        if(obj==null){
            return false;
        }
        if(!(obj instanceof Cat)){
            return false;
        }
        Cat c = (Cat)obj;
        return this.name.equals(c.name)&&this.age==c.age;
    }
        public String toString(){
        return"猫名字:"+this.name+",年龄:"+this.age;
    }
}
public class Test
{
    public static void main(String args[]){
        PetShop shop=new PetShop();
        shop.add(new Dog("黑毛",1));
        shop.add(new Dog("小毛",1));
        shop.add(new Dog("大毛",1));
        shop.add(new Dog("毛毛", 1));
        shop.add(new Cat("黑小猫",1));
        shop.add(new Cat("黑大猫",1));
        ILink result = shop.search("黑");
        Object obj[]=result.toArray();
        for(int x=0;x<obj.length;x++){
            System.out.println(obj[x]);
        }
    }
}
分享到:
评论

相关推荐

    java宠物店

    Java宠物店是一个典型的基于Java技术开发的管理应用程序,它集成了用户登录、信息修改、数据存储以及商品购买等多种功能,为模拟实际宠物商店的运营提供了便捷的平台。通过这个项目,我们可以深入学习Java编程语言、...

    宠物商店.7z

    宠物商店项目是北大青鸟ACCP8.0课程中的一部分,专注于Java数据库编程的教学。这个项目旨在帮助学生理解和掌握如何使用Java语言与数据库进行交互,特别是在实际应用中的操作。在这个项目中,学生们将使用IntelliJ ...

    java jdbc宠物商店

    "Java JDBC宠物商店"是一个基于Java编程语言,利用JDBC(Java Database Connectivity)技术与MySQL数据库交互,构建的Web应用程序。这个系统旨在模拟一个实际的宠物商店运营环境,可能包括宠物展示、购买、用户管理...

    asp.net 网上宠物商店

    【asp.net 网上宠物商店】项目是一个基于ASP.NET技术构建的在线电子商务平台,专门用于销售宠物及其相关产品。这个项目充分利用了ASP.NET的强大功能,结合SQL Server 2000作为后端数据库,为用户提供了一个高效、...

    宠物店管理系统.rar

    宠物店管理系统是一个基于互联网技术,运用JavaWeb开发的软件应用,旨在将传统的宠物店运营模式与现代信息技术相结合,提升管理效率和服务质量。该系统利用jsp(JavaServer Pages)作为前端展示,结合MySQL数据库...

    petshop 宠物商店源代码

    〖面向对象(高级)〗_实例分析:宠物商店源代码分析: 业务实体和业务逻辑分开的,并且在表示层上也有逻辑处理。业务实体部分从前到后都有用到。实际上,在传递数据的时候就是传递的一个实体,而不是像我们一般用的一...

    Bootstrap响应式宠物店铺网站模板,适用于宠物商店模板

    在宠物商店模板中,这些插件可以用于创建吸引人的滑动图片展示,展示宠物商品或者店内活动。 4. **易用性和可定制性**:Bootstrap的代码结构清晰,易于理解和修改。设计师可以根据宠物商店的品牌特色和需求,通过...

    C# asp.net宠物商店管理系统(带完整数据库)

    【C# ASP.NET宠物商店管理系统】是一个基于C#编程语言和ASP.NET框架开发的Web应用程序,主要用于管理和运营一个在线宠物商店。系统集成了完整的数据库,能够处理包括商品管理、订单处理、用户账户管理在内的多种业务...

    《网上宠物商店》ASP.NET

    《网上宠物商店》ASP.NET项目是一个典型的电子商务应用实例,它结合了ASP.NET技术,用于创建一个功能完善的在线购物平台,专注于宠物产品销售。这个项目涵盖了Web开发中的多个关键知识点,包括但不限于以下方面: 1...

    java项目案例:宠物商店完整版.rar

    在宠物商店里,宠物主人可以出卖、购买宠物 每一笔买入、卖出的业务,店家都会记录在账 商店可以根据需求自己培育宠物品种 系统角色 宠物、主人、宠物商店、账目 提交结果 创建数据库表的脚本文件、系统类图、程序...

    宠物商店项目

    宠物商店项目是一个旨在连接宠物主人和宠物商店的交互平台,主要功能包括宠物购买与销售、账单管理和新品种培育。这个项目使用了Java作为后端开发语言,Oracle作为数据库管理系统,构建了一个完整的业务流程。 首先...

    宠物商店源码

    宠物商店源码是一个基于MVC(Model-View-Controller)模式开发的应用程序,主要用于演示和教育目的,让学生能够逐步理解并实践三层架构的设计思想。在IT行业中,三层架构是一种常见的软件设计模式,它将应用程序分为...

    新手小项目(宠物商店)_含类图和基本实现思路和效果图_数据库以及源码

    【宠物商店】是一个适合新手入门的Java编程项目,旨在帮助初学者掌握面向对象设计和数据库应用的基本知识。项目中,开发者模拟了一个简单的宠物商店管理系统的实现,包括了类的设计、数据库交互以及用户界面的展示。...

    Python项目开发实战_PetStore宠物商店_编程案例解析实例详解课程教程.pdf

    《Python项目开发实战_PetStore宠物商店_编程案例解析实例详解课程教程》是关于使用Python语言构建PetStore宠物商店项目的实战教程。项目涵盖了Python面向对象编程、wxPython图形用户界面编程以及Python数据库编程等...

    Sun J2EE 宠物店例子

    《Sun J2EE宠物店例子》是一个经典的教程,它深入浅出地讲解了J2EE(Java 2 Platform, Enterprise Edition)技术在实际应用中的运用,特别是如何构建一个完整的电子商务平台。这个例子通过一个模拟的宠物商店应用,...

    java宠物店源代码

    Java宠物店源代码是一个经典的Java编程学习项目,它模拟了一个简单的宠物商店的业务流程,涵盖了对象导向编程、GUI设计、数据库交互等多个Java开发的核心概念。这个项目通常用于教学目的,帮助初学者理解如何将实际...

    Java 数据库:宠物商店项目

    宠物商店项目是一个基于Java开发的数据库应用程序,旨在模拟现实世界的宠物商店运营,提供宠物主人与商店之间的交互功能。该项目的核心目标是实现一个完整的业务流程,包括用户登录、宠物买卖、账单管理和新品培育等...

    宠物店管理系统项目java代码 基于java的宠物管理系统

    宠物店管理系统项目java代码 基于java的宠物管理系统 宠物管理代码 简单的Java练习,作为大一狗的我,写的一个作业, 作为一名新人,这是我这个废柴大一狗大一狗的练习作业,要用什么似懂非懂的DAO程序设计模式写要求...

    宠物商店的java代码

    宠物商店的Java代码通常涉及到一个基于Java编程语言的宠物商店管理系统的实现,它可能包括了对宠物信息、库存管理、客户订单以及支付等核心功能的处理。在这个项目中,开发者利用了Java Database Connectivity (JDBC...

    宠物店创业计划书.doc

    宠物店创业计划书 1、执行总结 项目介绍:该宠物店致力于为顾客提供全方位的宠物服务,包括但不限于宠物美容、宠物用品销售、宠物寄养、防疫接种以及宠物的个性化造型设计。我们的目标是打造一个集专业性与创新性于...

Global site tag (gtag.js) - Google Analytics