任务1: 教师电话管理系统(数组版)
1.1 任务描述
知识点:类、接口、Java数组、java.io相关工具类的使用
1.2 任务目标
完善以下类与接口中"//to do…"部分代码,实现老师电话管理系统
1.3 任务实现思路
完成教师电话信息的管理(测试类):public class ArrTeacherTelUser
定义顺序表中的数据元素类型(教师电话类):class TeacherTel
接口定义了顺序表的数据操作(顺序表操作接口):class interface TeacTelOPeration
实现接口中的操作(顺序表接口实现类):class ArrTeacTel implements TeacTelOPeration
1.4 任务实现源码
package com.it.Array;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Objects;
class TeacherTel {
// 定义顺序表中的数据元素类型
// 属性定义
private String name;
private int teacherNo;
private String telphone;
public TeacherTel() {
}
// 构造方法
public TeacherTel(int teacherNo, String name, String telphone) {
this.name = name;
this.teacherNo = teacherNo;
this.telphone = telphone;
}
// 成员方法
public void setName(String name) {
this.name = name;
}
public void setTeacherNo(int teacherNo) {
this.teacherNo = teacherNo;
}
public void setTelphone(String telphone) {
this.telphone = telphone;
}
public String getName() {
return name;
}
public int getTeacherNo() {
return teacherNo;
}
public String getTelphone() {
return telphone;
}
public String toString() {
return this.getTeacherNo() + "," + this.getName() + "," + this.getTelphone();
}
}
interface TeacTelOPeration {
// 此接口定义了顺序表的数据操作
int getCounts(); // 获取记录个数
void add(TeacherTel node); // 在顺序表的尾部添加一个 教师电话记录
void listAll(); // 遍历顺序表中所有教师电话记录
void search(int index); // 根据教师编号查询记录
void search(String name); // 根据教师姓名查询记录
void delete(int index); // 根据教师编号删除记录
void delete(String name); // 根据教师姓名删除记录
}
class ArrTeacTel implements TeacTelOPeration {
// 实现接口中的操作
private TeacherTel[] teacTel;// 顺序表,存放教师电话信息
private int count = 0;// 记录记数器,当前顺序表中的记录个数
ArrTeacTel(int initialCapacity) {
// 创建指定容量的顺序表
teacTel = new TeacherTel[initialCapacity];
}
public int getCounts() {
// 获取教师电话记录个数
return count;
}
// 在顺序表添加一个教师电话信息记录,并且在添加时按教师编号 从小到大的 顺序插入结点
public void add(TeacherTel node) {
if (count == 0) {
//to do...
teacTel[0] = node;
count++;
System.out.println("添加新教师电话信息成功!");
} else {
int flag = 0;
for (int i = 0; i < count; i++) {
//to do...如果新加入的编号比原来的小,则后移一位
if (teacTel[i].getTeacherNo() == node.getTeacherNo()) {
break;
}else if(teacTel[i].getTeacherNo() > node.getTeacherNo()){
count++;
TeacherTel TEA1 = teacTel[i];//原来的编号
teacTel[i] = node;//新编号
for (int j = i + 1; j <= count; j++) {
TeacherTel TEA2 = teacTel[j];//原来编号的后一位j=i+1
teacTel[j] = TEA1;//后移
TEA1 = TEA2;
}
flag = 1;
System.out.println("添加新教师电话信息成功!");
break;
}
if (i == count - 1) {
flag = 1;
teacTel[count] = node;
count++;
System.out.println("添加新教师电话信息成功!");
}
}
if (flag == 0) {
//to do...
System.out.println("该教师电话信息已存在,请重新选择!");
}
}
if (count == teacTel.length)
System.out.println(" 存储空间已满");
}
public void listAll() {
// 遍历顺序表中所有教师电话记录
if (count == 0)
System.out.println("没有记录!");
for (int i =