结对编程队友代码赏析
优点之一:
1.代码模块化,简单明了
2.可扩展性高
1)User
package com.wqqa; public class User { private String name; //用户姓名 private String password; //用户密码 private String role; //用户角色 public User(String name, String password, String role) { super(); this.name = name; this.password = password; this.role = role; } public String getName() { return name; } public void setName(String name) { this.name = name;//把name参数的值赋给当前属性 } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getRole() { return role; } public void setRole(String role) { this.role = role; } }
2)登陆验证,切换用户(方便以后插入,验证,可扩展性高)
public class main { static ArrayList<User> user_list = new ArrayList<User>();// 类数组user_list public static void init() { //用户,密码,用户角色 for (int i = 1; i < 4; i++) { User temp = new User("张三" +i, "123", "小学老师"); user_list.add(temp); } for (int j = 1; j < 4; j++) { User temp = new User("李四" +j, "123", "初中老师"); user_list.add(temp); } for (int k = 1; k < 4; k++) { User temp = new User("王五" +k, "123", "高中老师"); user_list.add(temp); } } public static User load(String name, String password) { for (int i = 0; i < user_list.size(); i++) { if (name.equals(user_list.get(i).getName()) && password.equals(user_list.get(i).getPassword())) { return user_list.get(i); } } return null; } public static User load_check() //登陆验证 { Scanner input = new Scanner(System.in);// 创建Scanner对象 System.out.println("请输入用户名和密码,中间用空格隔开:"); String in_put = input.nextLine();// 输入的字符串中间有空格 String[] str_user = in_put.split(" "); // 用split方法在每个空格字符处进行分解,把输入的用户名和密码区分开 User online = load(str_user[0], str_user[1]);// ,调用load函数,前一段代表用户名,后一个字符代表密码 if (online != null) { return online; } else { return load_check(); } } public static void change(User role) { Scanner input = new Scanner(System.in);// 创建Scanner对象 System.out.println("请问是否需要切换题目类型?(请输入YES或者NO)"); while(true) { int flag = 0; String str = input.nextLine(); if(str.equals("YES")) { Scanner a = new Scanner(System.in); System.out.println("请选择题目类型 小学,初中,高中(分别用A B C)表示"); while(true) { flag = 1; String s = a.nextLine(); if(s.equals("A")) { role.setRole("小学老师"); break; } else if(s.equals("B")) { role.setRole("初中老师"); break; } else if(s.equals("C")) { role.setRole("高中老师"); break; } else { System.out.println("请选择题目类型 小学,初中,高中(分别用A B C)表示"); } } } else if(str.equals("NO")) { System.out.println("用户类型不变"); break; } else { System.out.println("请问是否需要切换题目类型?(请输入YES或者NO)"); } if(flag == 1) break; } }
3)题目输出判断
public static int inputint() //判断输入题目的数量对不对 { Scanner scan = new Scanner(System.in); int temp; try { temp = scan.nextInt(); //获取输入的题目的数量 if (temp < 10 || temp > 30) { System.out.println("题目数量范围不对,请重新输入:"); temp = inputint(); } } catch (java.util.InputMismatchException e) { System.out.println("输入的不是整型,请重新输入:"); temp = inputint(); } return temp; }
4)主函数部分
public static void main(String[] args) throws FileNotFoundException { init(); boolean tui = false; User hehe = load_check(); boolean flag = false; while(true) { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");//设置日期格式 String name = df.format(System.currentTimeMillis()); String path = "./" + hehe.getName(); File f = new File(path); if(!f.exists()) { f.mkdir(); } PrintStream out = new PrintStream(path +"./" + name +".txt"); if(hehe.getRole().equals("高中老师")) { System.out.println("为"+hehe.getRole()+"出题"); System.out.println("准备生成高中数学题目,请输入生成题目数量"); int temp = inputint(); for(int i = 1;i<=temp;i++) { out.println(i+" "+chuti_gaozhong()+"="); } Scanner cin = new Scanner(System.in); System.out.println("是否退出"); while(true) { String isExit = cin.next(); if(isExit.equals("是")) { return; } else if(isExit.equals("否")) { break; } else { System.out.println("是否退出"); } } change(hehe); } else if(hehe.getRole().equals("初中老师")) { System.out.println("为"+hehe.getRole()+"出题"); System.out.println("准备生成初中数学题目,请输入生成题目数量"); int temp = inputint(); for(int i = 1;i<=temp;i++) { out.println(i+" "+chuti_chuzhong()+"="); } Scanner cin = new Scanner(System.in); System.out.println("是否退出"); while(true) { String isExit = cin.next(); if(isExit.equals("是")) { return; } else if(isExit.equals("否")) { break; } else { System.out.println("是否退出"); } } change(hehe); } else if(hehe.getRole().equals("小学老师")) { System.out.println("为"+hehe.getRole()+"出题"); System.out.println("准备生成小学数学题目,请输入生成题目数量"); int temp = inputint(); for(int i = 1; i <= temp;i++) { out.println(i+" "+chuti_xiaoxue()+"="); } Scanner cin = new Scanner(System.in); System.out.println("是否退出"); while(true) { String isExit = cin.next(); if(isExit.equals("是")) { return; } else if(isExit.equals("否")) { break; } else { System.out.println("是否退出"); } } change(hehe); } } } }
5)文件夹创建
public static void creatFile() //创建用户文件夹 { File f = new File("E:\\test"); if(!f.exists()) { f.mkdir(); } f.mkdir(); }
缺点:
1.部分功能未实现
2.主函数和部分结合发生重复,或者说可以放在函数里的,放在了主函数,其实可以传参解决。
浙公网安备 33010602011771号