没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
实 验 报 告
姓 名 学 号
专业班
级
课程名称 Java 高级程序设计实验 实验日期
成 绩 指导教师 批改日期
实 验 名 称 实验 3 泛型
1、编写简单的学生、教师管理程序,学生类,教师类有公共的父类:Person,请添加相关属性。写
泛型类 Person Manager<T>,以实现对学生、教师的管理。PersonManager有方法:add(T t) ,
remove(T t) ,ndById(int id), update(T t), ndAll()。根据需要添加其他方法。通过键盘选择
是对学生进行管理,或者是对教师进行管理,所有必需的信息都通过键盘录入。录入的数据存储在 List
对象中。(p95 第4题)
源代码:
//主函数类
package unit3;
import java.util.Scanner;
public class Main_1 {
public static void main(String[] args) throws Exception {
Person_Manage<Person> manager = new Person_Manage<Person>();
System.out.println("请输入你的身份 Student 或 Teacher:");
Scanner input = new Scanner(System.in);
String className = input.nextLine();
Class clazz = Class.forName("unit3."+className);//包名加类名
Person person=(Person) clazz.newInstance();
System.out.println("1~~~~~~新增");
System.out.println("2~~~~~~删除");
System.out.println("3~~~~~~查询");
System.out.println("4~~~~~~更改信息");
System.out.println("5~~~~~~显示所有信息");
System.out.println("0~~~~~~退出");
System.out.println("请输入你的选择:");
Scanner get = new Scanner(System.in);
int choice=get.nextInt();
while(choice!=0){
System.out.println("-------------开始--------------");
if(choice==1){
manager.add(person);
}
else if(choice==2){
Scanner input2 = new Scanner(System.in);
System.out.println("请输入要删除的人的ID:");
Integer ID = input2.nextInt();
clazz.getDeclaredMethod("setID", Integer.class).invoke(person, ID);
manager.remove(person);
}
else if(choice==3){
Scanner input3 = new Scanner(System.in);
System.out.println("请输入要查询的Id号:");
Integer id = input3.nextInt();
manager.ndByID(id);
}
else if(choice==4){
Scanner input4 = new Scanner(System.in);
System.out.println("请输入要更改的人的ID:");
Integer ID = input4.nextInt();
clazz.getDeclaredMethod("setID", Integer.class).invoke(person, ID);
manager.update(person);
}else if(choice==5){
manager.ndAll();
}
else{
System.out.println("输入有误,请重新输入!");
}
System.out.println("-----------结束-----------");
System.out.println("请输入你的选择:");
Scanner get2 = new Scanner(System.in);
choice=get2.nextInt();
}
}
}
//Student类
package unit3;
public class Student extends Person{
private Integer ID;
private String name;
private String sex;
private Integer age;
public Student(){super();}
public Student(Integer iD, String name, String sex, Integer age){//定义有参构造函
数
super();
this.age=age;
this.name=name;
this.sex=sex;
this.ID=iD;
}
public Integer getID() {
return ID;
}
public void setID(Integer ID) {
this.ID = ID;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public String toString() {
剩余11页未读,继续阅读
淡写╮青春
- 粉丝: 986
- 资源: 31
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 直接插入排序,冒泡排序,直接选择排序.zip
- 在排序2的基础上,再次对快排进行优化,其次增加快排非递归,归并排序,归并排序非递归版.zip
- 实现了7种排序算法.三种复杂度排序.三种nlogn复杂度排序(堆排序,归并排序,快速排序)一种线性复杂度的排序.zip
- 冒泡排序 直接选择排序 直接插入排序 随机快速排序 归并排序 堆排序.zip
- 课设-内部排序算法比较 包括冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归并排序和堆排序.zip
- Python排序算法.zip
- C语言实现直接插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序、归并排序、计数排序,并带图详解.zip
- 常用工具集参考用于图像等数据处理
- 音乐展示网页、基于Stenography的图像数字水印添加与提取,以及基于颜色矩和Tamura算法的图像相似度评估算法py源码
- 基于EmguCV(OpenCV .net封装),图像数字水印加解密算法的实现,其中包含最低有效位算法,离散傅里叶变换算法+文档书
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0