实现功能:
增、删、查(全体、个人)、改、排(按分数)、退
俺在代码注释得很详细,在这里就不多说了。
知识点:
类数组对象、this、Scanner类获取输入、for循环、switch...case..default..、break
复现步骤:
1.建立package:StudentManage
2.在package下建立class:Stu(主要是学生信息获取,不建议修改类名及其内容)
3.在package下建立class:Demo(主要包括系统功能实现,可以自己改一下类名)
附代码:
(各位看官有钱的捧个钱场,没钱的捧个人场,,空闲的捧个留场,喜欢的捧个情场)
Stu:
package StudentManage;
public class Stu {
String StuNum;//学号
String Name;//姓名
String Gender;//性别
int Age;//年龄
int Score;//分数
//将Demo.java中输入的学生学号、姓名、性别、年龄、分数以形参的方式传给实参
public void setStuNum(String Stunum) {
this.StuNum = Stunum;
}
public void setName(String Name){
this.Name = Name;
}
public void setGender(String Gender){
this.Gender = Gender;
}
public void setAge(int Age){
this.Age = Age;
}
public void setScore(int Score){
this.Score = Score;
}
//以下的get方法分别获取到学生学号、姓名、性别、年龄、分数
public String getStuNum(){
return StuNum;
}
public String getName() {
return Name;
}
public String getGender(){
return Gender;
}
public int getAge(){
return Age;
}
public int getScore(){
return Score;
}
}
Demo:
package StudentManage;
import java.util.Scanner;
public class Demo {
static Stu[] Stu=new Stu[100];
static int number=0;
static Scanner scanner=new Scanner(System.in);
public static void main(String args[]){
int choice;
System.out.println("欢迎使用学生信息管理系统");
while(true){
System.out.println("1.学生信息添加");
System.out.println("2.全体学生信息查看");
System.out.println("3.学生信息修改");
System.out.println("4.学生信息删除");
System.out.println("5.学生信息排序");
System.out.println("6.学生信息查询");
System.out.println("7.退出");
System.out.println("请输入你要进行的操作");
choice=scanner.nextInt();//输入选择菜单
switch(choice){
case 1: add(); break;//添加学生信息
case 2: show();break;//查询全体学生信息
case 3: change();break;//修改学生信息
case 4: delete();break;//删除学生信息
case 5: paixu();break;//对学生信息排序
case 6: query();break;//查询个别学生信息
case 7: System.out.println("感谢使用");break;
default: System.out.println("输入有误,请重新输入");
}
}
}
static void add(){//添加学生信息
while(true){ //循环添加
System.out.println("输入任意字母、数字或符号添加学生信息,停止添加输入0");
if(scanner.next()=="0")break;
System.out.println("请输入该学生的学号,姓名,性别,年龄,成绩");
Stu[number]=new Stu();
Stu[number].setStuNum(scanner.next()); //输入学号
Stu[number].setName(scanner.next()); //输入姓名
Stu[number].setGender(scanner.next()); //输入性别
Stu[number].setAge(scanner.nextInt()); //输入年龄
Stu[number].setScore(scanner.nextInt()); //输入分数(整数)
number++;
System.out.println("添加成功");
}
}
static void show(){//展示学生信息
System.out.println("*******************************************");
System.out.println(" 学号 姓名 性别 年龄 成绩");
for(int i=0;i<number;i++) { //展示所有学生信息
System.out.println("Stu[i].getStuNum()+"\t"+Stu[i].getName()+"\t"+"\t"+Stu[i].getGender()+"\t"+Stu[i].getAge()+"\t"+Stu[i].getScore());}
System.out.println("*******************************************");
System.out.println();
}
static void paixu(){//对学生信息进行排序
int j;
Stu temp=new Stu();
for(int i=0;i<number;i++) {
for(j=i+1;j<number;j++) //按照分数排序
if(Stu[i].getScore()>Stu[j].getScore())
{temp=Stu[i];Stu[i]=Stu[j];Stu[j]=temp;}
}
System.out.println("排序完成,选择”学生信息查看“进行查看");
}
static void change(){//改变学生信息
System.out.println("请输入要修改信息的学生学号");
String Stunumber=scanner.next();
for(int i=0;i<number;i++) {
if(Stunumber.equals(Stu[i].getStuNum())) {
//这里的修改可以优化一下,比如可以让用户输入数字,选择只修改某一个信息
System.out.println("请输入要修改的学生的信息,学号,姓名,性别,年龄,分数");
Stu[i].setStuNum(scanner.next());
Stu[i].setName(scanner.next());
Stu[i].setGender(scanner.next());
Stu[i].setAge(scanner.nextInt());
Stu[i].setScore(scanner.nextInt());
break;
}
if(number==i){
System.out.println("对不起查无此人");
}
}
}
static void query(){//查询
System.out.println("请输入要查询的学生学号");
String Stunumber=scanner.next();
int i;
for(i=0;i<number;i++){
if(Stunumber.equals(Stu[i].getStuNum())){
System.out.println("*******************************************");
System.out.println(" 学号 姓名 性别 年龄 成绩");
System.out.println(Stu[i].getStuNum()+"\t"+Stu[i].getName()+"\t"+Stu[i].getGender()+"\t"+Stu[i].getAge()+"\t"+Stu[i].getScore());
System.out.println("*******************************************");
}
}
if(number==i){
System.out.println("对不起查无此人");
}
}
static void delete(){//删除学生信息
System.out.println("请输入要删除信息的学生学号");
String Stunumber=scanner.next();//输入学号
int i;
for( i=0;i<number;i++){
if(Stunumber.equals(Stu[i].getStuNum()))break;
if(number==i)System.out.println("对不起查无此人"); //遍历完还没发现该学号
for(;i<number-1;i++)
Stu[i]=Stu[i+1]; //将匹配到的学生的后面的学生信息向前移,后一个覆盖前一个,相当于只删掉了匹配的学生信息
number--; //删除完成后,学生总数减1
System.out.println("删除完成");
}
}