当前位置: 首页 > news >正文

网站建设与管理模拟试卷美工培训班

网站建设与管理模拟试卷,美工培训班,什么样的网站需要数据库,西安制作手机网站目录 案例一#xff1a;买飞机票 案例二#xff1a;开发验证码 案例三#xff1a;评委打分 案例四#xff1a;数字加密 案例五#xff1a;数组拷贝 案例六#xff1a;抢红包 案例七#xff1a;找素数的三种方法 案例八#xff1a;打印乘法口诀表 案例九#x…目录 案例一买飞机票 案例二开发验证码 案例三评委打分 案例四数字加密 案例五数组拷贝 案例六抢红包 案例七找素数的三种方法 案例八打印乘法口诀表 案例九打印三角形 案例十模拟双色球 案例一买飞机票 我的思考 用 if 语句分割开淡旺季再分别在淡旺季中区分两种舱的价格。 我的初步代码 逻辑非常简单没有问题但是感觉代码写的冗余不清晰明明非常简单的几步感觉被复杂化了所以写代码必须简洁明了简单易懂。 尤其时main函数主体内的代码要少几行之内搞定是最好的可以将繁冗的代码封装成方法减少main函数中的代码 案例二开发验证码 我的思考 首先生成的验证码位数是需要我们输入确定的。每一位可以用一个字符表示数字就是数字字符 0 ~ 9可以用随机数确定每一位是数字字符还是大小写字母。 每一位可以通过字符串拼接的方式 来实现单个字符变成字符串。 数字字符容易用随机数生成大小写字母其实就是ASCLL码也可以通过随机数生成。 我的代码 案例三评委打分 案例四数字加密 我的思考 首先输入的是字符串在字符串中改变每一位数字并不方便于是我设置了一个字符数组接收字符串对每一位的数字进行算术运算字符并不好处理于是我设置了一个整型临时变量循环地处理每一位的算术运算再将算好的整型数字转化成字符放到字符数组中去。返回数组的地址在main函数中用一个字符串接收最后打印出来。 我的代码  public class test_01 {public static void main(String[] args) {Scanner sc new Scanner(System.in);System.out.println(请输入原始密码);String ori_code sc.next();String codes new String(encryption(ori_code));System.out.println(加密后的密码是 codes);}public static char[] encryption(String ori_code){assert(ori_code ! null);char[] code new char[ori_code.length()];for (int i 0; i code.length; i) {int temp 0;temp ori_code.charAt(i)-0;temp 5;temp % 10;code[i] (char)(temp0);}for(int i 0,j ori_code.length()-1;i j;i,j--){char tmp code[i];code[i] code[j];code[j] tmp;}return code;} } 案例五数组拷贝 我的思考 复制一个内容一样的数组很容易关键在于这题需要的是一模一样的数组那也就是说连地址都相同所以需要把旧数组的地址赋给新数组。 我的代码 public class test_01 {public static void main(String[] args) {int[] arr {11,22,33};System.out.println(Arrays.toString(copy(arr)));}public static int[] copy(int[] arr){int[] copy_arr new int[arr.length];copy_arr arr;for (int i 0; i arr.length; i) {copy_arr[i] arr[i];}System.out.println(copy_arr);System.out.println(arr);return copy_arr;} } 案例六抢红包 我的思考 一共有五个数据可以存放在整型数组中用switch语句分别处理每种抽到的情况用随机数控制switch语句的执行。 关键在于每个数只能抽到一次可以在循环中处理重复情况。我没想到简便的处理方法就是很僵硬地设置了5个计数器分别对应5种抽奖结果抽到过地break 我的代码 public class test_01 {public static void main(String[] args) {int[] arr {9,666,188,520,99999};extractRedEnvelopes(arr);}public static void extractRedEnvelopes(int[] arr){System.out.println(有五个红包分别是966618852099999的);System.out.println(现在开始直播抽取红包);Random r new Random();int count1 0,count2 0,count3 0,count4 0,count5 0;while(count1 count2 count3 count4 count5 ! 5){System.out.println(请按任意键开始抽奖);Scanner sc new Scanner(System.in);String s sc.next();if (s.equals(1)) {int random r.nextInt(5); //0~4switch (random) {case 0:if (count1 1){System.out.println(很抱歉你没抽到);break;}System.out.println(恭喜你你抽到了 6);count1;break;case 1:if (count2 1){System.out.println(很抱歉你没抽到);break;}System.out.println(恭喜你你抽到了 188);count2;break;case 2:if (count3 1){System.out.println(很抱歉你没抽到);break;}System.out.println(恭喜你你抽到了 666);count3;break;case 3:if (count4 1){System.out.println(很抱歉你没抽到);break;}System.out.println(恭喜你你抽到了 520);count4;break;case 4:if (count5 1){System.out.println(很抱歉你没抽到);break;}System.out.println(恭喜你你抽到了 99999);count5;break;default:System.out.println(出错了请重试);break;}} else {System.out.println(请输入正确的键以开始抽奖);return;}}} } 可以看到代码十分冗余繁杂来看看老师是怎么实现的 下面有两种方案方案一和上面类似都存在效率低下可能多次重复寻找的问题。 方案一 数组中每个位置的值代表红包金额取的时候看该位置值是否为0是0则继续循环寻找不是0则取该数并将该位置的值置为0. 代码 public class test_01 {public static void main(String[] args) {int[] arr {9,666,188,520,99999};extractRedEnvelopes(arr);}public static void extractRedEnvelopes(int[] arr){System.out.println(有五个红包分别是966618852099999的);System.out.println(现在开始直播抽取红包);for (int i 0; i arr.length; i) {System.out.println(输入任意内容开始抢红包);Scanner sc new Scanner(System.in);sc.next();while (true){Random r new Random();int money r.nextInt(arr.length);if(arr[money] ! 0){System.out.println(恭喜你你抢到了arr[money]);arr[money] 0;break;}else{System.out.println(抱歉你没抢到);}}}} } 方案二 可以将初始红包的顺序打乱也就是将数组中的数据顺序打乱然后根据先来后到分配给抢红包的用户这样有多少个红包就是分发多少次不会出现重复查找效率低下的情况。 那么关键就在于打乱数组数据可以依次遍历数组元素根据随机索引调换数据位置以达到打乱数据的效果。 代码 public class test_01 {public static void main(String[] args) {extractRedEnvelopes();}public static void extractRedEnvelopes(){System.out.println(有五个红包分别是966618852099999的);System.out.println(现在开始直播抽取红包);System.out.println(输入任意内容开始抽取);int[] arr {9,666,188,520,99999};disruptingData (arr); //打乱数组数据Scanner sc new Scanner(System.in);sc.next();for (int i 0; i arr.length; i) {System.out.println(恭喜(i1)号观众,你抽到了arr[i]);}}public static void disruptingData(int[] arr){Random r new Random();for (int i 0; i arr.length; i) {int ran r.nextInt(arr.length);int tmp arr[i];arr[i] arr[ran];arr[ran] tmp;}} } 案例七找素数的三种方法 我的思考 素数是除了1和自己本身其他数都不能整除的数。那么就依次遍历101~200的每个数用2~ (i-1)的数去尝试能否被整除不能就是素数。 我的代码 public class test_01 {public static void main(String[] args) {findingPrimeNumbers();}public static void findingPrimeNumbers(){int[] arr new int[100];int k 0;for (int i 101; i 200; i) {int flag 1;for(int j 2; j i-1; j){if(i % j 0) {flag 0;break;}}if(flag 1) arr[k] i;}System.out.println(Arrays.toString(arr));} }这段代码效率低因为进行了多余操作其实不用将 2~ (i-1的数都试一遍的只需要一半的数字足矣。 下面来看一下老师的代码 public class test_01 {public static void main(String[] args) {System.out.println(请输入要查找的素数范围);Scanner sc new Scanner(System.in);int start sc.nextInt();int end sc.nextInt();int count findingPrimeNumbers(start,end);System.out.println(素数的个数为 count);}public static int findingPrimeNumbers(int start,int end) {assert (start 0 end 0 start end);int count 0;for (int i start; i end; i) {boolean flag true;for (int j 2; j i / 2; j) {if (i % j 0) {flag false;break;}}if (flag true) {System.out.println(素数有 i );count;}}return count;} }方案三 public class test_01 {public static void main(String[] args) {System.out.println(请输入要查找的素数范围);Scanner sc new Scanner(System.in);int start sc.nextInt();int end sc.nextInt();for(int i start;i end; i){if(findingPrimeNumbers(i)) System.out.println(i是素数);}}public static boolean findingPrimeNumbers(int num) {for(int i 2;i num/2; i){if(num % i 0) return false;}return true;} 这种方案就是先建立一个判断是否为素数的方法来一个数就放到该方法中判断更加方便也更贴近工作中编程的思想。 案例八打印乘法口诀表 我的思考 主要是注意一个格式内层循环外层循环的嵌套。外层行内层列。 我的代码  public class test_01 {public static void main(String[] args) {for(int i 1;i 9;i){for(int j 1;j i;j){System.out.print(j * i i*j );}System.out.println();}} } 案例九打印三角形 我的思考 第一行3空格 1星 第二行2空格3星 第三行1空格5星 第四行0空格7星 我的代码 public class test_01 {public static void main(String[] args) {for(int i 1;i 4;i){for(int j 1;j (4-i);j){System.out.print( );}for (int j i; j (2*i-1) ; j) {System.out.print(*);}System.out.println();}} } 案例十模拟双色球 我的思考 如上图所示三色球的实现需要三个方法用户投注号码中奖标准号码判断中几等奖。 可以将投注号码和中奖号码存在数组中返回最终比较投注号码和中奖号码以判断中奖情况。 我的代码 第一次理解错了以为是每一等中奖号码要手动输入麻烦了很多。 public class test_01 {public static void main(String[] args) {int[] userNumbers userSelectNumbers();String[] luckNumbers creatLuckNumbers();judge(userNumbers,luckNumbers);}public static int[] userSelectNumbers(){int[] userNumbers new int[7];System.out.println(请输入你的投注号码前6位1~33最后一位1~16);Scanner sc new Scanner(System.in);for (int i 0; i userNumbers.length; i) {userNumbers[i] sc.nextInt();assert(userNumbers[i] 0 userNumbers[i] 34);assert (userNumbers[6] 0 userNumbers[6] 17);}return userNumbers;}public static String[] creatLuckNumbers(){String[] luckNumbers new String[9];int[] eachNumbers new int[7];for (int k 0; k luckNumbers.length; k) {System.out.println(请输入第(k1)级中奖号码);Scanner sc new Scanner(System.in);for (int i 0; i eachNumbers.length; i) {eachNumbers[i] sc.nextInt();assert(eachNumbers[i] 0 eachNumbers[i] 34);assert (eachNumbers[8] 0 eachNumbers[8] 17);}luckNumbers[k] Arrays.toString(eachNumbers);System.out.println((k1)级中奖号码是 Arrays.toString(eachNumbers));}return luckNumbers;}public static void judge(int[] userNumbers,String[] luckNumbers){for(int i 0;i luckNumbers.length;i){if(Arrays.toString(userNumbers).equals(luckNumbers[i])){switch (i){case 0:System.out.println(恭喜你中了一等奖);break;case 1:System.out.println(恭喜你中了二等奖);break;case 2,3:System.out.println(恭喜你中了三等奖);break;case 4,5:System.out.println(恭喜你中了四等奖);break;case 6,7:System.out.println(恭喜你中了五等奖);break;case 8,9:System.out.println(恭喜你中了六等奖);break;}}else System.out.println(很抱歉你没中奖。);}} } 改正 public class test_01 {public static void main(String[] args) {int[] userNumbers userSelectNumbers();int[] luckNumbers creatLuckNumbers();judge(userNumbers,luckNumbers);}public static int[] userSelectNumbers(){int[] userNumbers new int[7];System.out.println(请输入你的投注号码前6位1~33最后一位1~16);Scanner sc new Scanner(System.in);for (int i 0; i userNumbers.length; i) {userNumbers[i] sc.nextInt();if(userNumbers[i] 1 || userNumbers[i] 33) {System.out.println(请输入合法的号码);System.exit(-1);}for(int j 0;j i;j){if(userNumbers[j] userNumbers[i]) {System.out.println(请勿输入同样的号码);break;}}}if(userNumbers[6] 1 || userNumbers[6] 16) {System.out.println(请输入合法的号码);System.exit(-1);}return userNumbers;}public static int[] creatLuckNumbers(){int[] luckNumbers new int[7];System.out.println(请输入中奖号码前6位1~33最后一位1~16);Scanner sc new Scanner(System.in);for (int i 0; i luckNumbers.length; i) {luckNumbers[i] sc.nextInt();if(luckNumbers[i] 1 || luckNumbers[i] 33){System.out.println(请输入合法的号码);System.exit(-1);}for(int j 0;j i;j) {if (luckNumbers[j] luckNumbers[i]) {System.out.println(请勿输入同样的号码);break;}}}if(luckNumbers[6] 1 || luckNumbers[6] 16) {System.out.println(请输入合法的号码);System.exit(-1);}return luckNumbers;}public static void judge(int[] userNumbers,int[] luckNumbers){int count 6, flag 1;for (int i 0; i userNumbers.length-1; i) {if(userNumbers[i] ! luckNumbers[i]) count--;}if(userNumbers[6] ! luckNumbers[6]) flag 0;switch(count){case 0,1:if(flag 1) System.out.println(恭喜你中了六等奖);else System.out.println(很抱歉你没有中奖);break;case 2,3:if(flag 1) System.out.println(恭喜你中了五等奖);else System.out.println(很抱歉你没有中奖);break;case 4:if(flag 1) System.out.println(恭喜你中了四等奖);else System.out.println(恭喜你中了五等奖);break;case 5:if(flag 1) System.out.println(恭喜你中了三等奖);else System.out.println(恭喜你中了四等奖);break;case 6:if(flag 1) System.out.println(恭喜你中了一等奖);else System.out.println(恭喜你中了二等奖);break;default:System.out.println(error);break;}} }
http://www.zqtcl.cn/news/16614/

