【安利Java零基础】评委打分、超市收银管理【案例】

简介: 【安利Java零基础】评委打分、超市收银管理【案例】

🐋评委打分


题干:在编程竞赛中,有6个评委为参赛的选手打分,打分的分数范围为0-100的整数分。

选手的最后得分规则为:

去掉一个最高分,再去掉一个最低分,

其余4个分数的平均值就是选手最终分数。(不考虑小数部分)

打印结果如下:


今日(20xx-xx-xx)6位评委的分数分别为:93、24、54、78、99、69


去掉一个最高分99、去掉一个最低分24


最终得分为:73.5分


建议日期补0


分析:

定义6个Int变量保存随机数

随机数范围 0~100  包含0,包含100

最终分数 = (6个数的和-最高分-最低分)/4.0

设置年:Year+1900 ,设置月: month+1

补0:   x<=9?”0”+x:x+”” ;

代码实现:

public static void main(String[] args) {
    //1、数据准备
    //1.1、定义int变量保存评委分、最高分、最低分
    int p1,p2,p3,p4,p5,p6,max=Integer.MIN_VALUE,min=Integer.MAX_VALUE;
    //1.2、定义随机数变量
    Random r = new Random();
    //1.3、定义变量保存最终得分
    double finalScore;
    //1.4、定义变量保存日期
    Date d = new Date();
    //1.5、定义变量保存拼接后的日期字符串
    String dateStr="";
    //1.6、定义字符串,保存最终展示的所有内容
    String result="";
    //2、数据运算
    //2.1、生成6个随机分数保存到评分中
    p1 = r.nextInt(101);
    p2 = r.nextInt(101);
    p3 = r.nextInt(101);
    p4 = r.nextInt(101);
    p5 = r.nextInt(101);
    p6 = r.nextInt(101);
    //System.out.println(p1+"\t"+p2+"\t"+p3+"\t"+p4+"\t"+p5+"\t"+p6);
    //2.2、计算最高分
    max = max>=p1?max:p1;
    max = max>=p2?max:p2;
    max = max>=p3?max:p3;
    max = max>=p4?max:p4;
    max = max>=p5?max:p5;
    max = max>=p6?max:p6;
    //System.out.println(max);
    //2.3、计算最低分
    min = min<=p1?min:p1;
    min = min<=p2?min:p2;
    min = min<=p3?min:p3;
    min = min<=p4?min:p4;
    min = min<=p5?min:p5;
    min = min<=p6?min:p6;
    //System.out.println(min);
    //2.4、计算最终得分
    finalScore = (p1+p2+p3+p4+p5+p6-max-min)/4.0;
    //System.out.println(finalScore);
    //2.5、计算年月日字符串
    dateStr+=d.getYear()+1900+"-";
    dateStr+=(d.getMonth()+1)<=9?"0"+(d.getMonth()+1)+"-":(d.getMonth()+1)+"-";
    dateStr+=d.getDate()<=9?"0"+d.getDate():d.getDate()+"";
    //System.out.println(dateStr);
    //2.6、拼接最终展示效果
    result+="今日("+dateStr+")6位评委的分数分别为:"+p1+"、"+p2+"、"+p3+"、"+p4+"、"+p5+"、"+p6+"\r\n";
    result+="去掉一个最高分"+max+"、去掉一个最低分"+min+"\r\n";
    result+="最终得分为:"+finalScore+"分";
    //3、结果展示
    System.out.println(result);
}

60f8da3ee0c3479eb046a8b19fac6138.png


🐋超市收银管理(V3)

1)需求说明

模拟真实购物逻辑,以下述图片为需求原型,根据不同购物物品完成购物小票内容打印到控制台。

90f514ad7da94a6a9227b42099c9b9f9.png

cde08b960b114a48a59e07ed1675b0f0.png

🌲 知识讲解—多位补0操作

两位数补0:  x<=9?"0"+x:x+"";

多位数补0:代码实现

