java实验报告_计算器_记事本_井字游戏
java简易计算器实训报告(一)

java简易计算器实训报告(一)Java简易计算器实训报告实训目的通过编写一个简易的Java计算器,深入了解Java基础语法,并掌握对象的属性和行为。
实训过程本次实训采用Eclipse编写Java程序,具体过程如下:1.首先创建一个名为“Calaulator”的Java项目,再在其中创建一个名为“Calaulator”的类。
2.在Calaulator类中定义一个名为“calculate”的方法,此方法接收3个参数:一个char类型的操作符,两个double类型的操作数,返回值为double类型。
3.在方法体中根据传入的操作符进行相应的加、减、乘、除运算。
4.创建一个主函数,在其中调用calculate方法并输出结果。
实训收获通过本次实训,我掌握了Java的基础语法,并深入了解了对象的属性和行为。
同时,我还学会了如何使用Eclipse编写Java程序,提高了自己的编程水平。
实训总结Java语言作为一种强大而稳定的编程语言,具有广泛的应用场景。
通过本次实训,我深刻认识到Java的重要性,并希望能够在以后的学习中不断探索Java语言的更多使用方法。
实训反思在实训过程中,我发现自己对Java的基础语法了解不够深入,导致编写代码时遇到一些困难,需要不断查阅相关资料。
同时,在调试代码时也遇到了许多问题,发现自己对IDE的使用不够熟练,需要更多的实践和学习。
实训展望通过本次实训,我已经初步掌握了Java的基础语法和编程思想,但我认为这只是一个开始。
我需要不断地练习,深入了解Java的各种特性,将其应用到实际开发中。
未来,我希望能够成为一名优秀的Java工程师,为社会做出自己的贡献。
结语本次Java简易计算器实训让我收获颇丰,不仅加深了对Java的认识,也增强了自己的编程实践能力。
希望今后能够在Java的学习和实践中不断提高自己,取得更好的成果。
大学java课程设计实验报告--计算器

