用户删除信息输入

  • 本文关键字:信息 删除 用户 java
  • 更新时间 :
  • 英文 :


我正在尝试为作业制作电影数据库。卡住,添加删除功能。由于我的MoiveCount变量,我在尝试重新添加另一部电影时被卡住了。如果我删除了Movie3如果有4部电影,则MovieCount == 3,当我尝试添加另一部电影时,它需要添加Movie4时,我需要添加Movie3。

import java.util.*;
public class Interface {
private void run() 
{

    Scanner console = new Scanner(System.in);
    Movie m1;
    Movie m2;
    Movie m3;
    Movie m4;
    String name, director;
    int size, duration, option;
    int moviecount = 0;
    m1 = new Movie();
    m2 = new Movie();
    m3 = new Movie();
    m4 = new Movie();
do {
    System.out.println("Import new movie:(0), Delete movie from Database (2), View Movies: (3),  Exit (9): ");
    option = console.nextInt();
    switch(option)
    {
        case 0: 
        if(moviecount == 0)
        {
                System.out.print("First Movie: ");
                name = console.next();
                m1.setName (name);
                System.out.print("Director: ");
                director = console.next();
                m1.setDirector (director);
                System.out.print("Size in MB: ");
                size = console.nextInt();
                m1.setSize(size);
                System.out.print("Duration in minutes: ");
                duration = console.nextInt();
                m1.setDuration(duration);
                moviecount++;
                break;

        }
        else if(moviecount == 1)
        {
                System.out.print("Second Movie: ");
                name = console.next();
                m2.setName (name);
                System.out.print("Director: ");
                director = console.next();
                m2.setDirector (director);
                System.out.print("Size in MB: ");
                size = console.nextInt();
                m2.setSize(size);
                System.out.print("Duration in minutes: ");
                duration = console.nextInt();
                m2.setDuration(duration);
                moviecount++;
                break;
        }
        else  if(moviecount == 2)
        {
                System.out.print("Third Movie: ");
                name = console.next();
                m3.setName (name);
                System.out.print("Director: ");
                director = console.next();
                m3.setDirector (director);
                System.out.print("Size in MB: ");
                size = console.nextInt();
                m3.setSize(size);
                System.out.print("Duration in minutes: ");
                duration = console.nextInt();
                m3.setDuration(duration);
                moviecount++;
                break;
        }
        else  if(moviecount == 3)
        {
                System.out.print("Fourth Movie: ");
                name = console.next();
                m4.setName (name);
                System.out.print("Director: ");
                director = console.next();
                m4.setDirector (director);
                System.out.print("Size in MB: ");
                size = console.nextInt();
                m4.setSize(size);
                System.out.print("Duration in minutes: ");
                duration = console.nextInt();
                m4.setDuration(duration);
                moviecount++;
                break;
        }
        else
        {
                System.out.print("Too many movies currently stored n" );
                break;
        }
        case 2: System.out.print("Which movie to delete? (1), (2), (3), (4) n");
        option = console.nextInt();
        switch(option)
        {
           case 1:  m1.setName(null);
                    m1.setDirector(null);
                    m1.setSize(0);
                    m1.setDuration(0);
                    System.out.print("Movie 1 deleted! ");
                    moviecount--;
                    break;           
           case 2:  m2.setName(null);
                    m2.setDirector(null);
                    m2.setSize(0);
                    m2.setDuration(0);
                    moviecount--;
                    break;
           case 3:  m3.setName(null);
                    m3.setDirector(null);
                    m3.setSize(0);
                    m3.setDuration(0);
                    moviecount--;
                    break;
           case 4:  m4.setName(null);
                    m4.setDirector(null);
                    m4.setSize(0);
                    m4.setDuration(0);
                    moviecount--;
                    break;
        }
        case 3: System.out.print("Movies stored in database: n");
                System.out.print(m1.getName()+"n"); 
                System.out.print(m2.getName()+"n");
                System.out.print(m3.getName()+"n");
                System.out.print(m4.getName()+"n");





    } 
}
    while(option!=9);

}
public static void main(String[] args){
Interface intFace = new Interface();
intFace.run();
}
}

问题在于您的设计。您正在遇到这个问题,因为您实际上并没有在任何地方存储电影。您只是创建4种不同的电影对象并将其打印出来。如果您更改了打印语句的顺序,它们将以不同的顺序。

您将需要添加某种数据结构 - 任何数组,列表或其他类型的集合来存储您的电影。

例如,您可能会创建一个List来存储您的电影数据。

    //create new List called movieList
    List movieList = new ArrayList();
    //add movies to the list
    movieList.add(m1);
    movieList.add(m2);
    movieList.add(m3);
    movieList.add(m4);

    //remove movies from the list by position
    movieList.remove(0);
    movieList.remove(1);
    movieList.remove(2);
    movieList.remove(3);

您可以使用列表的add()方法将电影添加到列表中,并使用remove()方法将其删除。请记住,remove在您提供的索引处删除元素,索引从0。

开始。

因此,例如,要删除第一部电影,您将调用movielist.remove(0(。第二部电影将在索引1处,等等

您特定实现的答案:您无法使用该MovieCount变量来确定要添加新的移动的插槽!

而是:只需浏览您的电影对象即可。并将数据推入第一个是空的。

含义:您可以在电影类上定义" isement(("方法,如果名称为null,则返回true。

,但仅用于记录:拥有并使用这些设置器方法是一种不好的方法。通常,您需要使用电影类的构造函数设置所有这些值,因为您不想以后更改该信息。

然后您只需做

movie1 = new... 

创作新电影和

movie1 = null

稍后将其删除。然后,您还可以轻松检查是否采用了一个插槽:

if (movie1 == null) {... 

最新更新