java编程实现学⽣成绩管理系统,采⽤顺序存储结构版权声明:本⽂为博主原创⽂章,未经博主允许不得转载。 blog.csdn/benzhaohao/article/details/78236354
学⽣成绩表如图所⽰
问题分析:采⽤顺序存储结构,所以可以继承顺序表Sqlist(顺序表Sqlist的建⽴在之前写过了),简化类的描述。
总体思路是先建⽴顺序表,然后进⾏增删改查的功能。
⼀个结点中包含5个数据元素,所以建⽴StudentNode结点如下:
import java.util.Scanner;
public class StudentNode {
private int number;  //学号
private String name;  //姓名
private String sex;    //性别
private double english;  //⼤学英语成绩
private double math;    //⾼等数学成绩
public StudentNode(){      //⽆参数时的构造函数
this(0,null,null,0,0);
}
public StudentNode(int number,String name,String sex,double english,double math){
this.number=number;
this.name=name;
this.sex=sex;
this.math=math;
}
public StudentNode(Scanner sc){
Int(),sc.next(),sc.next(),sc.nextDouble(),sc.nextDouble());
}
}
建⽴顺序表并实现增删改查功能
import java.util.*;
public class StudentManageSystem extends Sqlist{
//按顺序构造顺序表,其中参数maxsize指的是顺序表的最⼤存储空间容量
public StudentManageSystem(int maxsize,int n)throws Exception{
super(maxsize);  //调⽤⽗类构造函数
Scanner sc=new Scanner(System.in);
for(int i=0;i<n;i++){    //创建含有n个数据元素的顺序表
StudentNode node=new StudentNode(sc);
insert(node);      //将新的数据元素插⼊到顺序表的表尾
}
}
//重载⽗类insert()⽅法在顺序表表尾插⼊⼀个学⽣信息
public void insert(StudentNode node)throws Exception{
super.insert(length(), node);
}
/
/覆盖⽗类get()⽅法,从顺序表中取出指定学号的学⽣信息,返回StudentNode对象
public StudentNode get(int number)throws Exception{
for(int i=0;i<length();i++){  //遍历顺序表
StudentNode node=(StudentNode) (i);  //调⽤⽗类Sqlist的get⽅法
if(node.number==number)
return node;              //返回指定学⽣信息
}
throw new Exception("学号"+number+"不存在");
}
//覆盖⽗类的remove⽅法
public void remove(int number)throws Exception{
for(int i=0;i<length();i++){
StudentNode node=(StudentNode) (i);
if(node.number==number)
return;          //提前退出函数
}
throw new Exception("学号"+number+"不存在");
}
//重载⽗类display⽅法,输出顺序表中的所有数据元素
public void display(){
for(int i=0;i<length();i++){
try{
StudentNode node =(StudentNode) (i);
java面试题csdn
displayNode(node);
}
catch(Exception e){}
}
}
//输出⼀个数据元素的信息
public void displayNode(StudentNode node){
System.out.println("学号:"+node.number+"姓名:"+node.name+"性别:"+node.sex+"英语成绩:"+      lish+"数学成绩:"+node.math);
}
public static void main(String[] args)throws Exception{
int maxsize=100;
Scanner sc=new Scanner(System.in);
System.out.println("输⼊学⽣总数");
int Int();
System.out.println("请按学号,姓名,性别,英语成绩,数学成绩顺序输⼊学⽣信息");
StudentManageSystem L=new StudentManageSystem(maxsize,n);
System.out.println("输出学⽣信息");
L.display();
System.out.println("输⼊要查询学⽣的学号");
L.(sc.nextInt()));
System.out.println("输⼊要删除学⽣的学号");
System.out.println("删除成功");
L.display();
System.out.println("输⼊需要增加的学⽣信息");
L.insert(new StudentNode(sc));
L.display();
}
}
输出结果