求大神帮忙,Java小白一个

图片说明
不需要连接数据库,用基础的Java代码即可

这种经典的作业题目网上有很多源码,你看着改改就行了http://blog.csdn.net/wang623145708/article/details/6779717

明天给你写一个,完了贴上去,可以看看,这个主要考察你面向对象的理解……

外层写提示,然后选择结构,

如果想循环选择,可以把选择结构和提示语句放在一个死循环里,然后在选择结构之后加上if判断,当你选择“退出”,break 跳出死循环

完成需要五个类:
第一个:Menu.java
package com.bj.dxb;

public class Menu {
private static Menu instance = null;

/**
 * 无参构造方法
 */
private Menu() {

}

/**
 * 单例设计模式
 */
public static Menu getInstance() {
    if (instance == null) {
        instance = new Menu();
        return instance;
    }
    return instance;
}

/**
 * 主界面
 */
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("**      8 返回上一级      **");
    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("**      7 返回上一级     **");
    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("**      6 查看全部记录    **");
    System.out.println("**      7 返回上一级      **");
    System.out.println("*************************");
}

}

第二个:Student.java
package com.bj.dxb;

public class Student {
/**
* 学生ID
/
private int id;
/
*
* 学生姓名
/
private String name;
/
*
* 学生年龄
/
private String age;
/
*
* 学生性别
/
private String sex;
/
*
* 学生电话号码
/
private String telNum;
/
*
* 学生地址
/
private String address;
/
*
* 学生成绩
*/
private double course;

/**
 * 无参构造方法
 */
public Student() {

}

/**
 * 有参构造函数
 * 
 * @param name
 * @param age
 * @param sex
 * @param telNum
 * @param address
 * @param course
 */
public Student(String name, String age, String sex, String telNum,
        String address, double course) {
    super();
    this.name = name;
    this.age = age;
    this.sex = sex;
    this.telNum = telNum;
    this.address = address;
    this.course = course;
}

/**
 * 获取学生ID
 * 
 * @return
 */
public int getId() {
    return id;
}

/**
 * 设置学生ID
 * 
 * @param id
 */
public void setId(int id) {
    this.id = id;
}

/**
 * 获取学生姓名
 * 
 * @return
 */
public String getName() {
    return name;
}

/**
 * 设置学生姓名
 * 
 * @param name
 */
public void setName(String name) {
    this.name = name;
}

/**
 * 获取学生年龄
 * 
 * @return
 */
public String getAge() {
    return age;
}

/**
 * 设置学生年龄
 * 
 * @param age
 */
public void setAge(String age) {
    this.age = age;
}

/**
 * 获取学生性别
 * 
 * @return
 */
public String getSex() {
    return sex;
}

/**
 * 设置学生性别
 * 
 * @param sex
 */
public void setSex(String sex) {
    this.sex = sex;
}

/**
 * 获取学生电话
 * 
 * @return
 */
public String getTelNum() {
    return telNum;
}

/**
 * 设置学生电话
 * 
 * @param telNum
 */
public void setTelNum(String telNum) {
    this.telNum = telNum;
}

/**
 * 获取学生地址
 * 
 * @return
 */
public String getAddress() {
    return address;
}

/**
 * 设置学生地址
 * 
 * @param address
 */
public void setAddress(String address) {
    this.address = address;
}

/**
 * 获取学生成绩
 * 
 * @return
 */
public double getCourse() {
    return course;
}

/**
 * 设置学生成绩
 * 
 * @param course
 */
public void setCourse(double course) {
    this.course = course;
}

/**
 * toString()方法
 */
@Override
public String toString() {
    return "# " + "姓名 " + name + "\t年龄 " + age + "\t性别 " + sex + "\t电话号码 "
            + telNum + "\t住址 " + address + "\t成绩 " + course;
}

}

第三个:StudentMangerRegex.java
package com.bj.dxb;

import java.util.Scanner;

