项目练习--自制电话铺功能

3类名,方法名及变量名的定义

要遵循下列设计要求进行代码编写,仅允许细微调整。

3.1类名:

App  对应  Application(程序入口函数)

Menu 对应  Menu      (菜单类)

Operate 对应  Operate    (业务处理类)

Person 对应  Person (实体类)

3.2方法名:

App类中方法(无成员变量):

main() 程序入口函数

start() 主菜单控制

Operate类中方法及成员变量

private List<Person>list 集合

 

addLogic() 用户添加信息业务逻辑控制

searchLogic() 用户查询信息业务逻辑控制

modifyLogicLogic() 修改信息业务逻辑控制

deleteLogic() 删除信息业务逻辑控制

orderLogic() 排序信息业务逻辑控制

addOperation () 添加新用户信息

showAll() 查询全部用户信息

searchByName() 按姓名查询用户信息

searchByAge() 按年龄查询用户信息

searchBySex() 按性别查询用户信息

searchByTelNum() 按电话号码查询用户信息

searchByAdd() 按地址查询用户信息

modify() 修改指定记录信息

delete() 删除指定用户信息

deleteAll() 删除全部用户信息

orderName() 按用户姓名排序信息

orderAge() 按用户年龄排序信息

orderSex() 按用户性别排序信息

TelNoteRegex类中方法(无成员变量)

menuRegex (int min, int max ) 对菜单输入选项的验证

nameRegex ( ) 对用户输入姓名的验证

ageRegex ( ) 对用户输入年龄的验证

sexRegex ( ) 对用户输入性别的验证

telNumRegex ( ) 对用户输入电话号码的验证

addressRegex ( ) 对用户输入地址的验证

Menu类中的方法(无成员变量)

mainMenu() 主菜单

addMenu () 添加用户菜单

searchMenu () 查找用户菜单

modifyMenu () 修改用户信息主菜单

subModifyMenu () 修改用户信息子菜单

deleteMenu () 删除用户信息菜单

orderMenu () 排序用户信息菜单

Person类中的方法及成员变量

private int id; 用户ID 属性

private String name; 用户姓名属性

private String age; 用户年龄属性

private String sex; 用户性别属性

private String telNum; 用户电话号码属性

private String address; 用户地址属性

Person() 无参数构造方法

Person(String name, String age, String sex, String telNum, String address) 有参数构造方法

getName() 读取用户名

setName(String name) 设置用户名

getAge() 读取用户年龄

setAge(String age) 设置用户年龄

getSex() 读取用户性别

setSex(String sex) 设置用户性别

getTelNum() 读取用户电话号码

setTelNum (String telNum) 设置用户电话号码

getAddress() 读取用户地址

setAddress(String address) 设置用户地址

getID () 读取用户ID号

setID (int ID) 设置用户ID号

toString() 连接字符串方法

包1:com.telephone

类名1:Menu 菜单类

package com.telephone;

import java.util.Scanner;

public class Menu {
    //主菜单
    public void mainMenu()
    {
        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("*********************");

    }
    //添加用户菜单
    public void addMenu() 

    {
        System.out.println("*********************");
        System.out.println("**    1.添加新记录        **");
        System.out.println("**    2.查看全记录        **");
        System.out.println("**    3.返回上一级        **");
        System.out.println("*********************");

    }
    //查找记录菜单
    public void searchMenu()
    {
        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("**    7.返回上一级         **");
        System.out.println("*********************");
    }
    //修改用户信息主菜单
    public void modifyMenu()
    {

        System.out.println("*********************");
        System.out.println("**    1.查看全纪录        **");
        System.out.println("**    2.修改指定记录    **");
        System.out.println("**    3.返回上一级        **");
        System.out.println("*********************");

    }
    //修改用户信息子菜单
    public void subModifyMenu()
    {
        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("*********************");
    }

    //删除用户信息菜单
    public void deleteMenu ()
    {
        System.out.println("*********************");
        System.out.println("**    1.查看全纪录        **");
        System.out.println("**    2.删除指定记录    **");
        System.out.println("**    3.删除全部记录    **");
        System.out.println("**    4.返回上一级        **");
        System.out.println("*********************");

    }
    //排序用户信息菜单
    public void orderMenu ()
    {
        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("*********************");
    }
}

类名2:Person 实体类

package com.telephone;

public class Person {

