package com.day6;
import java.util.Arrays;
import java.util.Scanner;
public class HospitalUtil {
Scanner sc = new Scanner(System.in);
//定义一个医院的数组装多个医院对象
Hospital[] hospital = new Hospital[10];
//定义变量用于对象医院id的自增
int hosId = 104;
//定义一个部门的索引自增
static int deptId = 2107;
//初始化
{
Hospital hos1 = new Hospital();
hos1.setHospitalId(101);
hos1.setHospitalName("华西医院");
String[] address1 = new String[3];
address1[0] = "北京市朝阳区朝阳公园南路";
address1[1] = "上海市浦东新区陆家嘴环路";
address1[2] = "广东省广州市天河区体育西路";
hos1.setAddress(address1);
//装一个医院中的部门
Department[] hosPart1 = new Department[2];
Department dep1 = new Department();
dep1.setDepartmentId(2101);
dep1.setDepartmentName("内科");
Department dep2 = new Department();
dep2.setDepartmentId(2102);
dep2.setDepartmentName("外科");
hosPart1[0] = dep1;
hosPart1[1] = dep2;
hos1.setDepartment(hosPart1);
hospital[0] = hos1;
Hospital hos2 = new Hospital();
hos2.setHospitalId(102);
hos2.setHospitalName("爱婴医院");
String[] address2 = new String[3];
address2[0] = "广东省广州市天河区体育西路";
address2[1] = "江苏省南京市玄武区中山东路";
address2[2] = "浙江省杭州市西湖区延安路";
hos2.setAddress(address2);
//装一个医院中的部门
Department[] hosPart2 = new Department[2];
Department dep3 = new Department();
dep3.setDepartmentId(2103);
dep3.setDepartmentName("儿科");
Department dep4 = new Department();
dep4.setDepartmentId(2104);
dep4.setDepartmentName("感染科");
hosPart2[0] = dep3;
hosPart2[1] = dep4;
hos2.setDepartment(hosPart2);
hospital[1] = hos2;
Hospital hos3 = new Hospital();
hos3.setHospitalId(103);
hos3.setHospitalName("成都肝病医院");
String[] address3 = new String[3];
address3[0] = "湖北省武汉市江汉区解放大道";
address3[1] = "山东省青岛市市南区中山路";
address3[2] = "湖南省长沙市芙蓉区芦淞路";
hos3.setAddress(address3);
//装一个医院中的部门
Department[] hosPart3 = new Department[2];
Department dep5 = new Department();
dep5.setDepartmentId(2105);
dep5.setDepartmentName("神经科");
Department dep6 = new Department();
dep6.setDepartmentId(2106);
dep6.setDepartmentName("急诊科");
hosPart3[0] = dep5;
hosPart3[1] = dep6;
hos3.setDepartment(hosPart3);
hospital[2] = hos3;
}
//展示医院信息方法
public void showHospital() {
System.out.println("=========================医院信息如下=========================");
for (Hospital hop : hospital) {
if (hop != null) {
System.out.println("医院工号:" + hop.getHospitalId());
System.out.println("医院名字:" + hop.getHospitalName());
String[] address = hop.getAddress();
for (int i = 0; i < address.length; i++) {
System.out.println("第" + (i + 1) + "地址:" + address[i]);
}
System.out.println("医院部门有:");
Department dep[] = hop.getDepartment();
for (int i = 0; i < dep.length; i++) {
System.out.println("第" + (i + 1) + "部门编号:" + dep[i].getDepartmentId());
System.out.println("第" + (i + 1) + "部门名字:" + dep[i].getDepartmentName());
}
System.out.println("-----------------------------------------------------");
}
}
}
//新增医院信息的方法
public void addHospital() {
Hospital hosp = new Hospital();
hosp.setHospitalId(hosId++);
System.out.println("请输入医院的名字:");
hosp.setHospitalName(sc.next());
//inputAddressFlag用来记录是否还要添加医院地址,要为true
boolean inputAddressFlag = true;
//用来记录装地址的数组的索引
int addressIndex = 0;
String[] address = new String[10];
while (inputAddressFlag) {
System.out.println("请输入医院的第" + (addressIndex + 1) + "个地址:");
address[addressIndex] = sc.next();
addressIndex++;
System.out.println("是否继续输入地址:Y/N");
String yesNo = sc.next();
if (yesNo.equalsIgnoreCase("n")) {
inputAddressFlag = false;
}
}
address = Arrays.copyOf(address, addressIndex);
hosp.setAddress(address);
//inputDepFlag用来记录是否还要添加医院部门对象,要为true
boolean inputDepFlag = true;
//用来记录装地址的数组的索引
int depIndex = 0;
//定义一个医院部门数组装多个医院部门对象
Department[] department = new Department[10];
while (inputDepFlag) {
Department dep = new Department();
dep.setDepartmentId(deptId++);
System.out.println("请输入" + (depIndex + 1) + "医院部门的名字:");
dep.setDepartmentName(sc.next());
department[depIndex] = dep;
depIndex++;
System.out.println("是否继续输入部门:Y/N");
String yesNo = sc.next();
if (yesNo.equalsIgnoreCase("n")) {
inputDepFlag = false;
}
}
department = Arrays.copyOf(department, depIndex);
hosp.setDepartment(department);
saveHospital(hosp);
}
//保存医院信息的方法
public void saveHospital(Hospital hosp) {
//hospitalFlag = true表示没有位置了
boolean hospitalFlag = true;
//遍历医院大数组
for (int i = 0; i < hospital.length; i++) {
if (hospital[i] == null) {
//有位置
hospitalFlag = false;
}
}
if (hospitalFlag) {
//没有位置扩容
hospital = Arrays.copyOf(hospital, hospital.length * 2);
} else {
for (int i = 0; i < hospital.length; i++) {
if (hospital[i] == null) {
hospital[i] = hosp;
System.out.println("添加成功!");
break;
}
}
}
}
//根据Id查找医院信息
public Hospital findHospId(int id) {
for (int i = 0; i < hospital.length; i++) {
if (hospital[i] != null) {
if (hospital[i].getHospitalId() == id) {
return hospital[i];
}
}
}
return null;
}
//修改医院信息的方法
public void updateHospital(Hospital updateHospital) {
for (int i = 0; i < hospital.length; i++) {
if (hospital[i] != null) {
if (hospital[i].getHospitalId() == updateHospital.getHospitalId()) {
hospital[i] = updateHospital;
System.out.println("修改成功!");
}
}
}
}
//删除医院信息的方法
public void deleteHospital(int deleteId) {
int flag = -1;
//判断医院的编号是否存在
for (int i