java实验报告_计算器_记事本_井字游戏
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告
实验内容:综合课程设计
相关课程: Java程序设计
学期: 2009-2010学年第2学期
学时学分: 48学时 3学分
专业班级: xxxxxxxx
学号: xxxxxxxxxxx 姓名: xxxxxxx 指导老师: xxx 提交日期: xxxx年 xx月xx日
题目JAVA课程设计
一、实验目的
通过课程设计,主要要达到两个目的,一是检验和巩固专业知识、二是提高综合素质和能力。信科0821班学生的课程设计主要是Java语言程序设计的实现。通过该课程设计,可以将学生课堂上掌握的理论知识与处理数据的业务相结合,以检验我们同学们掌握知识的宽度、深度及对知识的综合运用能力。
二、实验环境
硬件环境CPU:AMD5000+ 双核主板:华硕M2N-X 显示器:
1024x768/256色
操作系统:Windows XP;JDK:jdk-6u18-windows-i586;
运行环境以及调试软件:JCreator Pro
三、实验内容
内容一:设计一个计算器,利用它可以进行简单的四则运算(加、减、乘、除、开方)等,但仅限于十进制下,此外还可以进行(八进制,十进制,十六进制)之间的相互转换。
内容二:设计一个记事本,菜单中要求有文件,编辑,和帮助。文
件中有新建、打开、保存和退出;编辑中有剪切、复制和粘贴;帮助中
显示开发人和版本信息。
内容三:编写tic-tac-toe游戏程序。即 3*3的9个方格子,每人
下一次看谁先连成一行3个
四、算法分析、设计与描述
1.算法分析和设计
内容(1)
算法分析:
首先,设计对输入数字的进行转换,不进行转换操作则默认为十进制,然后进行符号转换操作以及正弦函数等,接着可以进行加减乘除等
运算,添加“C”、“CE”按钮进行退格和清空操作,清空操作显示“0”,最后在帮助中显示开发人信息。
功能及界面设计:
功能1:按下数字键在液晶平上会显示数字,这时计算器最基本的
功能。
功能2:输入数字后,点击进制转换,可转换成二、八进制;按“exp”“log”键,则进行e次幂运算和自然对数运算;按“tan”“cos”“sin”则进行三角函数运算。
功能3:按“+”“-”“*”“/”分别进行四则运算
功能4:在任何时候按下“+/-”键,计算器文本框上的数字置反号。
功能5:第一次按下“运算”键,再按下数字键,将重新输入第二个数字。再次按下“运算”键,将算出前两个数字运算的结果,然后按下数
字,将又重新输入新的数字。
功能6:按下“C”键向前退格,按下“C E”键,数据被全部清除
功能7:按下“帮助”键查看制作人信息
功能8:按下“选项”键,点“退出”键退出
计算器面板设计
算法描述
选项进制转换帮助
(输出区域)
sqrt +/- exp C CE 7 8 9 log / 4 5 6 tan * 1 2 3 cos - 0 . = sin +
内容(2)
算法分析:此程序应当符合大众化,因为记事本是一个常用程序,因此我们常用计算机系统带的记事本进行设计本程序,其功能有以下几个方面:
(1)“菜单”中有“文件”,“编辑”,“帮助”三个主菜单。
(2)“文件”中有“新建”,“打开”,“保存”,“退出”四个子菜单:分别用于新建文件,打开文件,保存文件,退出记事本。
(3)“编辑”中有“剪切”,“复制”,“粘贴”三个子菜单:用于剪切文字,复制文字,粘贴文字。
(4)“帮助”菜单中有“关于”用来显示作者信息
计算结果显示
接受用户输入
是否再次计算
退出
是
否
处理异常
默认十进制 十六进制
八进制
开始
选择你要计算运行的进制10、8、16
进制转换
刷新
记事本面板设计:
文件编辑帮助
(文本区)
内容(3)
算法分析:
1初始化游戏,2检查棋子是否布满游戏格局,格局被布满则进行赢者判断,没布满则“X”下棋,3再次检查游戏格局是否被棋子布满,没布满则轮到“O”下棋,且跳到步骤2,若布满格局则进行赢者判断
算法描叙:
五、程序设计
1.程序设计的基本思路 内容(1):
计算结果显示区设计
private JTextField displayField 保存+,-,*,/,=命令
private String lastCommand 保存计算结果
private double result 判断是否为数字的开始 private boolean start
设置布局、为按钮注册事件监听器 public Calculator()
是否占满游戏格局
初始化游戏
平局
是否有玩家赢
是否占满游戏
输出赢家
“O ”下棋
“X ”下棋
Y
Y
N
N
N
Y
是否有玩家赢
N
Y
调用成员方法添加菜单
this.addmyMenu()
按钮的单击事件处理方法
public void actionPerformed(ActionEvent e)
退格键的实现方法
if(input.equals("C")) {
if(str.length()>0)
displayField.setText(str.substring(0,str.length()-1)); // 清零键的实现方法
input.equals("CE")
displayField.setText("0");
start=true;
内容(2):
使用的包如下:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
为按钮添加行为监听器: 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
(