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 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面