Fresh.587 2021-11-07 23:34 采纳率: 88%
浏览 28

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.next();      
     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

为什么我想输入个学生信息,但是只能输入一个?而且我想问一下,如果我在主类里用一维数组的形式能不能调用student类里面的函数?谢谢!

  • 写回答

2条回答 默认 最新

  • NoBug. 2021-11-08 00:15
    关注

    你试一试把输入姓名学号的那个for循环改一下,里面全不要,设name=sc.nextline()等等全都这样,加一个student newstu=new student(姓名,学号。。),把输入的参数穿进去,再stu[i]=newstu,记得把你的学生类加一个带参构造方法。在外面,只能用手机打字,不容易呀,可以先给我个采纳不,如果不行回去我再给你试试代码>﹏<

    评论

报告相同问题?

问题事件

  • 创建了问题 11月7日

悬赏问题

  • ¥15 依据报错在原代吗格式的基础上解决问题
  • ¥15 在虚拟机中安装flash code
  • ¥15 单片机stm32f10x编写光敏电阻调节3.3伏大功率灯亮度(光强越大灯越暗,白天正常光强灯不亮,使用ADC,PWM等模块)望各位找一下错误或者提供一个可实现功能的代码
  • ¥20 verilog状态机方法流水灯
  • ¥15 pandas代码实现不了意图
  • ¥15 GD32H7 从存储器到外设SPI传输数据无法重复启用DMA
  • ¥25 LT码在高斯信道下的误码率仿真
  • ¥45 渲染完成之后将物体的材质贴图改变,自动化进行这个操作
  • ¥15 yolov5目标检测并显示目标出现的时间或视频帧
  • ¥15 电视版的优酷可以设置电影连续播放吗?