Java基础 - 模拟医院挂号系统

news/2024/10/22 12:24:54/

模拟医院挂号系统功能

1. 科室管理:新增科室,删除科室(如果有医生在,则不能删除该科室),修改科室

2. 医生管理:录入医生信息以及科室信息,修改医生信息(主要是修改个人信息和科室)

3. 坐诊信息设置:可以设置医生当天和未来6天的坐诊情况,包括上午和下午的坐诊时间段和可预约数量,系统将自动保存到该医生的坐诊信息列表中

4. 全部信息展示:按照科室,展示每个医生七天的坐诊情况,需要按照科室归类展示

5. 预约功能:用户可以选择要预约的科室,医生、日期和时间段,并输入患者的个人信息,系统将激动判断该时间段是否还有预约名额,并保存预约信息

6. 搜索功能:用户可以输入搜索日期和时间段,系统将自动搜索未来七天内在该时间段坐诊的医生信息,并按照科室分类展示

7. 可以查询某个医生未来7天,病人对他的预约情况

//App
public class App {public static void main(String[] args) {//创建一个医院管理对象HospitalManager h = new HospitalManager();h.start();}
}
//Doctor
//医生类
public class Doctor {private String doctorId;  //编号(唯一)private String name;  //姓名private String departmentName;  //科室名称private String gender;  //性别private int age;  //年龄private String specialty;  //主治方向private LocalDate joinDate;  //入职时间private ArrayList<Schedule> schedules = new ArrayList<>();  //7天坐诊情况public Doctor() {}public Doctor(String doctorId, String name, String departmentName, String gender, int age, String specialty, LocalDate joinDate, ArrayList<Schedule> schedules) {this.doctorId = doctorId;this.name = name;this.departmentName = departmentName;this.gender = gender;this.age = age;this.specialty = specialty;this.joinDate = joinDate;this.schedules = schedules;}public String getDoctorId() {return doctorId;}public void setDoctorId(String doctorId) {this.doctorId = doctorId;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getDepartmentName() {return departmentName;}public void setDepartmentName(String departmentName) {this.departmentName = departmentName;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getSpecialty() {return specialty;}public void setSpecialty(String specialty) {this.specialty = specialty;}public LocalDate getJoinDate() {return joinDate;}public void setJoinDate(LocalDate joinDate) {this.joinDate = joinDate;}public ArrayList<Schedule> getSchedules() {return schedules;}public void setSchedules(ArrayList<Schedule> schedules) {this.schedules = schedules;}
}
//Department
//科室类
public class Department {private String name;private ArrayList<Doctor> doctors = new ArrayList<>();public Department() {}public Department(String name, ArrayList<Doctor> doctors) {this.name = name;this.doctors = doctors;}public String getName() {return name;}public void setName(String name) {this.name = name;}public ArrayList<Doctor> getDoctors() {return doctors;}public void setDoctors(ArrayList<Doctor> doctors) {this.doctors = doctors;}
}
//Schedule
//医生坐诊情况类
public class Schedule {private LocalDate today;  //当天日期private boolean update = false;  //是否排班(默认未排班false)//上午private boolean morning;  //是否看诊private LocalTime mStart;  //上午开始时间private LocalTime mEnd;  //上午结束时间private int mTotalNum;  //上午可预约人数private int mAppointNum;  //上午已预约人数//下午private boolean afternoon;  //是否看诊private LocalTime aStart;  //下午开始时间private LocalTime aEnd;  //下午结束时间private int aTotalNum;  //下午可预约人数private int aAppointNum;  //下午已预约人数public Schedule() {}public Schedule(LocalDate today, boolean update, boolean morning, LocalTime mStart, LocalTime mEnd, int mTotalNum, int mAppointNum, boolean afternoon, LocalTime aStart, LocalTime aEnd, int aTotalNum, int aAppointNum) {this.today = today;this.update = update;this.morning = morning;this.mStart = mStart;this.mEnd = mEnd;this.mTotalNum = mTotalNum;this.mAppointNum = mAppointNum;this.afternoon = afternoon;this.aStart = aStart;this.aEnd = aEnd;this.aTotalNum = aTotalNum;this.aAppointNum = aAppointNum;}public boolean isUpdate() {return update;}public void setUpdate(boolean update) {this.update = update;}public LocalDate getToday() {return today;}public void setToday(LocalDate today) {this.today = today;}public boolean isMorning() {return morning;}public void setMorning(boolean morning) {this.morning = morning;}public LocalTime getmStart() {return mStart;}public void setmStart(LocalTime mStart) {this.mStart = mStart;}public LocalTime getmEnd() {return mEnd;}public void setmEnd(LocalTime mEnd) {this.mEnd = mEnd;}public int getmTotalNum() {return mTotalNum;}public void setmTotalNum(int mTotalNum) {this.mTotalNum = mTotalNum;}public int getmAppointNum() {return mAppointNum;}public void setmAppointNum(int mAppointNum) {this.mAppointNum = mAppointNum;}public boolean isAfternoon() {return afternoon;}public void setAfternoon(boolean afternoon) {this.afternoon = afternoon;}public LocalTime getaStart() {return aStart;}public void setaStart(LocalTime aStart) {this.aStart = aStart;}public LocalTime getaEnd() {return aEnd;}public void setaEnd(LocalTime aEnd) {this.aEnd = aEnd;}public int getaTotalNum() {return aTotalNum;}public void setaTotalNum(int aTotalNum) {this.aTotalNum = aTotalNum;}public int getaAppointNum() {return aAppointNum;}public void setaAppointNum(int aAppointNum) {this.aAppointNum = aAppointNum;}
}
//Appointment
//患者预约信息类
public class Appointment {private String userName;  //患者姓名private String sex;  //患者性别private int age;  //患者年龄private String tel;  //患者电话private String desc;  //病情描述private String departmentName;  //挂号科室private String doctorId;  //看诊医生idprivate LocalDateTime appointDateTime;  //预约时间public Appointment() {}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getTel() {return tel;}public void setTel(String tel) {this.tel = tel;}public String getDesc() {return desc;}public void setDesc(String desc) {this.desc = desc;}public String getDepartmentName() {return departmentName;}public void setDepartmentName(String departmentName) {this.departmentName = departmentName;}public String getDoctorId() {return doctorId;}public void setDoctorId(String doctorId) {this.doctorId = doctorId;}public LocalDateTime getAppointDateTime() {return appointDateTime;}public void setAppointDateTime(LocalDateTime appointDateTime) {this.appointDateTime = appointDateTime;}
}
/*模拟医院挂号系统功能1. 科室管理:新增科室,删除科室(如果有医生在,则不能删除该科室),修改科室名称2. 医生管理:录入医生信息以及科室信息,修改医生信息(主要是修改个人信息和科室)3. 坐诊信息设置:可以设置医生当天和未来6天的坐诊情况,包括上午和下午的坐诊时间段和可预约数量,系统将自动保存到该医生的坐诊信息列表中4. 全部信息展示:按照科室,展示每个医生七天的坐诊情况,需要按照科室归类展示5. 预约功能:用户可以选择要预约的科室,医生、日期和时间段,并输入患者的个人信息,系统将激动判断该时间段是否还有预约名额,并保存预约信息6. 搜索功能:用户可以输入搜索日期和时间段,系统将自动搜索未来七天内在该时间段坐诊的医生信息,并按照科室分类展示7. 可以查询某个医生未来7天,病人对他的预约情况
*///HospitalManager
public class HospitalManager {//系统需要存储全部科室信息private ArrayList<Department> departments = new ArrayList<>();//系统需要记录全部预约信息private ArrayList<Appointment> appointments = new ArrayList<>();Scanner sc = new Scanner(System.in);public void start() {while(true){System.out.println("====欢迎进入莴笋医院信息管理系统====");System.out.println("====1.科室管理--添加科室====");System.out.println("====2.科室管理--删除科室====");System.out.println("====3.科室管理--修改科室名称====");System.out.println("====4.医生管理--录入医生====");System.out.println("====5.医生管理--医生坐诊设置(可设置当天和未来6天的坐诊情况)====");System.out.println("====6.搜索--查看全部医生坐诊情况(当天和未来6天的坐诊详情)====");System.out.println("====7.搜索--查看某医生坐诊情况(当天和未来6天的坐诊详情)====");System.out.println("====8.挂号--挂号预约====");System.out.println("====9.退出====");System.out.println("请输入您的操作指令(1-9):");switch (sc.next()){case "1":addDepartment();break;case "2":deleteDepartment();break;case "3":modifyDepartment();break;case "4":addDoctor();break;case "5":setDoctorJob();break;case "6":searchAllJob();break;case "7":searchOneJob();break;case "8":Appoint();break;case "9":return;default:System.out.println("您选择的操作不存在,请重新选择");break;}}}private void Appoint() {System.out.println("====挂号预约====");//判断有没有科室(医院没有科室就一定没有医生)if(isDepartment()==false) {System.out.println("没有科室就没有医生");return;}//有科室while(true) {showAllDepartment();  //展示已有科室//先选择科室System.out.println("请选择挂号科室(最大选择" + departments.size() + "):");int command1 = sc.nextInt();if (existDepartment(command1) == false) {//不存在该科室continue;}//存在该科室Department department = departments.get(command1 - 1);//判断该科室是否存在医生if (department.getDoctors().size() == 0) {//没有医生System.out.println("该科室无医生");return;}//有医生while (true) {//显示该科室的全部医生showAllDoctor(department);Appointment a = new Appointment();a.setDepartmentName(department.getName());  //保存挂号科室名称//选择看诊的医生ArrayList<Doctor> doctors = department.getDoctors();System.out.println("请选择看诊医生的序号(最大选择"+doctors.size()+"):");int command2 = sc.nextInt();if(existDoctor(doctors,command2)==false){//不存在该医生continue;}//存在该医生Doctor d = doctors.get(command2-1);  //保存选择的医生对象//展示该医生的排班信息print(d);ArrayList<Schedule> arr = d.getSchedules();  //arr保存该医生的排班信息//如果该医生一次都没排过(arr数组都是空的)if(arr.size() == 0){System.out.println("该医生未排班,请重新选择");continue;}OUT:while (true) {//该医生排过班(arr数组不是空的)System.out.println("请选择看诊日期:");String dayStr = sc.next();LocalDate ld = LocalDate.parse(dayStr);for (int i = 0; i < arr.size(); i++) {Schedule s = arr.get(i);if(s.getToday().equals(ld)){//存在该天的排班情况if(s.isUpdate() == false){System.out.println("该医生未排班,请重新选择日期");continue OUT;}//当天排班了s.isUpdate() == truewhile (true) {System.out.println("请输入看诊的时间(1:上午or2:下午):");int com = sc.nextInt();if(com == 1) {  //选择上午看诊if (s.isMorning() == false) {  //上午休息System.out.println("该医生上午休息,请重新选择");continue OUT;} else {  //上午不休息if (s.getmAppointNum() < s.getmTotalNum()) { //上午预约人数没满s.setmAppointNum(s.getmAppointNum()+1);  //医生可预约人数-1a.setDoctorId(d.getDoctorId());  //设置看诊医生idLocalDate appointDate = s.getToday();LocalTime appointTime = s.getmStart();LocalDateTime appointDateTime = LocalDateTime.of(appointDate,appointTime);a.setAppointDateTime(appointDateTime);System.out.println("请输入患者姓名:");a.setUserName(sc.next());System.out.println("请输入患者性别:");a.setSex(sc.next());System.out.println("请输入患者年龄:");a.setAge(sc.nextInt());System.out.println("请输入患者电话:");a.setTel(sc.next());System.out.println("请输入病情描述:");a.setDesc(sc.next());System.out.println("预约成功");return;} else {System.out.println("该医生当天上午已约满,请重新选择");continue OUT;}}}else if(com == 2){  // //选择下午看诊if (s.isAfternoon() == false) {  //下午休息System.out.println("该医生下午休息,请重新选择");continue OUT;} else {  //下午不休息if (s.getaAppointNum() < s.getaTotalNum()) { //下午预约人数没满s.setaAppointNum(s.getaAppointNum()+1);  //医生可预约人数-1a.setDoctorId(d.getDoctorId());  //设置看诊医生idLocalDate appointDate = s.getToday();LocalTime appointTime = s.getaStart();LocalDateTime appointDateTime = LocalDateTime.of(appointDate,appointTime);a.setAppointDateTime(appointDateTime);System.out.println("请输入患者姓名:");a.setUserName(sc.next());System.out.println("请输入患者性别:");a.setSex(sc.next());System.out.println("请输入患者年龄:");a.setAge(sc.nextInt());System.out.println("请输入患者电话:");a.setTel(sc.next());System.out.println("请输入病情描述:");a.setDesc(sc.next());System.out.println("预约成功");return;} else {System.out.println("该医生当天下午已约满,请重新选择");continue OUT;}}}else{System.out.println("输入有误,请重新输入");continue;}}}}//不存在该天的排班情况System.out.println("您选择的看诊日期不在近7天,请重新选择");continue;}}}}//查看某医生近7天的全部坐诊情况和预约情况(根据id查更加规范)private void searchOneJob() {//判断有没有科室(没有科室就一定没有医生)if(isDepartment()==false) {System.out.println("没有科室就没有医生");return;}//有科室System.out.println("请输入你要查找的医生姓名:");String name = sc.next();for (int i = 0; i < departments.size(); i++) {Department department = departments.get(i);   //department保存第i个科室信息ArrayList<Doctor> arr = department.getDoctors();  //创建arr集合(该集合保存的是某科室全部的医生信息)if(arr.size() != 0){  //某科室有医生for (int j = 0; j < arr.size(); j++) {Doctor d = arr.get(j);  //保存医生信息if(d.getName().equals(name)){  //如果找到同名医生就输出System.out.println((d.getDepartmentName()));print(d);return;}}}}//遍历后还没找到System.out.println("查无此人");}//打印某医生的排班信息private void print(Doctor d) {System.out.println(d.getName()+"的排班情况:");ArrayList<Schedule> arr_s = d.getSchedules();  //医生的排班表//先更新当前和未来6天的时间updateSchedule(arr_s);if (arr_s.size() == 0){//没有进行过一次排班(arr_s就是空的)System.out.println("该医生未排班");return;}//不是空的for (int k = 0; k < arr_s.size() ; k++) {Schedule s = arr_s.get(k);System.out.println(s.getToday()+"的排班情况:");if(s.isUpdate() == false){System.out.println("未排班");continue;}//已排班if(s.isMorning() == true){System.out.println("上午:"+s.getmStart()+"-"+s.getmEnd()+"  可预约人数:"+s.getmTotalNum()+"  已预约人数:"+s.getmAppointNum());}else{System.out.println("上午休息");}if(s.isAfternoon() == true){System.out.println("下午:"+s.getaStart()+"-"+s.getaEnd()+"  可预约人数:"+s.getaTotalNum()+"  已预约人数:"+s.getaAppointNum());}else{System.out.println("下午休息");}}}private void searchAllJob() {System.out.println("====全部医生的坐班信息====");//判断有没有科室(没有科室就一定没有医生)if(isDepartment()==false) {System.out.println("没有科室就没有医生");return;}//有科室for (int i = 0; i < departments.size(); i++) {Department department = departments.get(i);   //department保存第i个科室信息ArrayList<Doctor> arr = department.getDoctors();  //创建arr集合(该集合保存的是某科室全部的医生信息)if(arr.size() == 0){  //没有医生System.out.println("===="+department.getName()+"没有医生====");continue;}//有医生System.out.println("===="+department.getName()+"医生的排班情况====");for (int j = 0; j < arr.size(); j++) {Doctor d = arr.get(j);  //科室中第j个医生的信息print(d);  //打印医生的排班信息}}}private void setDoctorJob() {System.out.println("====医生坐诊设置====");//判断有没有科室if(isDepartment()==false) {return;}//有科室while(true) {showAllDepartment();  //展示已有科室//先选择科室System.out.println("请选择要排班的医生的科室(最大选择"+departments.size()+"):");int command1 = sc.nextInt();if(existDepartment(command1)==false){//不存在该科室continue;}//存在该科室Department department = departments.get(command1-1);//判断该科室是否存在医生if(department.getDoctors().size() == 0){//没有医生System.out.println("该科室无医生");continue;}//有医生while(true){//显示该科室的全部医生showAllDoctor(department);//选择需要排班的医生ArrayList<Doctor> doctors = department.getDoctors();System.out.println("请选择要排班的医生的序号(最大选择"+doctors.size()+"):");int command2 = sc.nextInt();if(existDoctor(doctors,command2)==false){//不存在该医生continue;}//存在该医生Doctor d = doctors.get(command2-1);  //保存选择的医生对象// 为该医生设置坐诊时间//获取该医生的坐诊情况ArrayList<Schedule> schedules = d.getSchedules();   //第一次getSchedules()里面肯定是空的//先更新当前和未来6天的时间updateSchedule(schedules);//再给该医生当天和未来6天进行排班for (int i = 0; i < schedules.size(); i++) {Schedule s = schedules.get(i);updateDoctorSchedule(s);}System.out.println("已完成"+d.getName()+"排班"); //已某医生的排班return;}}}//给医生进行排班private void updateDoctorSchedule(Schedule s) {LocalDate today = s.getToday();System.out.println(today+"的安排如下:");if(s.isUpdate()==false){  //未排班System.out.println("未排班");}else{  //已排班(显示排班情况)//上午是否休息if(s.isMorning() == false){//上午休息System.out.println("上午休息");}else{//上午不休息System.out.println("上午:"+s.getmStart()+"-"+s.getmEnd()+"  可预约人数:"+s.getmTotalNum()+"  已预约人数:"+s.getmAppointNum());}//下午是否休息if(s.isAfternoon() == false){//下午休息System.out.println("下午休息");}else{//下午不休息System.out.println("下午:"+s.getaStart()+"-"+s.getaEnd()+"  可预约人数:"+s.getaTotalNum()+"  已预约人数:"+s.getaAppointNum());}}OUT:while (true) {  //快捷键Ctrl+Alt+TSystem.out.println("是否修改排班?y/n");String command = sc.next();switch(command){case "y":  //修改排班s.setUpdate(true);while (true) {System.out.println("上午是否看诊?y/n");String choose = sc.next();if(choose.equals("y")){s.setMorning(true);System.out.println("请输入看诊开始时间:");String start = sc.next();System.out.println("请输入看诊结束时间:");String end = sc.next();LocalTime ltstart = LocalTime.parse(start);LocalTime ltend = LocalTime.parse(end);s.setmStart(ltstart);  //保存开始时间s.setmEnd(ltend);  //保存结束时间System.out.println("请输入上午可预约人数:");int num = sc.nextInt();s.setmTotalNum(num);System.out.println("已完成设置上午排班信息");break;}else if(choose.equals("n")){s.setMorning(false);System.out.println("已设置上午休息");break;}else{System.out.println("没有该选择,请重新选择");continue;}}while (true) {System.out.println("下午是否看诊?y/n");String choose = sc.next();if(choose.equals("y")){s.setAfternoon(true);System.out.println("请输入看诊开始时间:");String start = sc.next();System.out.println("请输入看诊结束时间:");String end = sc.next();LocalTime ltstart = LocalTime.parse(start);LocalTime ltend = LocalTime.parse(end);s.setaStart(ltstart);  //保存开始时间s.setaEnd(ltend);  //保存结束时间System.out.println("请输入下午可预约人数:");int num = sc.nextInt();s.setaTotalNum(num);System.out.println("已完成设置下午排班信息");break;}else if(choose.equals("n")){s.setAfternoon(false);System.out.println("已设置下午休息");break;}else{System.out.println("没有该选择,请重新选择");continue;}}return;case "n":  //不修改排班return;default:System.out.println("没有该选择,请重新选择");continue OUT;}}}//更新当前和未来6天的时间private void updateSchedule(ArrayList<Schedule> schedules) {LocalDate now = LocalDate.now();  //获取当天日期(年月日)//存在两种情况//schedules集合里面没有任何schedule(没有任何时间),就是第一次排班//schedules集合存在7天的时间(可能部分是过期的,需要更新到今天的情况),非第一次排班  比如:3月1号更新过1-7号的,现在是3号,进去查看的时候应该更新为3-10号的//schedules集合里面没有任何schedule(没有任何时间)if(schedules.size() == 0){   //第一次排班for (int i = 0; i < 7; i++) {  //排7天Schedule s = new Schedule();  //创建一个Schedule对象s.setToday(now.plusDays(i));  //设置Schedule对象的日期(规则:第一天就是当天+0  第二天就是当天+1 ……)schedules.add(s); //把Schedule对象存到schedules集合中}return;}//schedules集合存在7天的时间(可能部分是过期的,需要更新到今天的情况),非第一次排班  比如:3月1号更新过1-7号的,现在是3号,进去查看的时候应该更新为3-10号的//非第一次排班,去除过期的时间int count = 0;  //记入过期了几天(也就是删除了几天)//集合中的删除操作,如果从前往后遍历,会存在漏删的情况,因此选择从后往前for (int i = schedules.size()-1; i >= 0; i--) {  //遍历已保存的7天LocalDate ld = schedules.get(i).getToday();   //已经保存的第i个日期if(ld.isBefore(now)){  //保存的第i个日期早于今天的日期schedules.remove(i);count++;}}//如果有删除过期的时间,那么需要补全7天//count == 0说明没有删除日期if(count == 0){return;}//count不等于0说明有删除(那么应该从count-1开始补全日期,比如删除了5天,剩下2天,那么就应该从第3个位置(索引2)开始补5天)for (int i=7-count; i < 7; i++) {Schedule s = new Schedule();  //创建一个Schedule对象s.setToday(now.plusDays(i));schedules.add(s);}}private void addDoctor() {System.out.println("====添加医生====");//判断有没有科室if(isDepartment()==false) {return;}//有科室Doctor d = new Doctor();while(true){showAllDepartment();  //展示已有科室//先选择科室System.out.println("请选择新医生的入职科室(最大选择"+departments.size()+"):");int command = sc.nextInt();if(existDepartment(command)==false){//不存在该科室continue;}//存在该科室Department department = departments.get(command-1);  //department记录选择的科室d.setDepartmentName(department.getName()); //记录员工科室//录入医生idd.setDoctorId(UUID.randomUUID().toString());   //随机返回16位的idSystem.out.println("请输入医生姓名:");d.setName(sc.next());System.out.println("请输入医生性别:");d.setGender(sc.next());System.out.println("请输入医生年龄:");d.setAge(sc.nextInt());System.out.println("请输入医生主治方向:");d.setSpecialty(sc.next());System.out.println("请输入医生入职时间(格式:yyyy-MM-dd):");String joinDateString = sc.next();d.setJoinDate(LocalDate.parse(joinDateString));   //把字符串转换成LocalDate对象//添加完医生个人信息,还需要把医生加到所在部门的集合里department.getDoctors().add(d);System.out.println("添加医生成功");break;}}private void modifyDepartment() {System.out.println("====修改科室名称====");//判断有没有科室if(isDepartment()==false){return;}//有科室while(true) {showAllDepartment();System.out.println("请选择你要修改的科室序号(最大选择"+departments.size()+"):");int command = sc.nextInt();if(existDepartment(command)==false){//不存在该科室continue;}//存在该科室Department department = departments.get(command-1);  //department记录选择的科室System.out.println("你要为科室修改的新名字是:");String newName = sc.next();department.setName(newName);System.out.println("修改成功!");break;}}private void deleteDepartment() {System.out.println("====添加科室====");//判断有没有科室if(isDepartment()==false){return;}//有科室while(true){showAllDepartment();System.out.println("请选择你要删除的科室序号(最大选择"+departments.size()+"):");int command = sc.nextInt();if(existDepartment(command)==false){//不存在该科室continue;}//存在该科室Department department = departments.get(command-1);if(department.getDoctors().size() != 0){//科室中存在医生System.out.println("科室中存在医生,不能删除科室");return;}//科室中无医生,可以删除departments.remove(command-1);System.out.println("删除科室成功");break;}}//添加科室private void addDepartment() {System.out.println("====添加科室====");OUT:  //标签while(true){System.out.println("请输入添加的科室名称:");String name = sc.next();//判断科室是否存在for (int i = 0; i < departments.size(); i++) {if (departments.get(i).getName().equals(name) == true) {//科室已存在System.out.println("您创建的科室已存在,请重新输入");continue OUT;  //继续执行下一次外面的死循环(OUT)}}Department d = new Department();d.setName(name);departments.add(d);System.out.println("创建科室成功");break;}}//展示一个科室的全部医生private void showAllDoctor(Department department){System.out.println("===="+department.getName()+"====");ArrayList<Doctor> arr = department.getDoctors();for (int i = 0; i < arr.size(); i++) {System.out.println(i+1 +"." + arr.get(i).getName());}}//展示已有的每个科室private void showAllDepartment(){System.out.println("====已有科室====");for (int i = 0; i < departments.size(); i++) {System.out.println(i+1+"."+departments.get(i).getName());}}//判断有没有科室private boolean isDepartment(){if(departments.size()==0){//没有科室System.out.println("当前无科室,请先添加科室");return false;}return true;}//判断选择的序号是否有科室存在private boolean existDepartment(int command){if(command < 1 || command > departments.size()){//没有该科室System.out.println("不存在该科室,请重新选择");return false;}//有该科室return true;}//判断选择的序号是否有医生存在private boolean existDoctor(ArrayList<Doctor> doctors,int command){if(command < 1 || command > doctors.size()){//没有该医生System.out.println("不存在该医生,请重新选择");return false;}//有该医生return true;}
}

http://www.ppmy.cn/news/1372485.html

相关文章

计算机技术的发展历程

计算机技术的发展历程可以追溯到20世纪初&#xff0c;以下是关于计算机技术发展的详细介绍&#xff1a; 机械计算器时代&#xff08;19世纪末-20世纪初&#xff09; 在这个时期&#xff0c;人们开发了一系列机械计算器&#xff0c;用于进行简单的数学计算。这些计算器基于齿轮和…

蒙提霍尔问题

文章目录 1.简介2.答案3.直觉的错误参考文献 1.简介 蒙提霍尔问题&#xff08;Monty Hall problem&#xff09;是美国电视游戏节目《Let’s Make a Deal》中的一个问题&#xff0c;并以主持人 Monty Hall 命名。 蒙提霍尔问题也叫「三门问题」或「山羊汽车问题」。 假设您正…

【leetcode热题】只出现一次的数字 II

难度&#xff1a; 中等通过率&#xff1a; 44.6%题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 题目描述 给定一个非空整数数组&#xff0c;除了某个元素只出现一次以外&#xff0c;其余每个元素均出现了三次。找出那个只出现了一次的元素。 说明&#xff…

C打印内存16进制

下面是一段C代码打印16进制 void print_hex(const char *msg, void *addr, int len) {uint8_t *p (uint8_t *)addr;printf("%s ,stat:%0x8, len:%d\n", msg, addr, len);for (int i 0; i < len / 16; i) {printf("0x%08x: ", p i * 16);for (int j …

算法46:动态规划专练(力扣198: 打家劫舍 力扣740:删除并获取点数)

打家劫舍问题&#xff1a; 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系统会自动报警。 给定…

Ubantu 18.04 如何映射IP到公网,外网可以访问

介绍一种简单的方式&#xff0c;就是通过路由侠 inux 系统安装路由侠&#xff0c;可通过两种方式进行&#xff0c;一种是通过直接脚本安装&#xff0c;一种是通过 Docker 安装。 windows下载地址&#xff1a;路由侠-局域网变公网 方式一&#xff1a;通过脚本安装 1、获取安…

数据库原理及应用 第四章:关系数据库标准查询语音SQL

文章目录 四、关系数据库标准查询语音SQL4.0SQL语言概述4.1基本表的定义4.2查询结果显示4.3查询满足条件的元组4.4分组聚集查询4.5连接查询4.6嵌套查询 四、关系数据库标准查询语音SQL 4.0SQL语言概述 4.1基本表的定义 char和varchar的区别&#xff1a;当输入的字符不足n个字符…

【排序算法】深入理解归并排序算法:从原理到实现

目录 1. 引言 2. 归并排序算法原理 3. 归并排序的时间复杂度分析 4. 归并排序的应用场景 5. 归并排序的优缺点分析 5.1 优点&#xff1a; 5.2 缺点&#xff1a; 6. Java、JavaScript 和 Python 实现归并排序算法 6.1 Java 实现&#xff1a; 6.2 JavaScript 实现&…