审核一下代码是否符合要求

#题目 6:医院门诊信息管理系统 (06 )
【问题描述】
该设计采用菜单作为应用程序的主要界面,用控制语句来改变程序执行的顺
序,控制语句是实现结构化程序设计的基础。该设计的任务是利用一个简单实用
的界面完成对门诊信息和诊断信息的登记。包括病人的姓名,性别,挂号码,身
份证,科室以及最后诊断结果的输出
【任务要求】
1.录入患者信息
2.匹配对应科室的挂号码
3.输入医生的诊断结果
4.分配取药窗口和结账窗口
【设计要求】
完成简单的模拟医院门诊信息管理系统的功能
功能方法设计
主要运用继承派生类的构造方法,更熟练的运用 Java 动态内存管理的方法
#相关代码片


import java.util.ArrayList;
import java.util.Scanner;
class Patient {
    private String name;
    private String gender;
    private int registrationNumber;
    private String id;
    public Patient(String name, String gender, int registrationNumber, String id) {
        this.name = name;
        this.gender = gender;
        this.registrationNumber = registrationNumber;
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public String getGender() {
        return gender;
    }
    public int getRegistrationNumber() {
        return registrationNumber;
    }
    public String getId() {
        return id;
    }
}
class Outpatient extends Patient {
    private String department;
    private String diagnosisResult;
    public Outpatient(String name, String gender, int registrationNumber, String id, String department) {
        super(name, gender, registrationNumber, id);
        this.department = department;
    }
    public void setDiagnosisResult(String result) {
        diagnosisResult = result;
    }
    public String getDepartment() {
        return department;
    }
    public String getDiagnosisResult() {
        return diagnosisResult;
    }
}
public class HospitalManagementSystem {
    private static ArrayList<Outpatient> patients = new ArrayList<>();
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int choice;
        do {
            System.out.println("Hospital Management System");
            System.out.println("1. Enter patient information");
            System.out.println("2. Match registration number with corresponding department");
            System.out.println("3. Input doctor's diagnosis result");
            System.out.println("4. Assign medication and payment window");
            System.out.println("5. Exit");
            System.out.print("Enter your choice: ");
            choice = scanner.nextInt();
            switch (choice) {
                case 1:
                    enterPatientInformation();
                    break;
                case 2:
                    matchRegistrationNumberWithDepartment();
                    break;
                case 3:
                    inputDiagnosisResult();
                    break;
                case 4:
                    assignMedicationAndPaymentWindow();
                    break;
                case 5:
                    System.out.println("Exiting...");
                    break;
                default:
                    System.out.println("Invalid choice. Please try again.");
            }
            System.out.println();
        } while (choice != 5);
    }
    private static void enterPatientInformation() {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter patient name: ");
        String name = scanner.nextLine();
        System.out.print("Enter patient gender: ");
        String gender = scanner.nextLine();
        System.out.print("Enter registration number: ");
        int registrationNumber = scanner.nextInt();
        scanner.nextLine(); // consume newline character
        System.out.print("Enter patient ID: ");
        String id = scanner.nextLine();
        System.out.print("Enter department: ");
        String department = scanner.nextLine();
        Outpatient patient = new Outpatient(name, gender, registrationNumber, id, department);
        patients.add(patient);
        System.out.println("Patient information entered successfully.");
    }
    private static void matchRegistrationNumberWithDepartment() {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter department to match registration number: ");
        String department = scanner.nextLine();
        for (Outpatient patient : patients) {
            if (patient.getDepartment().equalsIgnoreCase(department)) {
                System.out.println("Registration number: " + patient.getRegistrationNumber());
            }
        }
    }
    private static void inputDiagnosisResult() {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter registration number of the patient: ");
        int registrationNumber = scanner.nextInt();
        scanner.nextLine(); // consume newline character
        System.out.print("Enter diagnosis result: ");
        String diagnosisResult = scanner.nextLine();
        for (Outpatient patient : patients) {
            if (patient.getRegistrationNumber() == registrationNumber) {
                patient.setDiagnosisResult(diagnosisResult);
                System.out.println("Diagnosis result recorded successfully.");
                return;
            }
        }
        System.out.println("Patient not found with the given registration number.");
    }
    private static void assignMedicationAndPaymentWindow() {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter registration number of the patient: ");
        int registrationNumber = scanner.nextInt();
        for (Outpatient patient : patients) {
            if (patient.getRegistrationNumber() == registrationNumber) {
                System.out.println("Assigning medication and payment window for patient: " + patient.getName());
                // Perform the necessary operations for assigning medication and payment window
                return;
            }
        }
        System.out.println("Patient not found with the given registration number.");
    }
}

#问题
审核上述代ma是否符合课题要求

import java.util.ArrayList;
import java.util.InputMismatchException;
import java.util.Scanner;

class Patient {
    private String name;
    private String gender;
    private int registrationNumber;
    private String id;

    public Patient(String name, String gender, int registrationNumber, String id) {
        this.name = name;
        this.gender = gender;
        this.registrationNumber = registrationNumber;
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public String getGender() {
        return gender;
    }

    public int getRegistrationNumber() {
        return registrationNumber;
    }

    public String getId() {
        return id;
    }
}

class Outpatient extends Patient {
    private String department;
    private String diagnosisResult;

