package com.pet.view;
import java.util.List;
import java.util.Scanner;
import com.pet.dao.PetDao;
import com.pet.entity.Master;
import com.pet.entity.Pet;
import com.pet.util.ReflectUtil;
/**
* 管理界面视图
*
* @author 小明
*
*/
public class ManagerView {
// PetDao对外引用
private PetDao petDao;
// 主人对象引用
private Master master;
// 用于接收输入的对象
Scanner input = new Scanner(System.in);
public ManagerView(Master master) {
super();
this.master = master;
// 从配置文件中配置的petDao反射生成PetDao引用的对象
petDao = (PetDao) ReflectUtil.getInstance("petDao");
}
/**
* 主菜单
*/
private void mainMenu() {
System.out.println("********主菜单********");
System.out.println("1. 查询未被领养宠物");
System.out.println("2. 领养宠物");
System.out.println("3. 根据编号查询宠物信息");
System.out.println("4. 查询自己已领养宠物");
System.out.println("5. 放弃自己领养的宠物");
System.out.println("0. 退出系统");
System.out.print("请选择:");
int choice = input.nextInt();
switch (choice) {
case 1: // 查询未被领养宠物
findNotAdoptPets();
break;
case 2: // 领养宠物
adopt();
break;
case 3: // 根据编号查询宠物信息
findByPetId();
break;
case 4: // 查询自己已领养宠物
findSelfAdoptPets();
break;
case 5: // 放弃自己领养的宠物
giveUpPet();
break;
case 0: // 退出系统
System.out.println("感谢使用本宠物管理系统,再见!");
System.exit(0);
break;
default: // 其它情况
System.out.println("选择有误...");
}
}
/**
* 查询未被领养宠物
*/
private void findNotAdoptPets() {
// 查询未被领养的宠物,得到列表对象
List<Pet> notAdopt = petDao.getNotAdopt();
if (notAdopt.size() > 0) { // 列表中有元素,则表示有未被领养宠物
System.out.println("未被领养的宠物信息:");
for (Pet pet : notAdopt) {
System.out.println(pet);
}
} else {
System.out.println("系统中所有宠物均已被领养...");
}
}
/**
* 领养
*/
private void adopt() {
// 查询未被领养宠物
List<Pet> notAdopt = petDao.getNotAdopt();
if (notAdopt.size() <= 0) {
System.out.println("系统中已没有宠物可以被领养,请稍候再来...");
return;
}
System.out.println("以下宠物可被领养:");
for (Pet pet : notAdopt) {
System.out.println(pet);
}
System.out.print("请输入想领养的宠物编号:");
int id = input.nextInt();
// 根据输入编号查找到该宠物
Pet adoptPet = null;
for (Pet pet : notAdopt) {
if (id == pet.getId()) {
adoptPet = pet;
break;
}
}
if (adoptPet != null) { // 输入编号宠物存在
// 将查询到的宠物与主人关联起来
adoptPet.setMaster(master);
// 更新宠物信息
petDao.update(adoptPet);
System.out.println("宠物领养成功...");
}
}
/**
* 根据编号查询宠物信息
*/
private void findByPetId() {
System.out.print("请输入宠物编号:");
int id = input.nextInt();
// 根据编号查询宠物
Pet pet = petDao.getById(id);
if (pet != null)
System.out.println(pet);
else
System.out.println("没有该编号宠物信息");
}
/**
* 查询自己已领养宠物
*/
private void findSelfAdoptPets() {
// 查询自己领养的宠物
List<Pet> pets = petDao.getByMaster(master);
if (pets.size() > 0) {
System.out.println("你已领养如下宠物:");
for (Pet pet : pets) {
System.out.println(pet);
}
} else {
System.out.println("你还未领养任何宠物 ...");
}
}
/**
* 放弃自己领养的宠物
*/
private void giveUpPet() {
// 查询自己已领养的宠物
List<Pet> pets = petDao.getByMaster(master);
if (pets.size() <= 0) {
System.out.println("你还未领养任何宠物,请不要随便放弃...");
return;
}
System.out.println("你已领养如下宠物:");
for (Pet pet : pets) {
System.out.println(pet);
}
System.out.print("请输入想弃养的宠物编号:");
int id = input.nextInt();
Pet giveUpPet = null;
for (Pet pet : pets) { // 查找待弃养的宠物
if (id == pet.getId()) {
giveUpPet = pet;
break;
}
}
if (giveUpPet != null) {
giveUpPet.setMaster(null); // 取消宠物与主人的关联
System.out.print("是否真的要残忍的放弃" + giveUpPet.getName() + "(y/n)?");
String answer = input.next();
if ("y".equals(answer)) { // 确定要放弃收养
petDao.update(giveUpPet);
System.out.println("你已经放弃了你的宠物" + giveUpPet.getName());
}
}
}
/**
* 显示菜单,循环实现菜单所列功能项
*/
public void show() {
while (true) {
mainMenu();
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
PetStore.7z (40个子文件)
PetStore
.project 384B
src
com
pet
view
ManagerView.java 4KB
LoginView.java 2KB
dao
impl
MasterDaoImpl.java 945B
PetDaoImpl.java 4KB
MasterDao.java 360B
PetDao.java 734B
util
JdbcUtil.java 4KB
Configuration.java 2KB
ReflectUtil.java 588B
test
Test.java 160B
entity
Pet.java 2KB
Penguin.java 953B
Dog.java 989B
Master.java 2KB
config
config.dtd 322B
config.xml 519B
lib
jaxen-1.1-beta-6.jar 239KB
dom4j-1.6.1.jar 307KB
mysql-connector-java-5.1.15-bin.jar 768KB
.settings
org.eclipse.jdt.core.prefs 598B
.classpath 500B
bin
com
pet
view
ManagerView.class 5KB
LoginView.class 2KB
dao
impl
PetDaoImpl.class 5KB
MasterDaoImpl.class 2KB
PetDao.class 438B
MasterDao.class 189B
util
ReflectUtil.class 1KB
Configuration.class 3KB
JdbcUtil.class 4KB
Configuration$1.class 926B
test
Test.class 446B
entity
Dog.class 2KB
Master.class 3KB
Pet.class 2KB
Penguin.class 2KB
config
config.dtd 322B
config.xml 519B
test.sql 3KB
共 40 条
- 1
江湖人称小明
- 粉丝: 149
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页