Fresh.587 2021-11-07 18:46 采纳率: 88%
浏览 59
已结题

java里面一维数组引用其他类为什么不能输入


package javaapplication19;
import java.util.Scanner;
public class JavaApplication19 { 
      public static void main(String[] args) {   
     System.out.print("**********************\n");        System.out.print("欢迎进入学生信息管理系统\n");     
   System.out.print("**********************\n");        Scanner sc=new Scanner(System.in);      
  int n;    
    System.out.print("请输入学生人数:");
        n=sc.nextInt();  
      student stu[]=new student[n];   
     int k;    
    for(k=1;k<=n;k++)        {     
      System.out.print("请输入学生"+k+"的姓名,学号,专业,课程");      
     stu[k].name=sc.nextLine();     
      stu[k].sno=sc.nextInt();   
        stu[k].subject=sc.next();      
     stu[k].course=sc.next();     
      System.out.print("\n");    
    }     
   boolean c=true;    
   do        {      
      System.out.print("请输入对几号学生信息进行操作:");    
        int x;     
       x=sc.nextInt();      
  System.out.print("请输入想要进行的操作:\t1:获得学号 2:修改学号 3:获得所学课程 4:修改所修课程");    
    int b;  
      b=sc.nextInt();    
    switch(b)        {      
       case 1:stu[x].getsno();c=false;break;             case 2:stu[x].modifysno();c=false;break;          case 3:stu[x].getcourse();c=false;break;              case 4:stu[x].modifycourse();break;    
          default:System.out.print("您的输入有误");
c=true;    
    }         
       }while(c);  
  }   
 }
class student{    
String name;  
  int sno; 
   String subject;    
String course;  
  void getsno()    {    
    System.out.print("请输入想要获得学号的学生姓名:");   
     String n;    
    Scanner reader=new Scanner(System.in);        n=reader.nextLine();  
      System.out.print("学号为:"+sno+"\n");            }  
  void modifysno()    {    
    System.out.print("请输入想要修改学号的学生姓名:"); 
       String n;   
     Scanner reader=new Scanner(System.in);         n=reader.nextLine(); 
        int sno;    
    System.out.print("请输入修改后的学号:");        sno=reader.nextInt();    
    System.out.print("修改后的学号为:"+sno+"\n");   
 }   
 void getcourse()    {   
    System.out.print("请输入想要获得课程的学生姓名:");  
      String n;       
 Scanner reader=new Scanner(System.in);        n=reader.nextLine();   
     System.out.print(n+"所选修的课程为:"+course+"\n");  
  } 
   void modifycourse()    {   
      System.out.print("请输入想要修改课程的学生姓名:");    
    String n;    
    Scanner reader=new Scanner(System.in);         n=reader.nextLine();    
     String course;      
   System.out.print("请输入修改后的课程名称:");   
      course=reader.nextLine();   
      System.out.print("修改后的课程为:"+course+"\n");   
 }     
   }

运行后的状况是这样的

img

  • 写回答

2条回答 默认 最新

  • CodeMartain 2021-11-07 19:00
    关注

    img

    应该这么写,
    for(k=1;k<=n;k++) {

      System.out.print("请输入学生"+k+"的姓名,学号,专业,课程");      
    
    name=sc.nextLine();     
    
     sno=sc.nextInt();   
    
     subject=sc.next();      
    

    course=sc.next();
    stu[k]=new student(name, sno,subject, course)
    System.out.print("\n");

    }     
    

    欢迎采纳;

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月19日
  • 已采纳回答 11月11日
  • 创建了问题 11月7日

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境