一、程序代码

package 多态;

public class Stu {
    //public class Person
 
        public  String Name;
        public  String Birthday;
        public  String Province,City;
        public int count;
        public Stu(String name,String birthday,String province,String city,int n)
        {
            Name=name;Birthday=birthday;Province=province;City=city;count=n;
            
        }
    }
        
   class Student extends Stu
        {public  String Major;
        public  int sum1,sum2,sum3;
        public int Grade;
        public int Number;
        public  int Score;
        
        Student(String name,String birthday,String province,String city,int n,String major,int grade,int score)
        {   super(name,birthday,province,city,n);
            Major=major;
            Grade=grade;
            Score=score;
            String a,b,c;
            a=new String("网络工程");
            b=new String("物联网");
            c=new String("计算机科学与技术");
            
            
            if(major.equals(a))
            {Number=grade*10000+01*100+count;
             }
            if(major.equals(b))
            {Number=grade*10000+02*100+count;
             }
            if(major.equals(c))
            {Number=grade*10000+03*100+count;
             }
            
            }
        public  void searchname(String nam)
        {   int i=-1;
            i=Name.indexOf(nam);
           
            if(i!=-1)
                System.out.println(Name);
        };
        public  void searchbirthday(String num)
        {
            int i=-1;
            i=Birthday.indexOf(num);
            if(i!=-1)
                System.out.println(Name);
        }
        public  void searchplace(String place)
        {
            int i=-1;
            i=Province.indexOf(place);
            if(i!=-1)
                System.out.println(Name);
            
        }
        
        public  int separate()
        {
            String a,b,c;
            
            a=new String("网络工程");
            b=new String("物联网");
            c=new String("计算机科学与技术");
            if(Major.equals(a))
            {
                sum1=sum1+Score;
                return sum1;
             }
            if(Major.equals(b))
            {sum2=sum2+Score;
            return sum2;
             }
            if(Major.equals(c))
            {
                sum3=sum3+Score;
                return sum3;
            }
            else return 0;
        }
        
    public static void main(String[] args)
    {
        System.out.println("学生1:姓名:赵一,生日:1999年1月3日,省份:山西,城市:临汾,专业:网络工程,入学年份:2017,成绩:90");
        System.out.println("学生2:姓名:张二,生日:1998年05月08日,省份:山东,城市:枣庄,专业:物联网,入学年份:2017,成绩:97");
        System.out.println("学生3:姓名:王三,生日:1999年07月24日,省份:青海,城市:大通,专业:网络工程,入学年份:2017,成绩:92");
        System.out.println("学生4:姓名:赵四,生日:1997年08月30日,省份:重庆,城市:合川,专业:计算机科学与技术,入学年份:2017,成绩:84");
        Student stud1=new Student("赵一","1999年1月3日","山西","临汾",01,"网络工程",2017,90);
        Student stud2=new Student("张二","1998年05月08日","山东","枣庄",02,"物联网",2017,97);
        Student stud3=new Student("王三","1999年07月24日","青海","大通",03,"网络工程",2017,92);
        Student stud4=new Student("赵四","1997年08月30日","重庆","合川",04,"计算机科学与技术",2017,84);
        System.out.println("赵一的学号为:"+stud1.Number);
        System.out.println("张二的学号为:"+stud2.Number);
        System.out.println("王三的学号为:"+stud3.Number);
        System.out.println("赵四的学号为:"+stud4.Number);
        System.out.print("查找姓‘赵’的学生为:");
        stud1.searchname("赵");
        stud2.searchname("赵");
        stud3.searchname("赵");
        stud4.searchname("赵");
        System.out.print("查找生日为1998年05月08日的学生为:");
        stud1.searchbirthday("1998年05月08日");
        stud2.searchbirthday("1998年05月08日");
        stud3.searchbirthday("1998年05月08日");
        stud4.searchbirthday("1998年05月08日");
        System.out.print("查找所在地区是山西的学生为:");
        stud1.searchplace("山西");
        stud2.searchplace("山西");
        stud3.searchplace("山西");
        stud4.searchplace("山西");
        stud1.separate();
        stud2.separate();
        stud3.separate();
        stud4.separate();
        int add1=0,add2=0,add3=0;
        add1=stud1.sum1+stud2.sum1+stud3.sum1+stud4.sum1;
        add2=stud1.sum2+stud2.sum2+stud3.sum2+stud4.sum2;
        add3=stud1.sum3+stud2.sum3+stud3.sum3+stud4.sum3;
        System.out.println("网络工程班总成绩是:"+add1);
        System.out.println("物联网班总成绩是:"+add2);
        System.out.println("计算机科学与技术班总成绩是:"+add3);
    }
        }
   

二、实验结果

三、实验心得

1、该实验考虑的比较综合,某些方法不知道如何实现

2.对学生自动编号的实现与题意不符,需继续改进