zoukankan      html  css  js  c++  java
  • 自定义对象使用 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 ArrayList<User>arrayList=new ArrayList<User>();//这个必须定义为静态的要不不能全局使用,刚开始写错了
    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()+"
    ");
        }
        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);
            
        }
    
    }

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

  • 相关阅读:
    关于医学的一点想法
    我的ArcGis9.3 到Arcgis10.0 升级步骤
    最近一月的娱乐生活:看电影,玩游戏
    最近一月的娱乐生活:看电影,玩游戏
    5年技术学习历程的回顾
    5年技术学习历程的回顾
    网站开发的技术选型问题
    网站开发的技术选型问题
    学技术真累
    Java实现 LeetCode 200 岛屿数量
  • 原文地址:https://www.cnblogs.com/xuexidememeda/p/7912174.html
Copyright © 2011-2022 走看看