2016-04-16 9 views
0

ですから、基本的には医者と患者の予定記録を作る必要があります。私はすでに医者と患者の記録を作成しましたが、今では患者の病気と医師の専門性に基づいて1人の患者を医師に割り当てる必要があります。私はJavaの初心者ですので、あなたが私を助けることができるなら、私はそれを高く評価します:-)私はこれまでに行ったコーディングを表示します。それには余分なものも含まれていますが、私は割り当てのためにそれを追加する必要があります。そして、いや、私はいくつかの変数やオブジェクトに与えた名は、ソートの奇妙ですが、それは、Javaのcosで文句を言わない私は彼らに適切かつ適切な名前を与えてみましょう。..とにかくここに私のコードです: -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()); 
      } 

     } 
    } 

及びこれらのR私のクラス..

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; 
} 
} 

答えて

0

私はあなたのコードに関するいくつかのコメントをしたいまず第一に:

  1. 大文字で始まる のキャメルケースでは、Oracleの規約と名前のクラスに従ってください。
  2. クラス名は複数であってはいけません。Doctorsではなく、Doctorです。あなたのケースでは、それは医者のグループではなく、単一のエンティティを記述します。
  3. docidのようなフィールドには、Doctorクラスで定義されているように、idなどの名前を付ける必要はありません。
  4. 私の意見では、病気は別のクラスでなければなりません。残念ながら、患者は異なる病気で何度も病気になることがあります。

私はあなたに以下のクラス(ゲッターセッターなどの詳細は省略するが、私はあなたのアイデアを得ることを願っている)を提案する:

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; 
    } 
} 

編集: ユーザーは医師と患者、あなたを入力すると何らかの形でそれらを「覚えています」。用途、例えば、配列またはそのための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); 
+0

ああ[OK]を感謝しかし、どのように私は一緒に患者や医師を割り当てるかを:/それは私をたくさん混乱させています: -/ –

+0

私は私の答えを編集しました、私はそれが助けてくれることを願っています。 –

+0

私はまた、患者をリストに入れて検索する方法の例を追加しました。医師や病気でも同じことができます。コードはちょうどアイデアを示すためにむしろ疑似コードです。 –

関連する問題