/**

  • 用户输入验证类
    /
    public class StudentMangerRegex {
    /
    *

    • 对用户输入的用户名进行校验
    • @return */ public String userNameRegex() { Scanner scanner = new Scanner(System.in); String regex = "[a-zA-Z]{1,10}"; while (true) { System.out.println("输入用户名:1-10位字母"); String inputStr = scanner.nextLine(); if (inputStr.matches(regex)) { return inputStr; } else { System.out.println("输入用户名错误,请检查"); } } }

    /**

    • 对用户输入的密码进行校验
    • @return */ public String userpwdRegex() { Scanner scanner = new Scanner(System.in); String regex = "[a-zA-Z]{1,10}"; while (true) { System.out.println("输入密码:1-10位字母"); String inputStr = scanner.nextLine(); if (inputStr.matches(regex)) { return inputStr; } else { System.out.println("输入密码错误,请检查"); } } }

    /**

    • 对菜单输入选项的验证
    • @param min
    • @param max
    • @return */ public int menuRegex(int min, int max) { Scanner scanner = new Scanner(System.in); String regex = "[" + min + "-" + max + "]{1}"; int i = 0; while (true) { System.out.println("请输入正确的数字,最小是: " + min + " 最大是: " + max); String inputStr = scanner.nextLine(); if (inputStr.matches(regex)) { i = Integer.parseInt(inputStr); return i; } else { System.out.println("输入数字错误,请检查"); } } }

    /**

    • 对用户输入姓名的验证
    • @return */ public String nameRegex() { Scanner scanner = new Scanner(System.in); String regex = "[a-zA-Z]{1,10}"; while (true) { System.out.println("输入姓名:1-10位字母"); String inputStr = scanner.nextLine(); if (inputStr.matches(regex)) { return inputStr; } else { System.out.println("输入姓名错误,请检查"); } } }

    /**

    • 对用户输入年龄的验证
    • @return */ public String ageRegex() { Scanner scanner = new Scanner(System.in); String regex = "[1-9]|[1-9]\d|1[0-2]\d"; while (true) { System.out.println("输入年龄:1-100+"); String inputStr = scanner.nextLine(); if (inputStr.matches(regex)) { return inputStr; } else { System.out.println("输入年龄错误,请检查"); } } }

    /**

    • 对用户输入性别的验证
    • @return */ public String sexRegex() { Scanner scanner = new Scanner(System.in); String regex = "[mMfF]{1}"; while (true) { System.out.println("输入性别,(男 m or M) (女 f or F)"); String inputStr = scanner.nextLine(); if (inputStr.matches(regex)) { return inputStr; } else { System.out.println("输入性别错误,请检查"); } } }

    /**

    • 对用户输入电话号码的验证
    • @return */ public String telNumRegex() { Scanner scanner = new Scanner(System.in); String regex = "\d{6,11}"; while (true) { System.out.println("输入电话号码,6-11位数字"); String inputStr = scanner.nextLine(); if (inputStr.matches(regex)) { return inputStr; } else { System.out.println("输入电话号码错误,请检查"); } } }

    /**

    • 对用户输入地址的验证
    • @return */ public String addressRegex() { Scanner scanner = new Scanner(System.in); String regex = "[a-zA-z0-9]{1,50}"; while (true) { System.out.println("输入地址,1-50位字母或数字"); String inputStr = scanner.nextLine(); if (inputStr.matches(regex)) { return inputStr; } else { System.out.println("输入地址错误,请检查"); } } }

    /**

    • 对用户输入的成绩进行校验 */ public double courseRegex() { Scanner scanner = new Scanner(System.in); String regex = "[0-9]{1,3}"; while (true) { System.out.println("输入成绩,1-3位数字"); String inputStr = scanner.nextLine(); if (inputStr.matches(regex)) { double course = Double.parseDouble(inputStr); return course; } else { System.out.println("输入成绩错误,请检查"); } } } }

第四个:Operate.java
package com.bj.dxb;

import java.util.Collections;
import java.util.Comparator;
import java.util.Vector;

