目录结构
项目开始
在model包中创建Person.java实体类和Room.java实体类
Person.java
package com.sushe.model;
public class Person {
private int pid;
private String name;
private String sex;
public int getPid() {
return pid;
}
public void setPid(int pid) {
this.pid = pid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Person() {
}
public Person(int pid) {
this.pid = pid;
}
public Person(int pid, String name) {
this.pid = pid;
this.name = name;
}
public Person(int pid, String name, String sex) {
this.pid = pid;
this.name = name;
this.sex = sex;
}
@Override
public String toString() {
return "Person{" +
"pid=" + pid +
", name='" + name + '\'' +
", sex='" + sex + '\'' +
'}';
}
}
Room.java
package com.sushe.model;
import java.util.Arrays;
public class Room {
private int rid;
private Person[] people;
private String type;
public int getRid() {
return rid;
}
public void setRid(int rid) {
this.rid = rid;
}
public Person[] getPeople() {
return people;
}
public void setPeople(Person[] people) {
this.people = people;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public Room() {
}
public Room(int rid, Person[] people, String type) {
this.rid = rid;
this.people = people;
this.type = type;
}
@Override
public String toString() {
return "房间号:"+rid+",宿舍成员:"+people+",宿舍类型:"+type;
}
}
编写dao层,创建PersonDao.java和RoomDao.java接口,编写方法
PersonDao.java
package com.sushe.dao;
import com.sushe.model.Person;
public interface PersonDao {
//1宿舍人员初始化
void doInitPerson();
//2新增一个人员到宿舍
boolean doAddPersonToRoom(Person person);
//3.删除一个人员
void doDeletePerson(int id);
//4.修改人员信息
void doUpdatePerson(Person person);
//5.根据学生编号查询信息
void doFindById(int id);
//6查询住宿信息
void doPrintAll();
}
RoomDao.java
package com.sushe.dao;
import com.sushe.model.Room;
public interface RoomDao {
//1.准备好宿舍
Room[] getRooms();
}
写完接口就要对里面的方法进行实现(implement)
PersonDaoImpl.java
package com.sushe.dao.Impl;
import com.sushe.dao.PersonDao;
import com.sushe.model.Person;
import com.sushe.model.Room;
import com.sushe.util.PersonUtil;
public class PersonDaoImpl implements PersonDao {
//获取宿舍部分
RoomDaoImpl rdi=new RoomDaoImpl();
Room[] rooms=rdi.getRooms();
//1.初始化人
@Override
public void doInitPerson() {
Person p1=new Person(1001,"刘德华","男");
Person p2=new Person(1002,"刘华","女");
Person p3=new Person(1003,"刘德","男");
//男生
rooms[0].getPeople()[0]=p1;
rooms[0].getPeople()[1]=p3;
//女生
rooms[5].getPeople()[0]=p2;
}
/**
* 新增数据
* @param person 来源于PersonUtil
* @return true 表示成功 false 表示失败
*/
@Override
public boolean doAddPersonToRoom(Person person) {
if (person.getSex().equals("男")){ //代表男生宿舍
for (int i = 0; i <6 ; i++) { //宿舍
for (int j=0;j<rooms[i].getPeople().length;j++){ //宿舍成员
// System.out.println(rooms[i].getPeople()[j].getPid());
if (rooms[i].getPeople()[j]==null){
rooms[i].getPeople()[j]=person;
return true;
}
}
}
}else if(person.getSex().equals("女")){ //代表女生宿舍
for (int i = 6; i <rooms.length ; i++) { //宿舍
for (int j=0;j<rooms[i].getPeople().length;j++){ //宿舍成员
if (rooms[i].getPeople()[j]==null){
rooms[i].getPeople()[j]=person;
return true;
}
}
}
}
return false;
}
@Override
public void doDeletePerson(int id) {
for (int i = 0; i <rooms.length ; i++) {//宿舍
if (rooms[i].getPeople()!=null){
for (int j=0;j<rooms[i].getPeople().length;j++){//宿舍成员
if (rooms[i].getPeople()[j]!=null){
if (id==rooms[i].getPeople()[j].getPid()){
rooms[i].getPeople()[j]=null;
System.out.println("删除成功");
break;
}else {
System.out.println(rooms[i].getRid()+"号寝室无此学生编号");
}
}
}
break;
}
}
}
@Override
public void doUpdatePerson(Person person) {
for (int i = 0; i <rooms.length ; i++) {//宿舍
for (int j=0;j<rooms[i].getPeople().length;j++){//宿舍成员
if (rooms[i].getPeople()[j]!=null){
if (person.getPid()==rooms[i].getPeople()[j].getPid()){
rooms[i].getPeople()[j].setName(person.getName());
break;
}else {
System.out.println(rooms[i].getRid()+"号寝室无此学生编号");
}
}
}
}
}
@Override
public void doFindById(int id) {
for (int i = 0; i <rooms.length ; i++) {//宿舍
if (rooms[i].getPeople()!=null) {
for (int j = 0; j < rooms[i].getPeople().length; j++) {//宿舍成员
if (rooms[i].getPeople()[j] != null) {
if (id == rooms[i].getPeople()[j].getPid()) {
System.out.println(rooms[i].getPeople()[j]);
break;
} else {
System.out.println(rooms[i].getRid() + "号寝室无此学生编号");
}
}
}
break;
}
}
}
@Override
public void doPrintAll() {
//首先找到宿舍
for (int i = 0; i <rooms.length ; i++) {
int num = 0; //刚开始每个宿舍没有人
//打印宿舍信息
//打印人员信息
if (rooms[i].getPeople()!=null){
for (int j=0;j<rooms[i].getPeople().length;j++){
if (rooms[i].getPeople()[j]!=null){
num++;
}
}
System.out.println("当期宿舍为:"+rooms[i].getRid()+",此宿舍当前人数为:"+num+",当前宿舍类型:"+rooms[i].getType());
for (int j=0;j<rooms[i].getPeople().length;j++){
if (rooms[i].getPeople()[j]!=null){
System.out.println(rooms[i].getPeople()[j]);
}
}
}
System.out.println();
}
}
// public static void main(String[] args) {
// PersonDao pd=new PersonDaoImpl();
// pd.doInitPerson();
// PersonUtil pu=new PersonUtil();
// Person person=pu.getPerson("新增");
// pd.doAddPersonToRoom(person);
// pd.doPrintAll();
// }
}
RoomDaoImpl.java
package com.sushe.dao.Impl;
import com.sushe.dao.RoomDao;
import com.sushe.model.Person;
import com.sushe.model.Room;
public class RoomDaoImpl implements RoomDao {
Room[] rooms = new Room[10];
//1.获取宿舍提供有效住宿.
@Override
public Room[] getRooms() {
//1.定义好前6个房间为男生宿舍
for (int i = 0; i <6 ; i++) {
rooms[i] = new Room(i+100,new Person[6]," 男");
}
//1.定义好后4个房间为女生宿舍
for (int i = 6; i <rooms.length ; i++) {
rooms[i] = new Room((i+100),new Person[6]," 女");
}
return rooms;
}
}
再写一个工具类(util)
PersonUtil.java
package com.sushe.util;
import com.sushe.model.Person;
import java.util.Scanner;
public class PersonUtil {
Scanner in = new Scanner(System.in);
public Person getPerson(String str){
System.out.println("请您输入需要"+str+"的人员编号:");
int pid=in.nextInt();
System.out.println("请您输入需要"+str+"的人员姓名:");
String pname=in.next();
System.out.println("请您输入需要"+str+"的人员性别:");
String psex=in.next();
Person person=new Person(pid,pname,psex);
return person;
}
public int getId(String str){
System.out.println("请您输入需要"+str+"的人员编号:");
int pid=in.nextInt();
return pid;
}
}
然后再是写service层(业务层)
PersonService.java
package com.sushe.service;
import com.sushe.model.Person;
public interface PersonService {
void doInitPerson();
//2新增一个人员到宿舍
boolean doAddPersonToRoom(Person person);
//3.删除一个人员
void doDeletePerson(int id);
//4.修改人员信息
void doUpdatePerson(Person person);
//5.根据学生编号查询信息
void doFindById(int id);
//6查询住宿信息
void doPrintAll();
}
service层的实现层
PersonServiceImpl.java
package com.sushe.service.Impl;
import com.sushe.dao.Impl.PersonDaoImpl;
import com.sushe.model.Person;
import com.sushe.service.PersonService;
public class PersonServiceImpl implements PersonService {
PersonDaoImpl pdidao=new PersonDaoImpl();
@Override
public void doInitPerson() {
pdidao.doInitPerson();
}
@Override
public boolean doAddPersonToRoom(Person person) {
boolean b= pdidao.doAddPersonToRoom(person);
if (b){
System.out.println("入住成功");
return true;
}else {
System.out.println("新增失败");
return false;
}
}
@Override
public void doDeletePerson(int id) {
pdidao.doDeletePerson(id);
}
@Override
public void doUpdatePerson(Person person) {
pdidao.doUpdatePerson(person);
}
@Override
public void doFindById(int id) {
pdidao.doFindById(id);
}
@Override
public void doPrintAll() {
pdidao.doPrintAll();
}
}
最后就是一个ui界面(Appui)
AppUi.java
package com.sushe.ui;
import com.sushe.model.Person;
import com.sushe.model.User;
import com.sushe.service.Impl.PersonServiceImpl;
import com.sushe.service.Impl.UserServiceImpl;
import com.sushe.util.PersonUtil;
import com.sushe.util.UserUtil;
import java.util.Scanner;
public class AppUi {
Scanner in=new Scanner(System.in);
PersonServiceImpl psi=new PersonServiceImpl();
UserServiceImpl usi=new UserServiceImpl();
UserUtil userUtil=new UserUtil();
public void getMenu(){
System.out.println("\t欢迎使用宿舍后台管理系统");
//初始化
psi.doInitPerson();
System.out.println("1.女生管理\t2.宿舍管理\t3.注销用户");
System.out.println("请选择菜单(1-3):");
int choice=in.nextInt();
switch (choice){
case 1:
break;
case 2:
getSuSheMenu();
break;
case 3:
break;
case 4:
System.exit(0);
break;
}
}
public void getSuSheMenu(){
System.out.println("1.增加人员\t2.删除人员\t.3.修改人员\t4.单查信息\t5.全查信息\t6.返回上层");
System.out.println("请选择菜单(1-6)");
int choice=in.nextInt();
switch (choice){
case 1:
Person person=new PersonUtil().getPerson("新增");
psi.doAddPersonToRoom(person);
psi.doPrintAll();
break;
case 2:
int m=new PersonUtil().getId("删除");
psi.doDeletePerson(m);
break;
case 3:
Person person1=new PersonUtil().getPerson("修改");
psi.doUpdatePerson(person1);
psi.doPrintAll();
break;
case 4:
int n=new PersonUtil().getId("查询");
psi.doFindById(n);
break;
case 5:
psi.doPrintAll();
break;
case 6:
System.exit(0);
break;
}
}
public void loginMenu(){
// usi.userInit();
System.out.println("您尚未登录,请先登录");
System.out.println("\t1.登录\t2.注册\t3.退出");
System.out.println("请选择您的操作(1-3):");
int choise=in.nextInt();
AppUi appUi=new AppUi();
switch (choise){
case 1:
User user=userUtil.getUser();
boolean b=usi.login(user);
if (b){
appUi.getMenu();
}
break;
case 2:
User user1=userUtil.getUser();
boolean b1=usi.reg(user1);
if (b1){
appUi.loginMenu();
}
break;
case 3:
System.exit(0);
break;
}
}
public static void main(String[] args) {
AppUi appUi=new AppUi();
appUi.getMenu();
// appUi.loginMenu();
}
}
最终显示界面