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");
}
}
为什么我想输入个学生信息,但是只能输入一个?而且我想问一下,如果我在主类里用一维数组的形式能不能调用student类里面的函数?谢谢!
你试一试把输入姓名学号的那个for循环改一下,里面全不要,设name=sc.nextline()等等全都这样,加一个student newstu=new student(姓名,学号。。),把输入的参数穿进去,再stu[i]=newstu,记得把你的学生类加一个带参构造方法。在外面,只能用手机打字,不容易呀,可以先给我个采纳不,如果不行回去我再给你试试代码>﹏<
因为你的循环是从k =1开始的啊,数组是从0开始的,你第一条数据占用stu[1],第二条就要去用stu[2], 可是你只声明长度为2的数组,所以会报空指针