有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何用java制作预约记录?

好的,所以基本上我要做一个医生和病人的预约记录。我已经做了医生和病人的记录,但现在我必须做一个预约记录,根据病人的病情和医生的专业,我必须将一名病人分配给一名医生。我是java新手,所以我不太擅长java,如果你能帮我,我将非常感谢:-)我将向你展示我迄今为止所做的编码。它也包含了一些额外的东西,但我必须把它添加到我的作业中。是的,我给一些变量和对象起的名字有点奇怪,但那是因为java不允许我给它们起一个合适的名字。。无论如何,这是我的代码:-

package samplee.java;
import java.util.*;
import java.util.ArrayList;
import java.util.Scanner;

public class patient$ {

    public static void main(String[] args) {
        ArrayList<patientss> patient1= new ArrayList<patientss>();
        ArrayList<doctorss> doctor1= new ArrayList<doctorss>();
        Scanner src= new Scanner(System.in);
        Scanner sc= new Scanner(System.in);
        Scanner stc= new Scanner(System.in);
        Scanner sdc= new Scanner(System.in);
        Scanner update= new Scanner(System.in);
        Scanner ill=new Scanner(System.in);
        int id,it,num,i,docid,docit,docnum,docid1;
        String name,docname,docspecial,illness;
        int ages,docage;
        int id1;
        Boolean leave = false;
        while(!leave){
            patientss xx= new patientss();
            System.out.println("Enter the patient's ID ");
            System.out.println("-1 to finish entering");
            id=src.nextInt();
            if(id != -1){
            xx.setId(id);

        } 
            System.out.println("Enter the patient's name ");
        System.out.println("-1 to finish entering");
        name=stc.next();
        if(id != -1){
            xx.setName(name);
            patient1.add(xx);
        } 
        System.out.println("Enter the patient's phone number");
        System.out.println("-1 to finish entering");
        num=sdc.nextInt();
        if(id != -1){
            xx.setNum(num);
            patient1.add(xx);
        } 
        System.out.println("Enter the type of illness the patient has");
        System.out.println("-1 to finish entering");
        illness=ill.next();
        if(id!= -1){
            xx.setIllness(illness);
            patient1.add(xx);
        }

            else { leave = true; }//Escape the while loop.
        }
        System.out.println("Enter the id of a patient");
        it=sc.nextInt();
        patientss tt= new patientss();
        for(i=0;i<patient1.size();i++)
            {
            tt=patient1.get(i);
            if(it==tt.getId()) 
            System.out.println(tt.toString());
            break;
            }
        System.out.println("Enter the id of the patient you want to update");
        Scanner id11= new Scanner(System.in);
        id1=id11.nextInt();
        int up,id2;
        String namess;
        int phones;
        patientss dd= new patientss();
        for(i=0;i<patient1.size();i++){
            dd=patient1.get(i);
            if(id1==dd.getId()){
                System.out.println("If you want to change the name, type 2");
                System.out.println("If you want to change the number, type 3");
                System.out.println("If you want to change the id, type 1");
                up=update.nextInt();
                if(up==1){
                    System.out.println("Enter a new ID ");
                    Scanner idd= new Scanner(System.in);
                    id2=idd.nextInt();
                    dd.setId(id2);
                    patient1.add(dd);

            }
                else if(up==2){
                    System.out.println("Enter a new name");
                    Scanner namme=new Scanner(System.in);
                    namess=namme.next();
                    dd.setName(namess);
                    patient1.add(dd);

                }
                else if(up==3){
                    System.out.println("Enter a new phone");
                    Scanner newphone= new Scanner(System.in);
                    phones=newphone.nextInt();
                    dd.setNum(phones);
                    patient1.add(dd);

                }
        }
            System.out.println(dd);
            break;
        } 
        boolean over = false;
        while(!over){
            doctorss xt= new doctorss();
            System.out.println("Enter the doctor's ID ");
            System.out.println("-1 to finish entering");
            docid=src.nextInt();
            if(docid != -1){
            xt.setDocid(docid);
            }
            System.out.println("Enter the doctor's name ");
            System.out.println("-1 to finish entering");
            docname=stc.next();
            if(docid != -1){
                xt.setDocname(docname);
                doctor1.add(xt);
            } 
            System.out.println("Enter the doctor's phone number");
            System.out.println("-1 to finish entering");
            docnum=sdc.nextInt();
            if(docid != -1){
                xt.setDocnum(docnum);
                doctor1.add(xt);
            }
            System.out.println("What does the doctor specialize in?");
            String specialize;
            Scanner special= new Scanner(System.in);
            specialize=special.next();
            if(docid != -1){
                xt.setSpecialize(specialize);
                doctor1.add(xt);
            }
                else { over = true; }//Escape the while loop.
            }
        System.out.println("Enter the id of a doctor");
        docit=sc.nextInt();
        doctorss tti= new doctorss();
        for(i=0;i<doctor1.size();i++){
            tti=doctor1.get(i);
            if(docit==tti.getDocid()) 
            System.out.println(tti.toString());
            }

        } 
    }