public static void main(String[] args) {
    //多位补0
    //不足6位 补0
    int r = 9;//
    String result1;
    //两种补0方式:int (不建议,繁琐)
    //10000~99999   补一个0
    //1000~9999 补两个0
    //100~999 补三个0
    //10~99 补四个0
    //0~9 补五个0
    result1 = (r>=10000&&r<=99999)?"0"+r:(
                (r>=1000&&r<=9999)?"00"+r:(
                        (r>=100&&r<=999)?"000"+r:(
                                (r>=10&&r<=99)?"0000"+r:(
                                        (r>=0&&r<=9)?"00000"+r:r+""
                                        )
                                )
                        )
                );
    System.out.println(result1);
    System.out.println("-----------------");
    //两种补0方式:String
    String str = "599999";
    //.length() ==5   补1个0
    //.length() ==4   补2个0
    //.length() ==3   补3个0
    //.length() ==2   补4个0
    //.length() ==1   补5个0
    String result = str.length()==5?"0"+str:(
                        str.length()==4?"00"+str:(
                                str.length()==3?"000"+str:(
                                        str.length()==2?"0000"+str:(
                                                str.length()==1?"00000"+str:str
                                                )
                                        )
                                )
                    );
    System.out.println(result);
}

🌲 超市收银管理—代码实现

public static void main(String[] args) {
    //1、----展示所有商品信息
    //1.0、定义Random、Scanner变量
    Random r = new Random();
    //接收数字
    Scanner sc1 = new Scanner(System.in);
    //接收字符串
    Scanner sc2 = new Scanner(System.in);
    //1.1、定义变量,保存商品信息
    String pid1,pid2,pid3,
            pname1,pname2,pname3;
    double price1,price2,price3;
    int num1,num2,num3;
    //1.2、控制台信息录入
    System.out.println("\t\t欢迎进入超市收银管理V3");
    System.out.println("首先,请输入所有的商品信息:");
    System.out.println("请输入第一个商品的名称:");
    pname1 = sc2.nextLine();
    System.out.println("请输入第一个商品的售价:");
    price1=sc1.nextDouble();
    System.out.println("请输入第二个商品的名称:");
    pname2 = sc2.nextLine();
    System.out.println("请输入第二个商品的售价:");
    price2=sc1.nextDouble();
    System.out.println("请输入第三个商品的名称:");
    pname3 = sc2.nextLine();
    System.out.println("请输入第三个商品的售价:");
    price3=sc1.nextDouble();
    //1.3、pid编号生成
    pid1=r.nextInt(100000)+"";
    pid2=r.nextInt(100000)+"";
    pid3=r.nextInt(100000)+"";
    pid1= pid1.length()==5?"0"+pid1:(
            pid1.length()==4?"00"+pid1:(
                    pid1.length()==3?"000"+pid1:(
                            pid1.length()==2?"0000"+pid1:(
                                    pid1.length()==1?"00000"+pid1:pid1
                            )
                    )
            )
    );
    pid2= pid2.length()==5?"0"+pid2:(
            pid2.length()==4?"00"+pid2:(
                    pid2.length()==3?"000"+pid2:(
                            pid2.length()==2?"0000"+pid2:(
                                    pid2.length()==1?"00000"+pid2:pid2
                            )
                    )
            )
    );
    pid3= pid3.length()==5?"0"+pid3:(
            pid3.length()==4?"00"+pid3:(
                    pid3.length()==3?"000"+pid3:(
                            pid3.length()==2?"0000"+pid3:(
                                    pid3.length()==1?"00000"+pid3:pid3
                            )
                    )
            )
    );
    //1.4、第一次数据展示
    System.out.println("编号\t\t品名\t\t\t售价");
    System.out.println(pid1+"\t\t"+pname1+"\t\t"+price1);
    System.out.println(pid2+"\t\t"+pname2+"\t\t"+price2);
    System.out.println(pid3+"\t\t"+pname3+"\t\t"+price3);
    //2、----计算并展示小票信息
    //2.0、定义日期
    Date d = new Date();
    String dateStr = "";
    //2.1、定义变量,保存商品信息,保存统计信息,定义Scanner变量
    double count1,count2,count3,total;
    int totalNum;
    //2.2、接收商品购买数量
    System.out.println("请您输入"+pid1+"购买数量");
    num1=sc1.nextInt();
    System.out.println("请您输入"+pid2+"购买数量");
    num2=sc1.nextInt();
    System.out.println("请您输入"+pid3+"购买数量");
    num3=sc1.nextInt();
    //2.3、计算数据
    count1 = price1*num1;
    count2 = price2*num2;
    count3 = price3*num3;
    total=count1+count2+count3;
    totalNum = num1+num2+num3;
    //2.4、拼接年月日、时分秒
    dateStr+=(d.getYear()+1900)+"-";
    dateStr+=((d.getMonth()+1)<=9?"0"+(d.getMonth()+1):(d.getMonth()+1))+"-";
    dateStr+=(d.getDate()<=9?"0"+d.getDate():d.getDate())+" ";
    dateStr+=(d.getHours()<=9?"0"+d.getHours():d.getHours())+":";
    dateStr+=(d.getMinutes()<=9?"0"+d.getMinutes():d.getMinutes())+":";
    dateStr+=d.getSeconds()<=9?"0"+d.getSeconds():d.getSeconds();
    //2.4、展示
    System.out.println("\t\t欢  迎  光  临");
    System.out.println("\t\t编号\t\t品名\t\t售价\t\t数量\t\t金额");
    System.out.println("-\t-\t-\t-\t-\t-\t-\t-\t");
    System.out.println("\t\t"+pid1+"\t\t"+pname1+"\t"+price1+"\t\t\t"+num1+"\t\t\t"+count1);
    System.out.println("\t\t"+pid2+"\t\t"+pname2+"\t"+price2+"\t\t\t"+num2+"\t\t\t"+count2);
    System.out.println("\t\t"+pid3+"\t\t"+pname3+"\t"+price3+"\t\t\t"+num3+"\t\t\t"+count3);
    System.out.println("-\t-\t-\t-\t-\t-\t-\t-\t");
    System.out.println("\t\t3 项商品\t\t共计:"+totalNum+"件");
    System.out.println("\t\t总计:"+total);
    System.out.println("\t\t"+dateStr);
    System.out.println("凭此小票换取发票!");
}

