自学内容网 自学内容网

java学习 -----项目(1)

项目

写在前面的话:耳机没电,先来写写今早的感受。说实话,我并不喜欢我们的职业规划老师,满嘴荒唐言,被社会那所大缸浸染了一身社会气。课快结束时,老师问还有谁的视频没做,我把手举了起来。(我迟到+在课上睡觉)他稍带怒气的腔调说,你那部分分就别想拿了。大脑经过反应,回道:我之前给你发过一份mlt格式的文件,那个二维码生成不了。

可能是我气场原因?我也不知道,或许这就是他特有的技能,能对人快速做出分类,然后采取相应的言辞。

过程就不赘述,我临近下课的时候,我说视频课下重新做一份,因为我的部分源文件丢失了,他起身,晃着圆圆的身体,略微挤到我一些说。二维码没有也行,你课程只要能过就行对吧?

总结:想起《牧羊少年的奇妙之旅》那本书,当你想要做成一件事的时候,连风都会帮助你。环境在帮我,我更应该朝着自己的目标前行,而不是浪费这种资源。

零钱通

项目需求

  1. 完成收益入账,消费,查看明细,退出系统等功能

注:先使用过程编程,后面改成OOP版本,从中体会到OOP编程的好处

打印日期

   Data data = null;
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
    
    
    
    data = new Date();
    System.out.println(sdf.format(date));

    public class data01 {
        public static void main(String[] args) {
            boolean condition = true;
            Date date = null;
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
            Scanner sc = new Scanner(System.in);
            String str = "\n";
            int a = 0;
            int all_money = 0;
            do{
                System.out.println("=========零钱通=========");
                System.out.println("1.进账明细");
                System.out.println("2.添加收入");
                System.out.println("3.消费");
                System.out.println("4.退出");
                a = sc.nextInt();
                switch (a){
                    case 1:
                        System.out.println(str);
                        break;
                    case 2:
                        int temp = sc.nextInt();
                        if(temp <= 0){
                            System.out.println("金额错误,将返回到主菜单");
                        }
                        all_money += temp;
                        date = new Date();
                        str += "收入\t" + + temp + "\t日期\t" +sdf.format(date) + "\t余额\t" + all_money + '\n';
                        break;
                    case 3:
                        int spend = sc.nextInt();
                        if(spend > all_money){
                            System.out.println("花费金额错误,将返回主菜单");
                        }
                        all_money -= spend;
                        date = new Date();
                        str += "消费\t" + + spend + "\t日期\t" +sdf.format(date) + "\t余额\t" + all_money + '\n';
                        break;
                    case 4:
                        condition = false;
                        break;
                }
            }while(condition);
        }

个人感觉面向对象的写法没有什么难度,就直接将代码放在这里了,大家有兴趣可以拷贝下去,跑跑看。

空间留余:给oop代码空间

房屋出租系统

需求:能够实现对房屋信息的添加,修改和删除(用数组实现),并能够打印房屋明细表

  • 主菜单

    • 新增房源

    • 查找房屋

    • 删除房屋

    • 修改房屋信息

    • 房屋列表

    • 退出

  • 新增房源

    • 姓名

    • 电话

    • 地址

    • 月租

    • 状态

  • 查找房源

    • 选择查找房源的id
  • 删除房源

    • -1退出

    • y删除

    • n误触

  • 修改信息

    • 不希望修改回车
  • 房屋列表

项目设计—程序框架图

(分层模式=> 当软件比较复杂,需要模式管理)

  • 系统有哪些类【文件】

  • 明确类与类的调用关系

在这里插入图片描述

注:增删改查–> crud

  • c --> create

  • r -->read

  • u -->updata

  • d --> delete

在实际开发中,公式都会提供相应的工具类和开发库,可以提高开发效率,程序员也需要能看懂别人写的代码,并能正确的调用

  • 界面 (View)

  • 业务层(Service)

  • 工具类(Utils)

  • 数据层(domain/model)

    • 这里后续会用扩展

注:类.方法() => 因为放一个方法是static时,就是一个静态方法,静态方法可以直接通过类名调用,具体细节后面说

class A{
    public void cry(){}
    public static say(){}
}

//上面那个在调用时,要new一个A对象
//下面这个在调用时,可以直接类名加对象
  • 明确完成功能

  • 思路分析

  • 代码实现

心得体会

写完一个项目,对于模式管理有一定的认知。View,Service,Domain,Utils 这些拆分。

而且学习嘛,敲代码嘛,脑袋炸毛的时候还是挺多的。

下面贴一下房屋出租系统的代码,就不解释了,若是要看源文件,可以到我gitee仓库自行下载

       public class MenuMain {
        public static void main(String[] args) {
            boolean status;
            Service service;
            View view = new View();
            do {
                status = true;
                view.menuMain();
                Scanner sc = new Scanner(System.in);
                int a = sc.nextInt();
                status =  new Service(a).option(view);
            }while (status);
        }
    }
       public class Service {
        int a;
        public Service(int a) {
            this.a = a;
        }
        public boolean option(View m){
            switch (a){
                case 1:
                    m.info();
                    return true;
                case 2:
                    m.add();
                    return true;
                case 3:
                    m.fix();
                    return true;
                case 4:
                    m.del();
                    return true;
                case 5:
                    return false;
            }  
           return false;
        }
    }
       class Home {
        private int id;
        private String name;
        private String rent;
        private String address;
        public Home(String name, String rent, String address) {
            this.name = name;
            this.rent = rent;
            this.address = address;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public void setRent(String rent) {
            this.rent = rent;
        }
    
        public void setAddress(String address) {
            this.address = address;
        }
    
        public int getId() {
            return id;
        }
    
        public String getName() {
            return name;
        }
    
        public String getRent() {
            return rent;
        }
    
        public String getAddress() {
            return address;
        }
    
        @Override
        public String toString() {
            return "\t" + id +
                    "\t" + name +
                    "\t\t" + rent +
                    "\t" + address;
        }
    }
    
    class Info{
        public int size;
        Home[] home;
        public Info(int a) {
            home = new Home[a];
        }
    }
       public class Utils {
        public static void info(Home[] arr,int size){
            for (int i = 0; i < size; i++) {
                if(arr[i] == null) return;
                System.out.println(arr[i].toString());
            }
        }
        public static void add(Home[] arr,Home a){
            for (int i = 0; i < arr.length; i++) {
                if(arr[i] == null){
                    a.setId(i+1);
                    arr[i] = a;
                    return;
                }
            }
        }
        public static void fix(int id,int size,Home[] arr){
            if(id>=1&&id<=size+1&& size!=0){
                System.out.println("输入修改后的信息");
                Scanner sc = new Scanner(System.in);
                String name = sc.nextLine();
                String address = sc.nextLine();
                String rent = sc.nextLine();
                arr[id-1]= new Home(name,address,rent);
                System.out.println(arr[id-1]+"修改成功");
            }
            else System.out.println("无此房源");
        }
    
        public static void delete(int id,int size,Home[] arr){
            if(id>=1&&id<=size+1&&size!=0){
                for(int i=id-1;i<size;i++){
                    arr[i]=arr[i+1];
                }
                System.out.println("删除成功");
            }
            else System.out.println("删除失败");
        }
    }
       public class View {
        public void menuMain(){
            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("------------");
            System.out.println("请输入选项:");
        }
        Info info = new Info(10);
        public void info(){
            System.out.println("\t" + "id" +
                    "\t" + "name" +
                    "\t" + "rent" +
                    "\t" + "address");
            Utils.info(info.home,info.home.length);
        }
        public void add(){
            System.out.println("请分别输入 姓名 租金 地址");
            Scanner sc = new Scanner(System.in);
            String name = sc.nextLine();
            String address = sc.nextLine();
            String rent = sc.nextLine();
            Home home = new Home(name, address, rent);
            Utils.add(info.home, home);
            info.size++;
            System.out.println("添加成功,信息如下:");
            System.out.println("\t" + "id" +
                    "\t" + "name" +
                    "\t" + "rent" +
                    "\t" + "address");
            System.out.println(home);
        }
        public void fix(){
            System.out.println("请输入需要修改的id");
            Scanner sc = new Scanner(System.in);
            int id = sc.nextInt();
            Utils.fix(id,info.size,info.home);
        }
        public void del(){
            System.out.println("请输入要删除的id");
            Scanner sc = new Scanner(System.in);
            int id = sc.nextInt();
            Utils.delete(id,info.size,info.home);
        }
    }

原文地址:https://blog.csdn.net/memorycx/article/details/144292851

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!