Java之数组

一、实验目的

    (1) 掌握Java一维数组的应用方法。

    (2) 掌握Java二维数组的应用方法。

    (3) 理解冒泡排序方法。

二、实验原理

       数组是用一个标识符(变量名)和一组小标代表一组具有相同数据类型的数据元素的集合,使用数组能大规模存储临时需要处理的数据,它的每个元素都是类型相同的变量,采用循环结构语句能简化对数组的操作。

  1. 一维数组---声明、初始化及使用
  2. 二维数组
  3. foreach语句
  4. 不规则数组

三、主要实验内容及步骤

        某手机销售店新进一批手机如表4-1所示。完成如下任务: (1) 建立控制台菜单如图4-1所示; (2) 选择“显示”之后,显示手机的序号,品牌名,数量,单价和小计; (3) 选择“按单价排序”之后,按照单价从高到低的排序,同时手机品牌也做相应调整; (4) 选择“查询”之后,输入手机品牌,输出该品牌的信息包括品牌名、数量、单价和小计。

表4-1  手机信息

序号

手机品牌

数量

单价

小计

1

华为

10

3500

35000

2

小米

20

2100

42000

3

VIVO

17

2800

47600

4

OPPO

8

1355

10840

四、实验程序及调试记录

package jsu.stu;

import java.util.Scanner;

public class Demo24 {
    static class Phone{
        int id;
        String brand;
        int quantity;
        int price;
        int subTotal;

        public Phone(int id, String brand, int quantity, int price, int subTotal){
            this.id=id;
            this.brand=brand;
            this.quantity=quantity;
            this.price =price;
            this.subTotal=subTotal;
        }

    }
    public static void main(String[] args) {
        Phone[] phones={
                new Phone(1,"华为  ",10,3500,35000),
                new Phone(2,"小米  ",20,2100,42000),
                new Phone(3,"VIVO",17,2800,47600),
                new Phone(4,"OPPO",8,1355,10840)
        };
        Scanner scanner=new Scanner(System.in);
        while(true){
            System.out.println("*********手机销售管理*********");
            System.out.println("----1、显示--------2、按单价排序----");
            System.out.println("----3、查询--------0、退出----");
            System.out.println("请输入功能代码(0——3)");
            int choice=scanner.nextInt();
            switch(choice){
                case 1:
                    displayPhones(phones);
                    break;
                case 2:
                    sortByPrice(phones);
                    displayPhones(phones);
                    break;
                case 3:
                    System.out.println("请输入要查询的手机品牌:");
                    String brandToQuery=scanner.next();
                    queryPhone(phones,brandToQuery);
                    break;
                case 0:
                    return;
                default:
                    System.out.println("无效选择");
            }
        }
    }
    public static void displayPhones(Phone[] phones){
        System.out.println("序号\t手机品牌\t数量\t单价\t小计");
        for(Phone phone:phones){
            System.out.println(phone.id+"\t"+phone.brand+"\t"+phone.quantity+"\t"+phone.price+"\t"+phone.subTotal);
        }
    }
    public static void sortByPrice(Phone[] phones){
        for(int i=0;i<phones.length-1;i++){
            for(int j=0;j<phones.length-i-1;j++){
                if(phones[j].price<phones[j+1].price){
                    Phone temp=phones[j];
                    phones[j]=phones[j+1];
                    phones[j+1]=temp;
                }
            }
        }
    }
    public static void queryPhone(Phone[] phones,String brand){
        for(Phone phone:phones){
            if(phone.brand.equals(brand)){
                System.out.println("品牌:"+phone.brand+",数量:"+phone.quantity+",单价:"+phone.price+",小计:"+phone.subTotal);
                return;
            }
        }
        System.out.println("未找到该品牌的手机");
    }
}

运行结果:

五、结果分析及问题讨论

程序启动后:控制台会显示菜单,提供了“显示”“按单价排序”“查询”和“退出”四个选项。

选择“显示”:会按照表格顺序输出每部手机的序号、品牌名、数量、单价和小计的详细信息。

选择“按单价排序”:程序会根据单价从高到低对手机信息进行排序,并且品牌也会跟随单价相应调整。之后会显示排序后的手机信息。

选择“查询”:当输入一个手机品牌后,程序会查找数组中是否存在该品牌的手机。如果找到,就输出该品牌手机的品牌名、数量、单价和小计等信息;如果未找到,则提示未找到该品牌的手机。

总之,这个程序通过数组来存储和管理手机信息,利用不同的操作选项来满足对手机信息的各种查看和处理需求,逻辑清晰,功能明确。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值