马上要进行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 :
//添加
{mm.add(); menu();break;} case :
//显示
{mm.show(); menu();break;}
case :
//删除
{mm.delete(); menu();break;}
case :
//修改
{mm.update(); menu();break;}
case :
//写到文件
{mm.writeit(); menu();break;}
case :
//读入文件
{mm.readit(); menu();break;}
default:
System.out.println("输入无效即将推出");System.exit();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=;
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=;
break;
} } if(flag==)
{System.out.println("文件未找到");
throw new ExecptionDemo("文件未找到"); } }
public void update() throws ExecptionDemo//修改函数
{
System.out.println("请输入要查找的姓名或者手机号");
String find=scanner.next();
int flag=;
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=;
System.out.println("修改成功");
break;
} } if(flag==)
{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[],Integer.parseInt(b[]),converseto(b[]),Integer.parseInt(b[])));
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. 【简易版】Java ArrayList(增删改查)

    1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: (1)动态的增加和减少元素 (2)实现了ICollectio ...

  2. IOS9中联系人对象的使用及增删改查操作的函数封装

    之前克服重重困难把IOS9中新的类联系人搞明白了,现在把增删改查封装成了函数,如下: // // ViewController.m // IOS9中联系人CNContact的使用 // // Crea ...

  3. javascript json对象操作(基本增删改查)

    /** * Json对象操作,增删改查 * * @author lellansin * @blog www.lellansin.com * @version 0.1 * * 解决一些常见的问题 * g ...

  4. JS对象中属性的增删改查

    对象属于一种复合的数据类型,在对象中可以保存多个不同数据类型的属性 对象的分类:           1.内建对象                 -在ES标准中定义的对象,在任何的ES的实现中都可以 ...

  5. python之类与对象属性的增删改查

    类属性与对象属性的增删改查 类属性的增删改查 class School: """ 文档 """ Teacher = "老王&quo ...

  6. JDBC增删改查,PreparedStatement和Statement的区别

    此篇是在上一篇的基础上使用PreparedStatement对象来实现JDBC增删改查的 具体工具类JDBCTools和实现类和配置文件在上一篇Statement对象实现的时候有写. 上一篇地址htt ...

  7. EF学习笔记——通用增删改查方案

    http://blog.csdn.net/leftfist/article/details/25005307 我刚接触EF未久,还不知道它有什么强大之处,但看上去,EF提供了一般的增删改查功能.以往用 ...

  8. mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)

    最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/2017/07/13/mongodb_primer/ MongoDB - 简介 官网: ...

  9. Hibernate第一个程序(最基础的增删改查) --Hibernate

    本例实现Hibernate的第一个程序,Hibernate的优点我想大家都很清楚,在这里不做过多赘述.总之,使用Hibernate对数据库操作,也就是来操作实体对象的! 项目目录: 一.第一步要做的就 ...

随机推荐

  1. NB-IOT学习

    一 信号穿透力强,覆盖面广(基站少成本低).低功耗(eDRX/PSM省电技术).适合小流量时延要求不高(10s.) 二 主要芯片: 华为:Hi2110/2115,基于此的模组有:中移的M5310 移芯 ...

  2. 搭建DHCP服务

    DHCP服务流程 1.DHCP客户端初次接入网络时,会发送DHCP发现报文(DHCP Discover),用于查找和定位DHCP服务器. 2.DHCP服务器在接收到DHCP发现报文后,发送DHCP提供 ...

  3. Dynamic Programming(动态规划)

    钢材分段问题 #include<iostream> #include<vector> using namespace std; class Solution { public: ...

  4. java各种面试问题

    二.Java多线程相关 线程池的原理,为什么要创建线程池?创建线程池的方式: 线程的生命周期,什么时候会出现僵死进程: 说说线程安全问题,什么实现线程安全,如何实现线程安全: 创建线程池有哪几个核心参 ...

  5. 如何在ubuntu14.04(64位)编译运行32位程序

    sudo -i cd /etc/apt/sources.list.d echo "deb http://archive.ubuntu.com/ubuntu/ raring main rest ...

  6. 【剑指Offer面试编程题】题目1515:打印1到最大的N位数--九度OJ

    题目描述: 给定一个数字N,打印从1到最大的N位数. 输入: 每个输入文件仅包含一组测试样例. 对于每个测试案例,输入一个数字N(1<=N<=5). 输出: 对应每个测试案例,依次打印从1 ...

  7. TCP 3次握手 && 4次分手

    原文:https://github.com/jawil/blog/issues/14 3次握手 第一次握手:建立连接.客户端发送连接请求报文段,将SYN位置为1,Sequence Number为x:然 ...

  8. CentOS7 安装PHP7的swoole扩展:

    一.绪 Swoole简介 PHP异步网络通信引擎 最终编译为so文件作为PHP的扩展 准备工作 Linux环境 PHP7 swoole2.1 redis 源码安装PHP7 源码安装swoole htt ...

  9. 十六、myeclipse导入别人项目报错java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addServle异常

    问题原因:java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addServle异常    我是把别人的源码项目直接导 ...

  10. Linux centos7日常运维——监控io性能、free内存命令、ps进程命令、查看网络状态、linux下抓包

    一.监控io性能 Linux系统出现了性能问题,一般我们可以通过top.iostat.free.vmstat等命令来查看初步定位问题.其中iostat可以给我们提供丰富的IO状态数据. iostat ...