lintianana 2021-08-21 14:44 采纳率: 42.9%
浏览 98
已结题

求一个输入几个年份之后,然后自动输出最早最晚和平均年份的java代码

第1部分

用Years.Java编写一个Java程序。程序将从标准输入读取一系列数字,然后输出到标准输出。每个号码都将输入到自己的行中。第一个数字ii表示将输入的年数。随后的每个数字代表一年。一旦进入第二年,程序应输出以下内容(用年平均值的下限替换<平均值>,<最早>替换最早年份,<最晚>替换最晚年份):

如果用户没有为ii输入数字,程序应输出“无效年数”并退出。如果年数小于1年或大于5年,则应产生相同的输出。

如果用户未输入年份,程序应输出“非年份”并退出。如果年份早于0,程序应输出“年份不能早于0”并退出。如果年份在2021年之后,程序应输出“年份尚未发生”并退出。

该程序应该能够用javac Years.java编译并用java Years执行。

第2部分:Bash脚本

为了演示编译和运行Java代码的能力,以及基本Unix命令的知识,必须提供一个名为run.sh的文件。此文件应包含执行以下操作的命令:

将文件sample.im重命名为sample.in

编译Years.java

运行年份,无命令行参数,从新重命名的sample.in输入管道

删除文件Years.class

打印到终端“成功”

要在本地测试脚本,请运行sh run.sh。

如果需要刷新各种Unix命令,这将提供所有可用命令的列表,手册页(可通过终端使用man访问)提供有关如何使用这些命令的详细说明。

请注意,您不需要对丢失的文件等执行任何错误处理。脚本应该只为上面的每个步骤运行相应的命令,假设前一个步骤能够正确执行。

  • 写回答

4条回答 默认 最新

  • greatofdream 2021-08-21 23:48
    关注

    这两个问题都很简单,尤其是第二个
    years · master · greatofdream / javaexample · CODE CHINA CODE CHINA——开源代码托管平台,独立第三方开源社区,Git/Github/Gitlab https://codechina.csdn.net/zaq15csdn/javaexample/-/tree/master/years
    一共三份文件,sample.im是作为样例输入,你可以直接克隆我的仓库,我把除了输入的代码放在下面

    import java.util.Scanner;
    public class Years{
            public static void main(String[] args){
                    System.out.println("Please input the number of Years");
                    Scanner scan = new Scanner(System.in);
                    int n;
                    if(scan.hasNextInt()){
                            n = scan.nextInt();
                            if((n<1)||(n>5)){
                                    System.out.println("无效年数");
                                    return;
                            }
                    }else{
                            System.out.println("无效年数");
                            return;
                    }
                    int[] years = new int[n];
                    int maxy=0;
                    int miny=2021;
                    double meany=0;
                    for(int i=0;i<n;i++){
                            System.out.println(i+"th");
                            if(scan.hasNextInt()){
                                    years[i] = scan.nextInt();
                                    if(years[i]<0){
                                            System.out.println("年份不能早于0");
                                            return;
                                    }else if(years[i]>2021){
                                            System.out.println("");
                                            return;
                                    }else{
                                            if(years[i]>maxy)
                                                    maxy = years[i];
                                            if(years[i]<miny)
                                                    miny = years[i];
                                            meany += years[i];
                                    }
                            }else{
                                    System.out.println("非年份");
                                    return;
                            }
                    }
                    System.out.println("平均值"+(int)Math.floor(meany/n));
                    System.out.println("最早"+miny);
                    System.out.println("最晚"+maxy);
                    return;
            }
    }
    
    mv sample.im sample.in
    javac Years.java
    cat sample.in|java Years
    rm Years.class
    echo "成功
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 8月30日
  • 已采纳回答 8月22日
  • 赞助了问题酬金 8月21日
  • 创建了问题 8月21日

悬赏问题

  • ¥20 画CAD几张图片内容如下1111111111111111111111111111111111111111111
  • ¥15 基于python的电影系统推荐
  • ¥20 springmvc重定向和返回json
  • ¥15 数学建模——参会安排怎么做
  • ¥15 电脑键盘实现触摸功能
  • ¥25 matlab无法将表达式转换为双数组怎么解决?
  • ¥15 单片机汇编语言相关程序
  • ¥20 家用射频美容仪技术规格
  • ¥15 大家帮我看看为什么错了
  • ¥15 unity互动琴弦抖动效果