自定义对象使用 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 :
//添加
{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程序)的更多相关文章
- 【简易版】Java ArrayList(增删改查)
1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: (1)动态的增加和减少元素 (2)实现了ICollectio ...
- IOS9中联系人对象的使用及增删改查操作的函数封装
之前克服重重困难把IOS9中新的类联系人搞明白了,现在把增删改查封装成了函数,如下: // // ViewController.m // IOS9中联系人CNContact的使用 // // Crea ...
- javascript json对象操作(基本增删改查)
/** * Json对象操作,增删改查 * * @author lellansin * @blog www.lellansin.com * @version 0.1 * * 解决一些常见的问题 * g ...
- JS对象中属性的增删改查
对象属于一种复合的数据类型,在对象中可以保存多个不同数据类型的属性 对象的分类: 1.内建对象 -在ES标准中定义的对象,在任何的ES的实现中都可以 ...
- python之类与对象属性的增删改查
类属性与对象属性的增删改查 类属性的增删改查 class School: """ 文档 """ Teacher = "老王&quo ...
- JDBC增删改查,PreparedStatement和Statement的区别
此篇是在上一篇的基础上使用PreparedStatement对象来实现JDBC增删改查的 具体工具类JDBCTools和实现类和配置文件在上一篇Statement对象实现的时候有写. 上一篇地址htt ...
- EF学习笔记——通用增删改查方案
http://blog.csdn.net/leftfist/article/details/25005307 我刚接触EF未久,还不知道它有什么强大之处,但看上去,EF提供了一般的增删改查功能.以往用 ...
- mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)
最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/2017/07/13/mongodb_primer/ MongoDB - 简介 官网: ...
- Hibernate第一个程序(最基础的增删改查) --Hibernate
本例实现Hibernate的第一个程序,Hibernate的优点我想大家都很清楚,在这里不做过多赘述.总之,使用Hibernate对数据库操作,也就是来操作实体对象的! 项目目录: 一.第一步要做的就 ...
随机推荐
- Java基础 -4.4
For循环 for循环也是一种常规的使用结构 public static void main(String[] args) { for(定义循环的初始值;循环判断;修改循环条件) { 循环语句的执行; ...
- 凭什么相信 5G 很安全?
导读 电信行业及其专家指责科学家说,他们研究的5G无线技术所带来的手机辐射制造了恐慌.由于我们的许多研究工作都是由公共资助的,因此我们相信从道德的角度来看,我们有责任告知公众,经过同行评审的科学文献究 ...
- va_list、va_start、va_arg、va_end
转载:https://www.cnblogs.com/bwangel23/p/4700496.html 这几个函数和变量是针对可变参数函数的,什么是可变参数函数呢,最经典的莫过于printf和scan ...
- JS简单回弹原理
/* *JS简单回弹原理 */ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "ht ...
- SQL注入之SQLmap
注意:sqlmap只是用来检测和利用sql注入点的,并不能扫描出网站有哪些漏洞,使用前请先使用扫描工具扫出sql注入点. 1.
- windows服务使用和控制启停
https://www.cnblogs.com/mq0036/p/7875864.html
- HTTP出现前的协议
前言 再HTTP普及之前,也就是从互联网的诞生期至今,曾出现过各式各样的协议.在HTTP规范确立之际,制定者们参考了那些协议的功能. 正文 1.FTP(File Transfer Protocol) ...
- Xshell 5的快捷键
Xshell 5的快捷键 1. 点击下图中的按钮查看快捷键: 2. 快捷键备忘录: 序号 功能 快捷键 备注 1 在窗口和撰写栏之间切换 Alt+I 2 全屏 Alt+Enter 3 ...
- MAC 安装 pygraphviz 找不到头文件
networkx的有向图只能通过箭头来区别两点之间的两条边,但是我在复现snake论文的时候,需要绘制两个交叉口之间的两条不同方向的路段,最后选择了pygraphviz 直接通过anaconda打开对 ...
- osgb的顶点,纹理,索引,UV读取与存储
virtual void apply(osg::Geode& node) { ; i < node.getNumDrawables(); i++) { osg::Geometry* ge ...