プログラムが行うこと:ユーザーに4つのオプションを与えるプログラムがあります。学生を追加し、学生を削除し、学生情報を印刷して終了します。ユーザーが1を入力すると、追加する生徒が選択され、追加する生徒の数が尋ねられます。彼らは追加する必要がある人数を入力し、追加されるたびに学生クラスに必要なものすべてを記入します。オプション2を選択すると、リンクされたリストから名前で学生が削除されます。オプション3を選択すると、生徒の名前、郵便番号、および長文のみが印刷されます(他は別のプロジェクトで使用されます)。オプション4を選択すると、終了します。 4が選択されるまでこのメニューを表示し続けます。リンクされたリスト学生管理システム
私の問題点:学生をリンクリストに追加して、学生の名前で削除するのに役立つ必要があります。また 誰かが私にtoStringを説明できるなら(私の先生は私にこのようにしてくれました)、それは非常に感謝しています。
学生クラス:
public class Student {
private int studentID;
private String fName;
private String lName;
private String Address;
private String city;
private String state;
private String zip;
private String major;
public void Student(){
}
public void Student(int i, String f, String l, String a, String c, String s, String z, String m){
studentID = i;
fName = f;
lName = l;
Address = a;
city = c;
state = s;
zip = z;
major = m;
}
public int getStudentID(){
return studentID;
}
public void setStudentID(int i){
studentID = i;
}
public String getFName(){
return fName;
}
public void setFName(String f){
fName = f;
}
public String getLName(){
return lName;
}
public void setLName(String l){
lName = l;
}
public String getAddress(){
return Address;
}
public void setAddress(String a){
Address = a;
}
public String getCity(){
return city;
}
public void setCity(String c){
city = c;
}
public String getState(){
return state;
}
public void setState(String s){
state = s;
}
public String getZip(){
return zip;
}
public void setZip(String z){
zip = z;;
}
public String getMajor(){
return major;
}
public void setMajor(String m){
major = m;
}
}
リンクリストクラス:(今のところ本当に悪いです)
public class LinkedList {
private class Node{
String value;
Node next;
Node (String val, Node n){
value=val;
next = n;
}
Node (String val)
{
this(val, null);
}
}
private Node first;
private Node last;
public LinkedList(){
first = null;
last = null;
}
public boolean isEmpty(){
return first== null;
}
public int size(){
int count = 0;
Node p = first;
while (p !=null){
count++;
p = p.next;
}
return count;
}
public void add(String s){
if (isEmpty())
{
first = new Node(s);
last = first;
}
else
{
last.next = new Node(s);
last = last.next;
}
}
public void add(int index, String s){
if (index <0 || index > size()){
String message = String.valueOf(index);
throw new IndexOutOfBoundsException(message);
}
if (index ==0){
first = new Node(s, first);
if (last == null)
last = first;
return;
}
Node pred = first;
for (int k = 1; k <= index -1; k++){
pred = pred.next;
}
pred.next = new Node (s, pred.next);
if (pred.next.next == null){
last = pred.next;
}
}
public String toString(){
StringBuilder strBuilder = new StringBuilder();
Node p = first;
while (p != null){
strBuilder.append(p.value+"\n");
p = p.next;
}
return strBuilder.toString();
}
public String remove(int index){
if (index <0 || index >=size()){
String message = String.valueOf(index);
throw new IndexOutOfBoundsException(message);
}
String element;
if (index == 0){
element = first.value;
first = first.next;
if (first == null){
last = null;
}
}
else
{
Node pred = first;
for (int k = 1; k <=index -1; k++)
pred = pred.next;
element = pred.next.value;
pred.next = pred.next.next;
if (pred.next == null)
last = pred;
}
return element;
}
}
主:
私の解釈からimport java.util.Scanner;
public class StudentDemo {
public static void main(String[] args) {
Scanner key = new Scanner(System.in);
LinkedList list = new LinkedList();
menu();
int input = key.nextInt();
if (input == 1){
if (input ==1){
System.out.println("Enter name");
String name = key.nextLine();
list.add(name);
System.out.println(list);
}
}
}
public static void menu(){
System.out.println("Student Maintenence System:");
System.out.println("1. Add Student");
System.out.println("2. Remove Student");
System.out.println("3. Print Student Information");
System.out.println("4. Exit");
}
public static void optionOne(int input, LinkedList list, Scanner key){
if (input ==1){
System.out.println("Enter name");/*supposed to ask for a lot more but for the time being its only asking this*/
String name = key.nextLine();
list.add(name);
list.toString();
}
}
}
ご自身で課題をしてください。まずは自分で試してください。問題が発生した場合は、ここで質問してください。 – Omore