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日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效