用java写一个简易的二手拍卖系统并附带代码注释

下面是一个简单的Java代码实现:

import java.util.ArrayList;
import java.util.Date;

public class AuctionSystem {
    // 用户类
    class User {
        String username;
        String password;
        ArrayList<AuctionItem> items = new ArrayList<>();
        ArrayList<Bid> bids = new ArrayList<>();

        public User(String username, String password) {
            this.username = username;
            this.password = password;
        }

        // 发布拍卖信息
        public void publishAuctionItem(String itemName, String description, double startingPrice, double reservePrice, Date biddingEndTime, double deposit) {
            AuctionItem item = new AuctionItem(itemName, description, startingPrice, reservePrice, biddingEndTime, deposit, this);
            items.add(item);
        }

        // 删除拍卖信息
        public void deleteAuctionItem(AuctionItem item) {
            items.remove(item);
        }

        // 进行出价竞拍
        public void placeBid(AuctionItem item, double amount) {
            Bid bid = new Bid(this, item, amount);
            bids.add(bid);
            item.processBid(bid);
        }

        // 注销账户
        public void logout() {
            // 清空用户信息
            username = null;
            password = null;
            items.clear();
            bids.clear();
        }
    }

    // 拍卖物品类
    class AuctionItem {
        String itemName;
        String description;
        double startingPrice;
        double reservePrice;
        Date biddingEndTime;
        double deposit;
        User seller;
        User winningBidder; // 当前最高出价者
        double winningBid; // 当前最高出价
        boolean isSold; // 是否售出

        public AuctionItem(String itemName, String description, double startingPrice, double reservePrice, Date biddingEndTime, double deposit, User seller) {
            this.itemName = itemName;
            this.description = description;
            this.startingPrice = startingPrice;
            this.reservePrice = reservePrice;
            this.biddingEndTime = biddingEndTime;
            this.deposit = deposit;
            this.seller = seller;
        }

        // 处理出价
        public void processBid(Bid bid) {
            if (bid.amount > winningBid) {
                winningBidder = bid.bidder;
                winningBid = bid.amount;
            }
        }

        // 判断是否售出
        public void updateState() {
            if (new Date().after(biddingEndTime)) {
                if (winningBid <= reservePrice) { // 最高出价未达到保留价,拍卖失败
                    System.out.println("Auction for " + itemName + " has ended. Reserve price not met. Item unsold.");
                    isSold = false;
                } else { // 最高出价达到保留价,拍卖成功
                    System.out.println("Auction for " + itemName + " has ended. Item sold to " + winningBidder.username + " for " + winningBid + ".");
                    isSold = true;
                }
            }
        }
    }

    // 出价类
    class Bid {
        User bidder;
        AuctionItem item;
        double amount;

        public Bid(User bidder, AuctionItem item, double amount) {
            this.bidder = bidder;
            this.item = item;
            this.amount = amount;
        }
    }

    // 拍卖系统类
    ArrayList<User> users = new ArrayList<>();
    ArrayList<AuctionItem> items = new ArrayList<>();

    // 用户注册
    public void register(String username, String password) {
        users.add(new User(username, password));
    }

    // 用户登录
    public User login(String username, String password) {
        for (User user : users) {
            if (user.username.equals(username) && user.password.equals(password)) {
                return user;
            }
        }
        return null;
    }

    // 用户注销账户
    public void logout(User user) {
        users.remove(user);
        user.logout();
    }

    // 获取所有拍卖物品列表
    public ArrayList<AuctionItem> getAuctionItems() {
        return items;
    }
}

以上代码实现了一个简单的二手拍卖系统,包括了所有必要的功能。注意,在实际开发中,还需要进行一系列安全认证、数据库存储等操作,以保证系统的稳定性和安全性。

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

需要什么私信我

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值