本课程是北京邮电大学计算机专业的一门基础课,旨在通过实践项目教授学生Java编程语言的核心概念和开发技巧。学生将完成一系列设计与编码任务,以提升解决问题的能力和团队合作精神。
实验1:类的定义与对象数组使用
**任务一**
创建一个名为`Student`的学生类。该类包含以下属性和方法:
- **非静态属性**
- `String studentNumber`: 学生学号。
- `String studentName`: 学生姓名。
- `int markForMaths`, `markForEnglish`, 和 `markForScience`: 分别表示数学、英语与科学科目的成绩。
- **构造方法**
- `Student(String number, String name)`: 构造函数,用于初始化学号和名字。
- `Student()`: 默认构造器(无参数)。
- **其他方法**
- `String getNumber()` : 返回学生学号。
- `String getName()`: 返回学生姓名。
- `void enterMarks(int markForMaths, int markForEnglish, int markForScience)`: 输入三门课程的成绩。
- `int getMathsMark()`, `getEnglishMark()`, 和`getScienceMark()`:分别返回数学、英语和科学成绩。
- `double calculateAverage()`: 计算平均分,注意除数应为3.0而非整型数值以确保结果准确。分数初始值设置问题讨论:若将每个科目的初始分为零,则可能与实际得分为零的情况混淆;建议使用其他默认值或在输入前进行验证。
- `String toString()`: 返回包含学生信息的字符串,包括学号、姓名和各科目成绩及平均分。
编写`StudentTest`类来测试上述定义的功能。运行效果展示如下:
```
请输入学生学号:2011211301
请输入学生姓名:王晓
请输入三门课成绩(数学,英语,科学):88,79,90
输出:
学号: 2011211301 姓名: 王晓 数学成绩: 88 英语成绩: 79 科学成绩: 90 平均分: 85.67
```
**任务二**
创建一个名为`StudentList`的类,用于存储多个学生对象。定义如下属性和方法:
- **成员变量**
- `Student[] list`: 存储学生对象。
- `int total`: 记录当前数组中的元素个数。
- **构造函数**
- `StudentList(int length)`: 初始化一个具有给定长度的列表来存储学生信息。
- **方法**
- `boolean add(Student stu)` : 向列表中添加一个新的`stu`对象,成功返回true,否则false。
- `boolean remove(int no)` 和 `remove(String number)`: 分别根据位置或学号删除一个元素,并反馈操作结果(布尔值)。
- `boolean isEmpty()`: 检查数组是否为空并给出相应的判断结果。
- `Student getItem(int no)` 和`getItem(String number)`: 根据索引和学号返回对应的对象,若找不到则返回null或错误信息。
- `int getTotal()`:获取当前学生总数。
编写测试类`StudentListTest`以验证功能:
```
菜单如下,请输入1~8代表您要执行的操作:
1. 添加一个新学生
2. 按学号删除学生
3. 根据位置移除学生信息
4. 判断列表是否为空
5. 通过索引获取指定的学生信息
6. 使用学号查找特定的记录
7. 展示所有学生的数据
8. 结束程序
操作实例:
输入1添加新用户,后续会要求你依次填写:学号、姓名及三门课的成绩。
```
作业命名规则为`_学号(8位)_姓名_第几次作业(1位)_类名.java`。例如:
- `_09211195_王晓_1_Student.java`
- `_09211195_王晓_2_studentList.java`
注意:提交时,仅上传`.java`文件而非压缩包,并确保源代码中的类名称与文件名一致以方便批改。