编程练习(4)

来源:互联网 发布:nginx 禁止访问根目录 编辑:程序博客网 时间:2024/04/29 11:47

需求说明
声明一个类Student以描述其共有特性”姓名”,“密码”,“年龄”,
“电话”(name,pass,age,tel)
(1)在Student类 中,为每个属性添加修改和访问的方法(如:setAge, getAge),并添加一个showInfo()方法;
(2)为上面的Student类添加一个有四个参(name,pass,age,tel)的构造方法;
(3)在main方法中创建三个学生对象,并调用showInfo()方法,打印其中某个学生对象的信息。
(4)在Student类中的修改手机号码的方法中实现电话号码的格式检查,若出现非数字,则提示”手机格式错误”;
(5)创建个对象数组,实现登录功能。

import java.util.*;class Student{    String name;    String pass;    int age;    String tel;    public Student(String name,String pass,int age,String tel){        this.name=name;        this.pass=pass;        this.age=age;        this.tel=tel;        }    public String getName(){        return name;        }    public void setName(String name){        this.name=name;        }    public String getPhone(){        return tel;        }    public void setPhone(String tel){        for(int i=0;i<tel.length();i++){            if(tel.charAt(i)<'0'||tel.charAt(i)>'9'){                System.out.println("手机格式错误!");                return;            }            }        this.tel=tel;        }    public int getAge(){        return age;        }    public void setAge(int age){        this.age=age;        }    public String getPass(){        return pass;        }    public void setPass(String pass){        this.pass=pass;        }     public void showInfo(){        System.out.println("姓名:"+name+",密码:"+pass+",年龄"+age+",电话"+tel);        }}
import java.util.*;class testStudent{    public static void main(String[] args){    Student stu1=new Student("张华","123456",18,"18702697364");    Student stu2=new Student("杨杰","234567",20,"13502697169");    Student stu3=new Student("宋茜","789123",23,"169702697365");    Scanner in=new Scanner(System.in);    //System.out.println("请输入新的号码:");    //String newtel=in.nextLine();    //stu1.setPhone(newtel);    //stu1.showInfo();    //对象数组    Student[] Str=new Student[3];    Str[0]=stu1;    Str[1]=stu2;    Str[2]=stu3;    System.out.println("请输入姓名:");      String name=in.nextLine();      System.out.println("请输入密码:");      String pass=in.nextLine();      int i=0;      for(;i<Str.length;i++){      if(name.equals(Str[i].getName())&&pass.equals(Str[i].getPass())){        System.out.println("登陆成功!");        break;      }    }      if(i==Str.length){          System.out.println("登陆失败!");        }  }}

需求说明:
 任务
 为某商场开发一套幸运抽奖系统,客户首先注册成为商场会员,会员登录系统,参加抽奖活动
主要功能:
 注册
 登录
 幸运抽奖
阶段1:实现菜单的输出显示
 需求说明
 输出菜单
 选择菜单编号,输出菜单信息
 如果编号选择错误,输出“您的输入有误!”

这里写图片描述

阶段2:实现循环执行功能
 需求说明
 系统询问用户是否继续
 如果用户选择继续,则可以继续选择菜单,否则程序结束,退出系统

这里写图片描述

阶段3:实现注册
 需求说明
 输入用户名和密码,系统产生4位随机数作为卡号。
 注册成功,显示注册信息并修改注册标识为true

这里写图片描述

阶段4:实现登录功能
 需求说明
 输入注册时的用户名和密码,登录成功,提示欢迎信息
 如果用户名和密码输入错误,提示用户继续输入,最多有
3次输入机会
这里写图片描述

阶段5:实现幸运抽奖
 需求说明
 登录成功后,用户选择幸运抽奖菜单,进入幸运抽奖功能
 输入会员卡号,系统生成5个4位随机数作为幸运数字
 如果会员卡号是其中之一,则成为本日幸运会员;否则不是幸运会员

这里写图片描述
注:

//如下代码生成四位随机数int max=9999;int min=0000;cardNumber=(int)(Math.random()*(max-min))+min;
package test;//创建Data类,存放系统全局变量public class Data {    public static User[] user=new User[10];}
package test;//创建用户类public class User {    private String name;    private String password;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }}
//创建工具类package test;import java.util.*;public class Util {    public static String Message(){        Scanner in=new Scanner(System.in);        String xy=in.nextLine();        return xy;    }}
package test;//运行的主文件public class Run {    public static void main(String[] args){        showMenu();        String choice=Util.Message();        if(choice.equals("1")){            Register();            //main(args);        }        else if(choice.equals("2")){            Login(3);            //main(args);        }        else if(choice.equals("3")){            chouJiang();            //main(args);        }        else{            System.out.println("输入有误");        }        System.out.print("是否继续(y/n)");        String st=Util.Message();        if(st.equals("y")){            main(args);}//main方法递归调用        else{            System.out.print("系统退出,谢谢使用!");        }    }    public static void chouJiang() {        System.out.println("[奖客富翁系统>抽奖]");        System.out.println("请输入你的卡号:");        String card=Util.Message();        int[] arr=new int[5];        int max=9999;        int min=0000;        boolean flag=true;        System.out.print("本日的幸运数字为:");        for(int i=0;i<=4;i++){            arr[i]=(int)(Math.random()*(max-min))+min;            System.out.print(arr[i]);            System.out.print("\t");        }        for(int j=0;j<=4;j++){            if(card.equals(arr[j])){                System.out.println("恭喜你,成为本日的幸运会员!");                flag=false;                break;            }               }        if(flag==true){            System.out.println("抱歉!你不是本日的幸运会员!");        }    }    public static void Login(int n) {        System.out.println("[奖客富翁系统>登录]");        if(n>0){            System.out.println("你还有"+n+"次机会!");            System.out.print("请输入用户名:");            String name=Util.Message();            System.out.print("请输入密码:");            String pass=Util.Message();            User[] user=Data.user;            int i=0;            for(;i<user.length;i++){                try{                if(name.equals(user[i].getName())&&pass.equals(user[i].getPassword())){                    System.out.println("欢迎您:"+name);                    break;                }}catch(NullPointerException e){}            }            if(i==user.length){            n--;            Login(n);            }        }    }    public static void Register() {        System.out.println("[奖客富翁系统>注册]");        System.out.println("请填写个人注册信息:");        System.out.print("用户名:");        String name=Util.Message();        System.out.print("密码:");        String pass=Util.Message();        int max=9999;        int min=0000;        User user=new User();        user.setName(name);        user.setPassword(pass);        User[] use=Data.user;//创建一个数组use来接收user地址,使它指向与user同一个数组空间        for(int i=0;i<use.length;i++){            if(use[i]==null){                use[i]=user;                        break;            }        }        System.out.println("注册成功,请记录好您的会员卡号");        System.out.println("用户名"+"\t"+"密码"+"\t"+"会员卡号");        for(int j=0;j<use.length;j++){            if(use[j]!=null){                int cardNumber=(int)(Math.random()*(max-min))+min;                System.out.println(use[j].getName()+"\t"+use[j].getPassword()+"\t"+cardNumber);            }        }    }    public static void showMenu(){        System.out.println("********欢迎进入奖客富翁系统********");        System.out.println("             1.注册                 ");        System.out.println("             2.登录                 ");        System.out.println("             3.抽奖                 ");        System.out.println("************************************");        System.out.print("请选择菜单:");    }}

需求说明
完成人机互动版猜拳游戏的开发
要求:
1. 能够选取对战角色
a) 选择对战角色
2. 能够猜拳
a) 开始对战,用户选择出拳,与对手进行比较,提示胜负信息
3. 能够记录分数(提示:可以选择对战角色是进入一局游戏,可以选择是否进入下一轮是选择一局里面的下一轮)
a) 每一轮猜拳结束,获胜一方加1分(平局都不加分),结束游戏时,显示对战次数以及对战最终结果
这里写图片描述

