A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 杨增坤 于 2013-11-17 16:44 编辑

此活动结束了,大家有不懂的地方可以参考一下其他人的代码,现在大家可以查看了!
第一题
       学生成绩分为四个等级:90~100:优,80~89:良,70~79:中,60~69:及格,0~60:不及格。   
         要求:   
             1.输入一个学生的成绩:例如 99,那么输出优。        
             2.输入成绩必须是整数,范围是0~100,超过范围或者输入的不是整数,要做相应的处理。   
             3.可以连续输入成绩,当输入over的时候,结束输入成绩


第二题
         从控制台字符串,将输入的字符串中的小写字母转换成大写字母,大写字母转换成小写字母,数字转换成#符号。
         要求:
            1.输入的必须只能包含数字和字母。
            2.输出的要求要清晰明了。
                 例如:abd12AN45Ngk
                     转换后的是:
                       ABD##an##nGK

注意:
        1.要使用注释把程序清晰的呈现出来。
        2.要把每个步骤的思路写出来。
        3.提交程序要注意排版或者打包。例如:张三.zip
        4.不要重复回帖。

评分要求:
          第一题:3分
          第二题:2分。
             要把所有功能全部实现,最好能使用多种方法来实现,做的完善的给满分,不完善的会根据做的程序给相应的分值。希望大家赶快行的起来吧,技术分在等着您呢。

                                   相信自己都是最棒的!!
                                 截止时间为本周日

111 个回复

正序浏览
问天 中级黑马 2013-11-20 15:16:45
61#
问天 发表于 2013-11-19 22:32
53楼 重新提交的  谢谢楼主

好的  谢谢楼主
回复 使用道具 举报
问天 中级黑马 2013-11-19 22:35:23
60#
杨增坤 发表于 2013-11-19 20:02
是你提交的吗,有一个人是提交的两份,我判了一份,一个是重复的!

我之前好像木有重复提交啊,耽误楼主时间了
回复 使用道具 举报
问天 中级黑马 2013-11-19 22:32:59
59#
53楼 重新提交的  谢谢楼主

周学君.zip

1.8 KB, 阅读权限: 100, 下载次数: 1

点评

希望你能写出你的思路,这样更有利于了解程序,考虑多种算法,继续加油!  发表于 2013-11-20 08:48

评分

参与人数 1技术分 +3 收起 理由
杨增坤 + 3

查看全部评分

回复 使用道具 举报
问天 中级黑马 2013-11-19 22:29:47
58#
杨增坤 发表于 2013-11-19 20:01
怎么查不到,你重新提交吧!

恩   好的
回复 使用道具 举报
问天 发表于 2013-11-19 16:32
楼主53楼的是不是忘记看了

是你提交的吗,有一个人是提交的两份,我判了一份,一个是重复的!
回复 使用道具 举报
问天 发表于 2013-11-19 16:32
楼主53楼的是不是忘记看了

怎么查不到,你重新提交吧!
回复 使用道具 举报
问天 中级黑马 2013-11-19 16:32:49
55#
楼主53楼的是不是忘记看了
回复 使用道具 举报
向阳泪无痕 来自手机 高级黑马 2013-11-18 02:40:58
54#
向阳泪无痕 发表于 2013-11-16 09:30
不好意思,第二题现在交上。。。望版主看看。

恩……好的,不过我写的在不按要求输入时,break   for循环结束。但while循环并没有结束啊!还可以继续输入的。嘿嘿……继续加油,早点进黑马。
回复 使用道具 举报
蜀仙 中级黑马 2013-11-17 16:39:56
53#
谢谢版主
回复 使用道具 举报
马明杨 发表于 2013-11-16 12:41
你好,这2提我都做了,都在同一个包下,

谢谢你,好人
回复 使用道具 举报
问天 中级黑马 2013-11-17 16:08:11
51#
已提交。。。。。。。。。。。

周学君.zip

1.8 KB, 阅读权限: 100, 下载次数: 1

回复 使用道具 举报
蜀仙 中级黑马 2013-11-17 15:54:43
50#
提交晚了, 今天才看见这个帖子

刘建国.zip

2.16 KB, 阅读权限: 100, 下载次数: 1

