#2
z444212022-02-13 17:15
|
程序代码:
package Student;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
Scanner input=new Scanner(System.in);
Student[] sts = {
new Student("101", "wang"),
new Student("102", "li"), new Student("103", "zhang"),
new Student("104", "qiao"), new Student("105", "wu") };
while(true) {
String[] in =input.nextLine().split("\\s+"); //正则表达式分割空格
// 操作
if(in[0].equals("exit")) {
System.out.println(sts.length);
break;
}
switch(in[0]) {
case "add": Student.add(sts, in[1], in[2],true); break;
case "delete": Student.delete(sts, in[1], in[2]); break;
case "update": Student.update(sts, in[1], in[2]); break;
}
}
}
}
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
Scanner input=new Scanner(System.in);
Student[] sts = {
new Student("101", "wang"),
new Student("102", "li"), new Student("103", "zhang"),
new Student("104", "qiao"), new Student("105", "wu") };
while(true) {
String[] in =input.nextLine().split("\\s+"); //正则表达式分割空格
// 操作
if(in[0].equals("exit")) {
System.out.println(sts.length);
break;
}
switch(in[0]) {
case "add": Student.add(sts, in[1], in[2],true); break;
case "delete": Student.delete(sts, in[1], in[2]); break;
case "update": Student.update(sts, in[1], in[2]); break;
}
}
}
}
Student.class如下:
程序代码:
package Student;
import import import java.util.Arrays;
class Student implements Comparable<Student>{
private String sno; //学号
private String sname; //姓名
public Student(String sno,String sname){
this.sno=sno; this.sname=sname;
}
public String getSno() { return this.sno; }
public String getSname(){ return this.sname; }
public void updateName(String s) { sname=s; }
//
public static void add(Student[] sts,String no,String name,boolean isPrint) throws Exception{
// 检验该学生是否已经存在
boolean isIn=false;
for(int i=0;i<sts.length;i++)
if(no.equals(sts[i].getSno()))
isIn=true;
if(isIn)
throw new Exception("无法新增,学号与已有学生信息重复");
// 不存在则扩容并加入
sts=Arrays.copyOf(sts, sts.length+1);
sts[sts.length-1]=new Student(no,name);
if(isPrint)
sortAndPrint(sts);
}
// sort的实现
public int compareTo(Student a) {
return Integer.parseInt(this.getSno())>=Integer.parseInt(a.getSno())? 1:-1;
}
// 排序输出
public static void sortAndPrint(Student[] sts) {
Arrays.sort(sts);
for(int i=0;i<sts.length;i++)
System.out.println(sts[i]);
}
// toString类
public String toString() {
return this.sno+" "+this.sname;
}
}
import import import java.util.Arrays;
class Student implements Comparable<Student>{
private String sno; //学号
private String sname; //姓名
public Student(String sno,String sname){
this.sno=sno; this.sname=sname;
}
public String getSno() { return this.sno; }
public String getSname(){ return this.sname; }
public void updateName(String s) { sname=s; }
//
public static void add(Student[] sts,String no,String name,boolean isPrint) throws Exception{
// 检验该学生是否已经存在
boolean isIn=false;
for(int i=0;i<sts.length;i++)
if(no.equals(sts[i].getSno()))
isIn=true;
if(isIn)
throw new Exception("无法新增,学号与已有学生信息重复");
// 不存在则扩容并加入
sts=Arrays.copyOf(sts, sts.length+1);
sts[sts.length-1]=new Student(no,name);
if(isPrint)
sortAndPrint(sts);
}
// sort的实现
public int compareTo(Student a) {
return Integer.parseInt(this.getSno())>=Integer.parseInt(a.getSno())? 1:-1;
}
// 排序输出
public static void sortAndPrint(Student[] sts) {
Arrays.sort(sts);
for(int i=0;i<sts.length;i++)
System.out.println(sts[i]);
}
// toString类
public String toString() {
return this.sno+" "+this.sname;
}
}
其他方法(删除、更新学生)类似,我的问题是为甚么我使用add函数后不能永久的保存数据?
一种图片可能表述的更清晰:
只有本站会员才能查看附件,请 登录