写了一个不基于数据库的Java的学生管理系统,发现了一个问题,scanner.next()函数输入中文时会发生NoElementException异常,换成输入英文就好了。经测试,的确就是中英文的问题。(待解决)
代码:
import java.util.*;
public class StudentManager {
public static Scanner scanner = new Scanner(System.in);
private Vector<Student> StudentVector = new Vector<Student>();
public static void main(String[] args) {
StudentManager manager = new StudentManager();
manager.run();
scanner.close();
}
public void run() {
while (true) {
showmainWindow();
int option;
option = scanner.nextInt();
switch (option) {
case 1:
showAllStudent();
break;
case 2:
addStudent();
break;
case 3:
deleteStudent();
break;
case 4:
reviveStudent();
break;
case 5:
findStudent();
break;
case 6:
deleteAllStudent();
break;
/*
* case 7: sortAllStudent(); break;
*/
case 0:
return;
default:
break;
}
System.out.println();
}
}
public class Student {
private
int number = 0;
String name = null;
int grade = 0;
public void setnumber(int num) {
number = num;
}
void setname(String nam) {
name = nam;
}
void setgrade(int grad) {
grade = grad;
}
void shownumber(){
System.out.print("" + number + "\t");
}
void showname(){
System.out.print("" + name + "\t");
}
void showgrade(){
System.out.print("" + grade + "\t");
}
int getnumber() {
return number;
}
int getgrade() {
return grade;
}
String getname() {
return name;
}
Student(int num, String nam, int grad) {
setnumber(num);
setname(nam);
setgrade(grad);
}
}
public void showmainWindow() {
System.out.println("please select your option:");
System.out.println("1.showAllStudent");
System.out.println("2.addStudent");
System.out.println("3.deleteStudent");
System.out.println("4.reviveStudent");
System.out.println("5.findStudent");
System.out.println("6.deleteAllStudent");
// System.out.println("7.sortAllStudent");
System.out.println("0.close the process");
System.out.println("otherKeys.back to mainWindow");
}
public void showAllStudent() {
if (StudentVector.isEmpty()) {
System.out.println("No Student!");
return;
}
for (Student stu : StudentVector) {
stu.shownumber();
stu.showname();
stu.showgrade();
System.out.println();
}
}
public void addStudent() {
System.out.println("Input number name grade of the student:");
int num = scanner.nextInt();
String nam = scanner.next();
int grad = scanner.nextInt();
Student temp = new Student(num, nam, grad);
StudentVector.addElement(temp);
System.out.println("Added!");
}
public void deleteStudent() {
System.out.println("Input the number of the student:");
int num = scanner.nextInt();
System.out.println("finding the student...");
int index = -1;
for (Student stu : StudentVector) {
if (stu.getnumber() == num) {
index = StudentVector.indexOf(stu);
System.out.println("Found at index:" + index);
StudentVector.remove(stu);
System.out.println("Deleted!");
break;
}
}
if (index == -1)
System.out.println("not Found!");
}
public void reviveStudent() {
System.out.println("Input the number of the student:");
int num = scanner.nextInt();
System.out.println("finding the student...");
int index = -1;
for (Student stu : StudentVector) {
if (stu.getnumber() == num) {
index = StudentVector.indexOf(stu);
System.out.println("Found at index:" + index);
System.out.println("Input name grade:");
String nam = scanner.next();
int grad = scanner.nextInt();
stu.setname(nam);
stu.setgrade(grad);
StudentVector.setElementAt(stu, index);
System.out.println("Revived!");
break;
}
}
if (index == -1)
System.out.println("not Found!");
}
public void findStudent() {
System.out.println("Input the number of the student:");
int num = scanner.nextInt();
System.out.println("finding the student...");
int index = -1;
for (Student stu : StudentVector) {
if (stu.getnumber() == num) {
index = StudentVector.indexOf(stu);
System.out.println("Found at index:" + index);
stu.shownumber();
stu.showname();
stu.showgrade();
System.out.println();
break;
}
}
if (index == -1)
System.out.println("not Found!");
}
public void deleteAllStudent() {
StudentVector.clear();
System.out.println("All Cleared!");
}
}