点评

写的不错,希望你继续努力,但是最好能用多种方法来思考,加油!  发表于 2013-11-17 16:37

评分

参与人数 1技术分 +4 收起 理由
杨增坤 + 4

查看全部评分

回复 使用道具 举报
已经答题,没得满分,给个做的好的参考下吧
回复 使用道具 举报
joure 高级黑马 2013-11-16 19:58:35
48#
第一题 思路:
首先判断输入的数据类型,如果为int型则正常输出结果,
如果为字符串,为"over"时退出程序,否则抛出错误
输出等级的判断可以用if语句,也可用switch语句,但是switch语句对于0~60区间的判断比较繁琐,所以使用if语句
我现在还挣扎在多线程,没学到io流这部分内容,第三个功能做的可能不完整,数据类型不知道怎么判断

java.util.Scanner;
public class TestChengji {
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入成绩");
                if (//判断数据类型为int)
                {               
                        int x = sc.nextInt();

                        if(x<0||x>100)
                                System.out.println("非法数值,请重新输入!");
                        else if(x>90&x<=100)
                                System.out.println("优秀");
                        else if(x>=80&x<90)
                                System.out.println("良好");
                        else if(x>=70&x<80)
                                System.out.println("中等");
                        else if(x>=60&x<70)sxxx
                                System.out.println("及格");
                        else
                                System.out.println("不及格");
                        continue;
                }               
                if (//判断数据类型为over)
                {
                        System.exit;//结束输入
                }
        }
}

第二题还是还要用到io流,写不出来,简单说一下思路吧:
限制输入的数据类型只能为数字和字母,否则抛出错误
逐个遍历字符串中的字符并判断数据类型,
如果是字母,参考ASCII表小写字母-32后输出,大写字母+32输出结果
如果是数字,输出#

总结:感觉自己不会的东西太多了,我要集中一切时间和精力追赶进度,争取早日进入黑马学习

点评

思清晰,单数注意排版,继续加油!  发表于 2013-11-17 12:51

评分

参与人数 1技术分 +2 收起 理由
杨增坤 + 2

查看全部评分

回复 使用道具 举报
上一个好像发失败了,重发一次

刘树军.zip

7.19 KB, 阅读权限: 100, 下载次数: 0

点评

上次的已经评分,这个重复了,  发表于 2013-11-17 12:57
请把你额那个失败的地址,发出来,  发表于 2013-11-17 12:50
回复 使用道具 举报
是否符合???

刘树军.zip

7.19 KB, 阅读权限: 100, 下载次数: 1

点评

已经找到,写的不错,希望你继续加油!  发表于 2013-11-17 12:54

评分

参与人数 1技术分 +4 收起 理由
杨增坤 + 4

查看全部评分

回复 使用道具 举报
  1. /*       
  2.         1.输入一个学生的成绩:例如 99,那么输出优。        
  3.     2.输入成绩必须是整数,范围是0~100,超过范围或者输入的不是整数,要做相应的处理。   
  4.     3.可以连续输入成绩,当输入over的时候,结束输入成绩
  5. */

  6. import java.io.BufferedReader;
  7. import java.io.IOException;
  8. import java.io.InputStreamReader;

  9. public class ScoreProcess {

  10.         public static void main (String[] args) {
  11.                 System.out.println("请输入0-100的整数...");
  12.                 while(true){
  13.                         BufferedReader bfr  = new BufferedReader(new InputStreamReader(System.in));
  14.                         int scoreValue = 0;
  15.                         String value = "";
  16.                         try {
  17.                                 value = bfr.readLine();
  18.                                 //"over"结束
  19.                                 if(value.equals("over")) {
  20.                                         System.out.println("退出!!!");
  21.                                         return;
  22.                                 } else if(value == null || value.equals("")) {
  23.                                         System.out.println("空值,请重新输入");
  24.                                 }
  25.                                 scoreValue = Integer.parseInt(value);
  26.                                 //处理成绩打印不同的级别
  27.                                 processScore(scoreValue);
  28.                         } catch (NumberFormatException e) {
  29.                                 System.out.println("格式不正确,numberFormat");
  30.                         } catch (IOException e) {
  31.                                 System.out.println("格式不正确,io");
  32.                         }
  33.                 }
  34.         }
  35.        
  36.         //处理成绩的方法
  37.         //按照不同的成绩打印相应的级别
  38.         public static void processScore(int score) {
  39.                 if(score <= 100 && score >= 0) {
  40.                         if (score < 60) {
  41.                                 System.out.println("不及格");
  42.                         } else if (score < 70) {
  43.                                 System.out.println("及格");
  44.                         } else if (score < 80) {
  45.                                 System.out.println("中");
  46.                         } else if (score < 90) {
  47.                                 System.out.println("良");
  48.                         } else {
  49.                                 System.out.println("优");
  50.                         }
  51.                 } else {
  52.                         System.out.println("成绩超过界限,请重新输入");
  53.                 }
  54.         }
  55. }



