编程练习(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/n)y请出拳:布happy,你出的是布!孙权,出的是石头!恭喜你,胜利了!是否继续下一局!(y/n)y请出拳:剪刀happy,你出的是剪刀!哈哈,你输了!是否继续下一局!(y/n)n----------------------------- happy VS 孙权对战次数:3姓名 得分happy 2孙权 1
- 编程练习(4)
- C语言编程(练习4:函数 )
- 第十二章编程练习(4)
- 编程小练习(4)
- 编程练习4
- 编程小练习4
- 编程练习(1)
- 编程练习(2)
- (四十四)编程练习
- 编程练习(1)
- 编程练习(2)
- 编程练习(一)
- 编程练习(1)
- 编程练习(2)
- 编程练习(3)
- 编程练习(10)
- 编程练习(11)
- 编程练习(13)
- 数据库查询的实现:B树与磁盘I/O算法设计
- Android 超简单音乐播放器(八)通知栏切换显示更新歌曲 服务和活动之间的相互通信~
- 关于c#和java语言定义变量方式的意淫
- 1.设计模式之简单工厂模式
- 3.笔记 MySQL学习——简单执行SQL语句
- 编程练习(4)
- 《软件工程(C编码实践篇)》课后感
- java 反射机制-学习笔记(8)
- 4.笔记 MySQL学习——创建数据库
- Hibernate的 SessionFactory,Configuration,Query ,Criteria接口简介,及Query的查询方法
- 输出一个平行四边图案。
- 浏览器查找功能快捷键
- 5.笔记 MySQL学习——mysql基本显示查询
- 【Linux】系统IO和标准C库IO函数