您的位置:新葡亰496net > 奥门新萄京娱乐场 > 在Eclipse控制台中监听用户的键盘事件,PAT_乙级训

在Eclipse控制台中监听用户的键盘事件,PAT_乙级训

发布时间:2019-11-23 15:13编辑:奥门新萄京娱乐场浏览(165)

     编写一个控制台程序,输入一个日期,求下一天的日期。

    在Eclipse控制台中监听用户的键盘事件
    最近在用java编写模拟一个人力资源管理系统,是在控制台实现的。其中有某个功能需要用户输入日期。日期是年月日一起输入的,我想在用户输完年份之后,控制台自动为用户打印出一个短横杠帮助用户输入月份。但是前提是用户还没有按下回车。怎样在用户键盘输入的过程中监听到用户目前已经输入几个字符?有没有大神给点建议。

    PAT-B1036

    使命召唤2官方秘技

    来源:乐游整理 日期:2010/7/14 10:47:30 作者:乐游 962乐游网 → 首页 → 游戏资讯 → 业界动态 → 使命召唤2官方秘技

    [乐游网导读]游戏菜单的OPTIONGAME OPTION下的ENABLE CONSOLE选择YES,在菜单界面按~键打开控制台,输入developer 1。在游戏中按~键打开控制台输入

    游戏菜单的OPTIONGAME OPTION下的ENABLE CONSOLE选择YES,在菜单界面按~键打开控制台,输入developer 1。在游戏中按~键打开控制台输入

    god = 无敌

    give ammo = 满弹药

    give all = 武器 弹药 生命全满

    noclip = 穿墙

    notarget = 隐形

    kill = 自杀

    要求如下:
    在控制台输入一个日期(分别输入年、月、日),判断输入的日期是否有效,如果有效,计算该日期的下一天日期,并显示;否则,输出“无效的日期”后退出

    1. 题目再现

    美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!

    在Eclipse控制台中监听用户的键盘事件,PAT_乙级训练记录。输入格式:

    输入在一行中给出正方形边长N(3<=N<=20)和组成正方形边的某种字符C,间隔一个空格。

    输出格式:

    输出由给定字符C画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的50%(四舍五入取整)。

    输入样例:
    10 a

    输出样例:
    aaaaaaaaaa
    a                a
    a                a
    a                a
    aaaaaaaaaa

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 
     6 namespace Exp1
     7 {
     8     class Program
     9     {
    10         static void Main(string[] args)
    11         {
    12             Console.WriteLine("请输入一个日期:");
    13             string userInput = Console.ReadLine();
    14 
    15             DateTime inputDate;
    16             bool valid = DateTime.TryParse(userInput, out inputDate);
    17 
    18             if (valid)
    19                 Console.WriteLine(inputDate.AddDays(1).ToShortDateString());
    20             else
    21                 Console.WriteLine("无效的日期");
    22 
    23             Console.ReadKey();
    24         }
    25     }
    26 }
    

    2. 题目思考

    题目还是较为简单,主要掌握两个点:

    • 控制台输入内容转化为int,char数据
    • 发现输出规律

     

    3. 实现方式

    • c 实现

      #include<cstdio>
      int main()
      {
          int col, row;
          char str;
          scanf("%d %c", &col, &str);
      
          if(col % 2 == 0)
              row = col / 2;
          else 
              row = (col   1) / 2;
      
          for(int i = 0; i < row; i  )
          {
              for(int j = 0; j < col; j  )
              {
                  if(i == 0 || i == row - 1)
                  {
                      printf("%c", str);
                  }else
                  {
                      if(j == 0 || j == col - 1)
                      {
                          printf("%c", str);
                      }else{
                          printf(" ");
                      }
                  }
              }
              printf("n");
          }
          return 0;
      }
      

    作者:耑新新,发布于  博客园

    CodeUp-1934

    转载请注明出处,欢迎邮件交流:zhuanxinxin@foxmail.com

    1. 题目再现

    题目描述
    输入一个数n,然后输入n个数值各不相同,再输入一个值x,输出这个值在这个数组中的下标(从0开始,若不在数组中则输出-1)。

    输入
    测试数据有多组,输入n(1<=n<=200),接着输入n个数,然后输入x。

    输出
    对于每组输入,请输出结果。

    样例输入
    4
    1 2 3 4
    3
    样例输出
    2

    2. 题目思考

    题目还是较为简单,主要掌握一个点:

    • 控制台输入内容转化为int数据

    3. 实现方式

    • c 实现

      #include <cstdio>
      int main()
      {
          int size;
          scanf("%d", &size);
      
          int arr[size] = {0};
          for(int i = 0; i < size; i  )
          {
              scanf("%d", &arr[i]);
          }
      
          int target;
          scanf("%d", &target);
      
          for(int i = 0; i < size; i  )
          {
              if(arr[i] == target)
              {
                  printf("%dn", i);
                  break;          
              }
      
              if(i == (size - 1) && arr[i] != target){
                  printf("-1n");
              }
          }   
          return 0;   
      } 
      

    CodeUp-1928

    1. 题目再现

    题目描述
    有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天。

    输入
    有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD

    输出
    每组数据输出一行,即日期差值

    样例输入
    20130101
    20130105

    样例输出
    5

    2. 题目思考

    题目还是较为复杂,主要掌握两个点:

    • 控制台输入内容转化为int数据
    • 搞清楚闰年平年,怎么计算

    3. 实现方式

    • c 实现

      #include<cstdio>
      
      int disFromFirstDay(int year, int month, int day);
      bool isCommonYear(int year);
      
      int arr[13][2] = {{0, 0}, {31, 31}, {28, 29}, {31, 31}, {30, 30}, {31, 31}, {30, 30}, {31, 31}, {31, 31}, {30, 30}, {31, 31}, {30, 30}, {31, 31}};
      
      int main()
      {
          int startDate, endDate;
          scanf("%d", &startDate);
          scanf("%d", &endDate);  
      
          int startDisNum = disFromFirstDay(startDate / 10000, (startDate % 10000) / 100, startDate % 100);
          int endDisNum = disFromFirstDay(endDate / 10000, (endDate % 10000) / 100, endDate % 100);
          //printf("%d:%dn", startDisNum, endDisNum);
          int sumDays = 0;
          for(int i = startDate / 10000; i < endDate / 10000; i  )
          {
              if(isCommonYear(i))
              {
                  sumDays  = 366;
              }else{
                  sumDays  = 365;
              }
          }
          sumDays = sumDays   endDisNum - startDisNum   1;
      
          printf("%dn", sumDays);
      
          return 0;
      }
      
      int disFromFirstDay(int year, int month, int day)
      {
          int sumDays = 0;
          if(isCommonYear(year))
          {
              for(int i = 1; i < month; i  )
              {
                  sumDays  = arr[i][1];
              }
              sumDays  = day;
          }else
          {
              for(int i = 1; i < month; i  )
              {
                  sumDays  = arr[i][0];
              }
              sumDays  = day;
          }
          return sumDays;
      }
      
      bool isCommonYear(int year)
      {
          return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
      }
      

    本文由新葡亰496net发布于奥门新萄京娱乐场,转载请注明出处:在Eclipse控制台中监听用户的键盘事件,PAT_乙级训

    关键词: