当前位置:网站首页 > Java基础 > 正文

java作业零基础



【练习1】

需求:输入学员的名称及总科目数并显示每项科目成绩的分数,算出总成绩。

package demo2;

import java.util.Scanner;    //先import Scanner语法来接受键盘输入

public class Score {

    /
     * 输入学员名称及总科目,打印每门科目的成绩并算出平均分
     */
    public static void main(String[] args) {
        System.out.print("请输入学员姓名:");
        Scanner input = new Scanner(System.in);   
        String name = input.next();        //定义学员名字变量,通过Scanner中.next();方法接收input输入的值。因为是名字所以变量类型为String
        
        System.out.print("请输入学员成绩的总科目:");
        Scanner input1 = new Scanner(System.in);
        int sc = input1.nextInt();        //同上为了是接收传入的值
        
        int score = 0;                //学员每门成绩的初始化(不赋值也可以。score这里的目的是为了接收下列循环每次输入的值的)
        int sum =0;                  //学院总成绩的初始化
        

    /
     * for循环得出每门成绩,并计算总分数
     */

     //i<sc意义为要小于初始定义的总科目数
        for(int i =0;i<sc;i++){
            System.out.print("输入"+name+"同学"+sc+"门科目成绩中的第"+(i+1)+"门中的成绩:");    //+name为显示学员的名字,+sc为显示总共的科目数,+(i+1)为循环总科目内的每1门的数量
            score = input.nextInt();        //score接受输入的值
            sum +=score;               //sum+=score相当于sum =sum+score
        }
        double vrg = ((double)sum)/sc;        //sum跟score都是int型,如果直接除会省略小数。所以在sum总数前加上double再除总科目(sc)得出的结果才精确。
        System.out.println("显示"+sc+"门成绩的平均分:"+vrg);

    }

}

输出结果:

【练习2】

需求:(1)统计班级总人数中大于80分学生的人数

   (2)算出大于80分学生所占总人数的比例

package demo2;

import java.util.Scanner;

public class Score1 {

    /
     * 循环录入Java课的学生成绩,统计分数大于等于 80分的学生比例
     */
    public static void main(String[] args) {
        int counter = 0;                //计数器为了统计分数大于80分同学的人数
        System.out.print("请输入班级总人数:");
        Scanner input = new Scanner(System.in);
        int number = input.nextInt();
      
     /
     * for循环嵌套if语句。 for循环得出每门成绩的分数。if语句在这里是为了判断大于80分同学的数量,然后让计数器统计人数。
     */

        for (int i = 1; i <= number; i++) {
            System.out.print("请输入第" + (i + 0) + "门成绩:");
            int f = input.nextInt();
            if (f >= 80) {
                counter += 1;
            }

        }
        System.out.println("大于80分的总人数:" + counter);
        input.close();
        double pjf = ((double) counter) / number;
        System.out.println("80分以上的学生所占的比例为:" + pjf*100+"%");

    }

}

输出结果:

【练习3】

需求:(1)输入10个数字,用数组接收这10个数字,并求出正数的和

   (2)用户输入非数字时退出程序,数字由控制台输入

package com.java.demo_2;

import java.util.Arrays;
import java.util.Scanner;

public class CopyOfnumbers {

    /
     * 输入10个数字,用数组接收这10个数字,并求出所有正数的和; 当用户输入非数字时退出; 数字由控制台输入
     */
    public static void main(String[] args) {
        String result = "";        //为了显示正数值
        int sum = 0 ;            //求正数值和

        // 开辟一块可以存放10个空间的数组
        int[] numbers = new int[10];

        // 导入Scanner方法,用于键盘输出
        Scanner input = new Scanner(System.in);

        /*
         * 定义10个数字,分别存放到numbers数组中去
         * 
         * 注释: for循环中int为1,所以数组存值时会从index1开始存,跳过0位.那么输入的数字最多输入9次.第10次输入会出现数组越界.
         * 为了解决这个问题numbers[i-1] =input.nextInt();接收键盘输入值时,numbers[i]中的每个元素位减1.这样当输入第一个元素值时,
         * 就会找到index0而不是默认的index1了.
         */
        for (int i = 1; i <= 10; i++) {
            System.out.print("请输入第" + i + "个数:");
            String num = input.next();
            /*
             * 添加输入是否为数字的判断,不为数字直接
             */
            if(!num.matches("^(-?[1-9]\d*\.?\d*)|(-?0\.\d*[1-9])|(-?[0])|(-?[0]\.\d*)$")){
                System.out.println("输入的不是数字,退出!");
                return;
            }else{numbers[i-1]=Integer.parseInt(num);}
            
            //numbers[i - 1] = input.nextInt();
            if (numbers[i - 1] >= 0) {
                result += numbers[i - 1] + ", ";
                sum += numbers[i - 1];
                
            }
        }

        /*
         * 查看传入数组中的每个元素值
         */
        System.out.println();
        System.out.println("");
        System.out.println("查看数组中的值:");
        System.out.println(Arrays.toString(numbers));
        System.out.println("");

        // 按照numbers[i-1]>=0的条件取输入为正数的值
        System.out.println("[正数是:]" + result);
        System.out.println("[正数和为:]" + sum);

    }

}