  56. import java.io.*;

  57. /*
  58. *  二。
  59. *  从控制台字符串,将输入的字符串中的小写字母转换成大写字母,大写字母转换成小写字母,数字转换成#符号。
  60. *  1.输入的必须只能包含数字和字母。
  61. *  2.输出的要求要清晰明了。
  62. *  
  63. *  思路:使用Character的方法进行判断
  64. *  思路2:使用对应的ASC码进行判断,并进行相应转换(未实现)
  65. *  
  66. *  65-90:A-Z
  67. *  97-122:a-z
  68. *  48-57:0-9
  69. */

  70. public class StringChangeTest {

  71.         public static void main(String[] args) {
  72.                 System.out.println("输入字母或数字,进行转换...");
  73.                 while(true) {
  74.                         BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in));
  75.                         try {
  76.                                 String value = bfr.readLine();
  77.                                 System.out.println(StringChange(value));
  78.                         } catch (IOException e) {
  79.                                 // TODO Auto-generated catch block
  80.                                 //e.printStackTrace();
  81.                         }
  82.                 }
  83.         }
  84.        
  85.         //对字符进行转换
  86.         public static String StringChange(String s) {  
  87.         if(s.equals("") || s == null) {
  88.             return "";  
  89.         } else if(s.equals("over")) {
  90.                 System.out.println("退出");
  91.                 System.exit(0);
  92.         }
  93.         //存储数据的容器
  94.         StringBuilder sb=new StringBuilder(s);  
  95.         String temp = null;  
  96.         for (int i = 0; i < s.length(); i++) {
  97.                 if(Character.isLowerCase(sb.charAt(i))) {  //判断是否是小写字母
  98.                 temp=s.substring(i, i+1).toUpperCase();//转换
  99.                 sb.replace(i, i+1, temp);                       //替换后存储(下同)
  100.             } else if(Character.isUpperCase(sb.charAt(i))) {   //判断是否是大写字母
  101.                 temp=s.substring(i, i+1).toLowerCase();  
  102.                 sb.replace(i, i+1, temp);  
  103.             } else if (Character.isDigit(sb.charAt(i))) {         //判断是否是数字
  104.                     sb.replace(i, i+1, "#");
  105.             } else {
  106.                     System.out.println("位置"+i+"无法处理的类型" + " '" + s.substring(i, i+1) + "'");
  107.             }
  108.         }
  109.         return sb.toString();  
  110.     }
  111. }
复制代码

点评

要能处理输入的异常,还可以循环,要把思路写清晰,继续加油!  发表于 2013-11-17 12:49

评分

参与人数 1技术分 +3 收起 理由
杨增坤 + 3

查看全部评分

回复 使用道具 举报
你好,这2提我都做了,都在同一个包下,
马明杨.rar (5.15 KB, 下载次数: 210)

点评

功能已经实现,希望你能都写出思路,设计不错,继续加油!  发表于 2013-11-17 12:47

评分

参与人数 1技术分 +3 收起 理由
杨增坤 + 3

查看全部评分

回复 使用道具 举报
雪龙 中级黑马 2013-11-16 12:16:37
43#
答题活动我来了

王林红.zip

5.18 KB, 下载次数: 184

答题活动

点评

做的不错,但是希望你能把做题思路和你的注释写清晰,集中写更好,继续加油!  发表于 2013-11-17 12:45

