实现电话本的增删改查(存于对象数组)。
来个运行后的效果:
下面就是实现的代码(如有不对欢迎指正 O(∩_∩)O)
package jingshenxiaohuo.com.test;
import java.util.Scanner;
/**
* @program: testApplication
* @description:
* @author: xiaoming
* @version: V1
**/
public class PhoneNumberTest {
//控制台输入
Scanner sc = new Scanner(System.in);
//ConnecInfo为内部类,定义在代码最下方
//存储联系信息等内容
ConnectInfo[] connectInfos = new ConnectInfo[10];
//空构造函数,可省略
public PhoneNumberTest() {
}
//操作入口
public void BeginOpt() {
System.out.println("----------电话本管理系统----------");
System.out.println("1.添加 2.删除 3.修改 4.查询所有 5.根据姓名查询 0.退出");
System.out.println("----------电话本管理系统----------\n 请选择操作:");
String a = sc.next();
//如果a处编译时报错,注意JDK使用1.7以上
switch (a) {
case "1":
add();
break;
case "2":
delete();
break;
case "3":
update();
break;
case "4":
selectAll();
break;
case "5":
selectByName();
break;
case "0":
exit();
break;
default:
System.out.println("输入指令错误!请重新输入!");
BeginOpt();
break;
}
}
public void add() {
ConnectInfo b = new ConnectInfo();
System.out.println("------添加电话本------");
System.out.println("请输入相关信息:");
System.out.print("姓名:");
String name = sc.next();
b.setName(name);
System.out.print("性别:");
String sex = sc.next();
b.setSex(sex);
System.out.print("年龄:");
int age = sc.nextInt();
b.setAge(age);
System.out.print("电话:");
String dianhua = sc.next();
b.setPhoneNumber(dianhua);
System.out.print("QQ:");
String qq = sc.next();
b.setQQ(qq);
System.out.print("地址:");
String dizhi = sc.next();
b.setDizhi(dizhi);
for (int i = 0; i < 10; i++) {
if (connectInfos[i] == null) {
connectInfos[i] = b;
break;
} else {
continue;
}
}
System.out.println("添加成功");
System.out.println(b.toString());
BeginOpt();
}
public void delete() {
System.out.println("------删除电话本------");
System.out.println("请输入你要删除的电话本:");
String s = sc.next();
for (int i = 0; i < 10; i++) {
if (connectInfos[i] != null) {
if (connectInfos[i].getName().equals(s)) {
System.out.println("你要删除的是:" + connectInfos[i].toString());
System.out.println("你确定要删除吗?\n [Y]确定,[N]取消");
String s2 = sc.next();
if (s2.equals("y")) {
connectInfos[i] = null;
System.out.println("删除成功!");
BeginOpt();
} else if (sc.next().equals("n")) {
BeginOpt();
} else {
System.out.println("输入指令不正确,请重新输入!");
delete();
}
} else {
if (i != 9) {
continue;
} else {
System.out.println("你输入的账号不存在!请重新输入!");
delete();
}
}
}else {
if (i != 9) {
continue;
} else {
System.out.println("你输入的账号不存在!请重新输入!");
delete();
}
}
}
}
public void update() {
System.out.println("--------------修改电话本-------------");
System.out.println("请输入你要修改的账号:");
String s = sc.next();
out: for (int i = 0; i < 10; i++) {
if (connectInfos[i] != null) {
if (connectInfos[i].getName().equals(s)) {
System.out.println("你要修改的是:" + connectInfos[i].toString());
System.out.println("请重新输入相关信息:");
System.out.print("姓名:");
String name = sc.next();
connectInfos[i].setName(name);
System.out.print("性别:");
String sex = sc.next();
connectInfos[i].setSex(sex);
System.out.print("年龄:");
int age = sc.nextInt();
connectInfos[i].setAge(age);
System.out.print("电话:");
String dianhua = sc.next();
connectInfos[i].setPhoneNumber(dianhua);
System.out.print("QQ:");
String qq = sc.next();
connectInfos[i].setQQ(qq);
System.out.print("地址:");
String dizhi = sc.next();
connectInfos[i].setDizhi(dizhi);
System.out.print("修改成功!");
System.out.println("修改后为:" + connectInfos[i].toString());
BeginOpt();
} else {
if (i != 9) {
continue out;
} else {
System.out.println("你输入的账号不存在!请重新输入!");
update();
}
}
} else {
if (i != 9) {
continue out;
} else {
System.out.println("你输入的账号不存在!请重新输入!");
update();
}
}
}
}
public void selectAll() {
System.out.println("--------------所有电话信息---------------");
for (int i = 0; i < 10; i++) {
if (connectInfos[i] != null) {
System.out.println(connectInfos[i].toString());
}
}
BeginOpt();
}
public void selectByName() {
System.out.println("------------------根据名字查询----------------");
System.out.println("请输入你要查找的名字:");
String s = sc.next();
out: for (int i = 0; i < 10; i++) {
if (connectInfos[i] != null) {
if (connectInfos[i].getName().equals(s)) {
System.out.println("查询结果为:" + connectInfos[i].toString());
BeginOpt();
break;
} else {
if (i != 9) {
continue out;
} else {
System.out.println("你输入的账号不存在!请重新输入!");
selectByName();
}
}
} else {
if (i != 9) {
continue out;
} else {
System.out.println("你输入的账号不存在!请重新输入!");
selectByName();
}
}
}
}
public void exit() {
System.out.println("谢谢使用! \n");
System.gc();// 系统回收资源
Runtime.getRuntime().runFinalization();// 没起作用;
}
public void finalize() {
System.out.println("已回收资源,成功退出系统");
}
class ConnectInfo { // 写个内部类
private String name;
private String sex;
private int age;
private String phoneNumber;
private String QQ;
private String dizhi;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public String getQQ() {
return QQ;
}
public void setQQ(String qQ) {
QQ = qQ;
}
public String getDizhi() {
return dizhi;
}
public void setDizhi(String dizhi) {
this.dizhi = dizhi;
}
public String toString() {
String s = "姓名:" + name + "性别:" + sex + "年龄:" + age + "电话:" + "QQ:"
+ QQ + "地址:" + dizhi;
return s;
}
}
public static void main(String[] args) {
//新建对象
PhoneNumberTest phoneNumberTest = new PhoneNumberTest();
//执行对象方法
phoneNumberTest.BeginOpt();
}
}