首页 > 代码库 > 0915作业

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 HomeWork2 {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                     }else110                     {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         }else118         {119             System.out.println("您输入的数值不合法,您需要输入一个正整数");120         }121         System.out.println();122     }    123 }124 125 //题目三需要定义的类126 class Text127 {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                 }else156                 {157                     y[i][j]=‘#‘;158                     System.out.print(y[i][j]);159                 }160             }161             System.out.println();162         }163     }164 }
View Code

 

0915作业