这里写图片描述

这里写图片描述

package test;//定义Data类来存放全局变量public class Data {    public static String[] str=new String[]{"剪刀","石头","布"};    public static String[] role=new String[]{"刘备","孙权","曹操"};    public static int[] array=new int[]{0,1,2};    public static int cishu=0,score1=0,score2=0;}
package test;import java.util.*;//定义一个工具类public class Util {    //控制台输入整型数据    public static int getRole(){        Scanner in=new Scanner(System.in);        int x=in.nextInt();        return x;    }    //控制台输入字符串    public static String getName(){        Scanner in=new Scanner(System.in);        String x=in.next();        return x;    }    //获得0,1,2任意一个随机数    public static int getCount(){        Random in=new Random();        int count=in.nextInt(3);        return count;    }}
package test;public class Run {    public static void main(String[] args){        showMenu();        GameBefore();    }    public static void showMenu(){        System.out.println("********************");        System.out.println("     猜拳游戏开始                     ");        System.out.println("********************");        System.out.println("出拳规则:剪刀--石头--布");        System.out.print("请选择对方角色(1.刘备 2.孙权 3.曹操):");    }    //游戏首页环节    public static void GameBefore(){        int choice=Util.getRole();        for(int i=0;i<3;i++){            if(choice==i+1){            System.out.println("你选择了与"+Data.role[i]+"对战");            GameMiddle(i);            }        }    }    //游戏中间环节    public static void GameMiddle(int x){        System.out.print("请输入你的名字:");        String name=Util.getName();        System.out.println(name+"\t VS\t"+Data.role[x]+"\n");        System.out.print("要开始吗?(y/n):");        String choice=Util.getName();        switch(choice){        case "y":            GameAfter(name,x);            break;        case "n":            return;        default:            System.out.println("输入错误");        }    }    //游戏尾部环节    public static void GameAfter(String y,int x){        System.out.print("请出拳:");        String quan=Util.getName();        for(int i=0;i<3;i++){            if(quan.equals(Data.str[i])){                System.out.println(y+",你出的是"+quan+"!");                break;            }        }        int j=0;        for(;j<3;j++){            //字符串,字符判断相不相等才用equals            if(Util.getCount()==(Data.array[j])){                System.out.println(Data.role[x]+",出的是"+Data.str[j]+"!");                break;            }        }        int xy=Rule.getRule(quan,j);        if(xy==1){Data.score1+=1;}        else if(xy==-1){Data.score2+=1;}        System.out.println("是否继续下一局!(y/n)");        String choice=Util.getName();        if(choice.equals("y")){            Data.cishu+=1;            GameAfter(y,x);        }        else{            GameResult(y,x);        }    }    //游戏结果    public static void GameResult(String name,int x){        System.out.println("-----------------------------");        System.out.println("\t"+name+"\t VS\t"+Data.role[x]+"\n");        System.out.println("对战次数:"+(++Data.cishu));        System.out.println("姓名"+"\t"+"得分");        System.out.println(name+"\t"+Data.score1);        System.out.println(Data.role[x]+"\t"+Data.score2);       }}
package test;//0剪刀   1石头  2布  //                  赢                      输                  平//人的选择-电脑的选择:   -2  1     else     0//定义一个规则类public class Rule {    public static int getRule(String x,int y){        for(int i=0;i<3;i++){            if(x.equals(Data.str[i])){                if(i-y==-2||i-y==1){                    System.out.println("恭喜你,胜利了!");                    return 1;                }                else if(i-y==0){                    System.out.println("哎呀,打平了,再接再厉!");                    break;                }                else{                    System.out.println("哈哈,你输了!");                    return -1;                }            }        }        return 0;    }}

运行结果:

********************     猜拳游戏开始                     ********************出拳规则:剪刀--石头--布请选择对方角色(1.刘备 2.孙权 3.曹操):2你选择了与孙权对战请输入你的名字:happyhappy    VS 孙权要开始吗?(y/n):y请出拳:石头happy,你出的是石头!孙权,出的是剪刀!恭喜你,胜利了!是否继续下一局!y/ny请出拳:布happy,你出的是布!孙权,出的是石头!恭喜你,胜利了!是否继续下一局!y/ny请出拳:剪刀happy,你出的是剪刀!哈哈,你输了!是否继续下一局!y/nn-----------------------------    happy    VS 孙权对战次数:3姓名  得分happy   2孙权    1
原创粉丝点击