博客二

码云地址:https://gitee.com/sfr123/gold_point/blob/master/UserLogIn.java

博客一连接:https://i.cnblogs.com/EditPosts.aspx?postid=10136689&update=1

团队成员:

  史可新16012018     尚凤茹16012015     徐佳韦16012017     刘晓彤16012023

团队照片:

                

 

 

贡献分:   史可新:9分        尚凤茹:10分        徐佳韦 :7分         刘晓彤:8分

 

运行截图:

                 

 

 

主要代码及其解释:

1.界面代码:

 

import javax.swing.JFrame;//框架
import javax.swing.JPanel;//面板
import javax.swing.JButton;//按钮
import javax.swing.JLabel;//标签
import javax.swing.JTextField;//文本框
import java.awt.Font;//字体
import java.awt.Color;//颜色
import javax.swing.JPasswordField;//密码框
import java.awt.event.ActionListener;//事件监听
import java.awt.event.ActionEvent;//事件处理
import javax.swing.JOptionPane;//消息窗口

public class UserLogIn extends JFrame{
public JPanel pnluser;
public JLabel lbluserLogIn;
public JLabel lbluserName;
public JLabel lbluserPWD;
public JTextField txtName;
public JPasswordField pwdPwd;
public JButton btnSub;
public JButton btnReset;

public UserLogIn(){
pnluser = new JPanel();
lbluserLogIn = new JLabel();
lbluserName = new JLabel();
lbluserPWD = new JLabel();
txtName = new JTextField();
pwdPwd = new JPasswordField();
btnSub = new JButton();
btnReset = new JButton();
userInit();
}

public void userInit(){
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭框架的同时结束程序
this.setSize(300,200);//设置框架大小为长300,宽200
this.setResizable(false);//设置框架不可以改变大小
this.setTitle("用户登录");//设置框架标题
this.pnluser.setLayout(null);//设置面板布局管理
this.pnluser.setBackground(Color.cyan);//设置面板背景颜色
this.lbluserLogIn.setText("用户登录");//设置标签标题
this.lbluserLogIn.setFont(new Font("宋体",Font.BOLD | Font.ITALIC,14));//设置标签字体
this.lbluserLogIn.setForeground(Color.RED);//设置标签字体颜色
this.lbluserName.setText("用户名:");
this.lbluserPWD.setText("密 码:");
this.btnSub.setText("登录");
this.btnReset.setText("注册");
this.lbluserLogIn.setBounds(120,15,60,20);//设置标签x坐标120,y坐标15,长60,宽20
this.lbluserName.setBounds(50,55,60,20);
this.lbluserPWD.setBounds(50,85,60,25);
this.txtName.setBounds(110,55,120,20);
this.pwdPwd.setBounds(110,85,120,20);
this.btnSub.setBounds(85,120,60,20);
this.btnSub.addActionListener(new ActionListener()//匿名类实现ActionListener接口
{
public void actionPerformed(ActionEvent e){
btnsub_ActionEvent(e);
}
}
);
this.btnReset.setBounds(155,120,60,20);
this.btnReset.addActionListener(new ActionListener()//匿名类实现ActionListener接口
{
public void actionPerformed(ActionEvent e){
btnreset_ActionEvent(e);
}
}
);
this.pnluser.add(lbluserLogIn);//加载标签到面板
this.pnluser.add(lbluserName);
this.pnluser.add(lbluserPWD);
this.pnluser.add(txtName);
this.pnluser.add(pwdPwd);
this.pnluser.add(btnSub);
this.pnluser.add(btnReset);
this.add(pnluser);//加载面板到框架
this.setVisible(true);//设置框架可显示
}

public void btnsub_ActionEvent(ActionEvent e){
String name = txtName.getText();
String pwd = String.valueOf(pwdPwd.getPassword());
if(name.equals("")){
JOptionPane.showMessageDialog(null,"账号不能为空","错误",JOptionPane.ERROR_MESSAGE);
return;
}else if (pwd.equals("")){
JOptionPane.showMessageDialog(null,"密码不能为空","错误",JOptionPane.ERROR_MESSAGE);
return;
}else if(true){
this.dispose();
}else{
JOptionPane.showMessageDialog(null,"账号或密码错误","错误",JOptionPane.ERROR_MESSAGE);
return;
}
}

public void btnreset_ActionEvent(ActionEvent e){
txtName.setText("");
pwdPwd.setText("");
}

public static void main(String[] args){
new UserLogIn();
}
} 

