当前位置:文档之家› 《Java程序设计》课程设计报告 (1)

《Java程序设计》课程设计报告 (1)

河南工程学院计算机学院课程设计报告书学号:201312211115 姓名:陈晏猛学院:计算机学院专业班级:软件工程1341 专业课程:Java程序设计指导教师:汪伟2014 年12 月27 日目录第1章计算器的设计与实现 (1)1.1设计目的..................... ..... ... (2)1.2系统实现思路...................... ... (3)1.3系统详细设计.............. ..... . (4)1.4系统调试运行................ ..... .. (7)第2章2048的设计与实现 (1)1.1设计目的..................... ..... ... (2)1.2系统实现思路...................... ... (3)1.3系统详细设计.............. ..... . (4)1.4系统调试运行................ ..... .. (7)第3章课程设计体会 (8)参考文献................. .... .... (9)附录................... .... .... .... . (10)第1章计算器的设计与实现1.1 设计目的本课程设计的目的就是通过一次集中的强化训练,使学生能巩固自己的学识,补充未学的但有必要的内容。

进行课程设计的目的在于加深对程序设计基础中理论和基本知识的理解,促进理论与实践的结合,进一步提高程序设计的能力。

同时,在程序设计方法及上机操作方面受到比较系统严格的训练,培养软件工作所需要的动手能力。

(1)使学生更深入的理解和掌握课程中有关基本概念,程序设计的思想和方法。

(2)培养学生综合运用所学知识独立完成课题的能力。

(3)培养学生勇于探索,严谨推理,实事求是,有错必改,用实践来验证理论,全方位考虑问题等科学技术人员应具有的素质。

(4)提高学生对工作认真负责,一丝不苟,对同学团结友爱,协作攻关的基本素质。

(5)培养学生从资料文献,科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。

(6)对学生掌握知识的深度,运用理论去处理问题的能力,实验能力,课程设计的能力,书面及口头表达能力进行考核。

1.2系统实现思路1.2.1系统目标编写程序代码设计一个计算器,要有以下几个功能:二进制,八进制,十进制及十六进制的加,减,乘,除,乘方,取模等简单计算:科学计算函数,包括(反)正弦,(反)余弦,(反)正切,(反)余切,开方,指数等函数运行。

我们可以把计算器的编译分成两大步骤:第一步骤:设计出计算器的雏形(框架),也就是计算器的排版布局;第二步骤:逐步实现计算器的功能。

1.2.2主题功能进行的运算单视图实现的计算:加,减,除,乘;用科学视图实现科学运算:用简进制用户根据程序提示,输入数字,选择要转换,三角函数,开方,对数,求底等。

1.2.3系统的功能模块划分进入计算器主菜单,计算器按功能模块划分为:简单计算器模块和科学计算模块。

简单计算器模块包括:加法运算,减法运算,乘法运算,除法运算。

科学计算器模块包括:进制转换,三角函数,对数,开方。

根据用户需求选择需要的计算模式。

其模式图形如1.2.3图:1.3系统详细设计从表面上看,计算器就包括一个文本框和一系列按钮(面板)。

文本框在上面,按钮平均分布在文本框的下方。

例如文本框的初建模型如下图所示:1.3.1文本框的设计从表面上看,计算器就包括一个文本框和一系列按钮(面板)。

文本框在上面,按钮平均分布在文本框的下方所以整体把文本框看做一部分,把按钮看做一部分,采用BorderLayout布局较好。

JPanel panel2 = new JPanel(new BorderLayout());panel2.add("Center", display);panel2.add("East", reset);添加到窗口上方JPanel panel1 = new JPanel(new GridLayout(4, 5));for (i = 0; i < str.length; i++) {buttons[i] = new JButton(str[i]);panel1.add(buttons[i]);}添加到窗口中区,即下方。

其次,按钮我们可以看出是平均分布在面板上的(四列五行)采用GridLayout布局较好。

最后,布局分析好了,该添加按钮和文本框了。

当然文本按钮都需要在窗口类中定义。

再加上代码方法就会如图所示:这样计算器的雏形出来了。

1.3.2源程序import java.awt.*;import java.awt.event.*;import javax.swing.*;public class JCalculator extends JFrame implements ActionListener { int i;// 数字和字符串运算符按钮。

private final String[] str = { "7", "8", "9", "+", "-", "4", "5", "6", "*", "/", "1", "2", "3", "0", ".", "=" ,"%","+/-","倒数","sqrt"};// 创建按钮。

JButton[] buttons = new JButton[str.length];// 创建重置按钮。

JButton reset = new JButton("C");//文本框。

JTextField display = new JTextField("0")//无参构造函数,界面布局public JCalculator() {super("Calculator");// panel1操作区// 设置布局管理器为GridLayout,将界面区域划分为4行5列。

JPanel panel1 = new JPanel(new GridLayout(4, 5));for (i = 0; i < str.length; i++) {buttons[i] = new JButton(str[i]);panel1.add(buttons[i]);}//panel2文本输出和重置区JPanel panel2 = new JPanel(new BorderLayout());panel2.add("Center", display);panel2.add("East", reset);// 界面JPanelgetContentPane().setLayout(new BorderLayout());getContentPane().add("North", panel2);getContentPane().add("Center", panel1);// 每位操作按钮添加动作监听器;for (i = 0; i < str.length; i++)buttons[i].addActionListener(this);// "重置"按钮添加监听器。

reset.addActionListener(this);// "显示"按钮添加监听器。

display.addActionListener(this);// 初始化窗口大小。

setSize(400,300);//初始化窗口的位置setLocation(300,200);// 显示窗口。

setVisible(true);//关闭窗口addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent we) {System.exit(0);}});}//实现监听器double number = 0.0;String operator = "=";boolean isFirstDigit = true;//数字处理。

public void handleNumber(String key) {if (isFirstDigit)display.setText(key);elseif ((key.equals(".")) && (display.getText().indexOf(".") < 0)) display.setText(display.getText() + ".");elseif (!key.equals("."))display.setText(display.getText() + key);isFirstDigit = false;}//重置计算器。

public void handleReset() {display.setText("0");isFirstDigit = true;operator = "=";}//运算符操作public void handleOperator(String key) {if (operator.equals("+")) //加法运算number += Double.valueOf(display.getText());elseif (operator.equals("-"))//减法运算number -= Double.valueOf(display.getText());elseif (operator.equals("*"))//乘法运算number *= Double.valueOf(display.getText());elseif (operator.equals("/"))//除法运算number /= Double.valueOf(display.getText()); elseif (operator.equals("="))//赋值运算number = Double.valueOf(display.getText());elseif (operator.equals("sqrt"))//平方根运算number= Math.sqrt(number);elseif (operator.equals("%"))//百分号运算number= number /100;elseif (operator.equals("+/-"))//正负号运算number =number*(-1);elseif (operator.equals("倒数"))//倒数运算if (number==0){System.out.println("输入有误,0没有倒数!");}else {number=1/number;}display.setText(String.valueOf(number));operator = key;isFirstDigit = true;}//监听器public void actionPerformed(ActionEvent e) {Object target = e.getSource();String label = e.getActionCommand();if (target == reset)handleReset();elseif ("0123456789.".indexOf(label) > 0)handleNumber(label);elsehandleOperator(label);}//main函数public static void main(String[] args) {new JCalculator();}}1.4系统调试运行根据以上程序设计的内容,为了避免比必要的错误出现,严谨求实,遵循探索精神,要对源程序进行自我检测(系统的调试运行),看是否存在严重的错误和警告。

相关主题