JAVA课程设计报告组员信息:第(二)组计算器的实现问题问题描述:制作一个计算器基本要求:要求实现类似Windows操作系统里面的标准计算器。
在此基础上实现部分科学性的功能。
测试数据:分别对加、减、乘、除和sin、cos、tan函数进行测试算法思想:使用String定义的数组a[25]对每个按钮进行按钮赋值,创建一个Panel进行字符和数字的存放,调用addActionListener()对各个时间进行监听。
调用系统库函数对数值进行运算。
模块划分:1、主函数main()创建一个计算器。
2、void actionPerformed(ActionEvent e)对鼠标点击的事件进行响应以及在文本框中的显示。
3、各Buuton对应的功能:“开方”:对输入数字开方“平方”:对输入数字平方“getResult()”:对四则运算进行分别运算操作“backspace”:取消上一次的操作“CE”:取消上一次运算的操作“C”:清空作用“sin”:对输入数据进行sin运算“cos”:对输入数据进行cos运算“tan”:对输入数据进行tan运算“+/-”:对输入的数据取反“+”,“-”,“*”,“/”:对数据进行四则运算源程序:package hechongwei;import ng.String;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.util.*;import ng.Math;class Calculator extends JFrame implementsActionListener {JTextField tf = new JTextField(" ");String str1 = " ", str2 = " ", str3 = " "; // str1和str2存放两个输入的数Panel pn1 = new Panel();// new 一个Panel存放符号与数字String a[] = { "平方", "开方", "backspace", "CE", "C", "7", "8", "9", "/","sin", "4", "5", "6", "*", "cos", "1", "2", "3", "-", "tan", "0","+/-", ".", "+", "="};// 用于对每个Button 进行赋值boolean frist = true;// 判断是否输入的为第一个字符int operCount = 0;int i; // 统计符号的数目String Operate = null;// 存放操作数的符号boolean error = false;double num1 = 0.0, num2 = 0.0;// 两个输入的数作运算时转化为double存放double result = 0.0;// 暂时保留计算结果public Calculator() {super("简单计算机 ");tf.setHorizontalAlignment(JTextField.RIGHT) ;// 显示框中由右想左输出tf.setEditable(false);Button b[] = new Button[25];for (i = 0; i < 5; i++) { // 将符号加到对应的Button上b[i] = new Button(String.valueOf(a[i]));pn1.add(b[i]);b[i].setActionCommand(a[i]);b[i].addActionListener(this);// 调用addActionListener()方法注册事件监听器}for (i = 5; i <= 7; i++) {b[i] = new Button(String.valueOf(a[i]));pn1.add(b[i]);b[i].setActionCommand("number");b[i].addActionListener(this);}b[8] = new Button(String.valueOf(a[8]));pn1.add(b[8]);b[8].setActionCommand("oper");b[8].addActionListener(this);b[9] = new Button(String.valueOf(a[9]));pn1.add(b[9]);b[9].setActionCommand(a[9]);b[9].addActionListener(this);for (i = 10; i <= 12; i++) {b[i] = new Button(String.valueOf(a[i]));pn1.add(b[i]);b[i].setActionCommand("number");b[i].addActionListener(this);}b[13] = new Button(String.valueOf(a[13])); pn1.add(b[13]);b[13].setActionCommand("oper");b[13].addActionListener(this);b[14] = new Button(String.valueOf(a[14])); pn1.add(b[14]);b[14].setActionCommand(a[14]);b[14].addActionListener(this);for (i = 15; i <= 17; i++) {b[i] = new Button(String.valueOf(a[i]));pn1.add(b[i]);b[i].setActionCommand("number");b[i].addActionListener(this);}b[18] = new Button(String.valueOf(a[18])); pn1.add(b[18]);b[18].setActionCommand("oper");b[18].addActionListener(this);b[19] = new Button(String.valueOf(a[19])); pn1.add(b[19]);b[19].setActionCommand(a[19]);b[19].addActionListener(this);for (i = 20; i <= 22; i++) {b[i] = new Button(a[i]);pn1.add(b[i]);b[i].setActionCommand(a[i]);b[i].addActionListener(this);}b[23] = new Button(String.valueOf(a[23])); pn1.add(b[23]);b[23].setActionCommand("oper");b[23].addActionListener(this);b[24] = new Button(String.valueOf(a[24])); pn1.add(b[24]);b[24].setActionCommand(a[24]);b[24].addActionListener(this);pn1.setLayout(new GridLayout(5, 5));add(tf, "North"); // 界面的处理add(pn1, "Center");setSize(400, 300);setVisible(true);tf.setText("0.0");addWindowListener(new WindowAdapter() { //程序结束public void windowClosing(WindowEvent e) {System.exit(1);}});}public void actionPerformed(ActionEvent e) { Button temp = (Button) e.getSource();try {if(e.getActionCommand().equals("number")) {if (frist) {str1 = str1 + temp.getLabel();tf.setText(str1); // 将输入的str1在显示框中显示} else {str2 = str2 + temp.getLabel();tf.setText(str2);// 将输入的str2在显示狂中显示}} else if(e.getActionCommand().equals("oper")) {if (str1 == " ") {operCount= 0;// 如果还没有输入数就点击运算符,执行iffrist = true;} else {operCount++;if (operCount > 1) {// 若输入的字符多余一个,则可进行运算getResult();}Operate= temp.getLabel(); // 存放加,减,乘,除等的符号frist = false;}} else if(e.getActionCommand().equals("=")) {if((str1== "") || (str2== "")) // 两个数没有输全就点击等号,执行if{operCount = 0;// 将按键计数器清零frist = true;} else {getResult();operCount = 0;}} else if(e.getActionCommand().equals("平方")) {if (str1 == " ")tf.setText("0.0");else {double d =Math.pow(Double.parseDouble(str1), 2);str1 = String.valueOf(d);tf.setText(str1);frist = false;}} else if(e.getActionCommand().equals("开方")) {if (str1 == " ")tf.setText("0.0");else {double d =Math.sqrt(Double.parseDouble(str1));str1 = String.valueOf(d);tf.setText(str1);frist = false;}} else if(e.getActionCommand().equals("sin")) {if (str1 == " ") { // 处理sin0 ,cos0等tf.setText("0.0");str1 = "0";}else {double k = Double.parseDouble(str1);k = k * Math.PI / 180;double d = Math.sin(k);str1 = String.valueOf(d);tf.setText(str1);frist = false;}} else if(e.getActionCommand().equals("cos")) {if (str1 == " ") {tf.setText("0.0");str1 = "0";} else {double k = Double.parseDouble(str1);k = k * Math.PI / 180;double d = Math.cos(k);str1 = String.valueOf(d);tf.setText(str1);frist = false;}} else if(e.getActionCommand().equals("tan")) {if (str1 == " ") {tf.setText("0.0");str1 = "0";} else {double k = Double.parseDouble(str1);k = k * Math.PI / 180;double d = Math.tan(k);str1 = String.valueOf(d);tf.setText(str1);frist = false;}} else if(e.getActionCommand().equals("C")) {operCount = 0;// 清空frist = true;str1 = " ";str2 = " ";str3 = " ";tf.setText("0.0");} else if(e.getActionCommand().equals("+/-")) {if (str1 == " ") {tf.setText("0.0");str1 = "0";} else {double k = Double.parseDouble(str1);str1 = String.valueOf(-k);tf.setText(str1);}} else if(e.getActionCommand().equals("CE")) { // 取消上一步的运算tf.setText(str1);frist = true;operCount = 0;str2 = " ";} else if(e.getActionCommand().equals("backspace")) {{// 退格String s = tf.getText();tf.setText("");char b[] = new char[20];for (int i = 0; i < s.length() - 1; i++) {char a = s.charAt(i);b[i] = a;tf.setText(tf.getText() + a);}if (operCount == 0)str1 = tf.getText();elsestr2 = tf.getText();}}} catch (Exception f) {System.out.println(f.getMessage());}}void getResult() {num1 = Double.parseDouble(str1);num2 = Double.parseDouble(str2);if (Operate.equals("+")) {result = num1 + num2;} else if (Operate.equals("-")) { result = num1 - num2;} else if (Operate.equals("*")) { result = num1 * num2;}if (Operate.equals("/")) {if (num2 == 0.0) {error = true;} else {result = num1 / num2;}}if (error) {tf.setText("error");} else {tf.setText(String.valueOf(result));str3 = str1;str1 = String.valueOf(result);str2 = " ";}}public static void main(String args[]) {new Calculator();}}程序流程:if (e.getActionCommand().equals("number"))else if (e.getActionCommand().equals("oper"))else if (e.getActionCommand().equals("="))else if (e.getActionCommand().equals("平方"))else if (e.getActionCommand().equals("开方"))else if (e.getActionCommand().equals("C")) else if (e.getActionCommand().equals("CE"))void getResult()Main()主函数流程:测试情况:图形界面示意图:测试情况测试数据:输入4 ,平方显示结果为16输入4,开方显示结果为2输入4,+,2 显示结果为6输入4,-,2 显示结果为2输入4,*,2显示结果为8输入4,/,2显示结果为2输入1,+,2, +,4,CE,+8 显示结果为11输入1,+,22,Backspace ,= 显示结果为3 输入C 显示结果为0输入30,sin 显示结果为0.5。
java 计算器实验报告

java 计算器实验报告Java计算器实验报告一、引言计算器是我们日常生活和学习中经常使用的工具之一。
它可以帮助我们进行简单的数学运算,提高计算效率。
在本实验中,我们将使用Java编程语言设计并实现一个简单的计算器。
二、实验目的1. 学习Java编程语言的基本语法和数据类型;2. 掌握Java图形用户界面(GUI)的设计和实现;3. 熟悉计算器的基本功能和运算规则。
三、实验步骤1. 界面设计在Java中,我们可以使用Swing库来设计和实现GUI界面。
首先,我们创建一个窗口对象,并设置窗口的标题、大小和布局。
然后,我们在窗口中添加文本框和按钮,用于显示计算结果和接收用户输入。
2. 功能实现计算器的基本功能包括加法、减法、乘法和除法运算。
我们可以通过监听按钮点击事件,获取用户输入的数字和操作符,然后进行相应的运算,并将结果显示在文本框中。
3. 异常处理在进行计算过程中,可能会出现一些异常情况,例如除数为零或输入非法字符等。
为了保证程序的健壮性,我们需要对这些异常进行处理,并给出相应的提示信息。
4. 测试和优化完成代码编写后,我们需要进行测试和优化。
通过输入一系列测试用例,检查计算器是否能够正确处理各种情况,并对可能存在的bug进行修复和优化。
四、实验结果经过多次测试和优化,我们的计算器程序已经能够正确地进行加减乘除运算,并能够处理各种异常情况。
用户友好的界面设计和清晰的提示信息,使得计算器易于使用和操作。
五、实验总结通过本次实验,我学习了Java编程语言的基本语法和数据类型,并且掌握了Java图形用户界面(GUI)的设计和实现方法。
通过实践,我深入理解了计算器的基本功能和运算规则,并学会了如何处理异常情况。
此外,我还培养了代码编写、测试和优化的能力,提高了自己的编程水平。
六、实验感想本次实验让我更加熟悉了Java编程语言,并且提高了我的代码设计和编程能力。
通过自己动手实现一个计算器,我对计算机科学的理论知识有了更深入的理解,并且增强了我的实践能力。
java计算器设计实验报告

java计算器设计实验报告《Java计算器设计实验报告》摘要:本实验报告基于Java语言,设计了一个简单的计算器。
通过使用面向对象的编程方法,实现了基本的加、减、乘、除运算,并且实现了用户界面的交互操作。
本实验报告详细介绍了计算器的设计思路、实现过程和代码结构,并对实验结果进行了分析和总结。
1. 引言计算器是人们日常生活中常用的工具之一,它能够帮助人们进行简单的数学运算。
随着计算器的普及和发展,计算器的功能也越来越丰富,例如科学计算器、金融计算器等。
本实验旨在通过使用Java语言,设计一个简单的计算器,以加深对面向对象编程的理解和应用。
2. 设计思路在设计计算器时,首先需要确定计算器的功能需求,包括加法、减法、乘法、除法等基本运算。
其次,需要考虑用户界面的设计,使用户能够方便地输入数字和选择运算符。
最后,需要考虑计算器的实现方式,包括数据结构的选择、算法的设计等。
3. 实现过程在本实验中,我们使用Java语言和Swing库来实现计算器的设计。
首先,我们创建一个Calculator类来处理计算器的逻辑操作,包括加法、减法、乘法、除法等运算。
然后,我们创建一个CalculatorUI类来处理用户界面的设计,包括数字按钮、运算符按钮和显示屏的设计。
最后,我们将Calculator类和CalculatorUI类进行整合,实现一个完整的计算器。
4. 代码结构以下是计算器的主要代码结构:Calculator类:- add(double a, double b):加法运算- subtract(double a, double b):减法运算- multiply(double a, double b):乘法运算- divide(double a, double b):除法运算CalculatorUI类:- createNumberButton(int number):创建数字按钮- createOperatorButton(String operator):创建运算符按钮- createDisplayScreen():创建显示屏Main类:- main(String[] args):主函数,启动计算器界面5. 实验结果分析通过实验,我们成功地实现了一个简单的计算器,用户能够输入数字并进行加、减、乘、除等运算。
java简易计算器实训报告

java简易计算器实训报告Java简易计算器实训报告随着人们对数学和计算机的需求不断增长,计算器也成为了必备的工具之一。
而在计算机领域,Java语言因其跨平台和易于学习的特点而备受青睐。
因此,我选择了利用Java语言来编写一款简易计算器的实训项目。
一、需求分析在编写计算器之前,我们需要对其功能进行需求分析。
一般来说,计算器的功能包括加、减、乘、除等基本数学运算符,以及括号、百分号、小数点等其他计算功能。
在此基础上,我们可以考虑增加科学计算、历史记录、单位转换等功能。
二、设计思路及实现在需求分析的基础上,我们设计了一款基于Java语言的简易计算器。
其基本功能包括加、减、乘、除、括号、百分号、小数点等。
在实现过程中,我们采用了以下设计思路:1. 利用Java Swing构建GUI界面,让用户可以通过鼠标点击输入数字和运算符。
2. 通过Java的逻辑运算符实现基本的数学运算,包括加、减、乘、除等。
3. 利用Java的正则表达式判断用户输入的数字是否合法,并进行相应的处理。
4. 通过栈的数据结构实现括号运算,使得程序能够正确处理带有括号的数学表达式。
5. 实现百分号功能,使得用户可以快速进行百分比运算。
6. 通过Java的异常处理机制,处理用户输入不合法的情况,避免程序崩溃。
三、代码实现在代码实现过程中,我们主要采用了Java Swing和Java核心库中的一些类和方法。
以下是代码的核心部分:1. GUI界面代码在Java Swing中,我们可以通过JFrame、JPanel、JButton等组件构建出一个GUI界面,使得用户可以通过鼠标点击输入数字和运算符。
以下是界面代码的核心部分:JPanel panel = new JPanel();panel.setLayout(new GridLayout(4,4));//数字按钮panel.add(new JButton("7"));panel.add(new JButton("8"));panel.add(new JButton("9"));panel.add(new JButton("/"));panel.add(new JButton("4"));panel.add(new JButton("5"));panel.add(new JButton("6"));panel.add(new JButton("*"));panel.add(new JButton("1"));panel.add(new JButton("2"));panel.add(new JButton("3"));panel.add(new JButton("-"));panel.add(new JButton("0"));panel.add(new JButton("."));panel.add(new JButton("+"));panel.add(new JButton("("));panel.add(new JButton(")"));panel.add(new JButton("%"));2. 数学运算代码在Java中,我们可以通过逻辑运算符实现基本的数学运算。
实验报告Java计算器

一、实验目的1.熟悉java图形用户界面的设计原理和程序结构。
2.能设计复合问题要求的图形用户界面程序。
3.熟悉java.awt和swing的组合。
4.掌握常用组件的事件接口。
5.会应用awt和swing组件进行应用程序设计。
二、实验内容设计一个计算器,计算器的界面大体是按照windowsXP上自带的微软的计算器的布局设计的。
主要功能包括:实现基本的加减乘除运算,并且能实现连续的运算,能显示运算数和运算结果。
还包括MC、MR 、MS、M+ 、Backspe、+/-、 C、CE、 % 、Sqrt 、1/x 键,能实现相应的功能。
三、整体设计与描述1.点击相应的按钮,输入运算数,显示框内能显示当前输入的数字2、在任何时候按下“+/-”键,计算器文本框上的数字置反号。
3、MC :Memory Clear 清除存储器中的数值4、MR :Memory Read 存储器读出5、MS :Memory Save 存入存储器6、M+ :Memory Plus 将数值与存储器中的数值相加7、M- :Memory Subtract 存储的数字减去显示栏中的数字8、C键为清除键(CLEAR的缩写)9、CE键为纠错键(CLEAR ERROR的缩写)10、Backspase 键为退格键,消去最低位。
11、sqrt是开方键,点击后显示开方后的结果。
12、按下a(运算)b后,不按等于,再按别的运算符,a和b的运算结果会作为第一个操作数再次参与运算。
13、按下“选项”键,点“退出”键退出14、点击帮助的“关于我们”,会弹出一个对话框,显示信息。
整体显示界面如下:四、算法分析与程序设计1、控件的布局界面布局分为三个面板panel1,panel2,panel3.第一个面板上存放数字输入框。
第二个存放存储器标志、回车键、CE、C键四个按钮。
第三个面板存放各个数字和剩下的运算符,布局为4*6的GridLabel。
为了使界面更美观,需要设置适当的行间距和列间距,以及适当的背景色。
java实验报告计算器

java实验报告计算器Java实验报告:计算器引言:计算器是我们日常生活中常用的工具之一,它能够帮助我们进行各种数学运算,提高计算的效率。
本实验旨在使用Java编程语言设计和实现一个简单的计算器,通过实践来加深对Java语言和面向对象编程的理解。
一、需求分析在设计计算器之前,我们首先需要明确计算器的功能需求。
一个基本的计算器应该包括加、减、乘、除四种基本运算,同时还应该具备清零、取反、百分比等附加功能。
在本实验中,我们将实现这些基本功能,并尝试添加一些额外的功能,如开根号、求平方等。
二、设计思路1. 用户界面设计我们可以使用Java的图形用户界面(GUI)库来设计计算器的界面。
可以使用按钮来表示数字和运算符,使用文本框来显示计算结果。
2. 数据结构设计为了实现计算器的功能,我们需要设计一个合适的数据结构来存储用户输入的数字和运算符。
可以使用栈(Stack)数据结构来实现这个功能。
当用户按下数字按钮时,将数字入栈;当用户按下运算符按钮时,将运算符入栈。
当用户按下等号按钮时,从栈中取出数字和运算符进行计算,并将结果显示在文本框中。
3. 运算逻辑设计计算器的运算逻辑可以使用逆波兰表达式来实现。
逆波兰表达式是一种不需要括号的数学表达式表示方法,通过后缀表达式的形式来表示运算符的优先级。
在计算器中,我们可以使用栈来实现逆波兰表达式的计算。
三、实验步骤1. 创建一个Java项目,并导入GUI库。
2. 设计计算器的用户界面,包括按钮和文本框。
3. 实现按钮的点击事件,根据用户输入的数字和运算符来更新栈的状态。
4. 实现等号按钮的点击事件,从栈中取出数字和运算符进行计算,并将结果显示在文本框中。
5. 实现清零、取反、百分比等附加功能的按钮点击事件。
6. 运行程序,测试计算器的各项功能是否正常。
四、实验结果与分析经过测试,我们的计算器能够正常地进行加、减、乘、除等基本运算,并且附加功能也能正常使用。
通过这个实验,我们不仅学习了Java语言的基本语法和面向对象编程的思想,还加深了对数据结构和逆波兰表达式的理解。
Java计算器实验报告-V1

Java计算器实验报告-V1Java计算器实验报告一、实验目的本次实验旨在巩固Java语言的基础知识,提高学生对于面向对象程序设计思想的理解能力,以及能够使用Java实现一个简单的计算器程序。
二、实验原理计算器程序是一种非常基础的应用程序,其功能主要就是进行数字运算。
在实现计算器程序时,需要设计出一个能够接受用户输入的界面,并能够将输入的数据进行运算后输出结果。
在实现计算器程序时应采用面向对象的编程方式,按照设计模式分为模型、视图和控制器三个模块进行设计和编码。
三、实现步骤1. 模型层的实现在模型层中,需要定义一个Calculator类,其中包括了数字、运算符等运算元素以及进行运算的方法。
可以根据需求,实现加、减、乘、除、取余、开方等基本计算功能。
2. 视图层的实现视图层主要是实现用户界面,将用户输入的数据以及计算结果显示在界面上。
可以采用Java Swing技术进行实现,在面板中添加按钮、文本框等控件,提供操作按钮接收用户输入,再通过文本框将结果输出到界面上。
3. 控制器层的实现控制器层主要是将模型和视图两层进行连接,完成用户界面与计算功能的交互。
其中的核心内容是监听按钮等控件的事件,并且根据不同事件执行相应的计算方法,最终将计算结果显示在屏幕上。
四、实验结果通过以上部分的实现,最终能够得到一个功能完善、简便易用、稳定可靠的计算器程序。
用户可以根据自己的需求进行输入操作,通过各种不同的按钮实现各种计算操作,最终实现对数字进行自由简单的计算。
五、实验总结本次实验中,我能够通过Java语言设计模式,掌握了实现一个简单的计算器程序所需的基本技能。
在程序实现过程中,我也更加深入地理解了面向对象的思维方式,能够更好地把握Java语言的核心思想和编程范式。
此外,通过本次实验,我也意识到了计算器程序的设计必须要非常仔细,需要严谨检测程序每个功能的正确性以及程序稳定性,这对于后续工作的开展具有很大的指导意义。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
是否占满 游戏格局
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()
button_plus,button_minus,button_multiply,button_divide,button_poin t,
button_equal,button_log,button_tan,button_cos,button_sin,button_ex p;
创建并且初始化状态标签 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++)
二、实验环境
硬 件 环 境 CPU : AMD5000+ 双 核 主 板 : 华 硕 M2N-X 显 示 器 :
1024x768/256 色 操作系统:Windows XP;JDK:jdk-6u18-windows-i586; 运行环境以及调试软件:JCreator Pro
三、实验内容 内容一:设计一个计算器,利用它可以进行简单的四则运算(加、减、乘、 除、开方)等,但仅限于十进制下,此外还可以进行(八进制,十进制,十六进制) 之间的相互转换。
计算器面板设计
选项
进制转换 帮助 (输出区域)
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)“帮助”菜单中有“关于”用来显示作者信息
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,
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; }
清零键的实现方法
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)) {
-7-
this, ex.getMessage(), "打开失败", JOptionPane.ERROR_MESSAGE ); } 退出异常处理: if(txtChanged) { int res; res = JOptionPane.showConfirmDialog ( this, "保存更改?", "退出", JOptionPane.YES_NO_CANCEL_OPTION );
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;
-1-
题目 JAVA 课程设计
一、实验目的
通过课程设计,主要要达到两个目的,一是检验和巩固专业知识、 二是提高综合素质和能力。信科 0821 班学生的课程设计主要是 Java 语言 程序设计的实现。通过该课程设计,可以将学生课堂上掌握的理论知识与 处理数据的业务相结合,以检验我们同学们掌握知识的宽度、深度及对知 识的综合运用能力。
为按钮添加行为监听器: 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 (
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; }
if(res == JOptionPane.YES_OPTION) { saveFile(); } else if(res == JOptionPane.CANCEL_OPTION) { return; }
内容(3) 创建并且初始化盘区单位 private char whoseTurn = 'X';
-4-
记事本面板设计: 文件 编辑 帮助 (文本区)
内容(3) 算法分析: 1 初始化游戏,2 检查棋子是否布满游戏格局,格局被布满则进行赢者 判断,没布满则“X”下棋,3 再次检查游戏格局是否被棋子布满,没布满 则轮到“O”下棋,且跳到步骤 2,若布满格局则进行赢者判断
-5-
算法描叙: 初始化游戏
内容二:设计一个记事本,菜单中要求有文件,编辑,和帮助。文 件中有新建、打开、保存和退出;编辑中有剪切、复制和粘贴;帮助中 显示开发人和版本信息。
内容三:编写 tic-tac-toe 游戏程序。即 3*3 的 9 个方格子,每人 下一次看谁先连成一行 3 个
四、算法分析、设计与描述 1.算法分析和设计
return true; }
return false; }
2.程序代码 内容(1):