评分

参与人数 1技术分 +4 收起 理由
杨增坤 + 4

查看全部评分

回复 使用道具 举报
不好意思,第二题现在交上。。。望版主看看。
  1. /*
  2. 第二题
  3.       从控制台字符串,将输入的字符串中的小写字母转换成大写字母,大写字母转换成小写字母,数字转换成#符号。
  4.       要求:
  5.           1.输入的必须只能包含数字和字母。
  6.           2.输出的要求要清晰明了。

  7. 例如:abd12AN45Ngk  
  8. 转换后的是:  ABD##an##nGK


  9. 思路:
  10.         1,用IO流读出键盘录入的数据
  11.         2,把读到的字符串数据采用for循环取出每一个字符,并把每一个字符作出相应的转换
  12.         3,把转换后的字符依次加入缓冲池中
  13.         4,从缓冲池中输出转换结果
  14.         5,清空缓冲池(因为要多次使用,所以用完一次清空一次)
  15.         6,关闭流资源

  16. */
  17. import java.io.*;
  18. class StringText
  19. {
  20.         public static void main(String[] args) throws IOException
  21.         {
  22.                 text();
  23.         }
  24.         public static void text()
  25.         {
  26.                
  27.                 String s = null;  //用来保存IO流从控制台读到的数据
  28.                 BufferedReader bufr = null;  //加强读取效率
  29.                 StringBuffer sbuf = new StringBuffer(); //缓冲池,用来存转换后的字符
  30.                 try
  31.                 {
  32.                         while (true)
  33.                         {
  34.                                 //1,从控制台读取数据
  35.                                 bufr = new BufferedReader(new InputStreamReader(System.in)); //键盘录入
  36.                        
  37.                                 s = bufr.readLine();  //读取键盘录入的值,如读取失败则抛异常
  38.                                
  39.                                 if("over".equals(s) || "OVER".equals(s))  //输入over 程序结束
  40.                                         return;

  41.                                 //2,把读取到的字符串作相应的转换
  42.                                 for(int i=0;i<s.length();i++)
  43.                                 {
  44.                                         char chr = s.charAt(i);
  45.                                         if(chr>='a' && chr<='z')   //小写转大写
  46.                                                 chr -= 32;   
  47.                                         else if(chr>='A' && chr<='Z')  //大写转小写
  48.                                                 chr += 32;
  49.                                         else if(chr>='0' && chr<='9')  //数字转为#
  50.                                                 chr = '#';
  51.                                         else
  52.                                         {
  53.                                                 System.out.println("只能输入字母或数字!!!");
  54.                                                 sbuf.delete(0,sbuf.length()); //转换失败,清空缓冲区。
  55.                                                 break;
  56.                                         }
  57.                                        
  58.                                         //3,转换后存入到缓冲池中
  59.                                         sbuf.append(chr);  
  60.                                 }
  61.                
  62.                                 //4,如果缓冲区有数据,输出转换后的结果
  63.                                 if(sbuf.length()!=0)
  64.                                 {
  65.                                         System.out.println(sbuf.toString());

  66.                                         //5,清空缓冲区
  67.                                         sbuf.delete(0,sbuf.length()); //每转换一次结束后,清空缓冲池。
  68.                                 }                                                       
  69.                         }
  70.                 }
  71.                 catch (Exception e) //处理读取数据失败
  72.                 {
  73.                         System.out.println("读取数据失败");
  74.                 }
  75.                 finally
  76.                 {
  77.                         //6,关闭流资源
  78.                         try
  79.                         {
  80.                                 if(bufr!=null) //如果流成功创建才能正常关闭
  81.                                         bufr.close();
  82.                         }
  83.                         catch (IOException e)
  84.                         {
  85.                                 System.out.println("流关闭异常");
  86.                         }
  87.                 }                       
  88.         }
  89. }

复制代码

点评

在判断是否按照要求的输入,如果不符合,应该还可以继续输入,继续加油!  发表于 2013-11-17 12:42

评分

参与人数 1技术分 +2 收起 理由
杨增坤 + 2

查看全部评分

回复 使用道具 举报
1234下一页
您需要登录后才可以回帖 登录 | 加入黑马