JAVA项目-------医院挂号系统
1,项目目的
1、科室管理:新增科室,删除科室(如果有医生在,则不能删除该科室),修改科室。
2、医生管理:录入医生信息,以及科室信息。修改医生信息(主要是修改个人信息和科室)
3、坐诊信息设置:可以设置医生当天和未来6天的坐诊情况,包括上午和下午的坐诊时间段和可预约数量,系统将自动保存到该医生的坐诊信息列表中。
4、全部信息展示:按照科室,展示每个医生七天的坐诊情况,需要按照科室归类展示
5、预约功能:用户可以选择要预约的科室,医生、日期和时间段,并输入患者的个人信息,系统将自动判断该时间段是否还有预约名额,并保存预约信息。
6.搜索功能:用户可以输入搜索日期和时间段,系统将自动搜索未来七天内在该时间段坐诊的医生信息,并按照科室分类展示。
7、可以查询某个医生未来七天,病人对它的预约情况。
2,建立一个部门类
package HostipalSystem;import java.util.ArrayList;public class department {private String name;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;}
}
3,医生类
package HostipalSystem;import java.time.LocalDate;
import java.util.ArrayList;public class doctor {private String name;private String sex;private int age;private String degree;private String advantage;private LocalDate jointime;private ArrayList<schedule> schedule;//一个医生7天的排版表private String department;private String id;public doctor() {}public String getDepartment() {return department;}public void setDepartment(String department) {this.department = department;}public doctor(String name, String sex, int age, String degree, String advantage, LocalDate jointime, ArrayList<HostipalSystem.schedule> schedule, String id, String department) {this.name = name;this.sex = sex;this.age = age;this.degree = degree;this.advantage = advantage;this.jointime = jointime;this.schedule = schedule;this.id = id;}public String getId() {return id;}public void setId(String id) {this.id = id;}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 int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getDegree() {return degree;}public void setDegree(String degree) {this.degree = degree;}public String getAdvantage() {return advantage;}public void setAdvantage(String advantage) {this.advantage = advantage;}public LocalDate getJointime() {return jointime;}public void setJointime(LocalDate jointime) {this.jointime = jointime;}public ArrayList<HostipalSystem.schedule> getSchedule() {return schedule;}public void setSchedule(ArrayList<HostipalSystem.schedule> schedule) {this.schedule = schedule;}
}
4,排班类
主要是排班的信息
package HostipalSystem;import java.time.LocalDate;
import java.time.LocalTime;public class schedule {private LocalDate date;private String morning="N";private LocalTime starttime;private LocalTime endtime;private int numjiezhen;private int numyuyue;private String afternoon="N";private LocalTime starttime1;private LocalTime endtime1;private int numjiezhen1;private int numyuyue1;private String night="N";private LocalTime starttime2;private LocalTime endtime2;private int numjiezhen2;private int numyuyue2;public schedule() {}public schedule(LocalDate date, String morning, LocalTime starttime, LocalTime endtime, int numjiezhen, int numyuyue, String afternoon, LocalTime starttime1, LocalTime endtime1, int numjiezhen1, int numyuyue1, String night, LocalTime starttime2, LocalTime endtime2, int numjiezhen2, int numyuyue2) {this.date = date;this.morning = morning;this.starttime = starttime;this.endtime = endtime;this.numjiezhen = numjiezhen;this.numyuyue = numyuyue;this.afternoon = afternoon;this.starttime1 = starttime1;this.endtime1 = endtime1;this.numjiezhen1 = numjiezhen1;this.numyuyue1 = numyuyue1;this.night = night;this.starttime2 = starttime2;this.endtime2 = endtime2;this.numjiezhen2 = numjiezhen2;this.numyuyue2 = numyuyue2;}public LocalDate getDate() {return date;}public void setDate(LocalDate date) {this.date = date;}public String getMorning() {return morning;}public void setMorning(String morning) {this.morning = morning;}public LocalTime getStarttime() {return starttime;}public void setStarttime(LocalTime starttime) {this.starttime = starttime;}public LocalTime getEndtime() {return endtime;}public void setEndtime(LocalTime endtime) {this.endtime = endtime;}public int getNumjiezhen() {return numjiezhen;}public void setNumjiezhen(int numjiezhen) {this.numjiezhen = numjiezhen;}public int getNumyuyue() {return numyuyue;}public void setNumyuyue(int numyuyue) {this.numyuyue = numyuyue;}public String getAfternoon() {return afternoon;}public void setAfternoon(String afternoon) {this.afternoon = afternoon;}public LocalTime getStarttime1() {return starttime1;}public void setStarttime1(LocalTime starttime1) {this.starttime1 = starttime1;}public LocalTime getEndtime1() {return endtime1;}public void setEndtime1(LocalTime endtime1) {this.endtime1 = endtime1;}public int getNumjiezhen1() {return numjiezhen1;}public void setNumjiezhen1(int numjiezhen1) {this.numjiezhen1 = numjiezhen1;}public int getNumyuyue1() {return numyuyue1;}public void setNumyuyue1(int numyuyue1) {this.numyuyue1 = numyuyue1;}public String getNight() {return night;}public void setNight(String night) {this.night = night;}public LocalTime getStarttime2() {return starttime2;}public void setStarttime2(LocalTime starttime2) {this.starttime2 = starttime2;}public LocalTime getEndtime2() {return endtime2;}public void setEndtime2(LocalTime endtime2) {this.endtime2 = endtime2;}public int getNumjiezhen2() {return numjiezhen2;}public void setNumjiezhen2(int numjiezhen2) {this.numjiezhen2 = numjiezhen2;}public int getNumyuyue2() {return numyuyue2;}public void setNumyuyue2(int numyuyue2) {this.numyuyue2 = numyuyue2;}
}
4,预约类
主要是病人的信息
package HostipalSystem;import java.time.LocalDateTime;public class oppintment {private int num=0;private String name;private String sex;private int age;private String desc;private String doctor;private String departmentname;private LocalDateTime date;public oppintment() {}public int getNum() {return num;}public void setNum(int num) {this.num = num;}public oppintment(String name, String sex, int age, String desc, String doctor, String departmentname, LocalDateTime date, int num) {this.name = name;this.sex = sex;this.age = age;this.desc = desc;this.doctor = doctor;this.departmentname = departmentname;this.date = date;this.num=num;}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 int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getDesc() {return desc;}public void setDesc(String desc) {this.desc = desc;}public String getDoctor() {return doctor;}public void setDoctor(String doctor) {this.doctor = doctor;}public String getDepartmentname() {return departmentname;}public void setDepartmentname(String departmentname) {this.departmentname = departmentname;}public LocalDateTime getDate() {return date;}public void setDate(LocalDateTime date) {this.date = date;}
}
6,医院操着系统
6.1界面
public void start(){Boolean flag=true;while(flag){Scanner sc= new Scanner(System.in);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("----------6,挂号------------");System.out.println("----------7,排班------------");System.out.println("----------8,退出操作系统------------");int command=sc.nextInt();switch (command){case 1:adddepasrtment();break;case 2:adddoctor();break;case 3:showdoctorindepartment();break;case 4:showdoctorinfo();break;case 5:showtimeofdoctor();break;case 6:booking();break;case 8:flag=false;break;case 7:operateschedule();break;default:System.out.println("输入有误,请重新输入");}}}
6.2设置部门
需要判断部门是否存在
public void adddepasrtment(){OUT:while(true){department d=new department();Scanner sc=new Scanner(System.in);System.out.println("请输入你要添加的部门的名称");String name=sc.next();d.setName(name);for(int i=0;i<alldepartment.size();i++){if(alldepartment.get(i).getName().equals(name)){System.out.println("该部门已存在");continue OUT;}}alldepartment.add(d);//将建好的部门添加进去break;}}
6.2.1遇到问题1
Scanner sc=new Scanner(System.in);
System.out.println("请输入你要添加的部门的名称");
String name=sc.next();
将以上输入语句放在外面,如果不合格将一直循环
错误代码如下:
public void adddepasrtment(){OUT:department d=new department();Scanner sc=new Scanner(System.in);System.out.println("请输入你要添加的部门的名称");String name=sc.next();while(true){Scanner sc=new Scanner(System.in);System.out.println("请输入你要添加的部门的名称");String name=sc.next();d.setName(name);for(int i=0;i<alldepartment.size();i++){if(alldepartment.get(i).getName().equals(name)){System.out.println("该部门已存在");continue OUT;}}alldepartment.add(d);break;}}
6.2.2遇到问题2
OUT:放在循环外面;
continue OUT放在循环里面结束一层循环
6.3建立一个存放部门的集合
ArrayList<department> alldepartment=new ArrayList<>();
7,医生的添加
public void adddoctor(){doctor d=new doctor();Scanner sc=new Scanner(System.in);System.out.println("请输入你要添加的医生的姓名");String name=sc.next();d.setName(name);System.out.println("请输入你要添加的医生的性别");String sex=sc.next();d.setSex(sex);System.out.println("请输入你要添加的医生的年龄");int age=sc.nextInt();d.setAge(age);System.out.println("请输入你要添加的医生的学历");String degree=sc.next();d.setDegree(degree);System.out.println("请输入你要添加的医生的擅长");String advantage=sc.next();d.setAdvantage(advantage);System.out.println("请输入你要添加的医生的入职时间");//LocalDate jointime=sc.nextLocalDate();d.setJointime(jointime());//调用方法存入医生的入职时间d.setId(UUID.randomUUID().toString());//生成随机数作为医生的编号System.out.println("您的编号是"+d.getId());System.out.println("请选择你的部门");for(int i=0;i<alldepartment.size();i++){System.out.println(i+1+"."+alldepartment.get(i).getName());}while(true){System.out.println("请输入部门的编号");int command=sc.nextInt();if(command>alldepartment.size()||command<1){System.out.println("输入有误,请重新输入");continue;}else{d.setDepartment(alldepartment.get(command-1).getName());alldepartment.get(command-1).getDoctors().add(d);alldoctor.add(d);//将医生添加到科室里System.out.println("录入完毕");break;}}}
7.1医生的加入时间
public LocalDate jointime(){Scanner sc=new Scanner(System.in);System.out.println("请输入医生入职时间格式为yyyy-mm-dd");String jointime=sc.next();LocalDate date=LocalDate.parse(jointime);return date;}
7.2写一个集合存放所有医生
ArrayList<doctor> alldoctor=new ArrayList<>();
8,查询部门里的医生
public void showdoctorindepartment(){for(int i=0;i<alldepartment.size();i++){System.out.println(i+1+"."+alldepartment.get(i).getName());}while(true){System.out.println("请输入你想了解的部门的编号");Scanner sc=new Scanner(System.in);int command=sc.nextInt();if(command>alldepartment.size()||command<1){System.out.println("输入有误,请重新输入");continue;}else{for (int i = 0; i < alldepartment.get(command-1).getDoctors().size(); i++){System.out.println(alldepartment.get(command-1).getDoctors().get(i).getName());}break;}}}
9,查询医生的全部信息
public void showdoctorinfo(){for (int i = 0; i < alldoctor.size(); i++){System.out.println(alldoctor.get(i).getName());System.out.println(alldoctor.get(i).getSex());System.out.println(alldoctor.get(i).getAge());System.out.println(alldoctor.get(i).getDegree());System.out.println(alldoctor.get(i).getAdvantage());System.out.println(alldoctor.get(i).getJointime());System.out.println(alldoctor.get(i).getId());System.out.println(alldoctor.get(i).getDepartment());System.out.println("---------------------------------------");}}
10,查找需要的医生
public doctor printfalldoctor (){for(int i=0;i<alldoctor.size();i++){System.out.println((i+1)+alldoctor.get(i).getName());}doctor d;while(true){System.out.println("请输入你想了解的医生的编号");Scanner sc=new Scanner(System.in);int command=sc.nextInt();if(command>alldoctor.size()||command<1){System.out.println("输入有误,请重新输入");continue;}else{d=alldoctor.get(command-1);break;}}return d;//返回医生}
11排班
public void operateschedule(){doctor d=printfalldoctor();for (int i = 0; i < 7; i++){schedule s=new schedule();s.setDate(LocalDate.now().plusDays(i));System.out.println("请输入"+s.getDate()+"号星期"+s.getDate().getDayOfWeek()+"上午是否上班");//s.getDate().getDayOfWeek()取的是日对象的获得星期天的方法System.out.println("Y,上班");System.out.println("N,不上班");Scanner sc=new Scanner(System.in);String command=sc.next();s.setMorning(command);if(s.getMorning().equals("Y")){System.out.println("请输入"+s.getDate()+"号星期"+s.getDate().getDayOfWeek()+"的上午上班时间");System.out.println("格式为HH:mm:ss");String starttime=sc.next();s.setStarttime(LocalTime.parse(starttime));System.out.println("请输入"+s.getDate()+"号星期"+s.getDate().getDayOfWeek()+"的上午下班时间");System.out.println("格式为HH:mm:ss");String endtime=sc.next();s.setEndtime(LocalTime.parse(endtime));System.out.println("请输入"+s.getDate()+"号星期"+s.getDate().getDayOfWeek()+"的上午接诊人数");int numjiezhen=sc.nextInt();s.setNumjiezhen(numjiezhen);}System.out.println("请输入"+s.getDate()+"号星期"+s.getDate().getDayOfWeek()+"下午是否上班");System.out.println("Y,上班");System.out.println("N,不上班");String command1=sc.next();s.setAfternoon(command1);if(s.getAfternoon().equals("Y")){System.out.println("请输入"+s.getDate()+"号星期"+s.getDate().getDayOfWeek()+"下午上班时间");System.out.println("格式为HH:mm:ss");String starttime1=sc.next();s.setStarttime1(LocalTime.parse(starttime1));System.out.println("请输入"+s.getDate()+"号星期"+s.getDate().getDayOfWeek()+"下午下班时间");System.out.println("格式为HH:mm:ss");String endtime1=sc.next();s.setEndtime1(LocalTime.parse(endtime1));System.out.println("请输入"+s.getDate()+"号星期"+s.getDate().getDayOfWeek()+"下午接诊人数");int numjiezhen1=sc.nextInt();s.setNumjiezhen1(numjiezhen1);}System.out.println("请输入"+s.getDate()+"号星期"+s.getDate().getDayOfWeek()+"晚上是否上班");System.out.println("Y,上班");System.out.println("N,不上班");String command2=sc.next();s.setNight(command2);if(s.getNight().equals("Y")){System.out.println("请输入"+s.getDate()+"号星期"+s.getDate().getDayOfWeek()+"晚上上班时间");System.out.println("格式为HH:mm:ss");String starttime2=sc.next();s.setStarttime2(LocalTime.parse(starttime2));System.out.println("请输入"+s.getDate()+"号星期"+s.getDate().getDayOfWeek()+"晚上下班时间");System.out.println("格式为HH:mm:ss");String endtime2=sc.next();s.setEndtime2(LocalTime.parse(endtime2));System.out.println("请输入"+s.getDate()+"号星期"+s.getDate().getDayOfWeek()+"晚上接诊人数");int numjiezhen2=sc.nextInt();s.setNumjiezhen2(numjiezhen2);}d.getSchedule().add(s);//添加排班}}
12,查询信息医生排班
public void showtimeofdoctor(){doctor d=printfalldoctor();//调用方法获取输入的医生for (int i = 0; i < d.getSchedule().size(); i++){System.out.println(d.getSchedule().get(i).getDate());if(d.getSchedule().get(i).getMorning().equals("Y")){System.out.println("上午:"+d.getSchedule().get(i).getStarttime()+"-"+d.getSchedule().get(i).getEndtime());System.out.println("预约人数:"+d.getSchedule().get(i).getNumyuyue()+"接诊人数:"+d.getSchedule().get(i).getNumjiezhen());}else if(d.getSchedule().get(i).getMorning().equals("N")) System.out.println("上午不上班");if(d.getSchedule().get(i).getAfternoon().equals("Y")){System.out.println("下午:"+d.getSchedule().get(i).getStarttime1()+"-"+d.getSchedule().get(i).getEndtime1());System.out.println("预约人数:"+d.getSchedule().get(i).getNumyuyue1()+"接诊人数:"+d.getSchedule().get(i).getNumjiezhen1());}else if(d.getSchedule().get(i).getAfternoon().equals("N")) System.out.println("下午不上班");if(d.getSchedule().get(i).getNight().equals("Y")){System.out.println("晚上:"+d.getSchedule().get(i).getStarttime2()+"-"+d.getSchedule().get(i).getEndtime2());System.out.println("预约人数:"+d.getSchedule().get(i).getNumyuyue2()+"接诊人数:"+d.getSchedule().get(i).getNumjiezhen2());System.out.println("---------------------------------------");}}}
13,遇到问题字符串与时间对象的格式转换
如果你遇到 LocalTime.parse() 方法无法解析时间字符串的问题,通常有以下几个原因:
格式不匹配:
输入的时间字符串格式与 LocalTime.parse() 默认的格式(HH:mm:ss)不匹配。
解决方法:使用 DateTimeFormatter 指定正确的格式。
无效的时间值:
输入的时间字符串包含无效的时间值,例如小时数超过23,分钟数或秒数超过59。
解决方法:确保输入的时间字符串是有效的。
字符集问题:
输入的时间字符串包含非数字字符或特殊字符。
解决方法:检查并清理输入字符串,确保只有有效的时间字符。
时区问题:
如果时间字符串包含时区信息,而 LocalTime 不支持时区。
解决方法:使用 ZonedDateTime 或 OffsetTime 来处理带时区的时间字符串。
LocalDate.parse() 方法默认使用 ISO_LOCAL_DATE 格式,即 yyyy-MM-dd。如果你的输入时间字符串格式与此默认格式不匹配,你需要使用 DateTimeFormatter 来指定正确的格式。
14,病人预约
14.1预约成功后打印信息
public oppintment bookingsc(oppintment o,doctor d){System.out.println("请输入您的姓名");Scanner sc=new Scanner(System.in);String name=sc.next();o.setName(name);System.out.println("请输入您的性别");String sex=sc.next();o.setSex(sex);System.out.println("请输入您的年龄");int age=sc.nextInt();o.setAge(age);System.out.println("请输入您的手机号");String phone=sc.next();o.setDesc(phone);System.out.println("预约成功");System.out.println("预约科室:"+d.getDepartment());o.setDepartmentname(d.getDepartment());System.out.println("预约医生:"+d.getName());o.setDoctor(d.getName());System.out.println("预约号:"+o.getNum()+1);o.setNum(o.getNum()+1);return o;}}
14.2能否预约成功进行判断
public void booking(){doctor d=printfalldoctor();oppintment o=new oppintment();System.out.println("请输入预约日期");Scanner sc=new Scanner(System.in);String date=sc.next();LocalDate date1=LocalDate.parse(date);for(int i=0;i<d.getSchedule().size();i++){schedule s=d.getSchedule().get(i);if(s.equals(date1)){System.out.println("请选择1,上午。2,下午。3,晚上");int command=sc.nextInt();switch (command){case 1:if(s.getMorning().equals("Y")){System.out.println("请输入预约时间");String time=sc.next();LocalTime time1=LocalTime.parse(time);if(time1.isBefore(s.getEndtime())&&time1.isAfter(s.getStarttime())&&(s.getNumjiezhen()-s.getNumyuyue())>0)//判断是否在范围内,预约人数是否满了{oppintment o1=bookingsc(o,d);LocalDateTime date2=LocalDateTime.of(date1,time1);o1.setDate(date2);System.out.println("预约时间"+date2);allpaitent.add(o1);}}break;case 2:if(s.getAfternoon().equals("Y")){System.out.println("请输入预约时间");String time=sc.next();LocalTime time1=LocalTime.parse(time);if(time1.isBefore(s.getEndtime1())&&time1.isAfter(s.getStarttime1())&&(s.getNumjiezhen1()-s.getNumyuyue1())>0){oppintment o1=bookingsc(o,d);LocalDateTime date2=LocalDateTime.of(date1,time1);o1.setDate(date2);System.out.println("预约时间"+date2);allpaitent.add(o1);}}break;case 3:if(s.getNight().equals("Y")){System.out.println("请输入预约时间");String time=sc.next();LocalTime time1=LocalTime.parse(time);if(time1.isBefore(s.getEndtime2())&&time1.isAfter(s.getStarttime2())&&(s.getNumjiezhen2()-s.getNumyuyue2())>0){oppintment o1=bookingsc(o,d);//预约成功,打印基本信息LocalDateTime date2=LocalDateTime.of(date1,time1);o1.setDate(date2);System.out.println("预约时间"+date2);//最后打印时间allpaitent.add(o1);}}break;default:System.out.println("输入有误,请重新输入");continue;}}}}
14.3代码解释
这段代码实现了医院预约系统的预约功能。具体步骤如下:
选择医生:调用 printfalldoctor 方法显示所有医生,并让用户选择一个医生。
创建预约对象:创建一个新的 oppintment 对象。
输入预约日期:用户输入预约日期,并将其转换为 LocalDate 对象。
遍历医生的排班表:检查医生的排班表,找到与用户输入日期匹配的排班记录。
选择时间段:用户选择上午、下午或晚上的时间段。
输入预约时间:用户输入具体的预约时间,并进行验证。
验证预约时间:确保预约时间在医生的工作时间内,并且预约人数未满。
完成预约:调用 bookingsc 方法完成预约,并将预约信息添加到 allpaitent 列表中。
15,app 实现类
package HostipalSystem;import java.time.LocalDate;
import java.util.Scanner;public class app {public static void main(String[] args) {hospitalmanager h=new hospitalmanager();h.start();}
}
16超卓系统全部代码
package HostipalSystem;import javax.swing.text.DateFormatter;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.UUID;public class hospitalmanager
{ArrayList<department> alldepartment=new ArrayList<>();ArrayList<doctor> alldoctor=new ArrayList<>();ArrayList<oppintment> allpaitent=new ArrayList<>();public void start(){Boolean flag=true;while(flag){Scanner sc= new Scanner(System.in);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("----------6,挂号------------");System.out.println("----------7,排班------------");System.out.println("----------8,退出操作系统------------");int command=sc.nextInt();switch (command){case 1:adddepasrtment();break;case 2:adddoctor();break;case 3:showdoctorindepartment();break;case 4:showdoctorinfo();break;case 5:showtimeofdoctor();break;case 6:booking();break;case 8:flag=false;break;case 7:operateschedule();break;default:System.out.println("输入有误,请重新输入");}}}public void adddepasrtment(){OUT:while(true){department d=new department();Scanner sc=new Scanner(System.in);System.out.println("请输入你要添加的部门的名称");String name=sc.next();d.setName(name);for(int i=0;i<alldepartment.size();i++){if(alldepartment.get(i).getName().equals(name)){System.out.println("该部门已存在");continue OUT;}}alldepartment.add(d);//将建好的部门添加进去break;}}public void adddoctor(){doctor d=new doctor();Scanner sc=new Scanner(System.in);System.out.println("请输入你要添加的医生的姓名");String name=sc.next();d.setName(name);System.out.println("请输入你要添加的医生的性别");String sex=sc.next();d.setSex(sex);System.out.println("请输入你要添加的医生的年龄");int age=sc.nextInt();d.setAge(age);System.out.println("请输入你要添加的医生的学历");String degree=sc.next();d.setDegree(degree);System.out.println("请输入你要添加的医生的擅长");String advantage=sc.next();d.setAdvantage(advantage);System.out.println("请输入你要添加的医生的入职时间");//LocalDate jointime=sc.nextLocalDate();d.setJointime(jointime());//调用方法存入医生的入职时间d.setId(UUID.randomUUID().toString());//生成随机数作为医生的编号System.out.println("您的编号是"+d.getId());System.out.println("请选择你的部门");for(int i=0;i<alldepartment.size();i++){System.out.println(i+1+"."+alldepartment.get(i).getName());}while(true){System.out.println("请输入部门的编号");int command=sc.nextInt();if(command>alldepartment.size()||command<1){System.out.println("输入有误,请重新输入");continue;}else{d.setDepartment(alldepartment.get(command-1).getName());alldepartment.get(command-1).getDoctors().add(d);alldoctor.add(d);//将医生添加到科室里System.out.println("录入完毕");break;}}}public LocalDate jointime(){Scanner sc=new Scanner(System.in);System.out.println("请输入医生入职时间格式为yyyy-mm-dd");String jointime=sc.next();LocalDate date=LocalDate.parse(jointime);return date;}public void showdoctorindepartment(){for(int i=0;i<alldepartment.size();i++){System.out.println(i+1+"."+alldepartment.get(i).getName());}while(true){System.out.println("请输入你想了解的部门的编号");Scanner sc=new Scanner(System.in);int command=sc.nextInt();if(command>alldepartment.size()||command<1){System.out.println("输入有误,请重新输入");continue;}else{for (int i = 0; i < alldepartment.get(command-1).getDoctors().size(); i++){System.out.println(alldepartment.get(command-1).getDoctors().get(i).getName());}break;}}}public void showdoctorinfo(){for (int i = 0; i < alldoctor.size(); i++){System.out.println(alldoctor.get(i).getName());System.out.println(alldoctor.get(i).getSex());System.out.println(alldoctor.get(i).getAge());System.out.println(alldoctor.get(i).getDegree());System.out.println(alldoctor.get(i).getAdvantage());System.out.println(alldoctor.get(i).getJointime());System.out.println(alldoctor.get(i).getId());System.out.println(alldoctor.get(i).getDepartment());System.out.println("---------------------------------------");}}public void showtimeofdoctor(){doctor d=printfalldoctor();//调用方法获取输入的医生for (int i = 0; i < d.getSchedule().size(); i++){System.out.println(d.getSchedule().get(i).getDate());if(d.getSchedule().get(i).getMorning().equals("Y")){System.out.println("上午:"+d.getSchedule().get(i).getStarttime()+"-"+d.getSchedule().get(i).getEndtime());System.out.println("预约人数:"+d.getSchedule().get(i).getNumyuyue()+"接诊人数:"+d.getSchedule().get(i).getNumjiezhen());}else if(d.getSchedule().get(i).getMorning().equals("N")) System.out.println("上午不上班");if(d.getSchedule().get(i).getAfternoon().equals("Y")){System.out.println("下午:"+d.getSchedule().get(i).getStarttime1()+"-"+d.getSchedule().get(i).getEndtime1());System.out.println("预约人数:"+d.getSchedule().get(i).getNumyuyue1()+"接诊人数:"+d.getSchedule().get(i).getNumjiezhen1());}else if(d.getSchedule().get(i).getAfternoon().equals("N")) System.out.println("下午不上班");if(d.getSchedule().get(i).getNight().equals("Y")){System.out.println("晚上:"+d.getSchedule().get(i).getStarttime2()+"-"+d.getSchedule().get(i).getEndtime2());System.out.println("预约人数:"+d.getSchedule().get(i).getNumyuyue2()+"接诊人数:"+d.getSchedule().get(i).getNumjiezhen2());System.out.println("---------------------------------------");}}}//public doctor printfalldoctor (){for(int i=0;i<alldoctor.size();i++){System.out.println((i+1)+alldoctor.get(i).getName());}doctor d;while(true){System.out.println("请输入你想了解的医生的编号");Scanner sc=new Scanner(System.in);int command=sc.nextInt();if(command>alldoctor.size()||command<1){System.out.println("输入有误,请重新输入");continue;}else{d=alldoctor.get(command-1);break;}}return d;//返回医生}public void operateschedule(){doctor d=printfalldoctor();for (int i = 0; i < 7; i++){schedule s=new schedule();s.setDate(LocalDate.now().plusDays(i));System.out.println("请输入"+s.getDate()+"号星期"+s.getDate().getDayOfWeek()+"上午是否上班");//s.getDate().getDayOfWeek()取的是日对象的获得星期天的方法System.out.println("Y,上班");System.out.println("N,不上班");Scanner sc=new Scanner(System.in);String command=sc.next();s.setMorning(command);if(s.getMorning().equals("Y")){System.out.println("请输入"+s.getDate()+"号星期"+s.getDate().getDayOfWeek()+"的上午上班时间");System.out.println("格式为HH:mm:ss");String starttime=sc.next();s.setStarttime(LocalTime.parse(starttime));System.out.println("请输入"+s.getDate()+"号星期"+s.getDate().getDayOfWeek()+"的上午下班时间");System.out.println("格式为HH:mm:ss");String endtime=sc.next();s.setEndtime(LocalTime.parse(endtime));System.out.println("请输入"+s.getDate()+"号星期"+s.getDate().getDayOfWeek()+"的上午接诊人数");int numjiezhen=sc.nextInt();s.setNumjiezhen(numjiezhen);}System.out.println("请输入"+s.getDate()+"号星期"+s.getDate().getDayOfWeek()+"下午是否上班");System.out.println("Y,上班");System.out.println("N,不上班");String command1=sc.next();s.setAfternoon(command1);if(s.getAfternoon().equals("Y")){System.out.println("请输入"+s.getDate()+"号星期"+s.getDate().getDayOfWeek()+"下午上班时间");System.out.println("格式为HH:mm:ss");String starttime1=sc.next();s.setStarttime1(LocalTime.parse(starttime1));System.out.println("请输入"+s.getDate()+"号星期"+s.getDate().getDayOfWeek()+"下午下班时间");System.out.println("格式为HH:mm:ss");String endtime1=sc.next();s.setEndtime1(LocalTime.parse(endtime1));System.out.println("请输入"+s.getDate()+"号星期"+s.getDate().getDayOfWeek()+"下午接诊人数");int numjiezhen1=sc.nextInt();s.setNumjiezhen1(numjiezhen1);}System.out.println("请输入"+s.getDate()+"号星期"+s.getDate().getDayOfWeek()+"晚上是否上班");System.out.println("Y,上班");System.out.println("N,不上班");String command2=sc.next();s.setNight(command2);if(s.getNight().equals("Y")){System.out.println("请输入"+s.getDate()+"号星期"+s.getDate().getDayOfWeek()+"晚上上班时间");System.out.println("格式为HH:mm:ss");String starttime2=sc.next();s.setStarttime2(LocalTime.parse(starttime2));System.out.println("请输入"+s.getDate()+"号星期"+s.getDate().getDayOfWeek()+"晚上下班时间");System.out.println("格式为HH:mm:ss");String endtime2=sc.next();s.setEndtime2(LocalTime.parse(endtime2));System.out.println("请输入"+s.getDate()+"号星期"+s.getDate().getDayOfWeek()+"晚上接诊人数");int numjiezhen2=sc.nextInt();s.setNumjiezhen2(numjiezhen2);}d.getSchedule().add(s);//添加排班}}public void booking(){doctor d=printfalldoctor();oppintment o=new oppintment();System.out.println("请输入预约日期");Scanner sc=new Scanner(System.in);String date=sc.next();LocalDate date1=LocalDate.parse(date);for(int i=0;i<d.getSchedule().size();i++){schedule s=d.getSchedule().get(i);if(s.equals(date1)){System.out.println("请选择1,上午。2,下午。3,晚上");int command=sc.nextInt();switch (command){case 1:if(s.getMorning().equals("Y")){System.out.println("请输入预约时间");String time=sc.next();LocalTime time1=LocalTime.parse(time);if(time1.isBefore(s.getEndtime())&&time1.isAfter(s.getStarttime())&&(s.getNumjiezhen()-s.getNumyuyue())>0)//判断是否在范围内,预约人数是否满了{oppintment o1=bookingsc(o,d);LocalDateTime date2=LocalDateTime.of(date1,time1);o1.setDate(date2);System.out.println("预约时间"+date2);allpaitent.add(o1);}}break;case 2:if(s.getAfternoon().equals("Y")){System.out.println("请输入预约时间");String time=sc.next();LocalTime time1=LocalTime.parse(time);if(time1.isBefore(s.getEndtime1())&&time1.isAfter(s.getStarttime1())&&(s.getNumjiezhen1()-s.getNumyuyue1())>0){oppintment o1=bookingsc(o,d);LocalDateTime date2=LocalDateTime.of(date1,time1);o1.setDate(date2);System.out.println("预约时间"+date2);allpaitent.add(o1);}}break;case 3:if(s.getNight().equals("Y")){System.out.println("请输入预约时间");String time=sc.next();LocalTime time1=LocalTime.parse(time);if(time1.isBefore(s.getEndtime2())&&time1.isAfter(s.getStarttime2())&&(s.getNumjiezhen2()-s.getNumyuyue2())>0){oppintment o1=bookingsc(o,d);//预约成功,打印基本信息LocalDateTime date2=LocalDateTime.of(date1,time1);o1.setDate(date2);System.out.println("预约时间"+date2);//最后打印时间allpaitent.add(o1);}}break;default:System.out.println("输入有误,请重新输入");continue;}}}}public oppintment bookingsc(oppintment o,doctor d){System.out.println("请输入您的姓名");Scanner sc=new Scanner(System.in);String name=sc.next();o.setName(name);System.out.println("请输入您的性别");String sex=sc.next();o.setSex(sex);System.out.println("请输入您的年龄");int age=sc.nextInt();o.setAge(age);System.out.println("请输入您的手机号");String phone=sc.next();o.setDesc(phone);System.out.println("预约成功");System.out.println("预约科室:"+d.getDepartment());o.setDepartmentname(d.getDepartment());System.out.println("预约医生:"+d.getName());o.setDoctor(d.getName());System.out.println("预约号:"+o.getNum()+1);o.setNum(o.getNum()+1);return o;}}
相关文章:
JAVA项目-------医院挂号系统
1,项目目的 1、科室管理:新增科室,删除科室(如果有医生在,则不能删除该科室),修改科室。 2、医生管理:录入医生信息,以及科室信息。修改医生信息(主要是修改…...
[工具分享] 根据Excel数据根据Word文档模板,批量创建生成Word文档并重命名,方便快速查找打印
前几天交楼的小姐姐要多份Word文档合同打印给客户,那么100份就需要修改100次 上面好多都是模板的制式文件,里面的部分数据都是要根据实际值来变动的, 那么有没有快速的方法来操作呢,还是只能一个个手动的改,又容易出…...
Redis的管道操作
在现代应用程序中,Redis作为一种高性能的内存数据库,被广泛用于缓存、消息队列、实时分析等场景。为了进一步提高Redis的性能,Redis提供了管道(Pipeline)操作,允许客户端将多个命令一次性发送到服务器&…...
IT监控 | Oracle云监控全解析
Oracle云(Oracle Cloud)是Oracle公司提供的云服务平台,涵盖了IaaS、PaaS、SaaS和DaaS,支持企业在云中构建、部署、集成和扩展应用,为企业提供了管理服务器、应用程序、存储、网络和数据中心的全面控制能力。 跟踪Oracle云基础设施的关键组件将…...
前端面试题-1(详解事件循环)
1.了解浏览器的进程模型 1.什么是进程? 程序运行需要有它自己专属的内存空间,可以把这块内存空间简单的理解为进程 每个应用至少有一个进程,进程之间相互独立,即使要通信,也需要双方同意。 2.什么是线程?…...
Redis(5):哨兵
一、作用和架构 1. 作用 在介绍哨兵之前,首先从宏观角度回顾一下Redis实现高可用相关的技术。它们包括:持久化、复制、哨兵和集群,其主要作用和解决的问题是: 1)持久化:持久化是最简单的高可用方法(有时甚…...
【人工智能】Transformers之Pipeline(二十五):图片特征抽取(image-feature-extraction)
目录 一、引言 二、图片特征抽取(image-feature-extraction) 2.1 概述 2.2 google/ViT 2.3 pipeline参数 2.3.1 pipeline对象实例化参数 2.3.2 pipeline对象使用参数 2.4 pipeline实战 2.5 模型排名 三、总结 一、引言 pi…...
podman 源码 5.3.1编译
1. 构建环境 在麒麟V10服务器操作系统上构建:Kylin-Server-V10-GFB-Release-2204-Build03-ARM64.iso。由于只是编译 podman 源码,没必要特地在物理机或服务上安装一个这样的操作系统,故采用在虚拟机里验证。 2. 安装依赖 参考资料…...
矩阵重新排列——rot90函数
通过 r o t 90 rot90 rot90函数可以将矩阵进行旋转 用法: r o t 90 ( a , k ) rot90(a,k) rot90(a,k)将矩阵 a a a按逆时针方向旋转 k 9 0 ∘ k\times90^\circ k90∘...
Leetcode 51 N Queens Leetcode N Queens II
题意 给定一个数字 n n n,形成n*n的棋盘,棋盘上放n个皇后,确保皇后之间不会相互吃(皇后可以直线吃,斜线吃) 链接 https://leetcode.com/problems/n-queens/description/ 思考 这道题只能暴力枚举所有的…...
0.查找命令
目录 🍉 find - 查找文件 🍇 grep 🍓 which 🍈locate 总结: 🍉 find - 查找文件 # 语法 # find [搜索范围] [选项] # 选项 # -name<查询方式> 按照指定的文件名查找模式查找文件 # …...
HarmonyOS-初级(一)
文章目录 初级核心技术理念函数的声明和使用类的声明和使用接口声明和使用声明式UI的特征 🏡作者主页:点击! 🤖HarmonyOS专栏:点击! ⏰️创作时间:2024年11月28日12点50分 初级 HAP可以分为静…...
Oracle 11gR2 坏块修复实例一则
背景 前段时间在 Oracle 11gR2 数据库中发现了坏块问题。环境是 64 位 Linux 平台。本文将详细介绍如何使用 DBMS_REPAIR 进行在线修复,当然也可以基于备份和 RMAN 的修复方法这里暂时不做介绍。 发现坏块 1. 从 alert.log 中发现错误 在 alert.log 文件中发现了…...
解决FinalShell 连接virtual box安装的Linux centos/7系统 一直让输入密码,输入什么密码都没用
问题描述: virtual box安装的Linux centos/7系统默认只允许ssh登录方式,需要配置允许账号密码登录 先登录root账号(一定要是root):初始密码为vagrant su 修改ssh配置文件: vi /etc/ssh/sshd_config 修改…...
华为E9000刀箱(HWE9000V2)服务器硬件监控指标解读
随着数据中心规模的不断扩大,服务器的稳定性和可靠性变得尤为重要。华为E9000刀箱(HWE9000V2)作为一款高性能的服务器设备,其硬件状态的实时监控对于保障业务的连续性和系统的稳定运行至关重要。 监控易作为一款专业的IT基础设施监…...
Python基础学习-12匿名函数lambda和map、filter
目录 1、匿名函数: lambda 2、Lambda的参数类型 3、map、 filter 4、本节总结 1、匿名函数: lambda 1)语法: lambda arg1, arg2, …, argN : expression using arg 2) lambda是一个表达式,而不是一个语…...
民安:助力提升城市安全水平
随着城市化进程的加速,平安城市的创建成为了社会治理的重要议题。为了解公众对平安城市创建的看法和评价,为提升城市安全水平提供参考,近期某市委托民安智库专业市场调查公司开展了一次安全感满意度调查。 本次调查围绕公共安全、个人安全、…...
Apache Zeppelin:一个基于Web的大数据可视化分析平台
今天给大家推荐一下 Apache Zeppelin,它是一个基于 Web 的交互式数据接入、数据分析、数据可视化以及协作文档 Notebook,类似于 Jupyter Notebook。 Apache Zeppelin 支持使用 SQL、Java、Scala、Python、R 等编程语言进行数据处理和分析,同时…...
「Qt Widget中文示例指南」如何为窗口实现流程布局?(二)
Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。 本文将展示如何为不…...
【C语言篇】探索 C 语言结构体:从基础语法到数据组织的初体验
我的个人主页 我的专栏:C语言,希望能帮助到大家!!!点赞❤ 收藏❤ 目录 什么是结构体结构体的定义与使用结构体内存布局嵌套结构体与指针结构体数组的操作结构体与函数结构体内存对齐机制位域与结构体的结合动态内存分…...
linux下USB设备状态查询
linux下USB设备状态查询 linux下USB设备状态查询 在buildroot RK3568平台上调试USB视频采集时发现,USB设备经常性断开,为发现其断开的规律,编写脚本记录其断开的时间 linux下USB设备状态查询 #周期性查询 USB设备 cat > /usr/bin/usbenq…...
鼠标前进后退键改双击,键盘映射(AutoHotkey)
初衷: 1.大部分鼠标为不可自定义按键,可以自定义的又很贵。 鼠标左键是双击是很频类很高的操作,鼠标前进/后退按键个人感觉使用频率很低,因此把鼠标前进/后退改为双击还是很合适的。 2.有些短款的键盘没有Home或End键,…...
ubuntu服务器睡眠命令
在 Ubuntu 服务器中,通常不会启用系统睡眠(即 suspend)模式,因为服务器通常需要保持持续运行以提供服务。但如果你希望让 Ubuntu 服务器进入睡眠状态,你可以使用以下命令: 1. 让系统进入休眠(S…...
尚硅谷学习笔记——Java设计模式(一)设计模式七大原则
一、介绍 在软件工程中,设计模式(design pattern)是对软件设计中普遍存在(反复出现)的各种问题,提出的解决方案。我们希望我们的软件能够实现复用性、高稳定性、扩展性、维护性、代码重用性,所以…...
Flink——进行数据转换时,报:Recovery is suppressed by NoRestartBackoffTimeStrategy
热词统计案例: 用flink中的窗口函数(apply)读取kafka中数据,并对热词进行统计。 apply:全量聚合函数,指在窗口触发的时候才会对窗口内的所有数据进行一次计算(等窗口的数据到齐,才开始进行聚合…...
技能之发布自己的依赖到npm上
目录 开始 解决 步骤一: 步骤二: 步骤三: 运用 一直以为自己的项目在github上有了(之传了github)就可以进行npm install下载,有没有和我一样萌萌的同学。没事,萌萌乎乎的不犯罪。 偶然的机…...
COMSOL工作站:配置指南与性能优化
COMSOL Multiphysics 求解的问题类型相当广泛,提供了仿真单一物理场以及灵活耦合多个物理场的功能,供工程师和科研人员来精确分析各个工程领域的设备、工艺和流程。 软件内置的#模型开发器#包含完整的建模工作流程,可实现从几何建模、材料参数…...
Qt导出Excel图表
目的 就是利用Qt导出Excel图表,如果直接画Excel 图表,比较麻烦些,代码写得也复杂了;而直接利用Excel模块就简单了,图表在模块当中已经是现成的了,Qt程序只更改数据就可以了,这篇文章就是记录一下利用模块上…...
分布式协同 - 分布式系统的特性与互斥问题
文章目录 导图概述分布式系统的特性与挑战分布式互斥算法的目标分布式互斥算法集中互斥算法集中互斥算法示意图集中互斥算法流程 基于许可的互斥算法Lamport 算法示意图Lamport 流程 令牌环互斥算法令牌环互斥算法示意图 1. 集中互斥算法(Centralized Mutual Exclus…...
windows安装itop
本文介绍 win10 安装 itop 安装WAMP集成环境前 先安装visual c 安装itop前需要安装WAMP集成环境(windowsApacheMysqlPHP) 所需文件百度云盘 通过网盘分享的文件:itop.zip 链接: https://pan.baidu.com/s/1D5HrKdbyEaYBZ8_IebDQxQ 提取码: m9fh 步骤一࿱…...
网站无法打开的原因/免费域名申请网站大全
刚从泰山上下来,就一个感觉,只要步履平稳,不停的小憩,甭管是中天门还是十八盘,都弱爆了。。行百里者半九十的说……日出也就这么回事……36H没睡觉~~~ 比起模板,稍有变化。拉登君有1分,2分&…...
如何进行电商网站设计开发/如何在百度搜索到自己的网站
兔子月薪5千,打算用20万建一个窝。狼不允许,说私自建就是违章建筑,只允许向王八买。王八是搞房地产的,先用20万交纳各种费用向狼取得开发权,再用50万元向狼买这块地,投资50万元把兔子窝盖好,向兔…...
江门网站建设推广/哪里可以代写软文
xlrd 设置单元格样式 def set_style(name,height,boldFalse): style xlwt.XFStyle() #初始化样式 font xlwt.Font() #为样式创建字体 font.name name #Times New Roman font.bold bold#f.underline Font.UNDERLINE_DOUBLE font.color_index 4font.heightheight # borders xlw…...
企业网站设计开题报告/权重查询站长工具
C#/.NET编码规范 一、 术语定义 Pascal 命名法 标识符的首字母和后面连接的每个单词首字母大写。例如:ProductName Camel 命名法 标识符的首字母小写,而后面连接的每个单词首字母大写。例如:userFamilyAddress 二、 …...
网站增加二级域名/网站权重查询接口
问题描述 el-drawer里面嵌入子组件factoryForm先打开el-drawer之后才能拿到子组件factoryForm的ref即factoryForm,这个时候子组件factoryForm里面需要回填el-upload里面已经上传的图片,此时图片无法回填 html el-drawer里面嵌入子组件factoryForm <…...
优化型网站模板/百度检索入口
【论文复现赛】FastFCN: Rethinking Dilated Convolution in the Backbone for Semantic Segmentation 本文提出了一个新的联合上采样模块JPU(Joint Pyramid Upsampling),将提取高分辨率特征图的任务映射成一个联合上采样问题。JPU模块可应用于各种语义分割模型中&…...