Java练习题5(电话本)
package telephoneBook;
import java.util.*;
public class TelephoneBook {
private String name;//姓名
private String sex;//性别 true女, false男
private int age;//年龄
private long telephoneNumber;//电话号
private long qq;//qq号
private String address;//地址
public boolean over =false;//用来判断是否添加完成
public TelephoneBook(){//无参的构造方法
}
public TelephoneBook(String name){//有参数的构造方法,参数是 name
this.name=name;
}
//name的get,set方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
//sex的get,set方法
public String getSex() {
return sex;
}
public void setSex(String sex) {
if(sex.equals(("男"))||(sex.equals("女"))){
this.sex = sex;
}
else{
System.out.println("性别输入有误请重新输入:");
this.setSex(sex);
}
}
//age的get,set方法
public int getAge() {
return age;
}
public void setAge(int age) {
if(age>=0&&age<150){
this.age = age;
}
else{
System.out.println("年龄输入有误请重新输入:");
this.setAge(age);
}
}
//的telephoneNumber的get,set方法
public long getTelephoneNumber() {
return telephoneNumber;
}
public void setTelephoneNumber(long telephoneNumber) {
if(telephoneNumber<=0){
System.out.print("电话不能是负数或0请重新输入");
this.setTelephoneNumber(telephoneNumber);
}
else{
this.telephoneNumber = telephoneNumber;
}
}
//qq的get,set方法
public long getQq() {
return qq;
}
public void setQq(long qq) {
this.qq = qq;
}
//address的get,set方法
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
//打印信息方法
public void printMessage(){
System.out.println("姓名:"+name+",性别:"+sex+",年龄:"+age+",电话号"+",qq号"+qq+",地址"+address );
}
//添加信息方法
public void addMessage(){
Scanner sc =new Scanner(System.in);
System.out.print("姓名:");
name=sc.next();
this.setName(name);
System.out.print("性别:");
sex=sc.next();
boolean p =true;//判断性别是否合法
while(p)
if(sex.equals(("男"))||(sex.equals("女"))){
this.sex = sex;
p=false;
}
else{
System.out.print("性别输入不合法请重新输入:");
sex=sc.next();
}
this.setSex(sex);
System.out.print("年龄:");
age=sc.nextInt();
this.setAge(age);
System.out.print("电话:");
telephoneNumber=sc.nextLong();
this.setTelephoneNumber(telephoneNumber);
System.out.print("QQ:");
qq=sc.nextLong();
this.setQq(qq);
System.out.print("地址:");
address=sc.next();
this.setAddress(address);
this.printMessage();//调用打印信息方法
if(this.over==true){//添加过一次的对象就只能算修改了,所以有数据的对象over都是true
System.out.println("修改成功");
}
else{
System.out.println("添加成功"); //在修改时打印
}
this.over=true;
return;
}
}
package telephoneBook;
import java.util.*;
public class Main {
public static void main(String[] args){
Scanner sc =new Scanner(System.in);
//定义一个数组的对象
TelephoneBook[] arry=new TelephoneBook[50];
for(int i=0;i<50;i++){
arry[i]=new TelephoneBook();
}
boolean b =true;
int c;
String changeName;//删除
String name1;//删除
String changeName2;//修改
String findName;//查找
while(b){
System.out.println("----------------------电话本管理系统-------------------------");
System.out.println("1.添加 2.删除 3.修改 4.查询所有 5.根据姓名查找 0.退出");
System.out.println("----------------------电话本管理系统-------------------------");
System.out.print("请选择业务");
c=sc.nextInt();
switch(c){
case 0:
b=false;
break;
case 1:
//添加一次
System.out.println("----------------添加电话本-------------------");
for(int i =0;i<50;i++){
if(arry[i].over==false){
arry[i].addMessage();
break;
}
}
break;
case 2:
//删除
System.out.println("----------------删除电话本-------------------");
System.out.print("请输入要删除的姓名:");
changeName =sc.next();
for(int i =0;i<50;i++){
name1=arry[i].getName();
if(changeName.equals(name1)){
arry[i].printMessage();
System.out.print("确定吗?1(是)2(否)");
int r=sc.nextInt();
if(r==1){
arry[i]=new TelephoneBook();
System.out.println("删除成功");
break;
}
else{
break;
}
}
else{
System.out.println("此人不存在");
break;
}
}
break;
case 3:
//修改
System.out.println("----------------修改电话本-------------------");
System.out.print("请输入要修改的姓名");
changeName2 =sc.next();
for(int i =0;i<50;i++){
name1=arry[i].getName();
if(changeName2.equals(name1)){
arry[i].printMessage();
arry[i].addMessage();
break;
}
else{
System.out.println("此人不存在");
break;
}
}
break;
case 4:
//查询所有
System.out.println("----------------打印所有电话本-------------------");
for(int i =0;i<50;i++){
if(arry[i].getTelephoneNumber()!=0){
arry[i].printMessage();
}
}
break;
case 5:
//根据姓名查找
System.out.println("----------------查找电话本-------------------");
System.out.print("请输入要查找的姓名");
findName =sc.next();
for(int i =0;i<50;i++){
name1=arry[i].getName();
if(findName.equals(name1)){
arry[i].printMessage();
break;
}
else{
System.out.println("不存在此人");
break;
}
}
break;
}
}
}
}