黑马程序员技术交流社区

标题: javaEE12期技术贴1 [打印本页]

作者: 奶糖大白兔    时间: 2018-4-3 22:00
标题: javaEE12期技术贴1
学生管理系统的编写通过自己的将分析写出来,然后根据思路一步步写出学生管理系统
经过一次次的修改,最终得到了下面完整的学生管理系统
可以说是自己的第一个比较系统编程

package com.itheima.Test;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;

public class myStudentManager {
        public static void main(String[] args) throws IOException {
                //编辑学生管理系统主界面
                String file = "stu.txt";
                while(true){
                        System.out.println("------欢迎来到学生管理系统------");
                        System.out.println("1 查看所有学生信息");
                        System.out.println("2 添加学生信息");
                        System.out.println("3 修改学生信息");
                        System.out.println("4 删除学生信息");
                        System.out.println("5 退出");
                        //键盘录入要查找的选项数据
                        Scanner sc = new Scanner(System.in);
                        System.out.println("请输入你要选择的项目:");
                        int a = sc.nextInt();
                        switch (a) {
                        case 1:
                                //查看所有学生信息
                                checkAllStudent(file);
                                break;
                        case 2:
                                //添加学生信息
                                addStudent(file);
                                break;
                        case 3:
                                //修改学生信息
                                amendStudent(file);
                                break;
                        case 4:
                                //删除学生信息
                                deleteStudent(file);
                                break;
                        case 5:
                                //退出
                        default:
                                System.out.println("谢谢你的使用!");
                                System.exit(0);
                                break;
                        }
                }
        }
        public static void readerData(String file,ArrayList<Student> list) throws IOException{
                BufferedReader br = new BufferedReader(new FileReader(file));
                String line;
                while((line = br.readLine()) != null){
                        String[] arr = line.split(",");
                        Student s = new Student();
                        s.setId(arr[0]);
                        s.setName(arr[1]);
                        s.setAge(arr[2]);
                        s.setAddress(arr[3]);
                        list.add(s);
                }
                br.close();
        }
       
        public static void writerData(String file,ArrayList<Student> list) throws IOException {
                BufferedWriter bw = new BufferedWriter(new FileWriter(file));
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < list.size(); i++) {
                        Student s  = list.get(i);
                        sb.append(s.getId()).append(",").append(s.getName()).append(",").append(s.getAge()).append(",").append(s.getAddress());
                        bw.write(sb.toString());
                        bw.newLine();
                        bw.flush();
                }
                bw.close();
        }
       
        //查看所有学生
        public static void checkAllStudent(String file) throws IOException{
                //判断集合长度是否不等于0,不等于零则输出所有信息
                ArrayList<Student> list = new ArrayList<Student>();
                readerData(file,list);
                if(list.size() != 0){
                        for (int i = 0; i < list.size(); i++) {
                                System.out.println("学号\t姓名\t年龄\t地址\t");
                                System.out.println(list.get(i).getId()+"\t"+list.get(i).getName()+"\t"+list.get(i).getAge()+"\t"+list.get(i).getAddress());
                        }
                }else{
                        //提示没有学生信息
                        System.out.println("目前暂时没用学生信息,请添加学生信息");
                }
        }
        //添加学生信息
        public static void addStudent(String file) throws IOException{
                //键盘录入数据
                ArrayList<Student> list = new ArrayList<Student>();
                readerData(file,list);
                Student s = new Student();
                Scanner sc = new Scanner(System.in);
                while(true){
                        System.out.println("请输入学生id:");
                        s.setId(sc.nextLine());
                        boolean flag = true;
                        //判断输入是否已经存在,如果不存在继续输入
                        for (int i = 0; i < list.size(); i++) {
                                if (list.get(i).getId().equals(s.getId())) {
                                        System.out.println("对不起你输入的学号已经存在,请重新输入:");
                                        flag = false;
                                        break;
                                }       
                        }
                        if(flag){
                                break;
                        }
                }
                System.out.println("请输入学生姓名:");
                s.setName(sc.nextLine());
                System.out.println("请输入学生年龄:");
                s.setAge(sc.nextLine());
                System.out.println("请输入学生地址:");
                s.setAddress(sc.nextLine());
                list.add(s);
                writerData(file,list);
                System.out.println("添加成功");
        }
       
        //修改学生信息
        public static void amendStudent(String file) throws IOException{
                ArrayList<Student> list = new ArrayList<Student>();
                readerData(file,list);
                Scanner sc= new Scanner(System.in);
                System.out.println("请输入要查找的学生id:");
                String id = sc.nextLine();
                //循环集合判断是否存在学号,存在则修改信息,不存在则提示错误
                for (int i = 0; i < list.size(); i++) {
                        if(list.get(i).getId().equals(id)){
                                System.out.println("请输入学生姓名:");
                                list.get(i).setName(sc.nextLine());
                                System.out.println("请输入学生年龄:");
                                list.get(i).setAge(sc.nextLine());
                                System.out.println("请输入学生地址:");
                                list.get(i).setAddress(sc.nextLine());
                                return;
                        }
                }
                writerData(file,list);
                System.out.println("您输入的学号不存在");
        }
       
        //删除学生信息
        public static void deleteStudent(String file) throws IOException{
                ArrayList<Student> list = new ArrayList<Student>();
                readerData(file,list);
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入要删除的学生id:");
                String id = sc.nextLine();
                //遍历数组如果存在id删除,不存在提示您输入的学号不存在
                for (int i = 0; i < list.size(); i++) {
                        if(list.get(i).getId().equals(id)){
                                list.remove(i);
                                System.out.println("删除成功");
                                return;
                        }
                }
                writerData(file,list);
                System.out.println("您输入的学号不存在");
        }
}








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2