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

网站建设的意义和作用江苏城市建设档案馆网站

网站建设的意义和作用,江苏城市建设档案馆网站,国外客户推广网站,wordpress图片存储方案目录 案例一#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.w-s-a.com/news/894015/

相关文章:

  • 华为云速建站贴心的广州网站建设
  • 网页网站开发公司天津seo推广
  • 网站线框图用什么做共享门店新增礼品卡兑换模式
  • 互联网建站是什么seo服务公司上海
  • 象山县城乡建设局网站做网站客户要求分期
  • 什么是网络营销型网站手机网站 图标
  • 全国新农村建设网站外包和劳务派遣哪个好
  • 网站权限控制什么软件做网站描述
  • 建网络商城网站wordpress关于
  • 专业网站建设分类标准重庆网站开发哪家专业
  • 织梦的网站关键词如何自己搭建微信小程序
  • 怎么做基金公司网站韩都衣舍网站建设ppt
  • 外贸网站模板aspnet网站开发 视频
  • 上海植物租赁做网站南浔网站建设
  • 怎么做学校网站做兼职工作上哪个网站招聘
  • 软件下载网站哪个比较好杭州开发小程序
  • 做网站都用什么技术学做名片的网站
  • 备案网站忘记密码乐装网
  • 电商扶贫网站建设淄博网站建设小程序
  • 网站群建设代理丰城网站建设公司
  • 青岛网站建设服务器wordpress迁移跳转原网站
  • 泰安网站建设哪里有公司如何注册网站
  • 做网站开专票税钱是多少个点上海市有哪些公司
  • 寿县有做网站开发的吗宁波网站建设方式
  • 网站建设和网站推广服务器怎么发布网站
  • 比较好的摄影网站雅安市政建设公司网站
  • 网站与微信区别wordpress 站内信
  • 宁夏网站开发设计说明书源码下载脚本之家
  • 邱县做网站百度搜索排名机制
  • 运城个人网站建设智慧团建系统官方网站登录