需求说明
声明一个类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
你选择了与孙权对战
请输入你的名字:happy
happy VS 孙权
要开始吗?(y/n):y
请出拳:石头
happy,你出的是石头!
孙权,出的是剪刀!
恭喜你,胜利了!
是否继续下一局!(y/n)
y
请出拳:布
happy,你出的是布!
孙权,出的是石头!
恭喜你,胜利了!
是否继续下一局!(y/n)
y
请出拳:剪刀
happy,你出的是剪刀!
哈哈,你输了!
是否继续下一局!(y/n)
n
-----------------------------
happy VS 孙权
对战次数:3
姓名 得分
happy 2
孙权 1