自定义对象使用 ArrayList 进行增删改查(dos程序)

马上要进行java基础考试了,闲着写一次博客,把这10周学的东西过一遍,可能没过全,.....但是我觉得增删改查是必须的,以前一直不会用ArrayList  自定义对象....... 案例如下:自己根据以前写的作业想的哈!!!

1 学生信息管理系统 有姓名 性别 年龄 电话 其中 性别必须定义为布尔型 但是你输入值的时候 要输入男女 ,这就用到了 转化

2 实现对学生管理的添加 修改 删除(这个我没写,没时间了,要打一把游戏)修改 写到文件等操作;

3 自定义一异常类(算是画蛇添足人家本来就有,自己非要定义一下, 回顾一下)

//主函数Tel.java

 

package 周四考试练习一波;

import java.io.IOException;
import java.util.Scanner;

public class Tel {

    public static void main(String[] args) throws ExecptionDemo, IOException {
        // TODO 自动生成的方法存根
        menu();
    }
    
    public static void menu() throws ExecptionDemo, IOException//这是菜单函数递归调用就很舒服
    {Scanner scanner =new Scanner(System.in);
    Method  mm=new Method();
        System.out.println("--------学生信息管理系统-------");
        System.out.println("1 添加");
        System.out.println("2 显示");
        System.out.println("3 查询");
        System.out.println("4 修改");
        System.out.println("5 写到文件");
        System.out.println("6 读入文件");
        System.out.println("--------学生信息管理系统-------");
        System.out.println("请输入要选定的序号!");
        int choose=scanner.nextInt();
        switch (choose) {
        case 1:
            //添加
        {mm.add(); menu();break;}
            
        case 2:
            //显示
        {mm.show(); menu();break;}
        case 3:
            //删除
        {mm.delete(); menu();break;}
        case 4:
            //修改
        {mm.update(); menu();break;}
        case 5:
            //写到文件
        {mm.writeit(); menu();break;}
        case 6:
            //读入文件
        {mm.readit(); menu();break;}
        default:
            System.out.println("输入无效即将推出");System.exit(0);break;
        }
        
    }

}

user.java 函数

package 周四考试练习一波;

public class User {
	public User(String name, int age, boolean sex, int phone) {
		super();
		this.name = name;
		this.age = age;
		this.sex = sex;
		this.phone = phone;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public boolean getsex() {
		return sex;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public boolean isSex() {
		return sex;
	}
	public void setSex(boolean sex) {
		this.sex = sex;
	}
	public int getPhone() {
		return phone;
	}
	public void setPhone(int phone) {
		this.phone = phone;
	}
	private String name;
	private int age;
	private boolean sex;
	private int phone;
}

  method.java函数

package 周四考试练习一波;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;

public class Method {
    Scanner scanner=new Scanner(System.in);
  static ArrayListarrayList=new ArrayList();//这个必须定义为静态的要不不能全局使用,刚开始写错了
public boolean converseto(String a)//这是由男转化为boolean型的函数------我特么蛋疼写完之后发现还不如直接重载
{if(a=="")
{return true;
    }else
        return false;
}
public String converseto(boolean a)//原谅我新手没重载
{if(a==true)
{return "";
    }else
        return "";
}
 public void add()//添加函数一次添加一个
{
    System.out.println("请输入 姓名");
String name=scanner.next();
System.out.println("请输入 年龄");
int age=scanner.nextInt();
System.out.println("请输入 性别");
String sex=scanner.next();
System.out.println("请输入 手机号");
int phone=scanner.nextInt();
    arrayList.add(new User(name, age, converseto(sex), phone));    
        
    }
    public void show()
    {
        for(User temp:arrayList)
        {
            System.out.println("姓名 "+temp.getName()+" 年龄 "+temp.getAge()+" 性别 "+converseto(temp.getsex())+" 手机号 "+temp.getPhone());
            
        }
        
    }
    public void delete() throws ExecptionDemo//这是查询函数,没写功能我也不该名字了怪麻烦的
    {System.out.println("请输入要查找的姓名或者手机号");
    String find=scanner.next();
    int flag=0;
    for(User temp:arrayList)
    {
        if(temp.getName().equals(find)||(temp.getPhone()+"").equals(find))
        {
            System.out.println("姓名 "+temp.getName()+" 年龄 "+temp.getAge()+" 性别 "+converseto(temp.getsex())+" 手机号 "+temp.getPhone());
            flag=1;
            break;
        }
        
    }
        
        if(flag==0)
        {System.out.println("文件未找到");
        throw new ExecptionDemo("文件未找到");

        }
        
        
    }
    public void update() throws ExecptionDemo//修改函数
    {
        System.out.println("请输入要查找的姓名或者手机号");
        String find=scanner.next();
        int flag=0;
        for(User temp:arrayList)
        {
            if(temp.getName().equals(find)||(temp.getPhone()+"").equals(find))
            {System.out.println("请输入 姓名");
            temp.setName(scanner.next());
            System.out.println("请输入 年龄");
            temp.setAge(scanner.nextInt());
            System.out.println("请输入 性别");
            temp.setSex(converseto(scanner.next()));
            System.out.println("请输入 手机号");
        temp.setAge(scanner.nextInt());
                flag=1;
                System.out.println("修改成功");
                break;
            }
            
        }
        
        if(flag==0)
        {System.out.println("文件未找到");
        throw new ExecptionDemo("文件未找到");

        }
        
        
    }
    
    public void writeit() throws IOException//写到文件函数
    {BufferedWriter bufferedWriter=new BufferedWriter(new FileWriter(new File("1.txt"),true));
    
    for(User temp:arrayList)
    {bufferedWriter.write("姓名 "+temp.getName()+" 年龄 "+temp.getAge()+" 性别 "+converseto(temp.getsex())+" 手机号 "+temp.getPhone()+"\r\n");
    }
    bufferedWriter.flush();
        bufferedWriter.close();
    }
    public void readit() throws IOException//将文件读入内存函数,读进去之后可以进行查询修改的,,因为你读入了内存
    {
        BufferedReader bufferedReader=new BufferedReader(new FileReader("1.txt"));
        
        String temp=bufferedReader.readLine();
        while(temp!=null)
        {String b[]= temp.split(" ");
            temp=bufferedReader.readLine();
        arrayList.add(new User(b[1],Integer.parseInt(b[3]),converseto(b[5]),Integer.parseInt(b[7])));
        System.out.println(Arrays.toString(b));
        };
        System.out.println("导入文件成功");
        bufferedReader.close();
    }
    
    
    
}

//自定义异常类函数ExecptionDemo.java

package 周四考试练习一波;

public class ExecptionDemo extends Exception{
    public  ExecptionDemo(String e) throws ExecptionDemo
    {super(e);
        
    }

}

截图如下:............................

 

自定义对象使用 ArrayList 进行增删改查(dos程序)_第1张图片

 

转载于:https://www.cnblogs.com/xuexidememeda/p/7912174.html

你可能感兴趣的:(自定义对象使用 ArrayList 进行增删改查(dos程序))