gpt4 book ai didi

java - 如何处理 Java OOP 程序

转载 作者:太空宇宙 更新时间:2023-11-04 15:05:33 25 4
gpt4 key购买 nike

我是一名大学生,目前正在学习 Java 的 OOP。我被分配了一项相当困难的任务,而我现在的情况对于 OOP 来说还是个新手,事实证明它相当困难。我首先概述一下我被要求做什么,然后是我目前的详细情况。

我们被要求实现的计划是医生手术的应用程序来管理医生与患者之间的关系。需要一个完全可操作的 GUI,但我现在会避免启动它,因为它只会使事情变得复杂。

以下是分配规范:

<小时/>

“开发一个应用程序来管理医生的手术。

  1. 医生必须经过身份验证才能访问系统。
  2. 医生在登录时会看到患者名单。
  3. 医生需要查看患者的详细信息、更新患者的详细信息、添加新患者。A。患者详细信息包括姓名、地址、号码、患者病史(每次就诊/手术/严重疾病的详细信息+日期)b.到第 8 周,我们将使用数组列表来存储数据。这将在关闭时保存到文件中,并在启动时加载。C。第 8 周后,应使用数据库来替换数组列表和之前用于持久性的任何文件。
  4. 医生应该能够根据患者姓名或患者 ID 搜索患者
  5. 备份和恢复:如果发生数据库损坏或毁坏的灾难,系统将需要从备份恢复。医生需要能够将所有系统信息备份到文件中,并在必要时从该文件进行恢复。文件应标有备份日期,备份应每周进行一次。
  6. 应生成两份报告,一份是系统中所有患者的列表,后跟他们的病史(按患者姓名的字母顺序排列),另一份是关于在日期排序的特定日期之间访问过的所有患者的报告。”
<小时/>

到目前为止,我已经成功创建了类,我的代码如下(我们已经获得了可以使用的类图)。

外科类(class)(主要):

import java.util.*;
import java.util.Date;

public class surgery
{
private int surgeryId;
private String surgeryAdd;

public surgery(int surgeryId, String surgeryAdd)
{
this.surgeryId = surgeryId;
this.surgeryAdd = surgeryAdd;
}

public void setId (int surgeryId) {
this.surgeryId = surgeryId;
}

public void setSurgeryAdd (String surgeryAdd) {
this.surgeryAdd = surgeryAdd;
}

public int getId () {
return surgeryId;
}

public String getSurgeryAdd () {
return surgeryAdd;
}

public static void main(String[] args) {

System.out.println("Add doctor, enter name: ");
Scanner kbd = new Scanner (System.in);

//User inputs name
String enteredName = kbd.nextLine();

//Object is then created with an ID number and the name the user entered:
Doctor one = new Doctor (1, enteredName);

//Create ArrayList to store Doctor objects:
ArrayList<Doctor> myDoctors = new ArrayList();

//Add the first doctor to ArrayList:
myDoctors.add(one);

//Print out the doctors array.
System.out.print(myDoctors);
}
}

博士类:

import java.util.*;

public class Doctor
{
private int doctorId;
private String doctorName;
ArrayList <Patient> patients = new ArrayList();

public Doctor(int doctorId, String doctorName)
{
this.doctorId = doctorId ;
this.doctorName = doctorName;
}

public void setId (int doctorId) {
this.doctorId = doctorId;
}

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

public int getId (){
return doctorId;
}

public String getName () {
return doctorName;
}

public String toString () {
return "Doctor ID: "+doctorId+", Doctor name: "+doctorName;
}

public void addPatient (int patientId, String name, String address, String phoneNumber, Date DOB ) {

Scanner kbd = new Scanner (System.in);
System.out.print("Enter a patient ID: ");

int id = kbd.nextInt();

kbd.nextLine();

System.out.print("Enter patient Name: ");
String patientName = kbd.nextLine();


System.out.print("Enter Address:");
String patientAddress = kbd.nextLine();


System.out.print("Enter the phone num:");
String num = kbd.nextLine();


Date dateOfBirth = new Date(1);

Patient pat = new Patient(id, patientName, patientAddress, num, dateOfBirth);

patients.add(pat);

System.out.println(patients);
}

患者类别:

import java.util.*;

public class Patient
{
private int patientId;
private String patientName;
private String patientAddress;
private String patientPhone;
private Date patientDOB;

public Patient(int patientId, String patientName, String patientAddress, String patientPhone, Date patientDOB)
{
// initialise instance variables
this.patientId = patientId;
this.patientName = patientName;
this.patientAddress = patientAddress;
this.patientPhone = patientPhone;
this.patientDOB = patientDOB;

}

public void setId (int patientId) {

this.patientId = patientId;

}

public void setName (String patientName){

this.patientName = patientName;

}

public void setAddress (String patientAddress){

this.patientAddress = patientAddress;

}

public void setPhone (String patientPhone){

this.patientPhone = patientPhone;

}

public void setDOB (Date patientDOB){

this.patientDOB = patientDOB;

}

public int getId () {

return patientId;

}

public String getName () {

return patientName;

}

public String getAddress () {

return patientAddress;

}

public String getPhone () {

return patientPhone;

}

public Date getDOB () {

return patientDOB;

}




}

}

患者病史类(class):

import java.util.*;

public class patientHistory
{

int historyId;
int patientId;
int doctorId;
Date visitDate;
String description;
String medicine;
String procedure;

public patientHistory(int historyId, int patientId, int doctorId, Date visitDate, String description, String medicine, String procedure)
{
this.historyId = historyId;
this.patientId = patientId;
this.doctorId = doctorId;
this.visitDate = visitDate;
this.description = description;
this.medicine = medicine;
this.procedure = procedure;
}

public void setHistoryId (int historyId){

this.historyId = historyId;

}

public void setPatientId (int patientId) {

this.patientId = patientId;

}


public void setDoctorId (int doctorId) {

this.doctorId = doctorId;

}

public void setVisitDate (Date visitDate){

this.visitDate = visitDate;

}

public void setDescription (String description) {

this.description = description;

}

public void setmedicine (String medicine){

this.medicine = medicine;

}

public void setProcedure (String procedure){

this.procedure = procedure;

}

public int getHistoryId () {

return historyId;

}

public int getPatientId () {

return patientId;

}

public int getDoctorId () {

return doctorId;

}

public Date getVisitDate () {

return visitDate;


}

public String getDescription () {

return description;

}

public String getMedicine () {

return medicine;

}

public String getProcedure () {

return procedure;

}

}

当第一次进行过程编程时,我也很挣扎,但最终还是成功地掌握了大多数概念。有了面向对象编程,我感觉好像又回到了原点,而我搜索的每一个答案似乎都让我的情况变得更加复杂。我理解 OOP 的概念,但在实现方面遇到困难。我常常不知道该把东西“放在哪里”。

例如,在医生类(class)中我做了第一种方法。 (addPatient) 但我根本不知道如何建立医生和患者之间的关系。我不明白在哪里调用该方法(是手术类(主要)、医生类本身等等)

我不是要代码,我基本上是在寻求如何从这里继续进行的建议,因为这将在大约 4 周后到期。

谢谢。

最佳答案

尝试将类视为完全独立的组件,这将提高可重用性,这正是 OOP 的目标。问问自己该实现是否适用于不同的环境。例如,Doctor.addPatient() 不应提示您输入要添加的患者的详细信息(该信息已作为参数提供给您)。

确定主要元素后,请考虑如何将所有内容粘合在一起。正如其他人指出的那样,您应该看看设计模式(例如 MVC,这在处理 GUI 时非常有用)。

关于java - 如何处理 Java OOP 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22038782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com