java实验报告_计算器_记事本_井字游戏
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
private String lastCommand;
//保存+,-,*,/,=命令 0
private double result;
//保存计算结果
private boolean start;
//判断是否为数字的开始
private JMenuBar menubar;
private JMenuItem m_exit,m2_ejz,m2_bjz;
private Dialog dialog;
private Label label_dialog;
private
JButton
button_sqrt,button_plusminus,button_CE,button_cancel,button_1,button_2
,
button_3,button_4,button_5,button_6,button_7,button_8,button_9,button_ 0,
-6-
调用成员方法添加菜单
this.addmyMenu()
按钮的单击事件处理方法
public void actionPerformed(ActionEvent e)
退格键的实现方法
if(input.equals("C"))
{
if(str.length()>0)
displayField.setText(str.substring(0,str.length()-1)); //
-7-
this, ex.getMessage(), "打开失败", JOptionPane.ERROR_MESSAGE ); } 退出异常处理: if(txtChanged) { int res; res = JOptionPane.showConfirmDialog ( this, "保存更改?", "退出", JOptionPane.YES_NO_CANCEL_OPTION );
return true; }
return false; }
2.程序代码 内容(1):
import java.awt.*; import java.awt.event.*; import javax.swing.*;
-9-
public class Calculator extends Frame implements ActionListener,
return true; } 判断有指定的象征的玩家胜利 public boolean isWon(char token) {
for (int i = 0; i < 3; i++) if ((cells[i][0].getToken() == token) && (cells[i][1].getToken() == token) && (cells[i][2].getToken() == token)) { return true; }
为按钮添加行为监听器: ActionListener 为按钮添加键盘适配器: KeyListener 菜单设计: JMenuBar mbar; JMenu mnuFile, mnuEdit, mnuHelp; JMenuItem fileNew, fileOpen, fileSave, fileExit; JMenuItem editCut, editCopy, editPaste, editSelectAll, editDel; JMenuItem helpAbout; JToolBar tlbr; ImageIcon iconNew, iconOpen, iconSave; ImageIcon iconCut, iconCopy, iconPaste; JButton bttnNew, bttnOpen, bttnSave; JButton bttnCut, bttnCopy, bttnPaste; 打开异常处理: catch(Exception ex) { JOptionPane.showMessageDialog (
for (int j = 0; j < 3; j++) p.add(cells[i][j] = new Cell());
判断盘区单位全部是否被棋子占领 public boolean isFull() {
-8-
for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) if (cells[i][j].getToken() == ' ') return false;
for (int j = 0; j < 3; j++) if ((cells[0][j].getToken() == token) && (cells[1][j].getToken() == token) && (cells[2][j].getToken() == token)) { return true; }
功能 4:在任何时候按下“+/-”键,计算器文本框上的Leabharlann Baidu字置反号。
功能 5:第一次按下“运算”键,再按下数字键,将重新输入第二个
数字。再次按下“运算”键,将算出前两个数字运算的结果,然后按下数
-2-
字,将又重新输入新的数字。 功能 6:按下“C”键向前退格,按下“CE”键,数据被全部清除 功能 7:按下“帮助”键查看制作人信息 功能 8:按下“选项”键,点“退出”键退出
清零键的实现方法
input.equals("CE")
displayField.setText("0");
start=true;
内容(2):
使用的包如下:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
if ((cells[0][0].getToken() == token) && (cells[1][1].getToken() == token) && (cells[2][2].getToken() == token)) {
return true; }
if ((cells[0][2].getToken() == token) && (cells[1][1].getToken() == token) && (cells[2][0].getToken() == token)) {
内容二:设计一个记事本,菜单中要求有文件,编辑,和帮助。文 件中有新建、打开、保存和退出;编辑中有剪切、复制和粘贴;帮助中 显示开发人和版本信息。
内容三:编写 tic-tac-toe 游戏程序。即 3*3 的 9 个方格子,每人 下一次看谁先连成一行 3 个
四、算法分析、设计与描述 1.算法分析和设计
button_plus,button_minus,button_multiply,button_divide,button_poin t,
button_equal,button_log,button_tan,button_cos,button_sin,button_ex p;
是否占满 游戏格局
N “X”下棋
Y
Y
是否占 满游戏
N
“O”下棋
是否有 玩家赢
平局
N Y
N Y
输出赢家
是否有 玩家赢
五、程序设计
1.程序设计的基本思路 内容(1): 计算结果显示区设计 private JTextField displayField 保存+,-,*,/,=命令 private String lastCommand 保存计算结果 private double result 判断是否为数字的开始 private boolean start 设置布局、为按钮注册事件监听器 public Calculator()
-4-
记事本面板设计: 文件 编辑 帮助 (文本区)
内容(3) 算法分析: 1 初始化游戏,2 检查棋子是否布满游戏格局,格局被布满则进行赢者 判断,没布满则“X”下棋,3 再次检查游戏格局是否被棋子布满,没布满 则轮到“O”下棋,且跳到步骤 2,若布满格局则进行赢者判断
-5-
算法描叙: 初始化游戏
WindowListener
{
private Container container;
private GridBagLayout layout;
private GridBagConstraints constraints;
private JTextField displayField;
//计算结果显示区
课程设计报告
实验内容: 相关课程: 学 期: 学时学分: 专业班级: 学 号: 姓 名: 指导老师: 提交日期:
综合课程设计 Java 程序设计 2009-2010 学年第 2 学期 48 学时 3 学分 xxxxxxxx xxxxxxxxxxx xxxxxxx
xxx xxxx 年 xx 月 xx 日
创建并且初始化状态标签 private Cell[][] cells = new Cell[3][3]; private JLabel jlblStatus = new JLabel("X's turn to play");
确认玩家顺序 public TicTacToe() {
JPanel p = new JPanel(new GridLayout(3, 3, 0, 0)); for (int i = 0; i < 3; i++)
计算器面板设计
选项
进制转换 帮助 (输出区域)
sqrt +/- exp
C
CE
7
8
9
log
/
4
5
6
tan
*
1
2
3
cos
-
0
.
=
sin
+
算法描述
-3-
开始 选择你要计算运行的进制 10、8、16
进制转换
八进制 处理异常
默认十进制 计算结果显示
十六进制 接受用户输入
否 退出
是否再 次计算
是
刷新
内容(2) 算法分析:此程序应当符合大众化,因为记事本是一个常用程序, 因此我们常用计算机系统带的记事本进行设计本程序,其功能有以下几 个方面: (1)“菜单”中有“文件”,“编辑”,“帮助”三个主菜单。 (2)“文件”中有“新建”,“打开”,“保存”,“退出”四个子菜 单:分别用于新建文件,打开文件,保存文件,退出记事本。 (3)“编辑”中有“剪切”,“复制”,“粘贴”三个子菜单:用于剪 切文字,复制文字,粘贴文字。 (4)“帮助”菜单中有“关于”用来显示作者信息
if(res == JOptionPane.YES_OPTION) { saveFile(); } else if(res == JOptionPane.CANCEL_OPTION) { return; }
内容(3) 创建并且初始化盘区单位 private char whoseTurn = 'X';
内容(1) 算法分析: 首先,设计对输入数字的进行转换,不进行转换操作则默认为十进 制,然后进行符号转换操作以及正弦函数等,接着可以进行加减乘除等 运算,添加“C”、“CE”按钮进行退格和清空操作,清空操作显示“0” , 最后在帮助中显示开发人信息。 功能及界面设计: 功能 1:按下数字键在液晶平上会显示数字,这时计算器最基本的 功能。 功能 2:输入数字后,点击进制转换,可转换成二、八进制;按“exp” “log”键,则进行 e 次幂运算和自然对数运算;按“tan”“cos”“sin” 则进行三角函数运算。 功能 3:按“+”“-”“*”“/”分别进行四则运算
二、实验环境
硬 件 环 境 CPU : AMD5000+ 双 核 主 板 : 华 硕 M2N-X 显 示 器 :
1024x768/256 色 操作系统:Windows XP;JDK:jdk-6u18-windows-i586; 运行环境以及调试软件:JCreator Pro
三、实验内容 内容一:设计一个计算器,利用它可以进行简单的四则运算(加、减、乘、 除、开方)等,但仅限于十进制下,此外还可以进行(八进制,十进制,十六进制) 之间的相互转换。
-1-
题目 JAVA 课程设计
一、实验目的
通过课程设计,主要要达到两个目的,一是检验和巩固专业知识、 二是提高综合素质和能力。信科 0821 班学生的课程设计主要是 Java 语言 程序设计的实现。通过该课程设计,可以将学生课堂上掌握的理论知识与 处理数据的业务相结合,以检验我们同学们掌握知识的宽度、深度及对知 识的综合运用能力。