    public Outpatient(String name, String gender, int registrationNumber, String id, String department) {
        super(name, gender, registrationNumber, id);
        this.department = department;
    }

    public void setDiagnosisResult(String result) {
        diagnosisResult = result;
    }

    public String getDepartment() {
        return department;
    }

    public String getDiagnosisResult() {
        return diagnosisResult;
    }
}

public class HospitalManagementSystem {
    private static ArrayList<Outpatient> patients = new ArrayList<>();

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int choice;

        do {
            System.out.println("Hospital Management System");
            System.out.println("1. Enter patient information");
            System.out.println("2. Match registration number with corresponding department");
            System.out.println("3. Input doctor's diagnosis result");
            System.out.println("4. Assign medication and payment window");
            System.out.println("5. Exit");
            System.out.print("Enter your choice: ");

            try {
                choice = scanner.nextInt();
                scanner.nextLine(); // consume newline character

                switch (choice) {
                    case 1:
                        enterPatientInformation(scanner);
                        break;
                    case 2:
                        matchRegistrationNumberWithDepartment(scanner);
                        break;
                    case 3:
                        inputDiagnosisResult(scanner);
                        break;
                    case 4:
                        assignMedicationAndPaymentWindow(scanner);
                        break;
                    case 5:
                        System.out.println("Exiting...");
                        break;
                    default:
                        System.out.println("Invalid choice. Please try again.");
                }
            } catch (InputMismatchException e) {
                System.out.println("Invalid input. Please enter a valid choice.");
                scanner.nextLine(); // clear the input buffer
                choice = 0; // set choice to an invalid value to repeat the loop
            }

            System.out.println();
        } while (choice != 5);

        scanner.close();
    }

    private static void enterPatientInformation(Scanner scanner) {
        System.out.print("Enter patient name: ");
        String name = scanner.nextLine();
        System.out.print("Enter patient gender: ");
        String gender = scanner.nextLine();
        System.out.print("Enter registration number: ");
        int registrationNumber = scanner.nextInt();
        scanner.nextLine(); // consume newline character
        System.out.print("Enter patient ID: ");
        String id = scanner.nextLine();
        System.out.print("Enter department: ");
        String department = scanner.nextLine();
        Outpatient patient = new Outpatient(name, gender, registrationNumber, id, department);
        patients.add(patient);
        System.out.println("Patient information entered successfully.");
    }

    private static void matchRegistrationNumberWithDepartment(Scanner scanner) {
        System.out.print("Enter department to match registration number: ");
        String department = scanner.nextLine();

        boolean found = false;
        for (Outpatient patient : patients) {
            if (patient.getDepartment().equalsIgnoreCase(department)) {
                System.out.println("Registration number: " + patient.getRegistrationNumber());
                found = true;
            }
        }

        if (!found) {
            System.out.println("No patients found in the given department.");
        }
    }

    private static void inputDiagnosisResult(Scanner scanner) {
        System.out.print("Enter registration number of the patient: ");
        int registrationNumber = scanner.nextInt();
        scanner.nextLine(); // consume newline character
        System.out.print("Enter diagnosis result: ");
        String diagnosisResult = scanner.nextLine();

        boolean found = false;
        for (Outpatient patient : patients) {
            if (patient.getRegistrationNumber() == registrationNumber) {
                patient.setDiagnosisResult(diagnosisResult);
                System.out.println("Diagnosis result recorded successfully.");
                found = true;
                break;
            }
        }

        if (!found) {
            System.out.println("Patient not found with the given registration number.");
        }
    }

    private static void assignMedicationAndPaymentWindow(Scanner scanner) {
        System.out.print("Enter registration number of the patient: ");
        int registrationNumber = scanner.nextInt();

        boolean found = false;
        for (Outpatient patient : patients) {
            if (patient.getRegistrationNumber() == registrationNumber) {
                System.out.println("Assigning medication and payment window for patient: " + patient.getName());
                // Perform the necessary operations for assigning medication and payment window
                found = true;
                break;
            }
        }

        if (!found) {
            System.out.println("Patient not found with the given registration number.");
        }
    }
}

可以不用人工审核,一些基础的代码规范可以交给在git提交的时候去校验,checkstyle引入插件,这样会提高效率和准确率

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/377453
  • 除此之外, 这篇博客: 【数据结构与算法】- 排序(算法)中的 十:有一种简单的排序算法,称为计数排序,这种排序算法对一个待排序的表(用数组表示)进行排序,并将排序结果存放到另一个新的表中,必须注意的是,表中所有待排序的关键码互不相同,计数排序算法针对表中的每个记录,扫描待排序的表一趟,统计表中有多少个记录的关键码比该记录的关键码小,假设针对某个记录统计出的计数值为c,则这个记录在新有序表中的合适存放位置为c 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • #include<iostream>
    using namespace std;
    
    void countsort(int a[],int b[],int n)
    {
    	//遍历每一趟
    	int count=0;
    	for(int i=0;i<n;i++)
    	{
    		//找到每个元素小的个数
    		count = 0;
    		for(int j=0;j<n;j++)
    		{
    			if(a[j]<a[i]) count++;
    		}
    		b[count] = a[i];
    	}
    }
    int main()
    {
    	int a[6]={3,5,7,2,4,9},b[6];
    	countsort(a,b,6);
    	for(int i=0;i<6;i++) cout<<b[i]<<" ";
    	return 0;
    }