【练习4】

需求:(1)做一个幸运抽奖的三级菜单。用户可选择商品号码进入下一层。

   (2)没层的进入有优先级关系。必须先输入前者后在进行下一层的操作。

   (3)中奖号码随机生成4位随机码,拿生成的4为随机码来进行抽奖。抽奖生成数设定为5组的4位随机码。

package com.java.demo_2;

import java.util.Scanner;

public class set_Lucky_draw1 {

    /
     * 幸运抽奖-实现基本逻辑的输出显示
     */
    public static void main(String[] args) {
        String answer = "y"; // 定义下一步选择变量
        String exit = "q";
        String userName = null; // 用户名
        String passwd = null; // 用户密码
        int cardNumber = 0; // 卡号
        boolean isRegister = false; // 标识是否注册;
        boolean isLogin = false;// 登陆成功,标志设置为true
        int max = 9999; // 数字码4位数上限
        int min = 1000; // 数字码4位数下限

        /*
         * 打印系统主页 (这里用到do,while循环)
         */
        do {
            System.out.println("欢迎光临我要买滑轮管理系统*");
            System.out.println("*		  1.注册			*");
            System.out.println("*		  2.登陆			*");
            System.out.println("*		  3.抽奖			*");
            System.out.println("*");
            /*
             * 让用户选择菜单(Scanner用法 )
             */java作业零基础
            Scanner input = new Scanner(System.in);
            System.out.println("");
            System.out.print("请选择菜单选项:");
            int choice = input.nextInt();
            /*
             * 根据用户选择菜单index号进入下一步
             */
            switch (choice) {
            case 1:
                System.out.println("[幸运滑轮系统>注册]");
                System.out.println("请填写用户个人注册信息:");
                System.out.print("请输入用户名:");
                userName = input.next();
                System.out.print("请输入密码(6位):");
                passwd = input.next();
                int month = 1; // 出生月份
                int day = 1; // 出生日期
                if (String.valueOf(passwd).length() == 6) {
                    System.out.println("请输入用户出生月份:");
                    month = input.nextInt();
                    if (month < 1 || month > 12) {
                        System.out.println("月份非法!");
                    } else {
                        System.out.println("请输入用户出生日期:");
                        day = input.nextInt();
                        if (day <= 0 || day > 31) {
                            System.out.println("出生日期非法!");
                            return;
                        }
                    }

                } else {
                    System.out.println("密码非法!");
                    return;
                }

                /*
                 * 获取4位数随机卡号
                 */
                cardNumber = (int) (Math.random() * (max - min)) + min; // 这句话的具体解释参照:
                // http://www.myexception.cn/j2se/374687.html

                System.out.println("
注册成功,请记好您的会员卡号");
                System.out
                        .println("*");
                System.out.println("用户名		密码		出生日期		会员卡号");
                System.out.println(userName + "		" + passwd + "		" + month
                        + day + "		" + cardNumber);
                System.out
                        .println("*");
                isRegister = true; // 注册成功,标志定义true

                break;
            case 2:
                System.out.println("[幸运滑轮系统>登陆]");
                /*
                 * 实现用户登陆功能
                 */
                if (isRegister) {// 判断用户是否已经注册
                    /*
                     * 设置用户名,用户密码登陆次数
                     */
                    for (int i = 1; i <= 3; i++) {
                        System.out.print("请输入用户名:");
                        String inputName = input.next();
                        System.out.print("请输入密码(6位):");
                        String inputPasswd = input.next();
                        if (String.valueOf(inputPasswd).length() == 6) {

                        } else {
                            System.out.println("密码不合法!");
                            return;
                        }

                        if (userName.equals(inputName)
                                && passwd.equals(inputPasswd)) {
                            System.out
                                    .println("");
                            System.out.println("	欢迎" + userName + "登陆系统!");
                            System.out
                                    .println("");
                            isLogin = true;
                            break;
                        } else if (i < 3) {
                            // 记数器(统计错误次数)
                            System.out
                                    .println("");
                            System.out
                                    .println("用户名或密码错误,还有" + (3 - i) + "次机会!");
                            System.out
                                    .println("");
                        } else {
                            System.out
                                    .println("");
                            System.out.println("您3次均输入错误!用户被锁定并退出系统");
                            System.out
                                    .println("");
                            return;
                        }
                    }
                } else {// 对isRegister的判断,条件不符合返回上一层
                    System.out.println("请先注册,再登陆!");
                }

                break;
            case 3:
                System.out.println("[幸运滑轮系统>抽奖]");
                if (!isLogin) {// 同上用法(判断用户是否登陆)
                    System.out.println("请先登陆,再抽奖!");

                } else {

                    // 生成5个4位随机数字,并保存在数组中
                    int[] luckyNumbers = new int[5];
                    for (int i = 0; i < luckyNumbers.length; i++) {
                        luckyNumbers[i] = (int) (Math.random() * (max - min) + min);
                    }
                    System.out.print("请输入您的会员卡号:");
                    int yourCard = input.nextInt();
                    int i; // 为下列2个for循环变量使用

                    System.out.print("
本日的幸运数字为:");
                    for (i = 0; i < luckyNumbers.length; i++) {
                        System.out.print(luckyNumbers[i] + "  ");
                    }
                    for (i = 0; i < luckyNumbers.length; i++) {
                        if (luckyNumbers[i] == yourCard) {
                            System.out.println("
恭喜!您是本日的幸运会员!");
                            break;
                        }
                    }
                    if (i == luckyNumbers.length) {
                        System.out.println("
抱歉!您不是本日的幸运会员!");
                    }
                }
                break;

            default:
                System.out.println("[输入错误,无此选项!]");
                break;
            }
            /*
             * 询问是否继续下一步
             */
            System.out.print("是否继续输入?(y/n):");
            answer = input.next();

        }

        /*
         * 通过do,while中的while循环让用户选择y,n(是否继续)
         */
        while ("y".equals(answer));
        if ("n".equals(answer)) {
            System.out.println("*");
            System.out.println("系统退出,谢谢使用!");
        }
    }

}
幸运抽奖

【练习5】

需求:(1)属性:生成一个电影购票类(条件:有姓名跟年龄)

   (2)行为:根据不同的年龄段来制定票价。

   (3)方法:测试不同年龄段打印票价的结果(姓名及年龄的输入为键盘输入)

package com.java.demo_3;

import java.util.Scanner;

/*
 * 电影购票类
 */
public class Film {
    private String name;
    private int age;
    
    /*
     * 封装Name跟Age
     */
    public void setName() {
        Scanner input = new Scanner(System.in);
        System.out.println("您好亲爱的顾客,请输入您的姓名:");
        this.name = input.next();
    }
    public void setAge(){
        Scanner input = new Scanner(System.in);
        System.out.println("请输入您的年龄:");
        this.age = input.nextInt();
    }
    /*
     * 判断不同的年龄段
     */
    public void showInfo(){
        if(this.age<8 && this.age>0){
            System.out.print(this.name+",您的年龄不足8岁,票免费.");
        }else if(this.age>=8 && this.age<=18){
            System.out.print(this.name+",您的年龄属于青少年年龄,票优惠.购票价格为10元.");
        }else{
            System.out.print(this.name+",您购票价格为20元.");
        }
    }
    /*
     * 测试类
     */
    public static void main(String[] args) {
        Film film = new Film();
        film.setName();
        film.setAge();
        film.showInfo();
    }

}

【练习6】
需求:(1)创建一个管理员类

   (2)模拟管理员更改密码的行为(要求:先输入用户名再输入密码。密码先输入旧密码)

   (3)输入的新密码于旧密码作校验,如不匹配错误3次,则退出系统。匹配打印恭喜登录成功。

package com.java.demo_3;
/*
 * 修改密码类
 */
public class Admin {
    /*
     * 定义变量
     */
    private String adminName;
    private String adminPasswd;
    
    /*
     * geter and setter方法
     */
    public String getAdminName() {
        return adminName;
    }
    public void setAdminName(String adminName) {
        this.adminName = adminName;
    }
    public String getAdminPasswd() {
        return adminPasswd;
    }
    public void setAdminPasswd(String adminPasswd) {
        this.adminPasswd = adminPasswd;
    }
    /*
     * 无参构造方法
     */
    public Admin() {
        super();
        // TODO Auto-generated constructor stub
    }
    
    /*
     * 有参构造方法
     */
    public Admin(String adminName, String adminPasswd) {
        super();
        this.adminName = adminName;
        this.adminPasswd = adminPasswd;
    }
    /*
     * 重写构造方法
     */
    @Override
    public String toString() {
        return "Admin [adminName=" + adminName + ", adminPasswd=" + adminPasswd
                + "]";
    }
    
}
Admin类
package com.java.demo_3;

import java.util.Scanner;

public class AdminTest1 {
    
    public static void main(String[] args) {
        /*
         * 调用有参构造函数
         */
        Admin admin = new Admin("administrator","123456");
        System.out.println(admin);
        //记数器
        int counter =0;
        /*
         * 接收变量
         */
        String userName = "";
        String userPasswd = "";
        String newPasswd;
        
        /
         * 用户登陆
         */
        System.out.println("请输入用户帐号:");
        Scanner input = new Scanner(System.in);
        userName = input.next();
        System.out.println("请输入旧用户密码:");
        userPasswd = input.next();
        
        System.out.println("请输入新用户密码:");
        newPasswd = input.next();
        
        while(counter<3){
            if(newPasswd.equals(userPasswd)){
                System.out.println("恭喜登陆成功!");
                return;
            }else{
                System.out.println("输入的密码跟旧密码不匹配,您还可以尝试登陆"+(counter+1)+"次!");
                counter+=1;
                System.out.println("请输入旧用户密码:");
                userPasswd = input.next();
                System.out.println("请输入新用户密码:");
                newPasswd = input.next();
                continue;    
            }
        }System.out.println("输入次数超限,退出!");

    }

}
AdminTest类

(上述代码为初学者编写。出现代码的冗余,后续会更新新版本。)

【练习7】
需求:(1)使用面向对象的思想描述游戏中的怪物(模拟魔兽世界人物介绍)

   (2)介绍魔兽世界中各个角色人物的特征以及职业,种族,血量,魔法值,伤害值等属性。

   (3)通过选择菜单的形式进行选择性介绍。

package com.java.demo_4;
/*
 * 魔兽世界角色描述
 */
public class Monster {
    String role;        //角色
    String Occupation;  //职业
    String race;        //种族
    String sex;            //性别
    int HP;                //血值
    int MP;                //魔法值
    int DMG;            //伤害值
    public String getRole() {
        return role;
    }
    public void setRole(String role) {
        this.role = role;
    }
    public String getOccupation() {
        return Occupation;
    }
    public void setOccupation(String occupation) {
        Occupation = occupation;
    }
    public String getRace() {
        return race;
    }
    public void setRace(String race) {
        this.race = race;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public int getHP() {
        return HP;
    }
    public void setHP(int hP) {
        HP = hP;
    }
    public int getMP() {
        return MP;
    }
    public void setMP(int mP) {
        MP = mP;
    }
    public int getDMG() {
        return DMG;
    }
    public void setDMG(int dMG) {
        DMG = dMG;
    }
    /*
     * 无参构造方法
     */
    public Monster() {
        super();
        // TODO Auto-generated constructor stub
    }
    
    /*
     * 有参构造方法1(showInfo调用)
     */
    public void showInfo(String role, String occupation, String race, String sex){
        this.role = role;
        this.Occupation = occupation;
        this.race = race;
        this.sex = sex;
        System.out.println("角色:	" + role + "
种族:	" + race + "
性别:	" + sex + "
职业:	" + Occupation);
    }
    /*
     * 有参构造方法2(toString调用)
     */
    public Monster(String role, String occupation, String race, String sex,
            int hP, int mP, int dMG) {
        super();
        this.role = role;
        Occupation = occupation;
        this.race = race;
        this.sex = sex;
        HP = hP;
        MP = mP;
        DMG = dMG;
    }
    @Override
    public String toString() {
        return "HP(血量):	" + HP + "
MP(魔法值):	" + MP + "
DMG(伤害值):	" + DMG;
    }
    


}
Monster(魔兽世界人物介绍类)

package com.java.demo_4;

import java.util.Scanner;

public class MonsterTest {

    /
     * 测试类
     */
    public static void main(String[] args) {
        //boolean flag = false;
        String answer = "y"; // 定义下一步选择变量

        do {
            Monster monster = new Monster();
            System.out.println("*");
            System.out.println("*   欢迎进入魔兽人物选择界面    *");
            System.out.println("*       1,种族选择                            *");
            System.out.println("*       2,职业选择                            *");
            System.out.println("*       3,退出                                      *");
            System.out.println("*");

            Scanner input = new Scanner(System.in);
            System.out.print("请选择菜单选项:");
            int choice = input.nextInt();

            switch (choice) {
            case 1:

                System.out.println("*");
                System.out.println("*       1,人类                                     *");
                System.out.println("*       2,兽人                                     *");
                System.out.println("*       3,精灵                                     *");
                System.out.println("*       4,返回上一层                      *");
                System.out.println("*");
                System.out.print("[魔兽人物选择界面  > 种族选择:]");
                int choice1 = input.nextInt();
                switch (choice1) {
                case 1:
                    System.out.println("-----------------------------");
                    System.out.println("[人类 >人类属性介绍:]");
                    monster.setHP(1200);
                    monster.setMP(500);
                    monster.setDMG(2000);
                    System.out.println(monster);

                    break;
                case 2:
                    System.out.println("-----------------------------");
                    System.out.println("[兽人 >兽人属性介绍:]");
                    monster.setHP(1500);
                    monster.setMP(200);
                    monster.setDMG(2200);
                    System.out.println(monster);

                    break;
                case 3:
                    System.out.println("-----------------------------");
                    System.out.println("[精灵 >精灵属性介绍:]");
                    monster.setHP(1100);
                    monster.setMP(1000);
                    monster.setDMG(1700);
                    System.out.println(monster);
                }
                //System.out.print("是否继续输入?(y/n):");
                //answer = input.next();

            case 2:
                if(choice ==2){
                    System.out.println("*");
                    System.out.println("*       1,战士                                     *");
                    System.out.println("*       2,法师                                     *");
                    System.out.println("*       3,盗贼                                     *");
                    System.out.println("*       4,猎人                                     *");
                    System.out.println("*       5,圣骑士                                *");
                    System.out.println("*       6,死亡骑士                           *");
                    System.out.println("*       7,牧师                                     *");
                    System.out.println("*       8,萨滿                                    *");
                    System.out.println("*       9,返回上一层                      *");
                    System.out.println("*");
                    System.out.print("[魔兽职业选择界面  > 种族选择:]");
                    int choice2 = input.nextInt();
                    switch (choice2) {
                    case 1:
                        monster.showInfo("战士", "锻造", "兽人", "男");
                        break;
                    case 2:
                        monster.showInfo("法师", "裁缝", "血精灵", "女");
                        break;
                    case 3:
                        monster.showInfo("盗贼", "剥皮", "亡灵", "男");
                        break;
                    case 4:
                        monster.showInfo("猎人", "工程", "巨魔", "男");
                        break;
                    case 5:
                        monster.showInfo("圣骑士 ", "锻造", "人类", "女");
                        break;
                    case 6:
                        monster.showInfo("死亡骑士", "锻造", "人类", "男");
                        break;
                    case 7:
                        monster.showInfo("牧师", "附魔", "暗夜精灵", "女");
                        break;
                    case 8:
                        monster.showInfo("萨滿 ", "采药", "德莱尼人", "男");
                        break;

                    }
                    
                }
                
                break;

            case 3:
                System.out.println("*");
                System.out.println("系统退出,谢谢使用!");

                return;

            default:
                break;
            }
            System.out.print("是否继续输入?(y/n):");
            answer = input.next();
        } while ("y".equals(answer));
        if ("n".equals(answer)) {
            System.out.println("*");
            System.out.println("系统退出,谢谢使用!");
        }

    }

}
MonsterTest(魔兽世界人物介绍测试类)

  • 上一篇: java大学基础胶层
  • 下一篇: 0基础学java文本
  • 版权声明


    相关文章:

  • java大学基础胶层2024-10-17 22:50:06
  • 07java基础教程2024-10-17 22:50:06
  • java期末基础知识2024-10-17 22:50:06
  • java基础试题库2024-10-17 22:50:06
  • java中spring框架基础2024-10-17 22:50:06
  • 0基础学java文本2024-10-17 22:50:06
  • java基础面试题20182024-10-17 22:50:06
  • java从基础到放弃2024-10-17 22:50:06
  • java基础小白竖屏2024-10-17 22:50:06
  • 只会java基础简历怎么写2024-10-17 22:50:06