2.游戏步骤:

 第一步:游戏开始,进入循环

while (true) {
            System.err.println("1、开始游戏");
            Scanner scanner=new Scanner(System.in);
            int choice=scanner.nextInt();
            switch (choice) {
            case 1:
                welcome();
                break;
            default:
                break;
            }
        }

第二步:设置私有变量,输入玩家人数

private static void welcome() {
 
        System.out.println("游戏默认初试玩家的分数为100");
        System.out.print("请输入游戏人数: ");
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        creatPlayer(n);
    }

第三步:创建对象数组,异常处理

private static void creatPlayer(int n) {
        persons = new Person[n];
        for (int i = 0; i < persons.length; i++) {
            persons[i] = new Person();
        }
        for (int i = 0; i < n; i++) {
            Scanner scanner = new Scanner(System.in);
            int temp = 0;
            temp = i + 1;
            System.out.print("请输入第" + temp + "个玩家的姓名:");
            persons[i].setName(scanner.next());
            persons[i].setScore(SCORE_START);
        }
        System.out.println("****输入完成****");
 
        try {
            playGame();
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

第四步:输入数值,并计算出G值

for (int i = 0; i < persons.length; i++) {
            Scanner scanner = new Scanner(System.in);
            System.out.print("" + persons[i].getName() + "输入数值:");
            persons[i].setNum(scanner.nextInt());
        }
         
        // 获取G值
        int numG = getG();
        int recordMax = 0;
        int max = Math.abs(persons[0].getNum() - numG);
        for (int i = 0; i < persons.length; i++) {
            if (max < (Math.abs(persons[i].getNum() - numG))) {
                max = Math.abs(persons[i].getNum() - numG);
                recordMax = i;
            }
        }
        int min = Math.abs(persons[0].getNum() - numG);
        int recordMin = 0;
        for (int i = 0; i < persons.length; i++) {
            if (min > Math.abs(persons[i].getNum() - numG)) {
                min = Math.abs(persons[i].getNum() - numG);
                recordMin = i;
            }
        }

 

 第五步:用for循环语句,输出最终结果

private static void showMessage() {    
        System.out.println();      
        System.out.println("姓名" + "\t" + "输入的数"+"\t"+"分数");
        for (int i = 0; i < persons.length; i++) {
            System.out.println(persons[i].getName() + "\t" + persons[i].getNum()+"\t"+persons[i].getScore());
        }      
        System.out.println();
    }
}

 

 

小结感受:本次实训二由我们四个完成,深刻地感受到了团队中团员之间共同努力有多么重要,每个人的分工明确,以及每一项任务的衔接也很重要,当遇到困难了,大家也可以四个人共同想办法去解决问题,慢慢地也逐渐培养出来了默契,1+1+1+1>4.当然了,我们每个人都可以在这一次的小实训中发现每个人的小缺点,都不是很完美,大家彼此互补,完成共同的目标--实训二。

                   对于这次任务,在实训一的基础上,将代码变得更完整,将程序变得更完善,在这个过程中,我们几个也确确实实遇到了很多瓶颈,有些时候没有思路,没有办法将任务进行下去,这也体现了我们对java各种知识点的不扎实。并且我们没有将黄金点的程序跟界面显示更好地结合到一起,没有学会打包让整个班级可以一起使用这个游戏的小程序,这是我们这次实训最关键的两个问题。

                   实训结束了我们也知道,我们做的不够好,有很多的地方想不到,做不明白,但是我们会用心地完成好这次实训。❤(* ̄︶ ̄*)

posted on 2018-12-26 18:08  徐佳韦  阅读(114)  评论(0编辑  收藏  举报

导航