JAVA实验作业——类与对象

一不小心,又一次在这个时间段感冒了…效率是真的低的离谱……没有发热,应该不用隔离吧…怕了…
在这里插入图片描述

类与对象

实验目的

1. 熟练掌握如何自定义一个类。
2. 熟练掌握如何创建对象以及调用对象的成员变量和成员方法。
3. 掌握方法调用时参数的传递。

主要仪器设备及耗材

主要仪器设备及耗材

实验内容

实验一
  1. 通过对现实中手机进行分析,设计一个手机类 Phone。该类包括手机的基本属性(如: 品牌brand、型号type、操作系统os等)和基本功能(如:显示设备信息info( )、拨 号call( String number)等))。另外,编写类TestPhone创建手机类Phone的对象, 并测试各项功能。
public class Phone{
      
 
【补充代码】
 
 
} public class TestPhone{
      
 
【补充代码】
 
 
}

CODE
JAVA实验作业——类与对象_第1张图片

import java.util.*;
/**
 * @Author XT
 * @email [email protected]
 * @date 2020/09/28 14:20
 */
class Phone{
     
        String brand,type,os,number;
        void info(){
     
            System.out.println("当前手机品牌为:"+brand);
            System.out.println("当前手机型号为:"+type);
            System.out.println("当前手机操作系统为:"+os);
            System.out.println("当前手机卡号为:"+number);
        }
        void call(){
     
            System.out.println("正在呼叫电话号码:"+number);
        }
    }
class TestPhone{
     
    public static void main(String[] args) {
     
        Scanner reader=new Scanner(System.in);
        Phone MyPhone=new Phone();
        System.out.print("你的手机品牌为:");
        MyPhone.brand=reader.next();
        System.out.print("你的手机型号为:");
        MyPhone.type=reader.next();
        System.out.print("你的手机操作系统为:");
        MyPhone.os=reader.next();
        System.out.print("你的手机卡号为:");
        MyPhone.number=reader.next();
        int x=0;
        System.out.println("输入1查询手机手机基本属性,输入2拨打本机号码");
        x=reader.nextInt();
        if(x==1) MyPhone.info();
        else MyPhone.call();
    }
}

输出结果
JAVA实验作业——类与对象_第2张图片

实验二
  1. 编程实现一个投票程序,实现班级30个同学共同选班长投票,每个同学只能投一次票, 当投票总数达到30时或者主动结束时终止投票程序,同时统计投票结果。 (提示:目前 可以用对象数组暂存投票者对象)
public class Voter {
       
 【补充代码】
} 

这道题要是允许使用Map的话将非常简单,但是题目要求使用数组来存储,那就将就一下吧

import java.util.*;
/**
 * @Author XT
 * @email [email protected]
 * @date 2020/09/28 14:20
 */
public class Main{
     
    public static void main(String[] args) {
     
        Scanner reader=new Scanner(System.in);
        String[][] Voter=new String[31][2];
        for(int i=0;i<30;i++)
            for(int j=0;j<1;j++)
                Voter[i][j]="";
        String Name = "";
        int cnt=0;
        while(cnt<30){
     
            cnt++;
            Name=reader.next();
            if(Name.equals("投票结束")) break;//得到投票结束指令停止投票出结果
            int x=0;
            boolean flag=true;
            while(Voter[x][0].length()!=0){
     
                if(Name.equals(Voter[x][0])){
     
                    Voter[x][1]= String.valueOf(Integer.parseInt(Voter[x][1])+1);
                    flag=false;
                    break;
                }
                x++;
            }
            if(flag){
     
                Voter[x][0]=Name.substring(0,Name.length());
                Voter[x][1]="1";
            }
        }
        int i=0;
        while(!Voter[i][0].equals("")){
     
            System.out.println("候选人:"+Voter[i][0]+"   获得票数为:"+ Voter[i][1]);
            i++;
        }
    }
}

输出结果
(主动结束投票)
JAVA实验作业——类与对象_第3张图片
(投满三十票)
JAVA实验作业——类与对象_第4张图片
因为题目要求是统计结果,所以我们只要输出统计就好了 主要是感冒打代码太困了,实话

import java.util.*;
/**
 * @Author XT
 * @email [email protected]
 * @date 2020/09/28 14:20
 */
public class Main{
     
    public static void main(String[] args) {
     
        Scanner reader=new Scanner(System.in);
        String Name="";
        int n=30;
        Map cnt=new HashMap<String,Integer>();
        while(n!=0){
     
            Name=reader.next();
            if(Name.equals("投票结束")) break;//得到投票结束指令停止投票出结果
            if(cnt.get(Name)!=null){
     //因为Java并没有像C++那样可以直接对second进行操作修改,所以语句就多了很多
                int a= (int) cnt.get(Name);
                a++;
                cnt.put(Name,a);
            }
            else cnt.put(Name,1);//如果没有出现过这个数就把数存入Map并将出现次数记为一次
            n--;
        }
        cnt.forEach((key,value)->System.out.println("候选人为:"+key+"  一共获得了:"+value+"票"));
    }
}

使用Map的结果是一样的,但是代码简短了很多,而且很好用实在是太香了 !!!JAVA实验作业——类与对象_第5张图片

JAVA实验作业——类与对象_第6张图片

你可能感兴趣的:(JAVA入门,java)