Java第二周感受

比较有意思的就是做系统吧,有点难度,综合性比较强,很有挑战性,做的是一个学生日志管理系统:

完成学生日志内容管理系统-学生端,日志信息主要包含:日志编号,今日学习内容,掌握程度,疑问,日志填写人,项目包含主要实体类:

  • 学生类(学号,姓名,密码)

  • 日志类(编号,今日学习内容,掌握程度(了解,熟练,精通),疑问,学生)

  • 其余操作类自行设计

要求实现功能如下:

  1. 学生添加

  2. 学生登录

  3. 日志提交

  4. 日志编号要求自动生成(可从1开始自动递增)

  5. 查看当前登录人提交的所有日志

  6. 修改当前等路人提交的日志内容

  7. 退出登录

  8. package com.softeem.ds;

  9. import java.util.ArrayList;

  10. public interface BaseManager {

        public boolean add(Object obj);
        
        public boolean del(Object obj);
        
        public boolean update(Object obj);
        
        public ArrayList findAll(Object obj);
        
        public Object findOne(Object obj);
    }

  11. package com.softeem.ds;

    public class Daily {

        private int dno;        //编号
        private String content;    //内容
        private int starts;        //掌握程度 1:了解          2:熟练    3:精通
        private String ques;    //疑问
        private Student stu;    //日志提交人
        
        public Daily() {
            // TODO Auto-generated constructor stub
        }

        public Daily(int dno, String content, int starts, String ques, Student stu) {
            super();
            this.dno = dno;
            this.content = content;
            this.starts = starts;
            this.ques = ques;
            this.stu = stu;
        }

        public int getDno() {
            return dno;
        }

        public void setDno(int dno) {
            this.dno = dno;
        }

        public String getContent() {
            return content;
        }

        public void setContent(String content) {
            this.content = content;
        }

        public int getStarts() {
            return starts;
        }

        public void setStarts(int starts) {
            this.starts = starts;
        }

        public String getQues() {
            return ques;
        }

        public void setQues(String ques) {
            this.ques = ques;
        }

        public Student getStu() {
            return stu;
        }

        public void setStu(Student stu) {
            this.stu = stu;
        }

        @Override
        public String toString() {
            return "Daily [dno=" + dno + ", content=" + content + ", starts=" + starts + ", ques=" + ques + ", stu=" + stu.getSname()
                    + "]";
        }
        
    }
     

  12. package com.softeem.ds;

    import java.util.ArrayList;
    import java.util.Objects;

    public class DailyManager implements BaseManager {

        static ArrayList<Daily> dailys = new ArrayList<>();
        static int dno;
        
        /**
         * 日志添加
         */
        @Override
        public boolean add(Object obj) {
            Daily d = (Daily)obj;
            d.setDno(++dno);
            return dailys.add(d);
        }

        @Override
        public boolean del(Object obj) {
            // TODO Auto-generated method stub
            return false;
        }

        @Override
        public boolean update(Object obj) {
            //新日志内容,学号
            Daily d = (Daily)obj;
            for(Daily daily:dailys){
                if(Objects.equals(d.getStu().getSno(), daily.getStu().getSno())){
                    daily.setContent(d.getContent());
                    daily.setStarts(d.getStarts());
                    daily.setQues(d.getQues());
                    return true;
                }
            }
            
            return false;
        }

        /**
         * 查看当前登录学生提交的所有日志
         */
        @Override
        public ArrayList findAll(Object obj) {
            ArrayList list = new ArrayList();    
            String sno = obj.toString();
            for (Daily daily : dailys) {
                if(Objects.equals(sno, daily.getStu().getSno())){
                    list.add(daily);
                }
            }
            return list;
        }

        @Override
        public Object findOne(Object obj) {
            // TODO Auto-generated method stub
            return null;
        }

    }
     

  13. package com.softeem.ds;

    import java.util.ArrayList;
    import java.util.Scanner;

    public class Main {
        
        static BaseManager sm = new StudentManager();
        static BaseManager dm = new DailyManager();
        static Student login;//记录当前登录学生
        
        public void enter(){
            menu1();
        }
        
        
        private void menu1() {
            p("**********SOFTEEM学员日志管理系统*********");
            p("*************【1】学员登录***************");
            p("*************【2】学员添加***************");
            p("*************【0】退出系统***************");
            p("*************************************");
            Scanner sc = new Scanner(System.in);
            int i = sc.nextInt();
            switch(i){
            case 1:
                login();
                break;
            case 2:
                register();
                break;
            case 0:
                p("谢谢使用,再见!!!");
                System.exit(0);
                default:
                    System.err.println("指令错误,请重新输入");
                    menu1();
                    break;
            }
        }
        
        public void menu2(){
            p("**********SOFTEEM学员日志管理系统*********");
            p("*************【1】日志提交***************");
            p("*************【2】日志查看***************");
            p("*************【3】修改日志***************");
            p("*************【0】退出登录***************");
            p("*************************************");
            Scanner sc = new Scanner(System.in);
            int i = sc.nextInt();
            switch(i){
            case 1:
                dailyAdd();
                break;
            case 2:
                dailyShow();
                break;
            case 3:
                dailyUpdate();
                break;
            case 0:
                //将当前登录者置为空
                login = null;
                //返回上一级菜单
                menu1();
                break;
                default:
            }
        }
        
        private void dailyUpdate() {
            // TODO Auto-generated method stub
            
        }


        private void dailyShow() {
            for (Object obj : dm.findAll(login.getSno())) {
                p(obj);
            }
            menu2();
        }


        private void dailyAdd() {
            p("请输入日志信息(例如:日志内容(String)/掌握程度(int)/疑问(String)):");
            Scanner sc = new Scanner(System.in);
            String[] info = sc.nextLine().split("/");
            Daily d = new Daily(0, info[0], Integer.parseInt(info[1]), info[2], login);
            if(dm.add(d)){
                p("提交成功!");
            }else{
                p("提交失败!");
            }
            menu2();
        }


        /**
         * 学生登录
         */
        private void login() {
            p("请输入学号和密码(例如:001/123456)");
            Scanner sc = new Scanner(System.in);
            String[] info = sc.nextLine().split("/");
            //由于登录不需要姓名(根据学号密码)
            Student s = new Student(info[0],null,info[1]);
            Object obj = sm.findOne(s);
            if(obj != null){
                p("登录成功");
                login = (Student)obj;
                menu2();
            }else{
                p("账号或密码不正确,请重新输入");
                login();
            }
        }


        /**
         * 学员注册
         */
        private void register() {
            p("请输入学员信息(例如:001/张三风/123456)");
            Scanner sc = new Scanner(System.in);
            //读取一行输入文本同时截取
            String[] info = sc.nextLine().split("/");
            //根据截取的学生信息创建学生对象
            Student s = new Student(info[0],info[1],info[2]);
            if(sm.add(s)){
                p("添加成功!");
            }else{
                p("添加失败!");
            }
            menu1();
        }


        public void p(Object msg){
            System.out.println(msg);
        }
        
        public static void main(String[] args) {
            new Main().enter();
        }

    }
     

  14. package com.softeem.ds;

    public class Student {

        String sno;        //学号
        String sname;    //姓名
        String pwd;        //密码
        
        public Student() {
            // TODO Auto-generated constructor stub
        }
        
        
        public Student(String sno, String sname, String pwd) {
            super();
            this.sno = sno;
            this.sname = sname;
            this.pwd = pwd;
        }


        public String getSno() {
            return sno;
        }
        public void setSno(String sno) {
            this.sno = sno;
        }
        public String getSname() {
            return sname;
        }
        public void setSname(String sname) {
            this.sname = sname;
        }
        public String getPwd() {
            return pwd;
        }
        public void setPwd(String pwd) {
            this.pwd = pwd;
        }

        @Override
        public String toString() {
            return "Student [sno=" + sno + ", sname=" + sname + ", pwd=" + pwd + "]";
        }


        @Override
        public int hashCode() {
            final int prime = 31;
            int result = 1;
            result = prime * result + ((pwd == null) ? 0 : pwd.hashCode());
            result = prime * result + ((sno == null) ? 0 : sno.hashCode());
            return result;
        }


        @Override
        public boolean equals(Object obj) {
            if (this == obj)
                return true;
            if (obj == null)
                return false;
            if (getClass() != obj.getClass())
                return false;
            Student other = (Student) obj;
            if (pwd == null) {
                if (other.pwd != null)
                    return false;
            } else if (!pwd.equals(other.pwd))
                return false;
            if (sno == null) {
                if (other.sno != null)
                    return false;
            } else if (!sno.equals(other.sno))
                return false;
            return true;
        }
        
        
        
    }
     

  15. package com.softeem.ds;

    import java.util.ArrayList;
    import java.util.Objects;

    public class StudentManager implements BaseManager{

        static ArrayList<Student> stus = new ArrayList<>();
        
        @Override
        public boolean add(Object obj) {
            //判断当前添加的学生是否已经存在
            Student stu = (Student)obj;
            for(Student s:stus){
                if(Objects.equals(stu.getSno(), s.getSno())){
                    //已存在
                    return false;
                }
            }
            //加入集合
            return stus.add(stu);
        }

        @Override
        public boolean del(Object obj) {
            // TODO Auto-generated method stub
            return false;
        }

        @Override
        public boolean update(Object obj) {
            // TODO Auto-generated method stub
            return false;
        }

        @Override
        public ArrayList findAll(Object obj) {
            // TODO Auto-generated method stub
            return null;
        }

        //登录
        @Override
        public Object findOne(Object obj) {
            Student stu = (Student)obj;
            for(Student s:stus){
                //比较两个学生对象是否一致(学号和密码)
                if(Objects.equals(s, stu)){
                    return s;
                }
            }
            return null;
        }

    }
     

  16. package com.softeem.ds;

    public class Test {

        public static void main(String[] args) {
            StudentManager sm = new StudentManager();
            
            Student s1 = new Student("001", "狗蛋", "123");
            Student s2 = new Student("003", "旺财", "1234");
            Student s3 = new Student("004", "来福", "123456");
            
            
            boolean b1 = sm.add(s1);
            boolean b2 = sm.add(s2);
            boolean b3 = sm.add(s3);
            
            System.out.println("b1添加结果:"+b1);
            System.out.println("b2添加结果:"+b2);
            System.out.println("b3添加结果:"+b3);
            
            Student s = new Student("003", "旺财", "1234");
            System.out.println(sm.findOne(s));
        }

    }
     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值