так что у меня есть задание для моего класса Data Structures, и я пытался сделать как можно больше, но в настоящее время я застрял в этой части задания, и мне нужна помощь.Задание в основном требует от вас создания java-программы, которая представляет собой базу данных записей о студентах, которая хранит 6 переменных: id, name, subCode, subName, sem и year, используя связанный список.Это то, что я сделал до сих пор.
Основной класс:
import java.util.*;
public class Main {
public int id =0;
public String name= "";
public String subCode="";
public String subName="";
public String sem;
public int year;
LinkedList list = new LinkedList();
Scanner scan = new Scanner(System.in);
public void Menu() {
boolean valid = true;
while (valid) {
final String menu[] = {"Main Menu",
"1. Register student's subjects",
"2. Retrieve all students' subjects listing",
"3. Retrieve a student's subjects listing",
"4. Update a student's registered subjects",
"5. Delete a student's registered subjects",
"6. Delete a student registration",
"7. Exit"};
for (String menuList : menu)
System.out.println(menuList);
switch (scan.nextInt()) {
case 1:
create();
break;
case 2:
list.retrieveAll();
break;
case 3:
//retrieveOne();
break;
case 4:
//update();
break;
case 5:
//deleteSub();
break;
case 6:
deleteStud();
break;
case 7:
System.out.println("Have a nice day!");
valid = false;
break;
default:
System.out.println("You have not entered a valid option");
break;
}
}
}
public void create() {
System.out.println();
boolean validate = true;
while(validate) {
try {
System.out.println("Please enter Name");
scan.nextLine();
name = scan.nextLine();
//validate =Validation.validateName(name);
System.out.println("Please enter Student ID");
String tempID=scan.nextLine();
// validate=Validation.validateId(tempID);
id= Integer.parseInt(tempID);
System.out.println("Please enter student Subject Code");
subCode=scan.nextLine();
System.out.println("Please enter Subject's Name");
subName = scan.nextLine();
System.out.println("Please enter Student's semester");
sem = scan.nextLine();
System.out.println("Please enter Student's Year of Study");
year = scan.nextInt();
scan.nextLine();
list.create(id, name, subCode, subName, sem, year);
validate=false;
/* list.create(17052960, "Samuel Ho", "CSCP 2014", "Programming 2", "Fall 2017", 2);
list.create(17040007, "Jodi Mak", "ENVS 1014", "Enviromental Studies", "Fall 2016", 3);
list.create(17022880, "Yee Hong Chun", "MATH 1024", "Calculus 1", "Fall 2018", 1);
list.retrieveAll();
list.deleteAt(1);
list.retrieveAll();*/
}catch(Exception e) {
validate = true;
}
}
}
public void deleteStud() {
System.out.println("Enter Student ID of the student you wish to delete");
int tempID = scan.nextInt();
scan.nextLine();
}
public static void main(String[] args) {
Main main = new Main();
main.Menu();
}
}
Класс LinkedList:
public class LinkedList {
Node head;
public void create(int id, String name, String subCode, String subName, String sem, int year) {
Node node= new Node();
node.id=id;
node.name=name;
node.subCode=subCode;
node.subName=subName;
node.sem=sem;
node.year=year;
node.next=null;
if (head==null) {
head=node;
}else {
Node n = head;
while (n.next!=null) {
n=n.next;
}
n.next=node;
}
}
public void retrieveAll() {
Node node=head;
while(node.next!=null) {
System.out.printf("%d %3s %10s %3s %14s %3d\n",
node.id, node.name, node.subCode, node.subName, node.sem, node.year );
node=node.next;
}
System.out.printf("%d %3s %10s %3s %14s %3d\n",
node.id, node.name, node.subCode, node.subName, node.sem, node.year );
}
public void deleteAt(int index) {
if (index==0)
head=head.next;
else {
Node n = head;
Node n1=null;
for (int i =0; i<index-1;i++) {
n=n.next;
}
n1=n.next;
n.next = n1.next;
System.out.println("Deleted " + n1.id);
n1=null;
}
}
}
Класс узла:
class Node {
int id;
String name;
String subCode;
String subName;
String sem;
int year;
Node next;
}
Так вот, что я сделал,это далеко от завершения, но мне нужно сделать это быстро, и я застрял в методе deleteStud ().Мне нужно, чтобы пользователь вводил идентификатор студента для удаления.Затем он ищет в связанном списке и удаляет студента.Я реализовал удаление по определенному индексу, но понятия не имею, как искать и удалять студента из их идентификатора.Это также поможет моему методу retrieveOne (), в котором я должен отображать записи ученика, введенные пользователем по их идентификатору.
Надеюсь, я не слишком затянут, но мне действительно нужна твоя помощь.Огромное спасибо.