+1 (315) 557-6473 

Java Program to Create Hospital Management System Assignment Solution.


Write a program to create hospital management system in java.

Requirements and Specifications

Advanced Java Assignment #6 – 100 points
Due date – Wednesday March 23 11:59pm (nothing late)
You are to rewrite the program “read_file_data.java” that uses the data file “hospital.txt”
The program opens the data file and reads the data into parallel arrays. It also prints the data from the parallel arrays.
  • You are to change the program to read the data into a linked list along with printing the data from the linked list.
What to submit:
  • Copy your code to a word document
  • Copy the screen print of the final output to the word document
  • Submit the work document to blackboard

Source Code

package read_file_data;

import javax.swing.JOptionPane;

import java.io.*;

import java.util.*;

import java.text.*;

public class read_file_data


 public static void main(String[] args)


  // Variable to hold the selection given by user

  int selection;

  // Create instance of surgery_info

  surgery_info surgery = new surgery_info();

  // Start app


  // Display selection menu and get option given by user

  selection = surgery.menu();

  // Show Menu until user enters option 3 which is "Exit"

  while(selection !=3)


   if(selection == 1) // user selected "Add Data"


   else if(selection==2) // user selected "Print all data"



   selection = surgery.menu(); // display menu again

  }//while loop




class surgery_info


 // LinkedList object

 LinkedList list;

 void start_system()


  // Instantiate linkled list

  list = new LinkedList();

  // String variable to store each line read from file

  String newLine;

  // Variable to store attributes for each Node

  int Pnumber;

  String Pname;

  String Dname;

  String Type;

  double Cost;



   //define a file variable for Buffered read

   BufferedReader Surgery_file = new BufferedReader(new FileReader("hospital.txt"));

   //read lines in file until there are no more lines in the file to read

   while ((newLine = Surgery_file.readLine()) != null)


    //there is a "#" between each data item in each line

    StringTokenizer delimiter = new StringTokenizer(newLine,"#");

    // Get all attributes

    Pnumber = Integer.parseInt(delimiter.nextToken());

    Pname =delimiter.nextToken();

    Dname =delimiter.nextToken();

    Type =delimiter.nextToken();

    Cost = Double.parseDouble(delimiter.nextToken());

    // insert into the linked list

    list.insert(new Node(Pnumber, Pname, Dname, Type, Cost));

   }//while loop


  }//end try

  catch (IOException error)


   //there was an error on the file writing

   System.out.println("Error on file read " + error);

  }//error on read

 }//end start_system

 // Function that shows the menu and gets the option from user

 int menu()


  String snum;

  int selection;

  String Output = "Surgery Info" + "\n" +"1. Add New Data" + "\n" +

   "2. Print all Data" + "\n" +

   "3. Exit System" + "\n" +

   " " + "\n" +

   "Enter your selection >";

  snum = JOptionPane.showInputDialog(null,

  Output, "",JOptionPane.QUESTION_MESSAGE);


  return selection;

 }//end menu

 // This function adds new data to the linked list

 void add_data()


  //add new patient, doctor, and surgery information

  String svalue,Output;

  // Variable to hold patient's attributes

  int Pnumber;

  String Pname;

  String Dname;

  String Type;

  double Cost;

  // Ask for name

  Output = "Enter the Patient Number (5 digits)";

  svalue =JOptionPane.showInputDialog(null,Output,


  Pnumber = Integer.parseInt(svalue);

  // Ask for last name

  Output = "Enter the Patient Last Name";

  Pname =JOptionPane.showInputDialog(null,Output,


  // Ask for Doctor last Name

  Output = "Enter the Doctor Last Name (Atkins, Johnson or Brown)";

  Dname =JOptionPane.showInputDialog(null,Output,


  // Ask for type of surgery

  Output = "Enter the Type of Surgery (knee hip or heart)";

  Type =JOptionPane.showInputDialog(null,Output,


  // Ask for cost of surgery

  Output = "Enter the Cost of Surgery";

  svalue =JOptionPane.showInputDialog(null,Output,


  Cost = Double.parseDouble(svalue);

  // Insert into the linked list

  list.insert(new Node(Pnumber, Pname, Dname, Type, Cost));

 }//end add_data

 void report_data()



 }//end report_data

}//end class


 * Class that represents a linkedlist node


class Node {

 // The data store by each node is a Patient's data

 // Basically, we can see a node as a patient

 int Pnumber;

 String Pname;

 String Dname;

 String Type;

 double Cost;

 // Variable to store the next Node

 Node next;

 // overloaded constructor

 public Node(int Pnumber, String Pname, String Dname, String Type, double Cost) {

  this.Pnumber = Pnumber;

  this.Pname = Pname;

  this.Dname = Dname;

  this.Type = Type;

  this.Cost = Cost;

  this.next = null;




 * This class represents a linked list with a head


class LinkedList {

 // head of the list

 Node head;

 // Size

 int size;

 // Default constructor. Creates an Empty Linked List

 public LinkedList() {

  head = null;

  size = 0;


 // Insert new node into the list

 public void insert(Node node) {

  // If the head is null, it is because the list is empty.

  if(head == null){

   head = node;

  } else { // linked list not null, so search for last node and then insert the new node

   // after that one

   Node temp = head;

   while(temp.next != null) {

    temp = temp.next;


   temp.next = node;




 // Function used to print all the nodes in the list

 public void print() {

  Node current = head;

  System.out.println("All Patient Information");

  while(current != null) {

   System.out.println(current.Pnumber + " " + current.Pname + " " + current.Dname + " " + current.Type + " " + current.Cost);

   current = current.next;