public class Operate {
private Vector vector = new Vector();
private int id = 1;

/**
 * 对用户名和密码的校验
 * 
 * @return
 */
public boolean login() {
    StudentMangerRegex studentMangerRegex = new StudentMangerRegex();
    String userName = studentMangerRegex.userNameRegex();
    String password = studentMangerRegex.userpwdRegex();
    if (userName.equals(password)) {
        System.out.println("你输入的用户名和密码正确,欢迎'".concat(userName).concat(
                "'使用本系统!"));
        return true;
    } else {
        System.out.println("你输入的用户名和密码不正确,请重新输入!");
        return false;
    }
}

/**
 * 添加学生信息业务逻辑控制
 */
public void addLogic() {
    StudentMangerRegex studentMangerRegex = new StudentMangerRegex();
    while (true) {
        Menu.getInstance().addMenu();
        int key = studentMangerRegex.menuRegex(1, 3);
        switch (key) {
        case 1:
            addOperation();
            break;
        case 2:
            showAll();
            break;
        case 3:
            return;
        }
    }
}

/**
 * 学生信息查询业务逻辑控制
 */
public void searchLogic() {
    StudentMangerRegex studentMangerRegex = new StudentMangerRegex();
    int size = vector.size();
    if (size == 0) {
        System.out.println("学生管理系统没有信息,请先添加信息后再操作!");
    } else {
        while (true) {
            Menu.getInstance().searchMenu();
            int key = studentMangerRegex.menuRegex(1, 8);
            switch (key) {
            case 1:
                searchByName();
                break;
            case 2:
                searchByAge();
                break;
            case 3:
                searchBySex();
                break;
            case 4:
                searchByTelNum();
                break;
            case 5:
                searchByAdd();
                break;
            case 6:
                searchByCourse();
                break;
            case 7:
                showAll();
                break;
            case 8:
                return;
            }
        }
    }
}

/**
 * 学生信息修改业务逻辑控制
 */
public void modifyLogicLogic() {
    StudentMangerRegex studentMangerRegex = new StudentMangerRegex();
    int size = vector.size();
    if (size == 0) {
        System.out.println("学生管理系统没有信息,请先添加信息后再操作!");
    } else {
        while (true) {
            Menu.getInstance().modifyMenu();
            int key = studentMangerRegex.menuRegex(1, 3);
            switch (key) {
            case 1:
                showAll();
                break;
            case 2:
                modify();
                break;
            case 3:
                return;
            }
        }
    }
}

/**
 * 学生信息删除业务逻辑控制
 */
public void deleteLogic() {
    StudentMangerRegex studentMangerRegex = new StudentMangerRegex();
    int size = vector.size();
    if (size == 0) {
        System.out.println("学生管理系统没有信息,请先添加信息后再操作!");
    } else {
        while (true) {
            Menu.getInstance().deleteMenu();
            int key = studentMangerRegex.menuRegex(1, 4);
            switch (key) {
            case 1:
                showAll();
                break;
            case 2:
                delete();
                break;
            case 3:
                deleteAll();
                break;
            case 4:
                return;
            }
        }
    }
}

/**
 * 学生信息排序业务逻辑控制
 */
public void orderLogic() {
    StudentMangerRegex studentMangerRegex = new StudentMangerRegex();
    int size = vector.size();
    if (size == 0) {
        System.out.println("学生管理系统没有信息,请先添加信息后再操作!");
    } else {
        while (true) {
            Menu.getInstance().orderMenu();
            int key = studentMangerRegex.menuRegex(1, 7);
            switch (key) {
            case 1:
                orderName();
                break;
            case 2:
                orderAge();
                break;
            case 3:
                orderSex();
                break;
            case 4:
                orderId();
                break;
            case 5:
                orderCourse();
                break;
            case 6:
                showAll();
                break;
            case 7:
                return;
            }
        }
    }
}

/**
 * 添加学生信息
 */
public void addOperation() {
    StudentMangerRegex studentMangerRegex = new StudentMangerRegex();
    String name = studentMangerRegex.nameRegex();
    String age = studentMangerRegex.ageRegex();
    String sex = studentMangerRegex.sexRegex();
    String telNum = studentMangerRegex.telNumRegex();
    String address = studentMangerRegex.addressRegex();
    double course = studentMangerRegex.courseRegex();
    Student student = new Student(name, age, sex, telNum, address, course);
    boolean tag = vector.add(student);
    if (tag) {
        id++;
        System.out.println("添加学生成功!请继续操作!!");
    } else {
        System.out.println("添加学生失败!");
    }
}

/**
 * 查询全部学生信息
 */
public void showAll() {
    int i = 0;
    for (Student student : vector) {
        System.out.println("序号  " + (i + 1) + student.toString());
        i++;
    }
    if (i == 0) {
        System.out.println("没有任何记录");
    }
}

/**
 * 按照姓名查询学生信息
 */
public void searchByName() {
    StudentMangerRegex studentMangerRegex = new StudentMangerRegex();
    String name = studentMangerRegex.nameRegex();
    int i = 0;
    for (Student student : vector) {
        if (name.equals(student.getName())) {
            System.out.println("序号  " + (i + 1) + student.toString());
            i++;
        }
    }
    if (i == 0) {
        System.out.println("没有此人记录");
    }
}

/**
 * 按照年龄查询学生信息
 */
public void searchByAge() {
    StudentMangerRegex studentMangerRegex = new StudentMangerRegex();
    String age = studentMangerRegex.ageRegex();
    int i = 0;
    for (Student student : vector) {
        if (age.equals(student.getAge())) {
            System.out.println("序号  " + (i + 1) + student.toString());
            i++;
        }
    }
    if (i == 0) {
        System.out.println("没有此人记录");
    }
}

/**
 * 按照性别查询学生信息
 */
public void searchBySex() {
    StudentMangerRegex studentMangerRegex = new StudentMangerRegex();
    String sex = studentMangerRegex.sexRegex();
    int i = 0;
    for (Student student : vector) {
        if (sex.equals(student.getSex())) {
            System.out.println("序号  " + (i + 1) + student.toString());
            i++;
        }
    }
    if (i == 0) {
        System.out.println("没有此人记录");
    }
}

/**
 * 按照电话号码查询学生信息
 */
public void searchByTelNum() {
    StudentMangerRegex studentMangerRegex = new StudentMangerRegex();
    String telNum = studentMangerRegex.telNumRegex();
    int i = 0;
    for (Student student : vector) {
        if (telNum.equals(student.getTelNum())) {
            System.out.println("序号  " + (i + 1) + student.toString());
            i++;
        }
    }
    if (i == 0) {
        System.out.println("没有此人记录");
    }
}

/**
 * 按照地址查询学生信息
 */
public void searchByAdd() {
    StudentMangerRegex studentMangerRegex = new StudentMangerRegex();
    String address = studentMangerRegex.addressRegex();
    int i = 0;
    for (Student student : vector) {
        if (address.equals(student.getAddress())) {
            System.out.println("序号  " + (i + 1) + student.toString());
            i++;
        }
    }
    if (i == 0) {
        System.out.println("没有此人记录");
    }
}

/**
 * 按照成绩查询学生信息
 */
public void searchByCourse() {
    StudentMangerRegex studentMangerRegex = new StudentMangerRegex();
    double course = studentMangerRegex.courseRegex();
    int i = 0;
    for (Student student : vector) {
        if (course == student.getCourse()) {
            System.out.println("序号  " + (i + 1) + student.toString());
            i++;
        }
    }
    if (i == 0) {
        System.out.println("没有此人记录");
    }
}

/**
 * 修改指定记录信息
 */
public void modify() {
    StudentMangerRegex studentMangerRegex = new StudentMangerRegex();
    int size = vector.size();
    if (size == 0) {
        System.out.println("学生管理系统没有信息,请先添加信息后再操作!");
    } else {
        System.out.println("请输入记录序号");
        int num = studentMangerRegex.menuRegex(1, size);
        while (true) {
            Menu.getInstance().subModifyMenu();
            int key = studentMangerRegex.menuRegex(1, 7);
            switch (key) {
            case 1:
                String name = studentMangerRegex.nameRegex();
                vector.get(num - 1).setName(name);
                System.out.println("修改成功!请继续操作!!");
                break;
            case 2:
                String age = studentMangerRegex.ageRegex();
                vector.get(num - 1).setAge(age);
                System.out.println("修改成功!请继续操作!!");
                break;
            case 3:
                String sex = studentMangerRegex.sexRegex();
                vector.get(num - 1).setSex(sex);
                System.out.println("修改成功!请继续操作!!");
                break;
            case 4:
                String telNum = studentMangerRegex.telNumRegex();
                vector.get(num - 1).setTelNum(telNum);
                System.out.println("修改成功!请继续操作!!");
                break;
            case 5:
                String address = studentMangerRegex.addressRegex();
                vector.get(num - 1).setAddress(address);
                System.out.println("修改成功!请继续操作!!");
                break;
            case 6:
                double course = studentMangerRegex.courseRegex();
                vector.get(num - 1).setCourse(course);
                System.out.println("修改成功!请继续操作!!");
                break;
            case 7:
                return;
            }
        }
    }
}

/**
 * 删除指定学生记录
 */
public void delete() {
    StudentMangerRegex studentMangerRegex = new StudentMangerRegex();
    if (vector.size() == 0) {
        System.out.println("学生管理系统内容已清空,请继续操作!");
    } else {
        System.out.println("请输入记录序号");
        int num = studentMangerRegex.menuRegex(1, vector.size());
        vector.remove(num - 1);
        System.out.println("删除成功!请继续操作!!");
    }
}

/**
 * 删除全部学生记录
 */
public void deleteAll() {
    if (vector.size() == 0) {
        System.out.println("学生管理系统内容已清空,请继续操作!");
    } else {
        boolean tag = vector.removeAll(vector);
        if (tag) {
            System.out.println("学生管理系统内容已清空,请继续操作!");
        }
    }
}

/**
 * 按学生姓名排序信息
 */
public void orderName() {
    Collections.sort(vector, new OrderByName());
    System.out.println("排序完成!");
}

/**
 * 按学生年龄排序信息
 */
public void orderAge() {
    Collections.sort(vector, new OrderByAge());
    System.out.println("排序完成!");
}

/**
 * 按学生性别排序信息
 */
public void orderSex() {
    Collections.sort(vector, new OrderBySex());
    System.out.println("排序完成!");
}

/**
 * 按学生成绩排序信息
 */
public void orderCourse() {
    Collections.sort(vector, new OrderByCourse());
    System.out.println("排序完成!");
}

/**
 * 按学生原始位置排序信息
 */
public void orderId() {
    Collections.sort(vector, new OrderById());
    System.out.println("排序完成!");
}

/**
 * 按学生姓名排序内部类
 */
class OrderByName implements Comparator<Student> {
    @Override
    public int compare(Student p1, Student p2) {
        return p1.getName().compareTo(p2.getName());
    }
}

/**
 * 按学生年龄排序内部类
 */
class OrderByAge implements Comparator<Student> {
    @Override
    public int compare(Student p1, Student p2) {
        int age1 = Integer.parseInt(p1.getAge());
        int age2 = Integer.parseInt(p2.getAge());
        return age1 - age2;
    }
}

/**
 * 按学生性别排序内部类
 */
class OrderBySex implements Comparator<Student> {
    @Override
    public int compare(Student p1, Student p2) {
        return p1.getSex().compareTo(p2.getSex());
    }
}

/**
 * 按学生成绩排序内部类
 */
class OrderByCourse implements Comparator<Student> {
    @Override
    public int compare(Student p1, Student p2) {
        if (p1.getCourse() - p2.getCourse() > 0) {
            return -1;
        } else if (p1.getCourse() - p2.getCourse() == 0) {
            return 0;
        } else {
            return 1;
        }
    }
}

/**
 * 按学生原始顺序排序内部类
 */
class OrderById implements Comparator<Student> {
    @Override
    public int compare(Student o1, Student o2) {
        int id1 = o1.getId();
        int id2 = o2.getId();
        return id1 - id2;
    }
}

}

第五个:App.java
package com.bj.dxb;

/**

  • 程序启动入口类
  • @author void
  • /
    public class App {
    public static void main(String[] args) {
    System.out.println("
    ***此版本版权归董学斌所有****");
    App app = new App();
    app.start();
    }

    /**

    • 主菜单控制 */ public void start() { StudentMangerRegex studentMangerRegex = new StudentMangerRegex(); Operate operate = new Operate(); while (true) { if (operate.login()) { while (true) { Menu.getInstance().mainMenu(); int key = studentMangerRegex.menuRegex(1, 6); switch (key) { case 1: operate.addLogic(); break; case 2: operate.searchLogic(); break; case 3: operate.modifyLogicLogic(); break; case 4: operate.deleteLogic(); break; case 5: operate.orderLogic(); break; case 6: System.exit(0); break; } } } } } } 完成所有,其实代码一点都不难,主要考察你面向对象的思维能力,希望对你有用……

学点初级的知识就可以写了,多学点没坏处

总感觉抄不是个好办法图片说明