zoukankan      html  css  js  c++  java
  • 0915作业(后面帖子公共类部分在这里)

     1 public class Client
     2 {
     3     public static void main(String[] args)
     4     {
     5         //生成家庭作业控制类的实例
     6         HomeWorkController homeWorkController=new HomeWorkController();
     7         //启动程序
     8         homeWorkController.start();
     9     }
    10 }
    View Code
      1 import java.util.Scanner;
      2 
      3 /**
      4   *隔离客户端与对象创建过程
      5   *屏蔽对象创建细节
      6   *封装客户端变化部分
      7   *封装暂时不必要独立为类的琐碎功能
      8   */
      9 
     10 public class HomeWorkController
     11 {
     12     /*成员变量、常量定义区*/
     13     
     14     //定义命令提示常量,可用数组封装,变化部分一
     15     private static final String message1="您可以使用的命令如下:";
     16     private static final String message2="1 输入时间,查看相应日期的答卷,指令格式为0902,9月2号";
     17     private static final String message3="2 退出程序,指令为0000";                    
     18     private static final String message4="3 目前可执行日期为,0915";  
     19 
     20     private String structions;               //定义变量instructions,用于保存用户接收到的指令
     21     HomeWork homeWork;                 //定义接口变量
     22     private int state=0;             //定义递归控制变量
     23 
     24     /*方法执行区*/
     25 
     26     //程序启动方法,具体实现为面向过程的编程思想        
     27     public void start()            
     28     {
     29 
     30         getInstructionsMessage();     //获得命令提示
     31         
     32         getInstructions();           //控制台接收用户命令
     33         
     34         getHomeWork();                //根据命令获取具体家庭作业实现类,变化部分二
     35         
     36         homeWork.start();          //查看家庭作业题目及答卷
     37 
     38         starts();            //递归实现循环查看家庭作业
     39                 
     40     }
     41 
     42     /*方法实现区--底层逻辑区*/
     43 
     44     //命令提示方法实现
     45     public void getInstructionsMessage()    
     46     {
     47         System.out.println(message1);
     48         System.out.println(message2);
     49         System.out.println(message3);
     50         System.out.println(message4);
     51     }
     52     //控制台接收指令方法实现
     53     public void getInstructions()
     54     {
     55         Scanner scanner=new Scanner(System.in);
     56         structions=scanner.nextLine();
     57     }
     58     //简单工厂模式获取家庭作业实现类
     59     public void getHomeWork()
     60     {
     61         switch(structions)
     62         {
     63             default:        
     64                 homeWork=xxx1();    //匿名内部类实现接口消除空指针异常
     65                 break;
     66             case "0000":    
     67                 homeWork=xxx2();    //匿名内部类实现接口消除空指针异常
     68                 state=9999;
     69                 break;
     70             case "0915":
     71                 homeWork=new HomeWork0915();
     72                 break;
     73         }
     74     }
     75     //用于错误指令调用的匿名内部类
     76     public HomeWork xxx1()
     77     {
     78         return new HomeWork()
     79                     {
     80                             public void getHRMessage(){}
     81                             public void getHR(){}        
     82                             public void start()
     83                             {
     84                                 System.out.println();
     85                                 System.out.println("请输入正确命令!");
     86                                 System.out.println();
     87                             }        
     88                     };    
     89     }
     90     //用于退出指令调用的匿名内部类
     91     public HomeWork xxx2()
     92     {
     93         return new HomeWork()
     94                     {
     95                             public void getHRMessage(){}
     96                             public void getHR(){}        
     97                             public void start()
     98                             {
     99                                 System.out.println("您已成功退出学生家庭作业查看系统,谢谢使用!");
    100                             }        
    101                     };
    102     }    
    103     //递归调用循环执行
    104     public void starts()
    105     {
    106         if(state==0)
    107         {
    108             start();
    109         }
    110     }
    111 }
    View Code
    1 public interface HomeWork
    2 {
    3     void getHRMessage();    //获取家庭作业试题
    4     void getHR();        //获取家庭作业答卷
    5     void start();        //获取家庭作业
    6 }
    View Code
      1 import java.util.Scanner;
      2 public class HomeWork0915 implements HomeWork
      3 {
      4     /*方法调用区*/
      5     //实现接口,获取家庭作业题目
      6     public void getHRMessage()
      7     {
      8         getMs();
      9     }
     10     //实现接口,获取家庭作业答卷    
     11     public void getHR()
     12     {    
     13         home1();        //第一题答卷
     14         home2();        //第二题答卷
     15         home3();        //第三题答卷
     16         home4();        //第四题答卷
     17     }
     18     //实现接口,获取家庭作业        
     19     public void start()
     20     {
     21         getHRMessage();
     22         getHR();
     23     }
     24 
     25     /*方法实现区*/
     26     //试题方法的实现
     27     public void getMs()
     28     {
     29         System.out.println();
     30         System.out.println("14.已知2个一维数组:a[]={3,4,5,6,7},b[]={1,2,3,4,5,6,7};把数组a与数组b对应的元素乘积再赋值给数组b,如:b[2]=a[2]*b[2];最后输出数组b的元素。");
     31         System.out.println("15.找出如下数组中最大的元素和最小的元素,a[][]={{3,2,6},{6,8,2,10},{5},{12,3,23}}");
     32         System.out.println("16.按要求编写Java应用程序。编写一个名为Test的主类,类中只有一个主方法;在主方法中定义一个大小为50的一维整型数组,数组名为x,数组中存放着{1,3,5,…,99}输出这个数组中的所有元素,每输出十个换一行;在主方法中定义一个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余位置存的是‘#’;输出这个数组中的所有元素。");
     33         System.out.println("17.从键盘上输入一个正整数n,请按照以下五行杨辉三角形的显示方式,输出杨辉三角形的前n行。请采用循环控制语句来实现。(三角形腰上的数为1,其他位置的数为其上一行相邻两个数之和。)");
     34         System.out.println();    
     35     }    
     36     //题目一的实现方法
     37     public void home1()
     38     {
     39         int[] a={3,4,5,6,7};
     40         int[] b={1,2,3,4,5,6,7};
     41         for(int i=0;i<a.length;i++)
     42         {
     43             b[i]*=a[i];
     44         }
     45         System.out.println("题目一:");
     46         System.out.print("b数组的值是  ");
     47         for(int i=0;i<b.length;i++)
     48         {
     49             System.out.print(b[i]+" ");
     50         }
     51         System.out.println();
     52         System.out.println();
     53     }
     54     //题目二的实现方法
     55     public void home2()
     56     {
     57         int[][] a={{3,2,6},{6,8,2,10},{5},{12,3,22}};
     58         int max=0;
     59         int min=10000;
     60         int change=0;
     61         for(int i=0;i<a.length;i++)
     62         {
     63             for(int j=0;j<a[i].length;j++)
     64             {
     65                 change=a[i][j];
     66                 if(change>max)
     67                 {
     68                     max=change;
     69                 }
     70                 if(change<min)
     71                 {
     72                     min=change;
     73                 }
     74             }
     75         }
     76         System.out.println("题目二:");
     77         System.out.println("最大值是 "+max);    
     78         System.out.println("最小值是 "+min);        
     79     }
     80     //题目三的实现方法
     81     public void home3()
     82     {
     83         System.out.println();
     84         System.out.println("题目三:");
     85         Text text=new Text();
     86         text.text1();
     87         text.text2();
     88         System.out.println();
     89     }
     90     //题目四的实现方法
     91     public void home4()
     92     {    
     93         System.out.println("题目四:");
     94         System.out.println("请输入一个整数,范围在1到100之间,包括1跟100");
     95         System.out.println("友情提示:不是整数会报错");        //可使用scanner.nextLine()并加以过滤解决这个问题
     96         Scanner scanner=new Scanner(System.in);
     97         int n=scanner.nextInt();
     98         int[][] num=new int[100][100];
     99         if(n>0&&n<=100)
    100         {
    101             for(int i=1;i<=n;i++)
    102             {
    103                 for(int j=1;j<=i;j++)
    104                 {
    105                     if(j==1||i==j)
    106                     {
    107                         num[i][j]=1;
    108                         System.out.print("1  ");
    109                     }else
    110                     {
    111                         num[i][j]=num[i-1][j]+num[i-1][j-1];
    112                         System.out.print((num[i-1][j]+num[i-1][j-1])+"  ");
    113                     }
    114                 }
    115                 System.out.println();
    116             }
    117         }else
    118         {
    119             System.out.println("您输入的数值不合法,您需要输入一个正整数");
    120         }
    121         System.out.println();
    122     }    
    123 }
    124 
    125 //题目三需要定义的类
    126 class Text
    127 {
    128     int[] x=new int[50];
    129     char[][] y=new char[10][10];
    130     public void text1()
    131     {
    132         for(int i=1;i<=50;i++)
    133         {
    134             x[i-1]=i*2-1;
    135         }
    136         for(int i=0;i<5;i++)
    137         {
    138             for(int j=0;j<10;j++)
    139             {
    140                 System.out.print(x[j+10*i]+" ");
    141             }
    142             System.out.println();
    143         }
    144     }
    145     public void text2()
    146     {
    147         for(int i=0;i<10;i++)
    148         {
    149             for(int j=0;j<10;j++)
    150             {
    151                 if(i==j||j==9-i)
    152                 {    
    153                     y[i][j]='*';
    154                     System.out.print(y[i][j]);
    155                 }else
    156                 {
    157                     y[i][j]='#';
    158                     System.out.print(y[i][j]);
    159                 }
    160             }
    161             System.out.println();
    162         }
    163     }
    164 }
    View Code
  • 相关阅读:
    局域网内的邮件收发
    小菜鸟入门nginx
    记一次结巴分词.net core 2.0版 nuget发布过程
    记一次 .net core publish 之后找不到视图文件的问题
    eShopOnContainer 第一步
    Ocelot网关统一查看多个微服务asp.net core项目的swagger API接口
    在Azure中创建asp.net core 应用
    微服务监控zipkin、skywalking以及日志ELK监控系列
    微服务监控zipkin+asp.net core
    Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)
  • 原文地址:https://www.cnblogs.com/kaililikai/p/5874495.html
Copyright © 2011-2022 走看看