相关文章:

  • 南昌房产网官网嘉兴网站建设优化
  • 网站报名照片怎么做大学两学一做专题网站
  • 服务平台网站设计提供网站建设工具
  • 代码做网站织梦wap网站模版
  • 国内便宜机票网站建设wordpress主题文件
  • 国外高端网站wordpress kalium
  • 上海嘉定网站建设公司塘厦医院
  • 包头市网站建设公司精品下载站
  • 网站在线建设wordpress填写
  • 专业的公司网站设计服务高端品质网站建设
  • 做家具网站海外 网站 推广
  • 设计网站需要哪些流程网站建设开发方式包括购买
  • 怎么建立图片的网站东莞网站推广哪家好信息
  • 网站建设行业努力都看不到效果python在线
  • 简单网站建设方案策划湖南响应式网站方案
  • 宁波网络营销服务优化是什么意思网络用语
  • 医学分类手机网站模版江小白采用的网络营销方式
  • 绵阳网站维护托管多个wordpress
  • 吉林省住房城乡建设网站怎样做网络推广在哪济南兴田德润什么活动
  • 小程序推广收费价目表网络优化工程师招聘信息
  • iis6 建设网站浏览可以做兼职笔译的网站
  • 做网站封面素材图机械网站建设公司推荐
  • 做网站要多少回扣广告营销
  • 怎么做网站企业文化栏目网站建设制作设计优化兰州
  • 电子商务网站建设实训过程网站开发指什么
  • 电子商务网站建设首要问题是个人音乐网站免费建设
  • 东莞商城网站建设哪家便宜网站怎么宣传
  • 国外html5游戏网站中国建设网上银行下载
  • 新加坡二手手机网站大全wordpress+关闭warning
  • 哪里有微信网站建设分类信息系统网站模板