JAVA基础——学校管理小程序

详细设计:项目包括四个类的设计

    学生类(Student)

    班级类(BanJi)

    学校类(School)

    主流程类(TestDemo)

1)Student类:

     属性: 学号(stuNum)、姓名(stuName) 这两个属性为String类型

                数学成绩(math)、语文成绩(chinese) 这两个属性为float类型

    方法:  构造方法

                setter和getter方法

                hashCode()和equals()方法

                toString()方法

2)Banji类:

      属性:班级编号(classId)、班级名称(className)  这两个属性均为String类型

                存放学生的集合(stuList) 这个属性为List类型

      方法:构造方法

                getter和setter方法

                将学生添加到班级:public void addStudent(Student stu){}

                通过学号查询学生在班级中是否存在: public Student searchStudentByNum(String stuNum){}

                输入班级学生的语文成绩:public void insertChineseScore(String stuNum,float score){}

                输入班级学生的数学成绩:public void insertMathScore(String stuNum,float score){}

                删除学习信息:public void deleteStudent(String stuNum){}

                显示所有学生的信息(包括学号和姓名):public void displayAllStudent(){}

3)School类

        属性:存放班级的集合(schoolMap) ,类型为Map

        方法: 构造方法

                    getter和setter方法

                    添加班级:public void addBanji(Banji banji){}

                    删除班级 : public void deleteBanji(Banji banji){}

                    通过班级名称查询班级:public BanJi searchByName(String className) {}

                    对各班语文成绩按平均分进行由大到小排序:public void sortChineseByAverage() {}

                    对各班数学成绩按平均分进行由大到小排序:public void sortMathByAverage() {}

                    显示所有班级名称:public void displayBanJiName() {}

4)TestDemo类

         方法:

               班级的测试方法:public void testBanJi(){}

               学校的测试方法:public void testSchool(){}

               主菜单: public void mainMenu(){}

               学校管理菜单:public void schoolMenu(){}

               班级管理菜单:public void banJiMenu(){}

               主流程:public void test(){}

本项目的收获:

  1. 排序问题。数组排序使用Arrays.sort(int[] arr)即可完成,对于list集合则可以采用Collections类中 sort()方法:sort(List list)根据元素的自然顺序对指定列表按升序进行排序,如果是字符串或者字符数据按照assic码值进行排序;自定义类则需要实现接口。
    ① Comparator接口强行对某个对象(自定义类对象)进行整体排序,可将comparator传递给Collections.sort或Arrays.sort方法。int compare(T o1, T o2) 用来比较排序的两个参数:a. 如果 o1 < o2,返回负整数;b. 如果 o1 == o2,返回0;c. 如果 o1 > o2,返回正整数。Comparator接口还包含一个方法boolean equals(Object obj),用于指示某个对象obj是否等于This对象。另外这个方法会被Object类中的equals()方法重写,所以自定义类实现Comparator接口是不必被强制重写equals的,但是必须重写compare()方法用于实现特定参数的比较。
    ②Comparable接口强行对实现它的每个类的对象进行整体排序;这种排序被称为类的自然排序,类的compareTo方法被称为它的自然比较方法;对于集合,通过调用Collections.sort方法进行排序;对于数组,通过调用Arrays.sort方法进行排序;int compareTo(T o) 方法,该对象小于、等于或大于指定对象,则分别返回负整数、零或正整数。

  2. 重复对象判断问题。例如学生类,如果两个学生对象学号和姓名都相同,那么它们就是一个重复对象,但是对于默认equals方法来说仍是两个对象,好比两只年龄和名字都相同的猫,所以需要重写HashCode()和equals()方法。

  3. 集合。ArrayList:1.底层由数组实现;2.元素有序且可以重复;3.元素值可以为null。HashSet:1.元素无序且不可以重复2.只允许一个null元素;HashMap:1.键不能重复;2.允许使用null值和null键;3.HashMap中的Entry对象是无序排列。

  4. 迭代器。对于HashSet与HashMap可以用Iterator(迭代器)以统一的方式对各种元素进行遍历。代码为Iterator it = set.Iterator();while(it.hasNext()){System.out.println(it.next())}。

代码:
学生类

/**
 * 学生类,用于存储学生信息
 * @author hblack
 */

public class Student {
	//成员属性:学号,姓名,数学成绩,语文成绩
	private String stuNum;
	private String stuName;
	private float math;
	private float chinese;

	
	public String getStuNum() {
		return stuNum;
	}

	public void setStuNum(String stuNum) {
		this.stuNum = stuNum;
	}

	public String getStuName() {
		return stuName;
	}

	public void setStuName(String
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值