首页 > 代码库 > 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 }
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 }
1 public interface HomeWork2 {3 void getHRMessage(); //获取家庭作业试题4 void getHR(); //获取家庭作业答卷5 void start(); //获取家庭作业6 }
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 }
0915作业
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。