这些是我的课

package samplee.java;

public class patientss {
int id;
String name;
int num;
String illness;
public String getIllness() {
    return illness;
}

public void setIllness(String illness) {
    this.illness = illness;
}

public int getNum() {
    return num;
}

public void setNum(int num) {
    this.num = num;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}
public String toString(){
    return name+" "+id+" "+num+ " "+illness;
}
}

这是我的博士课程:-

package samplee.java;

public class doctorss {
int docid;
String specialize;
public String getSpecialize() {
    return specialize;
}
public void setSpecialize(String specialize) {
    this.specialize = specialize;
}
public int getDocid() {
    return docid;
}
public void setDocid(int docid) {
    this.docid = docid;
}
public String getDocname() {
    return docname;
}
public void setDocname(String docname) {
    this.docname = docname;
}
public int getDocnum() {
    return docnum;
}
public void setDocnum(int docnum) {
    this.docnum = docnum;
}
String docname;
int docnum;
public String toString(){
    return docname+" "+docid+" and "+docnum+" he specializes in"+specialize;
}
}

共 (1) 个答案

  1. # 1 楼答案

    首先,我想就您的代码发表一些评论:

    1. 在camel case中遵循Oracle约定和名称类 大写字母
    2. 类名不能是复数:不是Doctors,而是Doctor。在你的例子中,它描述的是单个实体,而不是一群医生或其他什么
    3. 不需要像docidid这样的字段命名,就足够了,因为它是在Doctor类中定义的
    4. 在我看来,疾病必须与班级分开。不幸的是,患者可能会因不同的疾病而多次生病

    我将向您推荐以下课程(省略getters setters等细节,但我希望您能理解):

    class Doctor {
        private int id;
        private String name;
    }
    
    class Patient {
        private int id;
        private String name;
    }
    
    class Illness {
        private int id;
        private String name;
    }
    
    class Appointment {
        private Doctor doctor;
        private Patient patient;
        private Illness illness;
        private Date date;
    
        public Appointment(
          Doctor doctor, Patient patient, Illness illness, Date date
        ) {
           this.doctor = doctor;
           this.patient = patient;
           this.illness = illness;
           this.date = date;
        }
    }
    

    编辑: 当用户输入医生和病人时,你必须以某种方式“记住”他们。例如,使用array或ArrayList表示:

    ArrayList<Patient> patients = new ArrayList<Patient>();
    // read the patient here
    patients.add(patient)
    

    因此,在需要预约的步骤中,您必须要求用户输入:医生id、患者id、疾病id和所需日期。然后你必须在“记忆”列表中找到医生、患者和疾病:

    Patient patient
    for (Patient item : patients) {
        if (item.getId() == idFromUser) {
            patient = item
        }
    }
    if (patient == null) {
        System.out.println("Patient not found. Choose another ID.");
       // here you have to force user to re-input the value.
    }
    

    然后创建新的约会:

    new Appointment(doctor, patient, illness, date);