    //定义实体类Person
    //对应数据库字段设置属性
    private int tb_id;
    private String tb_name;
    private int tb_age;
    private String tb_sex;
    private String tb_telnum;
    private String tb_address;
    //生成get,set方法
    public int getTb_id() {
        return tb_id;
    }
    public void setTb_id(int tb_id) {
        this.tb_id = tb_id;
    }
    public String getTb_name() {
        return tb_name;
    }
    public void setTb_name(String tb_name) {
        this.tb_name = tb_name;
    }
    public int getTb_age() {
        return tb_age;
    }
    public void setTb_age(int tb_age) {
        this.tb_age = tb_age;
    }
    public String getTb_sex() {
        return tb_sex;
    }
    public void setTb_sex(String tb_sex) {
        this.tb_sex = tb_sex;
    }
    public String getTb_telnum() {
        return tb_telnum;
    }
    public void setTb_telnum(String tb_telnum) {
        this.tb_telnum = tb_telnum;
    }
    public String getTb_address() {
        return tb_address;
    }
    public void setTb_address(String tb_address) {
        this.tb_address = tb_address;
    }
    //生成有参数构造方法
    public Person(String tb_name, int tb_age, String tb_sex, String tb_telnum, String tb_address) {
        super();
        this.tb_name = tb_name;
        this.tb_age = tb_age;
        this.tb_sex = tb_sex;
        this.tb_telnum = tb_telnum;
        this.tb_address = tb_address;
    }
    //生成无参数构造方法
    public Person() {
        super();
    }
    //生成toString方法
    @Override
    public String toString() {
        return "姓名 " + tb_name + ",  年龄 " + tb_age + ",  性别 " + tb_sex + ",  电话 " + tb_telnum
                + ",  地址 " + tb_address + "";
    }

}

包2 com.fangfa

类1:Operate 方法类

package com.fangfa;

import java.sql.Connection;
import java.sql.ParameterMetaData;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

import com.mchange.v2.c3p0.ComboPooledDataSource;
import com.telephone.Menu;
import com.telephone.Person;

public class Operate {

    List<Person> li=new ArrayList<>();
    Person ps=new Person();
    TelNoteRegex tr=new TelNoteRegex();
    ComboPooledDataSource cp=new ComboPooledDataSource("helloc3p0");
    Connection conn=null;
    PreparedStatement pm=null;
    ResultSet rs=null;
    Menu me=new Menu();

    //用户添加信息业务逻辑控制
    public void addLogic() 