0ceafd42057646c1bb9d6a25e332436e.png


相关文章
|
1月前
|
jenkins Java 测试技术
如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例详细说明
本文介绍了如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例,详细说明了从 Jenkins 安装配置到自动构建、测试和部署的全流程。文中还提供了一个 Jenkinsfile 示例,并分享了实践经验,强调了版本控制、自动化测试等关键点的重要性。
73 3
|
1月前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
66 2
|
1月前
|
Java 关系型数据库 数据库
面向对象设计原则在Java中的实现与案例分析
【10月更文挑战第25天】本文通过Java语言的具体实现和案例分析,详细介绍了面向对象设计的五大核心原则:单一职责原则、开闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些原则帮助开发者构建更加灵活、可维护和可扩展的系统,不仅适用于Java,也适用于其他面向对象编程语言。
38 2
|
2月前
|
Java 数据库
案例一:去掉数据库某列中的所有英文,利用java正则表达式去做,核心:去掉字符串中的英文
这篇文章介绍了如何使用Java正则表达式从数据库某列中去除所有英文字符。
58 15
|
2月前
|
安全 Java
Java多线程通信新解:本文通过生产者-消费者模型案例,深入解析wait()、notify()、notifyAll()方法的实用技巧
【10月更文挑战第20天】Java多线程通信新解:本文通过生产者-消费者模型案例,深入解析wait()、notify()、notifyAll()方法的实用技巧,包括避免在循环外调用wait()、优先使用notifyAll()、确保线程安全及处理InterruptedException等,帮助读者更好地掌握这些方法的应用。
25 1
|
2月前
|
jenkins Java 测试技术
如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例详细说明
【10月更文挑战第8天】本文介绍了如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例,详细说明了从 Jenkins 安装配置到自动构建、测试和部署的全流程。文中还提供了一个 Jenkinsfile 示例,并分享了实践经验,强调了版本控制、自动化测试等关键点的重要性。
43 5
|
2月前
|
分布式计算 NoSQL Java
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
56 2
|
2月前
|
Java C#
Java的监听处理事件--小球移动案例
Java的监听处理事件--小球移动案例
19 0
|
4月前
|
人工智能 Java 定位技术
人工智能ChatGPT 体验案例:使用ChatGPT实现java扫雷小游戏
这篇文章通过一个使用ChatGPT实现的Java扫雷小游戏案例,展示了ChatGPT在编程领域的应用能力。文章中包含了扫雷游戏的Java代码实现,代码中初始化了雷区地图,随机放置雷,计算每个格子周围雷的数量,并提供了一个简单的文本界面与用户交互进行游戏。游戏通过控制台输入接受玩家的指令,并给出相应的反馈。
人工智能ChatGPT 体验案例:使用ChatGPT实现java扫雷小游戏
|
4月前
|
监控 算法 安全
Java并发编程案例分析:死锁的检测与解决
Java并发编程案例分析:死锁的检测与解决
43 2