201521123110 java课程设计

一、需求分析

功能要求:计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜到,给出所用时间和评语。保留用户测试成绩,做出成绩排行榜。排行榜存放到文件中。

二、本组课题及本人任务

•码云截图:

•本人任务: 编写开始以及操作界面代码,以及完成开始和操作界面。

三、总体设计(概要设计)

猜数游戏主界面应该分为三个,开始,退出,以及排行榜模块。开始游戏后要有输入和输出界面。当猜中游戏后应该录入玩家名称,同时获得所用的时间,并且对所用时间进行升序排列,输出前三名。在排行榜界面后应该还有退出按钮。
四、本人负责的主要功能展示与代码分析
1.使用netbeans进行软件界面的设计,再进行界面间的切换以及联系。

2.对生成随机比较数以及输入输出数据功能代码进行编写。

package game;

import java.io 

.FileNotFoundException;
import java.util.Random;


public class GNB extends javax.swing.JFrame {
public GNB() {
initComponents();
}



private void initComponents() {

start = new javax.swing.JToggleButton();
exit = new javax.swing.JToggleButton();
paihangbang = new javax.swing.JToggleButton();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

start.setText("开始");
start.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
startActionPerformed(evt);
}
});

exit.setText("退出");
exit.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
exitActionPerformed(evt);
}
});

paihangbang.setText("排行榜");
paihangbang.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
try {
paihangbangActionPerformed(evt);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
private void startActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_startActionPerformed
work w = new work();
w.setVisible(true);
setVisible(false);
}// GEN-LAST:event_startActionPerformed

private void exitActionPerformed(java.awt.event.ActionEvent evt) {// GEN-FIRST:event_exitActionPerformed
System.exit(0);

}// GEN-LAST:event_exitActionPerformed

private void paihangbangActionPerformed(java.awt.event.ActionEvent evt) throws FileNotFoundException {// GEN-FIRST:event_paihangbangActionPerformed
paihang p = new paihang();
p.setVisible(true);
setVisible(false);
}// GEN-LAST:event_paihangbangActionPerformed


public static void main(String args[]) {

try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(GNB.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(GNB.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(GNB.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(GNB.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
// </editor-fold>

/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new GNB().setVisible(true);
}
});
}

// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JToggleButton exit;
private javax.swing.JToggleButton paihangbang;
private javax.swing.JToggleButton start;
}
package game;

import java.awt.FlowLayout;
import java.awt.Label;
import  java.io 

.File;
import  java.io 

.FileOutputStream;
import  java.io 

.FileWriter;
import  java.io 

.IOException;
import  java.io 

.PrintWriter;
import java.sql.Date;
import java.util.Random;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;


public class work extends javax.swing.JFrame {

class MyDialog extends JDialog {
// 文本框,用于输入字符串
   JTextField field;
   // “确定”按钮
   JButton setButton;
   MyDialog() {
       // 调用父类的构造函数,
       // 第三个参数用false表示允许激活其他窗体。为true表示不能够激活其他窗体
       super();

       // 添加Label和输入文本框
       JPanel p1 = new JPanel();
       JLabel label = new JLabel("<html>恭喜,游戏成功<br>请输入用户名</html>");
       p1.add(label);
       field = new JTextField(30);
       p1.add(field);
       getContentPane().add("Center", p1);

       // 添加确定和取消按钮
       JPanel p2 = new JPanel();
       p2.setLayout(new FlowLayout(FlowLayout.RIGHT));
       setButton = new JButton("确 定");
       setButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
try {
setActionPerformed(evt);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
       p2.add(setButton);
       getContentPane().add("South", p2);

       // 调整对话框布局大小
       pack();
   }
   
private void setActionPerformed(java.awt.event.ActionEventevt) throws IOException {// GEN-FIRST:event_startActionPerformed
String username = field.getText();
long diffSec = diff / (1000);
File datafile = new File("D: \data.txt");
FileWriter fileWriter = new FileWriter(datafile, true);
//打开文件
PrintWriter printWriter = new PrintWriter(fileWriter);
printWriter.println(new User(username, diffSec));
printWriter.close();
this.dispose();
work w = new work();
w.setVisible(true);
}

五、课程设计感想
在小组中虽然是进行分配任务工作,但是遇到困难时,也可以进行有效的沟通交流,当一步步要将设计的程序完工时,是十分开心的。让我明白,要多学多问,遇到困难时,先查阅资料,再去询问他人,能让我们记忆的更深刻。

原文地址:https://www.cnblogs.com/zcjj/p/7064020.html