Member 12702056 Ответов: 1

Может ли кто-нибудь помочь мне решить эту проблему ?


Это моя часть проекта java.Есть ли у кого-нибудь представление о моем вопросе, что есть проблемы с методом удаления урока в классе учащихся?Он работает неправильно.Потому что ,когда я хочу удалить урок из listLesson,вывод будет "No Exist!", но на самом деле я создал объект lesson и добавил этот урок в listLesson.На самом деле я не знаю, в чем проблема.Может быть, это связано с методом addlesson, я думаю, что он не добавляет урок в listLesson,поэтому, когда я хочу удалить его, выводится" No Exist!"Пожалуйста,если у вас есть какие-либо идеи по решению этой проблемы, дайте мне знать.Заранее спасибо :)
public class student {
    private String name;

    private int id;
    private lesson[]listLesson;
    private int size;
    private int number=0;
    
   
    public student(String name){
        this.name=name;
        listLesson = new lesson[size];
        this.size=5;
    }
    public boolean isExist(lesson l){
        for(int i=0; i < number; i++)
            if(listLesson[i].equals(l))
                if(listLesson[i].getNote()>=60)
                    return true;
        return false;
    }
    public void addLesson(lesson l){     
        if(!this.isExist(l)){
            if(number==size){
               lesson[] newList = new lesson[size+1];
               for(int i=0; i < size; i++){
                   newList[i]=listLesson[i];
               }
               listLesson=newList;
               size++;     
                // System.out.println(listLesson);
            }
            
            listLesson[number]= l;
            number++;
       }
    
        else
            System.out.println("Already passed :"+ l);
            
    }

    public student(String name, int id) {
        this.name = name;
        this.id = id;
    }
   
    public void deleteLesson(lesson l){
        int index=existList(l);
        if(index!=-1){
            lesson []newL=new lesson[size-1];
            for(int i=0;i<index;i++){
                newL[i]=listLesson[i];
            }
            for(int i=index+1;i<size-1;i++){
                newL[i]=listLesson[i+1];
             
            }
               listLesson=newL;
                size--;           
                
        }else{
            System.err.println("No Exist!");
        }
        
    }
    
        public int existList(lesson l){
        for(int i=0;i<number;i++){
            if(listLesson[i].equals(l.getCode())){
                return i;
            }
        }
        return -1;
    }

    public lesson[] getListLesson() {
        return listLesson;
    }





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

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

    public void setListLesson(lesson l) {
        this.listLesson=new lesson[size];
    }

    public String getName() {
        return name;
    }

    public int getId() {
        return id;
    }

    public boolean equals(student s) {
        if (this.id == s.id && this.name.equals(s.name)) {
            return true;
        }
        return false;
    }

 


    
   public String toString() {        
 String res="{";
  int i;
  for(i=0;i<size-1;i++){
      if(listLesson.length==0)
          res+="-, ";
      else
      res+=listLesson[i]+", ";
      
  }
  if(listLesson.length==0)
      res+="-";
  else
  res+=listLesson[i];
 
  return "student{" + "name=" + name + ", id=" + id + res+"}";
          }

};


Что я уже пробовал:

Я создал несколько классов. Но есть некоторые проблемы.Если кто-то может мне помочь,пожалуйста, скажите.

Richard MacCutchan

Если вам нужна помощь, то вам нужно предоставить некоторые надлежащие детали. Мы не можем догадаться, что ваш код делает неправильно или что подразумевается под этим -есть некоторые проблемы."

Member 12702056

Можете ли вы дать свой адрес электронной почты, тогда я пришлю вам свой полный проект, и тогда вы сможете увидеть проблему.

Richard MacCutchan

Нет, это открытый форум, и если вам нужна помощь, то вам нужно подробно объяснить свою проблему.

Member 12702056

существует проблема с методом удаления урока в классе учащихся.

Patrice T

Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
Чтобы каждый мог обратить внимание на эту информацию.

Member 12702056

Я исправил его :)

Member 12702056

я обновил свой вопрос.

Member 12702056

потому что есть 4 класса, которые связаны с системой управления университетом.

[no name]

"есть какие-нибудь идеи", ну, из огромного количества информации, которую вы дали нам для работы с вашей проблемой, мои идеи таковы:
Изучайте java
Прочитайте программу вашего курса
Научитесь задавать вопросы
Внимательно прочитайте домашнее задание
Узнайте, кто ваш учитель
Используйте свой недавно приобретенный навык задавать вопросы, чтобы спросить учителя о вашем домашнем задании.

Member 12702056

Я исправил его.

[no name]

Что вы исправили? Если вы не знаете, в чем проблема, то как бы вы ожидали, что мы узнаем? Спросите своего учителя. Они могут знать, что значит "какая-то проблема". Мы точно не знаем, что это значит.

Afzaal Ahmad Zeeshan

Нет, мы понятия не имеем о вашем проекте и о проблеме, с которой вы столкнулись.

Member 12702056

я обновил свой вопрос.

OriginalGriff

Так что же вы сделали, чтобы это выяснить?
Что происходит, когда вы запускаете его через отладчик?

Member 12702056

Я писал об этом перед своим кодом, что ,когда я хочу удалить урок из listLesson,вывод будет "No Exist!", но на самом деле я создал объект lesson и добавил этот урок в listLesson.

OriginalGriff

Это не ответ на мой вопрос.
Что происходит, когда вы запускаете его через отладчик?
Вы пробовали использовать отладчик, не так ли?

Member 12702056

К сожалению, я не могу отлаживать.Так что я не знаю, как выглядит результат :/

OriginalGriff

Тогда самое время учиться...
Начните с поиска в Google того, как использовать отладчик для вашей конкретной среды разработки - а я понятия не имею, что это такое, - и поставьте точку останова в начале функции.
Затем сделайте шаг вперед, глядя на то, что происходит во время выполнения кода.

Member 12702056

ладно, спасибо за совет.

1 Ответов

Рейтинг:
1

Richard MacCutchan

В вашем delete метод, который вы вызываете existList который делает следующее:

public int existList(lesson l){
    for(int i=0;i<number;i++){
        if(listLesson[i].equals(l.getCode())){
            return i;
        }
    }
    return -1;
}

Делает getCode() вернуть lesson возражать? Если нет, то тест на равенство, скорее всего, провалится. Вы также объявляете этот метод для возврата int но вы пытаетесь вернуть lesson на успех.


Member 12702056

Тогда как же это исправить?Если у вас есть мнение,пожалуйста, дайте мне знать.Потому что я перепробовал много способов решить эту проблему ,но не могу ее решить:/

Richard MacCutchan

При догадке вам нужно сравнить подобное с подобным. Что возвращает getCode и соответствует ли он тому, с чем вы пытаетесь сравнить? И не возвращайте разные типы из одного и того же метода. Если вы не понимаете этих основных понятий, вернитесь к своим справочным руководствам и немного почитайте.

Member 12702056

Спасибо за совет :)