    {
        Operate op=new Operate();
        while(true)
        {
            me.addMenu();
            Scanner sa=new Scanner(System.in);
            System.out.println("请输入正确数字,最小是:1 最大是:3");
            int am=sa.nextInt();
            if(tr.menuRegex(1, 2, am))
            {
                switch (am) {
                case 1:
                    op.addOperation();
                    break;
                case 2:
                    li=op.showAll();
                    for(Person pe:li)
                    {
                        System.out.println(pe);
                    }
                    break;

                default:

                    break;
                }

            }
            else if(am==3)
            {
                break;
            }

            else
            {
                System.out.println("你选择的菜单不存在,请重新选择:");
            }

        }
    }
    //用户查询信息业务逻辑控制
    //用户查询信息业务逻辑控制
    public void searchLogic()
    {
        Operate op=new Operate();
        while(true)
        {
            me.searchMenu();
            Scanner sa=new Scanner(System.in);
            System.out.println("请输入正确数字,最小是:1 最大是:7");
            int sm=sa.nextInt();
            if(tr.menuRegex(1, 6, sm))
            {
                switch (sm) {
                case 1:
                    Person ps=op.searchByName();
                    System.out.println(ps);
                    break;
                case 2:
                    li=op.searchByAge();
                    for(Person ps1:li)
                    {
                        System.out.println(ps1);
                    }
                    break;
                case 3:
                    li=op.searchBySex();
                    for(Person ps2:li)
                    {
                        System.out.println(ps2);
                    }

                    break;
                case 4:
                    Person ps3=op.searchByTelNum();
                    System.out.println(ps3);

                    break;
                case 5:
                    li=op.searchByAdd();
                    for(Person ps4:li)
                    {
                        System.out.println(ps4);
                    }

                    break;
                case 6:
                    li=op.showAll();
                    for(Person pe:li)
                    {
                        System.out.println(pe);
                    }

                    break;

                default:
                    break;

                }
            }
            else if(sm==7)
            {
                break;
            }
            else
            {
                System.out.println("你选择的菜单不存在,请重新选择:");
            }

        }
    }
    //修改信息业务逻辑控制
    //修改信息业务逻辑控制
    public void modifyLogicLogic()
    {
        Operate op=new Operate();
        while(true)
        {
            me.modifyMenu();
            Scanner sa=new Scanner(System.in);
            System.out.println("请输入正确数字,最小是:1 最大是:3");
            int mf=sa.nextInt();
            if(tr.menuRegex(1, 2, mf))
            {
                switch (mf) {
                case 1:
                    li=op.showAll();
                    for(Person pe:li)
                    {
                        System.out.println(pe);
                    }
                    continue;
                case 2:
                    while(true)
                    {
                        me.subModifyMenu();;
                        Scanner sn=new Scanner(System.in);
                        System.out.println("请输入正确数字,最小是:1 最大是:6");
                        int sf=sa.nextInt();
                        if(tr.menuRegex(1, 5, sf))
                        {
                            switch (sf) {
                            case 1:
                                op.modifyName();
                                break;
                            case 2:
                                op.modifyAge();

                                break;
                            case 3:
                                op.modifysex();

                                break;
                            case 4:
                                op.modifytelnum();

                                break;
                            case 5:
                                op.modifyAdd();

                                break;

                            default:

                                break;
                            }

                        }
                        else if(sf==6)
                        {
                            break;
                        }
                        else
                        {
                            System.out.println("你选择的菜单不存在,请重新选择:");
                        }
                    }
                    break;
                default:

                    break;
                }

            }
            else if(mf==3)
            {
                break;
            }
            else
            {
                System.out.println("你选择的菜单不存在,请重新选择:");
            }

        }
    }
    //删除信息业务逻辑控制
    //删除信息业务逻辑控制
    public void deleteLogic()
    {
        Operate op=new Operate();
        while(true)
        {
            me.deleteMenu();;
            Scanner sa=new Scanner(System.in);
            System.out.println("请输入正确数字,最小是:1 最大是:4");
            int dm=sa.nextInt();
            if(tr.menuRegex(1, 3, dm))
            {
                switch (dm) {
                case 1:
                    li=op.showAll();
                    for(Person pe:li)
                    {
                        System.out.println(pe);
                    }
                    break;
                case 2:
                    op.delete();
                    break;
                case 3:
                    op.deleteAll();
                    break;

                default:

                    break;
                }

            }
            else if(dm==4)
            {
                break;
            }

            else
            {
                System.out.println("你选择的菜单不存在,请重新选择:");
            }

        }
    }
    //排序信息业务逻辑控制
    //排序信息业务逻辑控制
    public void orderLogic()
    {
        Operate op=new Operate();
        while(true)
        {
            me.orderMenu();;
            Scanner sa=new Scanner(System.in);
            System.out.println("请输入正确数字,最小是:1 最大是:5");
            int om=sa.nextInt();
            if(tr.menuRegex(1, 4, om))
            {
                switch (om) {
                case 1:

                    li=op.orderName();
                    for(Person ps:li)
                    {
                        System.out.println(ps);
                    }
                    break;
                case 2:

                    li=op.orderAge();
                    for(Person ps1:li)
                    {
                        System.out.println(ps1);
                    }
                    break;
                case 3:

                    li=op.orderSex();
                    for(Person ps2:li)
                    {
                        System.out.println(ps2);
                    }
                    break;
                case 4:
                    li=op.showAll();
                    for(Person pe:li)
                    {
                        System.out.println(pe);
                    }
                    break;

                default:

                    break;
                }

            }
            else if(om==5)
            {
                break;
            }
            else
            {
                System.out.println("你选择的菜单不存在,请重新选择:");
            }

        }
    }

    //添加新用户信息
    //添加新用户信息
    public void addOperation ()
    {
        //输入姓名
        while(true)
        {
            try {
                Scanner sc=new Scanner(System.in);
                System.out.println("输入姓名:1-10位字母");
                String st=sc.nextLine();
                if(tr.nameRegex(st))
                {
                    ps.setTb_name(st);
                    break;
                }
                else
                {
                    System.out.println("姓名输入不规范,重新输入:");
                }

            } catch (Exception e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
        }
            //输入年龄
        while(true)
        {
            Scanner sc1=new Scanner(System.in);
            System.out.println("输入年龄:1-100+");
            int st1=sc1.nextInt();
            if(tr.ageRegex(st1))
            {
                ps.setTb_age(st1);
                break;

            }
            else
            {
                System.out.println("年龄输入有误,");
            }

        }
        //输入性别
        while(true)
        {
            Scanner sc2=new Scanner(System.in);
            System.out.println("输入性别:男或者女");
            String st2=sc2.nextLine();
            if(tr.sexRegex(st2))
            {
                ps.setTb_sex(st2);
                break;
            }
            else
            {
                System.out.println("性别输入无效,重新输入");
            }

        }
        //输入电话号码
        while(true)
        {
            Scanner sc3=new Scanner(System.in);
            System.out.println("输入电话号码:");
            String st3=sc3.nextLine();

            if(tr.telNumRegex(st3))
            {
                ps.setTb_telnum(st3);
                break;
            }
            else
            {
                System.out.println("电话号码输入有误,重新输入");
            }

        }
        //输入地址
        while(true)
        {
            Scanner sc4=new Scanner(System.in);
            System.out.println("输入住址:1-50位字母或数字");
            String st4=sc4.nextLine();

            if(tr.addressRegex(st4))
            {
                ps.setTb_address(st4);
                break;
            }
            else
            {
                System.out.println("地址输入错误,重新输入");
            }

        }
        //导入数据库
        try {

            conn=cp.getConnection();
            String sql="insert into book values (tb_test.nextval,?,?,?,?,?)";
            pm=conn.prepareStatement(sql);

            pm.setString(1,ps.getTb_name() );
            pm.setInt(2, ps.getTb_age());
            pm.setString(3, ps.getTb_sex());
            pm.setString(4, ps.getTb_telnum());
            pm.setString(5, ps.getTb_address());

            pm.executeUpdate();

            pm.close();
            conn.close();

        } catch (SQLException e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }

    }

    //查询全部用户信息
    public List<Person> showAll()
    {
        li=new ArrayList<>();
        try {
            conn=cp.getConnection();
            String sql="select * from book";
            pm=conn.prepareStatement(sql);
            rs=pm.executeQuery();
            while(rs.next())
            {
                ps=new Person();
                ps.setTb_name(rs.getString("tb_name"));
                ps.setTb_age(rs.getInt("tb_age"));
                ps.setTb_sex(rs.getString("tb_sex"));
                ps.setTb_telnum(rs.getString("tb_telnum"));
                ps.setTb_address(rs.getString("tb_address"));

                li.add(ps);
            }
            rs.close();
            pm.close();
            conn.close();
        } catch (Exception e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }

        return li;
    }
    //按姓名查询用户信息
    public Person searchByName()
    {
        li=new ArrayList<>();
        Scanner sc=new Scanner(System.in);
        System.out.println("输入姓名:1-10位字母");
        String st=sc.nextLine();
        try {
            if(tr.nameRegex(st))
            {
                conn=cp.getConnection();
                String sql="select * from book where tb_name= ?";
                pm=conn.prepareStatement(sql);
                pm.setString(1, st);
                rs=pm.executeQuery();

                if(rs.next())
                {
                    ps=new Person();
                    ps.setTb_name(rs.getString("tb_name"));
                    ps.setTb_age(rs.getInt("tb_age"));
                    ps.setTb_sex(rs.getString("tb_sex"));
                    ps.setTb_telnum(rs.getString("tb_telnum"));
                    ps.setTb_address(rs.getString("tb_address"));

                    rs.close();
                    pm.close();
                    conn.close();
                }
                else
                {
                    System.out.println("输入的姓名不存在");
                }
            }
            else
            {
                System.out.println("输入姓名无效");
            }

        } catch (Exception e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }
        return ps;
    }
    //按年龄查询用户信息
    public List<Person> searchByAge()
    {
        li=new ArrayList<>();
        try {

            Scanner sc=new Scanner(System.in);
            System.out.println("输入年龄:1-100+");
            int st=sc.nextInt();
            if(tr.ageRegex(st))
            {
                conn=cp.getConnection();
                String sql="select * from book where tb_age=?";
                pm=conn.prepareStatement(sql);
                pm.setInt(1, st);
                rs=pm.executeQuery();
                while(rs.next())
                {
                    ps=new Person();
                    ps.setTb_name(rs.getString("tb_name"));
                    ps.setTb_age(rs.getInt("tb_age"));
                    ps.setTb_sex(rs.getString("tb_sex"));
                    ps.setTb_telnum(rs.getString("tb_telnum"));
                    ps.setTb_address(rs.getString("tb_address"));

                    li.add(ps);
                }
                rs.close();
                pm.close();
                conn.close();
            }
            else
            {
                System.out.println("年龄输入有误");
            }
        } catch (Exception e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }

        return li;
    }
    //按性别查询用户信息
    public List<Person> searchBySex()
    {
        li=new ArrayList<>();
        try {

            Scanner sc=new Scanner(System.in);
            System.out.println("输入性别:男或女");
            String st=sc.nextLine();
            if(tr.sexRegex(st))
            {
            conn=cp.getConnection();
            String sql="select * from book where tb_sex=?";
            pm=conn.prepareStatement(sql);
            pm.setString(1, st);
            rs=pm.executeQuery();
            while(rs.next())
            {
                ps=new Person();
                ps.setTb_name(rs.getString("tb_name"));
                ps.setTb_age(rs.getInt("tb_age"));
                ps.setTb_sex(rs.getString("tb_sex"));
                ps.setTb_telnum(rs.getString("tb_telnum"));
                ps.setTb_address(rs.getString("tb_address"));

                li.add(ps);
            }
            rs.close();
            pm.close();
            conn.close();
            }
            else
            {
                System.out.println("输入姓别无效");
            }
        } catch (Exception e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }

        return li;
    }
    //按电话号码查询用户信息
    public Person searchByTelNum()
    {
        li=new ArrayList<>();
        Scanner sc=new Scanner(System.in);
        System.out.println("输入电话号码:");
        String st=sc.nextLine();

        try {
                if(tr.telNumRegex(st))
                {
                    conn=cp.getConnection();
                    String sql="select * from book where tb_telnum=?";
                    pm=conn.prepareStatement(sql);
                    pm.setString(1, st);
                    rs=pm.executeQuery();
                    if(rs.next())
                    {
                        ps=new Person();
                        ps.setTb_name(rs.getString("tb_name"));
                        ps.setTb_age(rs.getInt("tb_age"));
                        ps.setTb_sex(rs.getString("tb_sex"));
                        ps.setTb_telnum(rs.getString("tb_telnum"));
                        ps.setTb_address(rs.getString("tb_address"));

                        rs.close();
                        pm.close();
                        conn.close();

                    }
                    else
                    {
                        System.out.println("输入的电话不存在");
                    }
                }
                else
                {
                    System.out.println("输入电话无效");
                }

        } catch (Exception e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }
        return ps;
    }
    //按地址查询用户信息
    public List<Person> searchByAdd()
    {
        li=new ArrayList<>();
        try {

            Scanner sc=new Scanner(System.in);
            System.out.println("输入地址:1-50位字母");
            String st=sc.nextLine();
            if(tr.sexRegex(st))
            {
                conn=cp.getConnection();
                String sql="select * from book where tb_address=?";
                pm=conn.prepareStatement(sql);
                pm.setString(1, st);
                rs=pm.executeQuery();
                while(rs.next())
                {
                    ps=new Person();
                    ps.setTb_name(rs.getString("tb_name"));
                    ps.setTb_age(rs.getInt("tb_age"));
                    ps.setTb_sex(rs.getString("tb_sex"));
                    ps.setTb_telnum(rs.getString("tb_telnum"));
                    ps.setTb_address(rs.getString("tb_address"));

                    li.add(ps);
                }
                rs.close();
                pm.close();
                conn.close();
            }
            else
            {
                System.out.println("输入地址无效");
            }
        } catch (Exception e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }

        return li;
    }
    //修改姓名记录信息
    public void modifyName()
    {
        Scanner sc=new Scanner(System.in);
        System.out.println("输入需要查询ID号");
        int i=sc.nextInt();
        System.out.println("输入你需要更改的姓名");
        String st=sc.nextLine();
        if(tr.nameRegex(st))
        {
            try {
                conn=cp.getConnection();
                String sql="update book set tb_name=? where tb_id=?";
                pm=conn.prepareStatement(sql);
                pm.setString(1, st);
                pm.setInt(2, i);

                pm.executeUpdate();

                pm.close();
                conn.close();
            } catch (SQLException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
        }
        else
        {
            System.out.println("姓名输入错误");
        }

    }
    //修改年龄记录信息
    public void modifyAge()
    {
        Scanner sc=new Scanner(System.in);
        System.out.println("输入需要查询ID号");
        int i=sc.nextInt();
        System.out.println("输入你需要更改的年龄");
        int st=sc.nextInt();
        if(tr.ageRegex(st))
        {
            try {
                conn=cp.getConnection();
                String sql="update book set tb_age=? where tb_id=?";
                pm=conn.prepareStatement(sql);
                pm.setInt(1, st);
                pm.setInt(2, i);

                pm.executeUpdate();

                pm.close();
                conn.close();
            } catch (SQLException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
        }
        else
        {
            System.out.println("年龄输出错误");
        }
    }
    //修改性别记录信息
    public void modifysex()
    {
        Scanner sc=new Scanner(System.in);
        System.out.println("输入需要查询ID号");
        int i=sc.nextInt();
        System.out.println("输入你需要更改的姓别");
        String st=sc.nextLine();
        if(tr.sexRegex(st))
        {
            try {
                conn=cp.getConnection();
                String sql="update book set tb_sex=? where tb_id=?";
                pm=conn.prepareStatement(sql);
                pm.setString(1, st);
                pm.setInt(2, i);

                pm.executeUpdate();

                pm.close();
                conn.close();
            } catch (SQLException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
        }
        else
        {
            System.out.println("性别输入错误");
        }
    }
    //修改号码记录信息
    public void modifytelnum()
    {
        Scanner sc=new Scanner(System.in);
        System.out.println("输入需要查询ID号");
        int i=sc.nextInt();
        System.out.println("输入你需要更改的号码");
        String st=sc.nextLine();
        if(tr.telNumRegex(st))
        {
            try {
                conn=cp.getConnection();
                String sql="update book set tb_telnum=? where tb_id=?";
                pm=conn.prepareStatement(sql);
                pm.setString(1, st);
                pm.setInt(2, i);

                pm.executeUpdate();

                pm.close();
                conn.close();
            } catch (SQLException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
        }
        else
        {
            System.out.println("号码输入格式不正确");
        }
    }
    //修改地址记录信息
    @SuppressWarnings("resource")
    public void modifyAdd()
    {
        Scanner sc=new Scanner(System.in);
        System.out.println("输入需要查询ID号");
        int i=sc.nextInt();
        System.out.println("输入你需要更改的地址");
        String st=sc.nextLine();
        if(tr.addressRegex(st))
        {
            try {
                conn=cp.getConnection();
                String sql="update book set tb_address=? where tb_id=?";
                pm=conn.prepareStatement(sql);
                pm.setString(1, st);
                pm.setInt(2, i);

                pm.executeUpdate();

                pm.close();
                conn.close();
            } catch (SQLException e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
        }
        else
        {
            System.out.println("地址输入格式错误");
        }
    }
    //删除指定用户信息
    @SuppressWarnings("resource")
    public void delete()
    {
        Scanner sc=new Scanner(System.in);
        System.out.println("输入需要删除的ID号");
        int i=sc.nextInt();
        try {
            conn=cp.getConnection();
            String sql="delete from book where tb_id=? ";
            pm=conn.prepareStatement(sql);
            pm.setInt(1, i);

            pm.executeUpdate();

            pm.close();
            conn.close();
        } catch (SQLException e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }

    }
    //删除全部用户信息
    public void deleteAll()
    {
        try {
            conn=cp.getConnection();
            String sql="truncate table book";
            pm=conn.prepareStatement(sql);

            pm.executeUpdate();

            pm.close();
            conn.close();
        } catch (SQLException e) {

            e.printStackTrace();
        }
    }
    //按用户姓名排序信息
    public List<Person> orderName()
    {
        li=new ArrayList<>();
        try {
                conn=cp.getConnection();
                String sql="select * from book order by tb_name";
                pm=conn.prepareStatement(sql);

                rs=pm.executeQuery();
                while(rs.next())
                {
                    ps=new Person();
                    ps.setTb_name(rs.getString("tb_name"));
                    ps.setTb_age(rs.getInt("tb_age"));
                    ps.setTb_sex(rs.getString("tb_sex"));
                    ps.setTb_telnum(rs.getString("tb_telnum"));
                    ps.setTb_address(rs.getString("tb_address"));

                    li.add(ps);
                }
                rs.close();
                pm.close();
                conn.close();

            } catch (Exception e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }

            return li;

    }
    //按用户年龄排序信息
    public List<Person> orderAge()
    {
        li=new ArrayList<>();
        try {
            conn=cp.getConnection();
            String sql="select * from book order by tb_age";
            pm=conn.prepareStatement(sql);

            rs=pm.executeQuery();
            while(rs.next())
            {
                ps=new Person();
                ps.setTb_name(rs.getString("tb_name"));
                ps.setTb_age(rs.getInt("tb_age"));
                ps.setTb_sex(rs.getString("tb_sex"));
                ps.setTb_telnum(rs.getString("tb_telnum"));
                ps.setTb_address(rs.getString("tb_address"));

                li.add(ps);
            }
            rs.close();
            pm.close();
            conn.close();

        } catch (Exception e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }

    return li;
    }
    //按用户性别排序信息
    public List<Person> orderSex()
    {
        li=new ArrayList<>();
        try {
                conn=cp.getConnection();
                String sql="select * from book order by tb_sex";
                pm=conn.prepareStatement(sql);

                rs=pm.executeQuery();
                while(rs.next())
                {
                    ps=new Person();
                    ps.setTb_name(rs.getString("tb_name"));
                    ps.setTb_age(rs.getInt("tb_age"));
                    ps.setTb_sex(rs.getString("tb_sex"));
                    ps.setTb_telnum(rs.getString("tb_telnum"));
                    ps.setTb_address(rs.getString("tb_address"));

                    li.add(ps);
                }
                rs.close();
                pm.close();
                conn.close();

            } catch (Exception e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }

            return li;
    }
}

类2 TelNoteRegex 验证类

package com.fangfa;

import java.util.Scanner;

import com.telephone.Person;

public class TelNoteRegex {

    Person ps=new Person();

    //对菜单输入选项的验证
    public boolean menuRegex (int min, int max ,int can)
    {
        boolean boo=false;
        if(min<=can&&can<=max)
        {
             boo=true;
        }
        else
        {

             boo=false;
        }
        return boo;

    }
    //对用户输入姓名的验证
    public boolean nameRegex (String st )
    {
        boolean boo=false;
        String regex="[a-zA-Z]{3,10}";
        //判断姓名规范性
        if(st.matches(regex))
        {

            boo=true;

        }
        else
        {

            boo=false;
        }
        return boo;
    }

    //对用户输入年龄的验证
    public boolean ageRegex (int st1 )
    {
        boolean boo=false;
        if(st1>0&&st1<=100)
        {
            boo=true;
        }
        else
        {
            boo=false;
        }
        return boo;
    }

    //对用户输入性别的验证
    public boolean sexRegex (String st2 )
    {
        boolean boo=false;
        if(st2.equals("男")||st2.equals("女"))
        {
            boo=true;
        }
        else
        {
            boo=false;
        }
        return boo;
    }
    //对用户输入电话号码的验证
    public boolean telNumRegex (String st3 )
    {
        boolean boo=false;
        String regex="^1[0-9]{10}$";
        if(st3.matches(regex))
        {
            boo=true;
        }
        else
        {
            boo=false;
        }
        return boo;
    }
    //对用户输入地址的验证
    public boolean addressRegex (String st4 )
    {
        boolean boo=false;
        String regex="[a-zA-Z]{1,50}";
        if(st4.matches(regex))
        {
            boo=true;
        }
        else
        {
            boo=false;
        }
        return boo;
    }
}

包3:testtelnum

类1:App 测试类

package com.testtelnum;

import java.util.Scanner;

import com.fangfa.Operate;
import com.fangfa.TelNoteRegex;
import com.telephone.Menu;

public class APP {

    public static int start()
    {
        Menu me=new Menu();
        TelNoteRegex tr=new TelNoteRegex();
        int i=0;
        me.mainMenu();
        System.out.println("请输入正确数字,最小是:1 最大是:6");
        Scanner sc=new Scanner(System.in);
        int in=sc.nextInt();
        if(tr.menuRegex(1, 6, in))
        {
            i=in;
        }
        else
        {
            System.out.println("你选择的菜单不存在,请重新选择:");
        }
        return i;
    }

    public static void main(String[] args) {

        Operate op=new Operate();

        while(true)

        {
            int i=APP.start();

            switch (i) {
                case 1:
                    op.addLogic();
                    break;
                case 2:
                    op.searchLogic();
                    break;
                case 3:
                    op.modifyLogicLogic();
                    break;
                case 4:
                    op.deleteLogic();
                    break;
                case 5:
                    op.orderLogic();
                    break;

                default:

                    break;
                }
            if(i==6)
            {
                break;
            }

            }

        }
    }
时间: 2024-10-13 02:12:11

项目练习--自制电话铺功能的相关文章

python 案例一(电话铺)

经过自己努力,做了一个简单的电话铺的录入和查询小程序,比较简单,喜欢的朋友可以练练手. 题目: 创建你自己的命令行 地址簿 程序.在这个程序中,你可以添加.修改.删除和搜索你的联系人(朋友.家人和同事等等)以及它们的信息(诸如电子邮件地址和/或电话号码).这些详细信息应该被保存下来以便以后提取. 用到的知识点: cPickle 简单文件读写 代码: # coding=utf-8 '''姓名年龄email查询修改''' import cPickle as p import os class per

移动网页如何实现发送短信和拨打电话的功能

手机页面实现发送短信和拨打电话的功能非常简单,只需要<a>标签加一个属性就可以了. 1.发送短信的功能 html前端代码: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8" /> 5 <title>手机网页发送短信和拨打电话</title> 6 </head> 7 <body> 8 <a href=&qu

项目记录3:基础功能

本文内容来自:<传智播客-OA项目> 1,设计 BaseDao 与 BaseDaoImpl    1,设计接口 BaseDao        1,每个实体都应有一个对应的Dao接口,封装了对这个实体的数据库操作.例            实体            Dao接口                实现类            ========================================================            User        

自制邮箱激活功能全套

写了一个邮箱激活的功能使用的SMTP简单协议希望大神给点好的建议优化一下,代码如下 public static bool sendmail(string to, string title, string content, string Host, string Account, string Pwd,string From) { SmtpClient _smtpClient = new SmtpClient(); _smtpClient.DeliveryMethod = SmtpDelivery

cordova 打包的项目里加入微信支付功能编译问题。

最近在做公司项目,需要在cordova 打包的项目里加入微信支付功能.而不是使用通过新建single application的项目里开发. 使用从微信开放平台下载来的开发包,按照普通的新建single application项目的方式加了在targets下的Link binary with libraries 里加上libsqlite3.0.dylib, libz.dylib ,  SystemConfiguration.framework        CoreGraphics.framewo

仿照网易云音乐项目(自制音乐网页播放器)

最近准备把上一周做的一个仿网易云音乐的自制音乐网页播放器项目做一个总结. 相关功能如下: 1.通过后台页面上传歌曲.编辑歌曲功能.    2.前端页面自动更新播放热度高的歌曲    3.在线听歌.查看歌词.且配有相应的播放动画. 原文地址:https://www.cnblogs.com/gitnull/p/10041183.html

OA项目之部门管理的功能实现

1.部门管理和岗位管理的功能实现是差不多的,首先看下都有哪些功能如图:(这里需要注意的比如如何显示上级部门?在添加的时候如何以树的结构来显示?等等需要非常注意的,本人在这其中遇到很多很多的错误,修改找错大改半天的时间,真的是看起来容易,动起手来都是错!!) 2.分析完功能,首先要做的就是几个请求?需要几个页面?需要几个方法?知道了以后先写DepartmentAction 解释:其中list方法是显示数据库中的相关数据,包括上级部门,上级部门是通过parent.name属性获取的,等下在jsp页面

C++学习之电话薄功能(类的简单应用)

本篇我们讨论一个小程序:实现电话薄简单功能.(一条语句最好一个作用) 问题描述 : a) : 实现电话添加记录功能:(电话重复的视为同一人,不予增添):即电话号码唯一. b) : 删除记录功能:(实现提醒功能:确认是否要真的删除) c) : 查询记录功能:(按手机号码查询); 待优化功能: 1) :每次启动程序都为空.故可以先从文件读取若干项至vector中:readfile功能. 2) :没有提供修改记录的功能:比如某人的电话号码或者住址改了.(先按照号码查询,然后按要求修改之即可.): 3)

IE8的项目在IE11下 一些功能无法实现的解决方案

最近改了一些IE11下一些功能无法实现的项目,发现了有一些IE8下的方法 ,在IE11下被取消或者替代了,如下: 1.JavaScript 运行时错误: 对象不支持“attachEvent”属性或方法: attachEvent 这个方法在IE11下改成了addEventListener ,所以我这里加了浏览器版本判断 才得以实现了IE8 和IE11下都好用 if (navigator.appName == "Microsoft Internet Explorer" &&