课程设计 JAVA 画板 模拟画图工具

课程设计 JAVA 画板 模拟画图工具
课程设计 JAVA 画板 模拟画图工具

目录

1 课题介绍 (1)

1.1 课程设计目的 (1)

1.2 课程设计要求 (1)

1.3 课程设计主要知识点 (1)

2 总体设计 (2)

2.1 画板界面设计图 (2)

2.2 模块概述 (2)

2.2.1 文件操作 (2)

2.2.2 图形绘制 (2)

3 详细设计与实现 (4)

3.1 框架类DrawGraphic (4)

3.1.1菜单 (4)

3.1.2工具栏 (6)

3.1.3画图区域 (7)

3.2 基本图形类 (10)

3.2.1 父类Drawings (10)

3.2.2 子类(只列出部分) (10)

4 设计中的难点 (12)

4.1多态与动态绑定 (12)

4.2重绘的理解 (12)

4.3文件的新建、打开和保存 (12)

5 运行测试 (13)

6 总结 (15)

参考文献 (16)

1 课题介绍

1.1 课程设计目的

课程设计题目:模拟画图

要求设计一个程序,模拟Windows中的画图程序,实现图形图像的编辑,修改,保存等功能。

1.2 课程设计要求

(1)程序中必须包括“新建”、“打开”、“保存”,用户可以选择,实现对文件的操作;

(2)画图板的绘图按钮用来画出不同的图形,包括实心图形和空心的图形;

(3)可以对线条的颜色和粗细进行设置,也可以对填充图形的颜色进行设置和更改。

1.3 课程设计主要知识点

(1)框架类DrawGraphic继承了Swing类库中JFrame,并且用到JButton,JLabel,JPanel,等Swing类库中的组件进行窗体设计;

(2)选择一个文件,用到组件JFileChooser;

(3)选择颜色,用到组件JColorChooser;

(4)弹出标准对话框,用到组件JOptionPane;

(5)在单击绘图按钮时,所触发的动作通过方法addActionListener和ActionListener接口的actionPerformed方法共同实现;

(6)MouseAdapter和MouseMotionAdapter用来完成鼠标各种事件的相应操作,包括单击、移动、拖拽等;

(7)在界面设计的时候结合BorderLayout和GridLayout两种布局格式;

(8)在添加监听器的时候有用到内部匿名类和内部类,所以要熟悉它们的构造方法和使用方法,从中体会持有对方引用的这一设计思想。

(9)在图形绘制的时候,用到Graphics类,其揭示了所有图形系统几乎都采用的一种机制,就是如何在窗口上画出一些图形来,当窗口构造出来的时候里面有一支画笔,即Graphics的一个对象,当窗口调用paint方法的时候,系统会把画笔自动传递给它,拿到画笔,重写paint方法就实现了在窗口上绘制基本图形。

2 总体设计

2.1 画板界面设计图

定义框架类DrawGraphic,然后在框架上直接添加菜单栏,整个框架采用BorderLayout的布局格式。工具栏、显示鼠标位置的标签、主要的画图区域分别在框架的west,south,center三块区域。而浮动式工具栏采用的是GridLayout 布局格式,其初始方向设定为VERTICAL,如下图所示:

2.2 模块概述

2.2.1文件操作

文件的新建,打开,保存可以添加内部匿名类的方式实现,new一个事件监听器ActionListener,里面调用actionPerformed的方法,被监听的按钮一旦被触发就调用函数执行相应的操作。

2.2.2 图形绘制

在工具栏里面实现了基本图形的绘制,图形属性的设置,如画笔粗细和画笔颜色的设置,以及橡皮擦,文字输入等功能,而这些功能的实现都是通过添加内

部事件监听器类来实现的。一个类用来监听绘制基本图形以及橡皮擦按钮;另一个类用来监听的是选择颜色按钮、选择画笔粗细按钮、和输入文字按钮,里面都用if语句和e.getSource来判断事件源,从而在触发时,调用不同的函数,当事件源为输入文字时,用JOptionPane.showMessageDialog来弹出一个提示操作的对话框。

画图区域的功能主要是通过添加鼠标监听器来实现的:

一个鼠标监听器监听的是:单击鼠标,释放鼠标,鼠标进入绘图区域,鼠标离开绘图区域这四个鼠标的动作事件;

另一个监听的是:鼠标拖拽和鼠标移动。而且,两个监听器之间是存在着密不可分的关系的,它们同时监听画图区域。

铅笔作画和橡皮擦的使用是画图板设计的核心也是难点,而且两者的实现原理是一样的,我们通常画图的时候,一定是先单击鼠标然后拖拽鼠标最后释放鼠标的,所以,在画图的过程中,只要鼠标单击一下就获得(x1,y1),紧接着用if语句判断画的基本图形是哪一个,如果是铅笔或者橡皮擦,则获得(x2,y2),说明在铅笔或橡皮擦的时候,鼠标单击一下,就获得一个点,x1=x2,y1=y2,且这个点的坐标就是鼠标单击的位置,而且这个点是算作第一个基本图形的,此时index=1;拖拽的过程中动态获得鼠标所在位置的横纵坐标且始终x1=x2,y1=y2,并且等于第一个基本图形也就是index=1的那个点的x2,y2,即,在铅笔作画的过程中,在鼠标不断拖拽的过程中,index=1时的那个点在以点的点的长度不断增加,这就是铅笔作画过程的实现;鼠标释放的时候,在铅笔或橡皮的状态下,也是得到一个点。所以,可以总结,铅笔和橡皮都是通过设置画直线方法中的点的坐标相等来实现的。其它图形的绘制,可以直接调用Graphics2D中的方法实现,相对比较简单。

3 详细设计与实现

3.1 框架类DrawGraphic

3.1.1菜单

菜单栏有两个按钮“画图板”、“帮助”,通过添加内部匿名类来实现,一旦下拉菜单中的“新建”、“打开”、“保存”、“退出”四个键被触发,就调用相关的函数,具体代码如下:

(1)“新建”执行时,调用的函数代码如下:

publicvoid newFile(){

index = 0;

currentChoice = 3;

color = Color.BLUE;

stroke = 1.0f;

createNewItem();

repaint();

}

(2)“打开”执行时,调用的函数代码如下:

publicvoid openFile(){

JFileChooserfileChooser = new JFileChooser();//为用户选择文件提供了一种简单的机制

fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);

int result = fileChooser.showOpenDialog(this);//弹出一个 "Open File" 文件选择器对话框,父组件

if(result == JFileChooser.CANCEL_OPTION) return;

File fileName = fileChooser.getSelectedFile();

fileName.canRead();//测试应用程序是否可以读取此抽象路径名表示的文件

if(fileName == null||fileName.getName().equals("")){

JOptionPane.showMessageDialog(fileChooser, "这个名字不可以用的"," ",

JOptionPane.ERROR_MESSAGE);

}

else{

try{

FileInputStreamfis = new FileInputStream(fileName);

input = new ObjectInputStream(fis);

int countNumber=0;

countNumber = input.readInt();

for(index=0;index

Drawings inputRecord = (Drawings)input.readObject();

itemList[index] = inputRecord;

}

createNewItem();

input.close();

repaint();

}catch(EOFExceptionendofFileException){//当输入过程中意外到达文件或流的末尾时,抛出此异常

JOptionPane.showMessageDialog(this, "no more record in file",

"end of file",JOptionPane.ERROR_MESSAGE);

}catch(ClassNotFoundExceptionclassNotFoundException){

JOptionPane.showMessageDialog(this, "unable to create object",

"class not found",JOptionPane.ERROR_MESSAGE);

}catch(IOExceptionioException){

JOptionPane.showMessageDialog(this, "error during read from file",

"read error",JOptionPane.ERROR_MESSAGE);

}

}

}

(3)“保存”执行时,调用的代码如下:

publicvoid saveFile(){

JFileChooserfileChooser = new JFileChooser();

fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY); //允许用户只选择文件

int result = fileChooser.showSaveDialog(this);//弹出一个 "Save File" 文件选择器对话框

if(result == JFileChooser.CANCEL_OPTION) return;

File fileName = fileChooser.getSelectedFile();

fileName.canWrite();

if(fileName == null||fileName.getName().equals("")){

JOptionPane.showMessageDialog(fileChooser, "这个名字不可以用的"," ",JOptionPane.ERROR_MESSAGE);

}

else{

try{

fileName.delete();

FileOutputStreamfos = new FileOutputStream(fileName);

output = new ObjectOutputStream(fos);

output.writeInt(index); //写入一个32位的int值

for(int i= 0;i

Drawings outputRecord = itemList[i];

output.writeObject(outputRecord); //将指定的对象写入ObjectOutputStream

output.flush(); //此操作将写入所有已缓冲的输出字节,并将它们刷新到底层流中

}

output.close();

fos.close();

}catch(IOExceptionioe){

ioe.printStackTrace();

}

}

}

3.1.2工具栏

工具栏按钮功能的实现,是通过添加两个内部事件监听类ButtonHandler1、ButtonHandler2来达到目的的。

(1)ButtonHandler1监听绘制基本图形的按钮,if语句判断事件源,具体代码如下:

publicclass ButtonHandler1 implements ActionListener{

publicvoid actionPerformed(ActionEvent e){

for(int j=3;j

if(e.getSource()==choices[j]){

currentChoice = j;

createNewItem();

repaint();

}

}

}

}

(2)ButtonHandler2监听颜色选色器、画笔粗细、添加文字按钮,if语句判断事件源,相应的按钮被触发,就执行相应的函数,具体代码如下:publicclass ButtonHandler2 implements ActionListener{

publicvoid actionPerformed(ActionEvent e){

if(e.getSource()==choices[choices.length-3]){

chooseColor();

}

if(e.getSource()==choices[choices.length-2]){

setStroke();

}

icon =

new ImageIcon(getClass().getResource("/images/smile.png"));

if(e.getSource()==choices[choices.length-1]){

JOptionPane.showMessageDialog(null, "想在哪里添加文字呢?鼠

标先点一下那里吧!",

" ",https://www.360docs.net/doc/dd1492719.html,RMATION_MESSAGE,icon);

currentChoice = 14;

createNewItem();

repaint();

}

}

}

3.1.3画图区域

(1)createNewItem()用来new各种基本图形,在函数的一开始,我设置了一下光标的样子,然后用switch函数接收currentChoice来判断用户要new的是哪一个基本图形,关键代码如下:

void createNewItem(){

if(currentChoice == 14){

drawingArea.setCursor(Cursor.getPredefinedCursor(Cursor.TEXT_CURS OR));

}

else{

drawingArea.setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR _CURSOR));

}

switch(currentChoice){

case 3:itemList[index] = new Pencil();break;

case 4:itemList[index] = new Line();break;

case 5:itemList[index] = new Rect();break;

case 6:itemList[index] = new fillRect();break;

case 7:itemList[index] = new Oval();break;

case 8:itemList[index] = new fillOval();break;

case 9:itemList[index] = new Circle();break;

case 10:itemList[index] = new fillCircle();break;

case 11:itemList[index] = new RoundRect();break;

case 12:itemList[index] = new fillRoundRect();break;

case 13:itemList[index] = new Rubber();break;

case 14:itemList[index] = new Word();break;

}

itemList[index].type = currentChoice;

itemList[index].R = R;

itemList[index].G = G;

itemList[index].B = B;

itemList[index].stroke = stroke;

}

(2)chooseColor()用来选择各种颜色,具体代码如下:

publicvoid chooseColor(){

color = JColorChooser.showDialog(null, "在这里选择自己喜欢的颜色", color);

R = color.getRed();

G = color.getGreen();

B = color.getBlue();

}

(3)setStroke()用来设置画笔粗细,具体代码如下:

publicvoid setStroke(){

String input;

input = JOptionPane.showInputDialog(null,"在这里重新输入画笔的粗细值(一个>0的实数)","1.0");

stroke = Float.parseFloat(input); //将字符串参数转换为一个 float 值

itemList[index].stroke = stroke;

}

(4)mouseA监听鼠标单击、释放、进入、离开四个事件,当鼠标单击的时候,用 e.getSource()先得到一个点的坐标初始化(x1,y1),再判断单击的是哪一个按钮,如果是绘制其它图形的按钮,那就光得到一个点(x1,y1);如果是铅笔或者橡皮擦,则继续初始化第二个点的坐标(x2,y2),此时x1=x2,y1=y2,即鼠标单击绘出一个点,而这个点是用绘直线方式画出的,表示已绘制的图形个数的index++;如果是添加文字按钮,则弹出一个可以输入文字的对话框。当鼠标释放的时候,如果是铅笔或橡皮,同样得到一个点,如果是绘制其它图形的基本按钮,那就光得到(x2,y2),关键代码如下:

class mouseA extends MouseAdapter{

publicvoid mousePressed(MouseEvent e){

statusBar.setText("Mouse

Pressed@:["+e.getX()+","+e.getY()+"]");

itemList[index].x1 =e.getX();

itemList[index].y1 =e.getY();

if(currentChoice == 3||currentChoice == 13){

itemList[index].x2= e.getX();

itemList[index].y2= e.getY();

index++;

createNewItem();

repaint();

}

if(currentChoice == 14){

itemList[index].x1 = e.getX();

itemList[index].y1 = e.getY();

String input;

input = JOptionPane.showInputDialog("可以添加你想写的文字咯!");//可以输入内容的对话框

itemList[index].s1 = input;

itemList[index].x2 = f1;

itemList[index].y2 = f2; //f1,f2用来存放当前字体风格

itemList[index].s2 = stylel;

index++;

currentChoice = 14;

createNewItem();

drawingArea.repaint();

}

}

publicvoid mouseReleased(MouseEvent e){

statusBar.setText("Mouse

Released@:["+e.getX()+","+e.getY()+"]");

if(currentChoice == 3||currentChoice == 13){

itemList[index].x1 = e.getX();

itemList[index].y1 = e.getY();

}

itemList[index].x2 = e.getX();

itemList[index].y2 = e.getY();

index++;

createNewItem();

repaint();

}

}

(5)mouseB监听鼠标拖拽和移动,在鼠标拖拽的时候,由于鼠标的拖拽一定是在单击之后的,所以mouseA和mouseB的监听功能必须连在一起来分析,上面得知,如果事件源是铅笔或橡皮,鼠标单击就得到了第一个点,紧接着鼠标开始拖拽,拖拽的过程中,也一直在动态的得到点,只是第一个点的x2,y2一直在以点的长度动态增加,index++;如果事件源是绘制其它图形的按钮,则鼠标在动态拖拽的过程中只需要,得到点(x2,y2)就好:

class mouseB extends MouseMotionAdapter{

publicvoid mouseDragged(MouseEvent e){

statusBar.setText("Mouse

Dragged@:["+e.getX()+","+e.getY()+"]");

if(currentChoice == 3||currentChoice == 13){

itemList[index-1].x2= itemList[index].x2=

itemList[index].x1=e.getX();

itemList[index-1].y2= itemList[index].y2= itemList[index].y1=e.getY();

index++;

createNewItem();

}

else{

itemList[index].x2 = e.getX();

itemList[index].y2 = e.getY();

}

repaint();

}

publicvoid mouseMoved(MouseEvent e){

statusBar.setText("Mouse

Moved@:["+e.getX()+","+e.getY()+"]");

}

}

3.2 基本图形类

3.2.1 父类Drawings

class Drawings implements Serializable{

int x1,y1,x2,y2;

int R,G,B;

float stroke;

int type;

String s1,s2;

void draw(Graphics2D g2d){};

}

3.2.2 子类(只列出部分)

(1)铅笔:

class Pencil extends Drawings{

void draw(Graphics2D g2d){

g2d.setPaint(new Color(R,G,B));

g2d.setStroke(new BasicStroke(stroke));

g2d.drawLine(x1, y1, x2, y2);

}

}

(2)空心圆

class Circle extends Drawings{

void draw(Graphics2D g2d){

g2d.setPaint(new Color(R,G,B));

g2d.setStroke(new BasicStroke(stroke));

g2d.drawOval(Math.min(x1, x2),Math.min(y1, y2),

Math.max(Math.abs(x1-x2),Math.abs(y1-y2)),Math.max(Math.abs(x1-x2 ),Math.abs(y1-y2)));

}

}

(3)实心圆

class fillCircle extends Drawings{

void draw(Graphics2D g2d){

g2d.setPaint(new Color(R,G,B));

g2d.setStroke(new BasicStroke(stroke));

g2d.fillOval(Math.min(x1, x2),Math.min(y1, y2),

Math.max(Math.abs(x1-x2),Math.abs(y1-y2)),Math.max(Math.abs(x1-x2 ),Math.abs(y1-y2)));

}

}

(4)橡皮擦:

class Rubber extends Drawings{

void draw(Graphics2D g2d){

g2d.setPaint(new Color(255,255,255));

g2d.setStroke(new BasicStroke(stroke+7));

g2d.drawLine(x1, y1, x2, y2);

}

}

(5)文字

class Word extends Drawings{

void draw(Graphics2D g2d){

g2d.setPaint(new Color(R,G,B));

g2d.setFont(new Font(s2,x2+y2,((int)stroke)*30));

if(s1!=null)

g2d.drawString(s1, x1, y1);

}

}

4 设计中的难点

4.1多态与动态绑定

绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来。对java 来说,绑定分为静态绑定和动态绑定;或者叫做前期绑定和后期绑定。

动态绑定:在运行时根据具体对象的类型进行绑定。若一种语言实现了后期绑定,同时必须提供一些机制,可在运行期间判断实际对象的类型,并分别调用相应的方法。JAVA中的多态就是借助动态绑定来实现的。

先定义一个父类Drawings实现接口Serializable,里面定义一个draw(),然后所有的基本图形类都从父类继承,作为子类,它们都重写了父类的draw方法,但是每个draw()都不一样,在绘制任何形状的时候,只需要简单的调用父类的draw()即可,然后让程序动态的根据对象的类型,决定使用哪个子类的draw 方法,为了使画出的图形更加的美观,我在draw方法中使用了Graphics2D对象的引用。这样,有了多态的存在,就可以在不改变原程序的情况下,对其可以画出的图形进行扩展,丰富程序的功能。

4.2重绘的理解

当一个窗口被构造出来的时候,里面就有一支画笔,在这个窗口出现再次显示、或大小改变等情况的时候,窗口就需要被重画,只要窗口需要被重画,paint 就会被自动调用。repaint的作用是让窗口进行强制重画,其内部调用了paint 方法,所以整个窗口在调用repaint的时候,也会被重画。

从而,我们可以理解图形系统共同采用的机制,它里面一定会有一个类似repaint()的方法,在窗口调用这个方法的时候,整个屏幕进行重画,而这个方法的调用过程一定是分成两步的,先调用update(),然后再调用paint()。画笔在我们new出来的窗口里面,repaint()里面没有画笔,update()和paint()里面有画笔,如果没有找到窗口里的画笔,不可以直接调用paint()。

4.3文件的新建、打开和保存

JAVA把每个文件都视为顺序字节流,如果在JAVA中要用到文件处理,必须用到java.io包,这个包定义了一些流类,选用FileInputStream从文件中读入数据,选用FileOutputStream向文件中输出数据,通过建立这些文件对象变可以打开文件。如果想把一个对象序列化成一个字节流,写到硬盘上,那么就必须实现接口Serializable,这是一个标记性的接口,给实现它的类打了一个标记,给编译器看的,知道这个类可以被序列化。

5 运行测试

程序运行后,按“打开”可有如下界面:

图5-1 模拟画图器界面

图5-2 铅笔自由作画

图5-3 基本图形绘制

6 总结

对于这次JAVA课程设计,我认为自己设计的模拟画图器有一些成功的地方,也有很多问题需要通过以后的学习不断寻求解决的方案。

先说自己有成就感的地方,这是我第一个用图形界面设计出来的、有实用性的程序,虽然看起来很简单,可实现起来并不容易,可以说是困难重重,我开始的时候是无从下手的,通过上网查资料,去学校的图书馆借阅相关书籍,才实现了现在的这些功能,即可以在画板上面实现自由作画,画出一些基本的图形,而且界面上的一些基本图形的小图标都是我用小图标制作软件做出来的,虽然不是很美观的,但至少是独一无二的。

其实,这次的课程设计更多的是让我看到了自己的不足,在设计之前,我构想了很多的功能,比如说,撤销重做等,或把画图时常用的一些功能键都添加在工具栏当中,但是由于自己的尤其是在自己测试的过程中,发现和其它的画图软件相比,我仍有很多功能需要实现比如说撤销重做的功能,虽然查阅了很多的资料,但还是没能够添加到程序当中来。还有,我觉得自己程序的先有实现当中,存在一个最大的问题,就是预先分配好了在画板中可绘制的图形个数,所以一旦超出了这个范围,就会出现问题。

在设计的过程中,我对一些知识有了更深刻的理解,比如说多态,像我在程序设计的时候需要构造很多个不同的基本图形的类,就可以先构造一个基本图形的父类,让那些直线、圆,矩形等都从它去继承,使程序的可扩展性增强。

总之,我会不断地努力学习JAVA这门语言,现在简单的课程设计只是一个开始,只有不断的动手去编写更多的程序,才可以在实践中获得经验。

参考文献

[1] 董小园.JAVA面向对象程序设计.北京:清华大学出版社,2011.

[2] 张跃平.JAVA实用教程.北京:电子工业出版社,2011

[3] 李钟尉,陈丹丹.JAVA开发实战1200例(第I卷).清华大学出版社,2011

[4] 李钟尉,陈丹丹.JAVA开发实战1200例(第II卷).清华大学出版社,2011

(完整版)java课程设计——客户管理系统源代码

完整代码: 1.客户类(class person): package客户管理系统; public class Person { private int num; private String name; private String address; private String sex; public Person(){} public Person(int num,String name,String address,String sex){ this.num=num; https://www.360docs.net/doc/dd1492719.html,=name; this.address=address; this.sex=sex; } public void setNum(int num){ this.num=num; } public int getNum(){ return num; } public void setName(String name){ https://www.360docs.net/doc/dd1492719.html,=name; } public String getName(){ return name; } public void setAddress(String address){ this.address=address; } public String getAddress(){ return address;

} public void setSex(String sex){ this.sex=sex; } public String getSex(){ return sex; } public String toString() { return"\t"+num+"\t"+name+"\t"+address+"\t"+sex; } } 2.菜单类(class Menu): package客户管理系统; import java.util.Scanner; public class Menu { Scanner input=new Scanner(System.in); public Menu() {} public int showMenu() { System.out.println("***********************************" ); System.out.println("客户管理系统"); System.out.println("===================================" ); System.out.println("【1】增加"); System.out.println("【2】删除"); System.out.println("【3】修改"); System.out.println("【4】查询"); System.out.println("【5】浏览"); System.out.println("【6】退出"); System.out.println("***********************************" ); System.out.print("请选择操作:");

信息技术教案——画图

信息技术教案——画图 第一课美妙的“画图”世界 一、教学目的 1、掌握启动“画图”程序的方法 2、初步认识“画图”的功能与窗口的名称 二、教学重难点 1、“画图”程序的启动与退出 2、认识“画图”程序窗口的组成和画图工具 三、教学地点:教室 四、教学过程 引言:看书上这些美丽的图画,都是同学们使用Windows操作系统提供的画图工具完成的。使用计算机画图,既节约了纸和笔,又省去了调配颜料的麻烦,而且绘画方法很简捷,功能强大。相信经过学习,同学们都会成为出色的“电脑小画家”。 (一)启动“画图” 步骤: “开始”→“程序”→“附件”→“画图” 如果我们经常使用画图程序,也可以将它设为快捷方式,放在桌面上。 (二)认识“画图”窗口 1、标题栏:用来显示当前所画图画的文件名。 2、菜单栏:提供了对“画图”程序进行各种操作的命令,单击某一项都会拉出相关操作的下拉菜单。 3、画板:可以画画的区域,相当于平时画画的画纸。 4、工具箱:包含了画图时所用到的16种工具。 5、状态栏:提供了当前画画时所选工具的作用。分为三部分: ①提示信息栏:提示当前工作状态的信息说明。 ②绝对坐标:指出鼠标在画板中的坐标位置。 ③相对坐标:提示鼠标当前位置距前一个绘图点的坐标方向的距离。 注意:1、如果窗口较小,可以最大化窗口。 2、如果画板较小,可以选择“图像”菜单中的“属性”选项,在弹出的对话框中宽度和高度的值改为720和450;或者把鼠标指针移到画板右下角处,用拖拉鼠标的方法将画板拉至满意的位置为止。 (三)选择画图的工具 在程序的工具箱中提供画画的工具有16种,默认的工具是铅笔工具。如果想选择哪一个工具就用鼠标单击这一项即可。被选中的工具的按钮被按下去,呈现出“凹下”状态,同时,鼠标指针也变成工具符号。工具箱的下边也会出现所对应的工具状态框,给出当前所选工具的几种状态。 提示:在“画图”程序中如果没有工具箱时,可以从“查看”菜单中选“工具箱”选项,如果“工具箱”没有在窗口左侧,可以双击“工具箱”标题处,此项内容就会回到窗口左侧,或者用拖动的方法将“工具箱”拖动到任意的位置。 (四)退出“画图”窗口 步骤: 1、“文件”→“退出”

计算器java课程设计(完整版)

《面向对象程序设计》课程设计报告 课程设计题目:计算器 学生姓名:李婉如 专业:信息管理与信息系统 班级:1424603 指导教师:司红伟 2016年 5 月 25 日

一、课设任务及要求 1)课设任务: ⑴设计的计算器应用程序可以完成加法、减法、乘法、除法以及取余运 算(可以进行浮点数和负数的运算)。 ⑵有求倒数、退格和清零功能。 2)创新要求: 能进行正切、余弦,以及求平方根、指数(包括对e)、自然对数运算。 3)设计要求 ①设计的计算器应用程序可以完成加法、减法、乘法、除法和取余运算。且有小数点、正负号、求倒数、退格和清零功能。 ②课程设计可选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。 ③认真按时完成课程设计报告,课程设计报告内容包括:设计任务与要求、需求分析、设计思路、详细设计、运行调试与分析讨论和设计体会与小结六个部分。

二、设计思路 ⑴本应用程序继承自框架类(JFrame),容器Container c采用BorderLayout 边缘布局,将单行文本框加入到“North”区域,包含各种按钮的面板JPanel p加入到”Center”区域。包含各种按钮的面板JPanel p 采用3行6列的网格布局,然后将数字按钮和运算符按钮以及控制按钮用一个for循环添加到面板中同时注册按钮事件监听器。如: Button b=new Button(); b.addActionListener(事件监听器); ⑵事件监听器中的事件处理方法void actionPerformed(ActionEvent evt)完成主要的按钮事件的处理。事件处理分以下几种情况:数字按钮事件(”0”,”1”,”2”…”8”,”9”)、运算符按钮事件(”+”,”-“,”*”,”/”,”%”)、正负号按钮事件(”+/-“)、小数点按钮事件(”.”)、等号按钮事件(”=”)、求倒按钮事件(”求倒”)、退格按钮事件(”退格”)、清除按钮事件(“C”) 、正切(tan)、余弦(cos),以及求平方根(sqrt)、指数(pow)、对e的指数(exp)、对数运算(log)。 ⑶在事件处理,触发按钮事件时,先判断是或是数字是或是“-/+”是或是“.”,是的话就将负号“-”、数字、小数点“.”分别写入文本框并存放在sum中,然后判断是或是“退格”、“求倒”等,是的话进行相应的处理,都不是的话则跳到doOperation()执行运算同时将运算符存放在preOperater中。触发按钮事件时,要进一步分析,是重新开始计算时触发的按钮事件还是计算中间触发的按钮事件。 ⑷计算器完成的是一个数学表达式,如:3+2,所以可以采用一个数组来存储数字或字符,如3,+,2分别存储在数组中,最后运算时,可以一一取出来进行运算。 ⑸利用按钮设计计算器的各个运算符和操作符,通过按钮的事件处理实现按钮计算功能。 ⑹利用文本框显示操作数和运算结果。

java记事本课程设计论文附源码

设计题目:记事本课程设计 专业:电子信息科学与技术 班级:电子1202班 学号:20121210606 姓名:王鹏 2015 年7月

XXX学院本科学生课程设计任务书

摘要 目前,很多新的技术领域都涉及到了Java语言,Java语言是面向对象编程,并涉及到网络、多线程等重要的基础知识,因此Java语言也是学习面向对象编程和网络编程的首选语言。此次课程设计主要通过编写一个简单的记事本程序使我们深入理解并实践在本课程中所学的有关JAVA程序设计方面的语言基础、异常处理、事件处理、小应用程序以及图形用户界面设计等内容。此简易记事本程序,使用Java程序编写,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切等功能。该程序主要用到了Java swing和事件监听等。 关键词记事本程序,java语言,Java swing

目录 摘要 (1) 1 需求分析 (3) 1.1需求分析 (3) 1.2功能设计 (3) 2 概要分析 (4) 2.1概要设计思想 (4) 2.2程序运行界面 (4) 2.3程序模块说明 (4) 2.4流程图 (5) 2.5程序相关说明 (6) 3 程序详细设计与分析 (8) 3.1构建菜单栏及其下拉菜单 (8) 3.2“文件”菜单操作的事件监听 (8) 3.3“编辑”、“格式”等菜单的事件监听 (10) 3.4异常处理 (11) 4 测试分析 (12) 5 源程序清单 (15) 结论 (22) 参考文献 (23)

1 需求分析 1.1需求分析 现在网络上各种文档编辑器数不胜数,有EmEditor ,UEStudio ,GridinSoft Notepad ,Notepad++,win32pad ,SkimEdit,UniRed, xint 。功能也是应有尽有,有能改变字体的,有能改变文字颜色的。但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。本程序设计就是依照这样一种使用需要设计了一个简单的记事本程序。 1.2功能设计 本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面: 1、菜单中有“文件”,“编辑”,“格式”,“查看”,“帮助”五个主菜单。 2、“文件”有“新建”“打开”“保存”“另存为”“退出”五个子菜单:分别用于新建文件,打开文件,保存文件,另存文件,退出记事本。 3、“编辑”中有“撤销”“剪切”“复制”“粘贴”“全选”“时间/日期”六个字菜单:用于撤销操作,剪切文字,复制文字,粘贴文字。全部选择,插入日期、时间。 4、“格式”菜单中有“自动换行”和“字体”两个子菜单。 5、“查看”菜单只是显示状态栏。 6、“帮助”菜单中只有“关于记事本”子菜单,主要用于显示该程序的名字,版本等信息。

初始画图软件教案

《认识画图软件》的教案 【教材分析】 内容分析:《认识画图软件》一课,是小学信息技术课程四年级上册第一课的内容。本课是学生在初步了解用计算机绘画制作的基础上,设置的一节课。本课的主要内容由:作品赏析、启动画图、窗口组成、选择工具、做一做等组成。 教学对象分析:本班学生是小学四年级的儿童,学生在学习方面拥有激烈的学习绘图兴趣,较好的理解能力、表达能力、操作能力,学习效率极高,他们善于模仿,喜欢创新,遇到困难能积极向同学或老师提问,同学之间居于哦热情相助的习惯。 学生的初始能力:由于是第一次接触电脑绘图软件,大部分学生只有纸上绘图的操作基础。 学生的信息素养:学生虽然有在纸上绘图的经验,但没有在电脑上绘图的经验。 【教学方法】 案例教学法、演示法、任务驱动法、小组讨论法 本节课的内容针对于小学四年级的学生来说,因为他们的使用计算机的能力还相当有限,即使在前期做了很好的设计规划,讲授过程中仍然十分费力,有一些难度。通过在导入部分展示一些“欣赏作品”,激发学生学习画图软件的兴趣和愿望,引入本课的学习。在启动画图软件的教学环节,我采用演示法,一边讲解进入画图的两种方法,让学生感受到进入画图软件不同的方法。设置一个任务,让学生运用已学习的知识、巩固知识,发挥动手能力,充分调动学生学习的积极性,以任务驱动的方式查漏补缺,使教学内容合理流动,水到渠成。最后,四个人为一个小组,用讨论的方式进行学习,解决在学习过程中遇到的问题,在探究中找到乐趣。 【教学目标】 知识与技能: 1、通过学习,让学生知道Windows7系统中自带的一个画图软件。 2、掌握画图软件的进入与退出,并熟悉画图软件的窗口。 3、熟练说出工具箱中工具的名称及用途。 4、使用铅笔工具写字和刷子画树 过程与方法: 1、通过让学生欣赏作品,让学生初步了解画图的作用,激发学生学习画图软件的兴趣。 2、通过学生交流、师生交流,培养学生使用画图软件提高电脑绘图的能力。 情感态度与价值观 1、通过学生本体的学习探索与实践操作,增强学生学习软件的兴趣,培养实践探索精神及合作精神。适时渗透学生德育教育。 2、通过小组协作和竞赛研究活动,培养学生合作学习的意识、竞争参与意识和研究探索的精神,从而调动学生的积极性。 【重点和难点】 重点:初识“画图”窗口组成;认识绘图工具箱。 难点:用鼠标选择前景色和背景色;用铅笔写字与刷子画树。 【教学环境】

java课程设计 计算器[1]解析

JA V A程序设计期末结课大作业 姓名张可新 学号(20123259) 班级信工1202 题目 java课程设计++计算器 成绩汇总 考核内容成绩 程序实现的功能(10分) 程序类图结构(10分) 方法间调用关系(10分) 程序代码(40分) 程序代码注释(10分) 运行结果(10分) 总结体会(10分) 总成绩 阅卷人

目录 一、课程设计任务及要求 (3) 二、需求分析 (3) 三、设计思路 (3) 四、详细设计 (4) 五、运行调试与分析讨论 (9) 六、设计体会与小结 (11) 七、参考文献 (12) 八、附录 (13)

1. 一、课程设计任务及要求 设计一个图形界面(GUI)的计算器应用程序,完成简单的算术运算。通过对计算器的编辑来检测和提升自己的java编程能力,并最终完成课程设计报告! 二、需求分析 2.设计的计算器可以完成加法、减法、乘法、除法的简单运算。 3.实现一些简单的扩展运算,如:正负号、倒数、退格、清零等功能。 4.添加小数点功能,用以实现浮点型数据的计算。 5.使用布局管理器设计一个计算器的界面,使用事件监听器处理数据的输入,并完成相关的计算 三、设计思路 1.界面设计:(如图3-1) 图3-1 2.设计思路: (1)根据所设计出来的界面,首先要设计其GUI界面,总体界面有一个

文本框,20个按钮,总体界面用BorderLayout布局,文本框放置在 最NORTH,然后0到9以及+,-,*,/等按钮放置到一个面板Panel 中,完成界面设计。 (2)设计计算流程,首先点击数字按钮时,将按钮数值添加到文本框当中,并将该数值保存到一个字符串中,再次点击数字按钮时,将之 前保存的字符串与新的数值拼接起来,再添加到文本框当中,直到 点击运算符按钮时,将文本框当中的字符串保存在一个字符串变量 中,然后重置文本框内容,将运算符号显示到文本框中,随后输入 第二个计算数据时,用同样的办法保存数据,最后通过控制“=”运 算符先将字符串数据转化成双精度类型,然后计算出结果并显示到 文本框当中。 (3)基本运算设计完成以后则开始考虑其他个别功能的实现,例如倒数、清零、退格等功能的实现,清零直接重置文本框内容,退格功能则 采用substring函数截取字符串长度。 四、详细设计 1.程序流程图: 2.主要代码展示及说明:

JAVA实现计算器课程设计

JAVA实现计算器课程设计 计算机科学系 计应0701班 指导老师:刘其昌 设计人员:陈秀桃 设计日期:2009年11月10日——2009年12月20日 计算器的设计 目录 第一章绪 论 ..................................................................... .. (2)

1.1 开发环 境 ..................................................................... . (2) 1.2 基本功能介 绍 ..................................................................... ......... 2 第二章系统设 计 ..................................................................... (3) 2.1 系统流程 图 ..................................................................... . (3) 2.2 系统功能框 图 ..................................................................... (3) 2.3 需求分 析 ..................................................................... ................ 4 第三章软件设 计 ..................................................................... (5) 3.1 界面设 计 ..................................................................... . (5) 3.2 代码设 计 .....................................................................

学生信息管理系统java课程设计含源代码完整版

学生信息管理系统j a v a 课程设计含源代码 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

JAVA程序设计课程设计报告 课题: 学生信息管理系统 姓名: 学号: 同组姓名: 专业班级: 指导教师: 1 2 1、功能模块划分 (3) 2、数据库结构描述 (4) 3、系统详细设计文档 (6) 4、各个模块的实现方法描述 (9) 5、测试数据及期望结果 (11)

一、系统描述 1、需求实现的功能 、录入学生基本信息的功能 学生基本信息主要包括:学号、姓名、年龄、出生地、专业、班级总学分,在插入时,如果数据库已经存在该学号,则不能再插入该学号。 、修改学生基本信息的功能 在管理员模式下,只要在表格中选中某个学生,就可以对该学生信息进行修改。 、查询学生基本信息的功能 可使用“姓名”对已存有的学生资料进行查询。 、删除学生基本信息的功能 在管理员模式下,只要选择表格中的某个学生,就可以删除该学生。 、用户登陆 用不同的登录权限可以进入不同的后台界面,从而实现权限操作。 、用户登陆信息设置 可以修改用户登陆密码 2、设计目的 学生信息管理系统是一个教育单位不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:效率低、保密性差、人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的

人教版初一《用画图软件设计邮票》教学设计

人教版初一《用画图软件设计邮票》教学设计 教材:《初中信息技术》(人民教育出版社) 第一册第一单元活动三《用计算机画画》第二课时 学生:初中一年级 教学环境:电脑网络教室,多媒体网络教学平台 课时:1课时 一、本节课设计思路 1、教材和学生现状分析 我记得有学生问过我这样一个问题,老师学某某软件有什么用?为什么会这么问,因为学生不知道学了这个软件能做什么。虽然在教某一个软件的时候会介绍这个软件的作用,但不让学生亲自用这个软件去完成某一样东西的时候,学生只会感到很茫然,学起来很盲目。因此我设计本堂课的目的,就是能让学生学以致用。画图软件是一个学生比较感兴趣的软件,在前一课的学习中,学生已经掌握了画图软件各种画图工具的使用,并能自己创作画出一些美丽漂亮的图画。在这样的基础上,教材又进行了加深,要利用画图软件对图片进行编辑和修改。教材上这节内容设计比较散、乱,根据我校学生的实际情况和他们爱动手、想获得成就感的心理特点,于是,我就想了一个容易使学生感兴趣也容易获得成就感的题目,用画图软件设计邮票。在设计邮票的过程中既可以使学生掌握图片的编辑和修改方法,又可以增长学生的知识,激发学生的创作欲,设计出各种不同的邮票。 2、本节课的教学目标 1)知识与技能 ①使学生了解画图软件的其它用途 ②使学生了解一些邮票的知识 ③掌握邮票设计的几个要素 2) 过程与方法 ①使学生掌握选取图片、复制移动、旋转拉伸图片的方法 ②掌握“编辑”、“图象”等菜单的使用 ③综合利用画图各种工具设计邮票 3)情感态度价值观 ①培养学生动手能力和创造力 ②激发学生学习信息技术的兴趣 3、本节课的教学重点和难点 重点:①选取图片、复制移动、旋转拉伸图片的方法 ②“编辑”、“图象”等菜单的使用 难点:画图中各种工具的综合利用 4、本节课的教学方法 任务驱动、讲练结合、自主探究学习 (这节课的任务就是设计制作出一张邮票,通过邮票各部分设计任务的完成,最终完成这个大任务) 5、本节课的教学手段 多媒体教学网(广播教学)、教学课件、学件、实物投影仪 学生的作品展示 6、课前准备

Java带计算过程的计算器课程设计报告

保存计算过程的计算器 Java程序设计课程设计报告保存计算过程的计算器 目录 1 概述.............................................. 错误!未定义书签。 1.1 课程设计目的............................... 错误!未定义书签。 1.2 课程设计内容............................... 错误!未定义书签。 2 系统需求分析.......................................... 错误!未定义书签。 2.1 系统目标................................... 错误!未定义书签。 2.2 主体功能................................... 错误!未定义书签。 2.3 开发环境................................... 错误!未定义书签。 3 系统概要设计.......................................... 错误!未定义书签。 3.1 系统的功能模块划分......................... 错误!未定义书签。 3.2 系统流程图................................. 错误!未定义书签。4系统详细设计........................................... 错误!未定义书签。 5 测试.................................................. 错误!未定义书签。 5.1 测试方案................................... 错误!未定义书签。 5.2 测试结果................................... 错误!未定义书签。 6 小结.................................................. 错误!未定义书签。参考文献................................................ 错误!未定义书签。附录................................................ 错误!未定义书签。 附录1 源程序清单...................................... 错误!未定义书签。

java(源代码)连连看课程设计

目录 第一章引言 (2) 1.背景 (2) 1.1课程设计内容 (3) 第二章系统介绍 (4) 1.连连看游戏规则 (4) 1.1游戏基本规则 (4) 1.2操作规则 (4) 1.3胜利和失败 (4) 2.游戏流程图分析 (4) 第三章系统游戏设计 (7) 1.系统分析 (7) 1.1游戏系统需求分析 (7) 1.2系统开发及运行环境 (7) 1.3系统功能主要要求 (7) 2.系统总体结构 (8) 3. 系统各模块功能介绍 (8) 第四章系统的具体实现 (9) 1.系统主要运行界面 (9) 1.1运行界面 (9) 1.2执行界面,进入游戏正常运行 (9) 1.3时间到界面 (10) 1.4赢家界面 (11) 1.5进度条界面 (12) 图4.5程序运行进度条 (12) 2.游戏实现代码 (12) 2.1主面板内所需要的组件的声明 (12) 2.2填充一个矩形框,进行显示时间 (12) 2.3主面板及各组件初始化 (13) 2.4创建时间对象,每隔100毫秒刷新一次 (13) 2.5分数代码。 (13) 3.消除图片具体情况 (14) 3.1两次点击相同图片相邻 (14)

3.2水平方向消去算法 (14) 3.3竖直方向消去算法 (15) 第五章程序清单 (16) 第六章结束语 (24) 第七章参考文献 (25) 第一章引言 1.背景 游戏“连连看”顾名思义就是找出相关联的东西,这个连连看在网上基本是用在小游戏中,就是找出相同的两样东西,在一定的规则之内可以做为相关联处理。“连连看”的发展经历了从桌面游戏、在线游戏、社交游戏三个过程。 游戏“连连看”是源自台湾的桌面小游戏,自从流入大陆以来风靡一时,也吸引众多程序员开发出多种版本的“连连看”。这其中,顾方编写的“阿达连连看”以其精良的制作广受好评,这也成为顾方“阿达系列软件”的核心产品。并于2004年,取得了国家版权局的计算机软件著作权登记证书。 随着Flash应用的流行,网上出现了多种在线Flash版本“连连看”。如“水晶连连看”、“果蔬连连看”等,流行的“水晶连连看”以华丽界面吸引了一大批的女性玩家。 2008年,随着社交网络的普及和开放平台的兴起,“连连看”被引入了社交网络。“连连看”与个人空间相结合,被快速的传播,成为一款热门的社交游戏,其中以开发者Jonevey在Manyou开放平台上推出的“宠物连连看”最为流行。 网络小游戏、网页游戏越来越受网民欢迎,除了玩的方法简单外(不像其他游戏还需要注册下载繁琐过程),很多游戏不乏经典。连连看游戏就是典型。 不管走到哪个网页游戏网站,连连看游戏总是排在受玩家欢迎排名的前5位,休闲、趣味、益智是连连看玩不厌的精华,且不分男女老少、工薪白领,是一款适合大众的经典网络、单机休闲小游戏。 游戏《连连看》,只要将相同的两张牌用三根以内的直线连在一起就可以消除,规则简单容易上手。游戏速度节奏快,画面清晰可爱,适合细心的玩家。丰富的道具和公共模式的加入,增强游戏的竞争性。多样式的地图,使玩家在各个游戏水平都可以寻找到挑战的目标,长期地保持游戏的新鲜感。 该游戏由30张不同的图片组成,游戏开始将会出现30张随机组合的图片,在规则下点击两张相同的图片后图片将会消失。图片全部消完为游戏成功。游戏还将设置退出,再来一局的按钮,并实现该功能,方便用户进行操作。

java课程设计计算器3科学计算器

import javax.swing.*;// 把 javax包里面的swing包里面的所有东西引进来 import java.awt.*;// 导入awt包里的所有java类 import java.awt.event.*;//导入包event import java.text.DecimalFormat;// 处理文本、日期、数字和消息的类和接口 import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.awt.BasicStroke; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.GridLayout; import java.awt.Image; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.geom.Ellipse2D; import java.awt.geom.Line2D; import java.awt.geom.Point2D; public class biaozhunjisuanqi extends JFrame implements ActionListener {// public代表该类公有 //class声明一个类 // biaozhunjisuanqi为类名 // extends 是继承类 //implements代表实现接口 //窗体名称biaozhunjisuanqi继承JFrame类和ActionListener接口,并实现public void actionPerformed(ActionEvent e){}方法 private static final long serialVersionUID = 1L;// serialVersionUID相当于java类的身份证, 默认为1L, serialVersionUID作用是序列化时保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性 private JPanel jContentPane = null; // 创建面板对象, null代表为这些变量赋初值为空,即不分配内存空间,变量不指向任何地址。private是访问控制符,代表这些变量的访问级别为私有,私有级别只能在当前类中进行访问, 这些(JPanel 、JTextArea 、JPanel、 JButton )是java中AWT(包)中的类,用能进行桌面级应用程序的开发,就像平时用的word,上面有各种文本框,菜单栏,工具栏按钮等等,这些都是对象 private JPanel jPanel= null; //JPanel 作为一个容器,可以包容一些组件,然后将这个 JPanel

Java英汉电子字典课程设计源代码

用户需求分析: 英汉词典作为一个常用的学习工具,是我们经常要使用的。该系统能完成一个简单的电子词的功能。该系统主要用于实现英汉互译的功能,系统拥有自己的数据库。 1.英译汉功能:我们可以先选择让系统进行英译汉功能,然后在查找框中输入想要查询的英文单词,系统将自动在数据库中查找匹配记录并给出相对应的汉语意思。 2.汉译英功能:我们可以在系统中选择汉译英功能,然后在查找框中输入想要查询的汉语意思,系统将自动在数据库中查找匹配记录并给出相对应的英文单词 3.词汇的添加功能:用户可以添加词库没有的单词及其解释。添加成功后该单词将在次库保存,以便下次查询。 4.词汇的修改功能;用户可以实现对词库中已有单词及其解释的修改。修改后的结果将保存在词库中。 5.词汇的删除功能;用户可自行删除词库中已有的单词,同时次单词的解释也将被一同删除。 6.其他功能:此外,系统还具有帮助和关于等功能,用来辅助用户更方便简洁的使用电子词典。 package dianzicidian; import java.awt.*; import https://www.360docs.net/doc/dd1492719.html,.*; import java.sql.*; import java.awt.event.*; import javax.swing.JOptionPane; import java.io.*; import sun.audio.*; class dzcd extends Frame implements ActionListener { MenuBar menubar=new MenuBar();//菜单 Menu fileMenu,editMenu,helpMenu; MenuItem fileenglish,filechinese,exit,editAdd,editmod,editDel; TextField inputtext; TextArea txt; Label label1,label2; Button btn1,btnsound; Panel p,p1,p2,p3; dzcd() { super("电子词典"); setBounds(200,300,350,400); setMenuBar(menubar);

java课程设计 计算器实际与实现

《面向对象程序设计》 课程设计报告 题目: 计算器设计与实现 专业: 班级: 姓名: 指导教师: 成绩: xx 201x 年 x 月xx 日 xxxxxx

目录 1 设计内容及要求 (1) 1.1设计内容 (1) 1.2设计任务及具体要求 (1) 2 概要设计 (1) 2.1 功能需求 (1) 2.2 系统的开发运行环境 (2) 3 设计过程 (2) 3.2系统功能模块 (3) 4 设计结果与分析 (4) 4.1功能模块的划分 (4) 4.2功能模块的实现 (4) 小结 (10) 5 参考文献 (11)

1 设计内容及要求 1.1设计内容 该程序是一个图形界面的简单Java计算器,具有良好的界面,使用人员能快捷简单的进行操作。即时准确地获得需要的计算结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。可以进行简单的四则运算(加、减、乘、除,等) 1.2设计任务及具体要求 计算器的设计与实现,使学生巩固和加深以Java 语言为基础的面向对象编程技术理论知识的理解,提高实际动手编程能力的培养,掌握以Java为核心的应用软件开发方案,达到能独立阅读、编制和调试一定规模的Java程序的水平。在日常生活中经常需要用到计算器,比如科学计算、数字计算、会计业务甚至是日常生活中的一些运算,当运算比较复杂时没有计算器就会显得很麻烦。为了解决日常生活中的困难,特意设计了这个计算器系统。 2 概要设计 2.1 功能需求 在日常生活中人们总是难以避免的要进行一些运算,当运算比较复杂时没有计算器就会显得很麻烦。为了解决日常生活中的困难,特意设计了这个计算器系统。在该系统中不仅可以进行整数的加、减、乘、除等简单运算,也可以进行浮点数的加、减、乘、除等运算。除此之外还可以进行三角函数、指数、对数、平方等运算。人们应用它可以解决日常生活中的一些运算问题,比如做买卖时进行交易的过程中就可以利用该计算器进行数量、价格以及金额的统计计算。学生也可以利用该计算器进行数学运算,解决简单的三角函数运算。

计算器设计的java课程设计报告

】 · ( 华东交通大学课程设计 课 程: Java 程序设计 题 目: 计算器设计 年 级: 2010级 专 业: 信息一班 * 学 号: 姓 名: 组 员: 指导教师: 课程设计题目:计算器设计

课程设计(论文)任务书 基础学院信息与计算科学专业2010—1 班 一、课程设计(论文)题目计算器的设计 二、课程设计(论文)工作自2013 年 6 月23日起至2013 年6月27日止。 三、课程设计(论文) 地点: 计算机中心 · 四、课程设计(论文)内容要求: 1.本课程设计的目的 (1)使学生掌握系统各功能模块的基本工作原理; (2)掌握Java的基本编程原理和基本的编程方法; (3)使学生学会系统调试; (4)培养学生分析、解决问题的能力; (5)提高学生的软件文档写作能力和团队合作精神。 2.课程设计的任务及要求 ' 1)基本要求: (1)分析系统各功能模块的工作原理; (2)提出系统的设计方案; (3)对所进行编程、调试、修改。 2)创新要求: 在基本要求达到后,可进行创新设计,如:用虚函数,文件流,重载流插入运算符等。3)课程设计论文编写要求 (1)要按照书稿的规格打印誊写设计论文; > (2)论文包括目录、摘要、正文、总结等; (3)毕业论文装订按学校的统一要求完成。 4)答辩与评分标准: (1)达到课程设计的目的与要求,程序的可读性较好,并调试正确,60分; (2)能正确回答老师所提问题,可增加10分; (3)课程设计报告书写规范整齐,可增加10分; (4)心得体会认真总结,可增加10分; (5)程序有创新性,可增加10分; [ 成绩评定实行优秀、良好、中等、及格和不及格五个等级。不及格者需重做。 5)参考文献:

Java课程设计实验报告及全部源码流程图

课程设计 一、实验目的 1.加深对课堂讲授内容的理解,掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及软件编程、调试等能力,掌握面向对象的编程思想及Java语言程序设计的规律与技巧,为进一步学习web应用开发及今后从事专业工作打下基础。 2. 使用本学期学习的Java SE技术(也可以使用课堂教学中没有学习过的Java技术,但是应当以Java SE技术为主)完成多功能日历GUI程序的设计,使之具有如下基本功能:一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。 3.在完成基本功能的基础上发挥自己的想象力与创造力,使程序凸显出与众不同的特点与功能,形成本小组的特性色。 二、实验要求 1.问题描述准确、规范。 2.程序结构合理,调试数据准确、有代表性.。 3.界面布局整齐,人机交互方便。 4.输出结果正确。 5.正确撰写实验报告。 三、实验内容 编写一个GUI程序实现日历的功能。一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期以及当前农历,可以为每页日历选择背景图片。可以实现显示时钟,时钟能进行整点报

时。可以实现备忘记事功能,能在每天添加、修改、删除记事等操作。 四、实验步骤 1.在上机实验前,小组成员进行选题讨论,确定小组感兴趣而又伸缩性强的题目多功能日历。 2.在第一次上机实验时讨论分工,分工明确之后,分头合作进行。 3.各成员完成自己的任务后,最后进行统筹合并,以及程序最后的优化。 4. 根据实验结果,写出合肥工业大学实验报告。实验报告应当包括:实验内容,程序流程图,类结构,程序清单,运行结果,以及通过上机取得的经验。 5.详细的上机实验步骤见任务分工及程序设计进度表。 五、实验结果 经过小组成员的共同努力,最终我们小组设计的多功能日历程序能够实现实验的基本要求——一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。另外,在完成基本要求的基础上,我们增添了显示农历、显示时钟、添加备忘录、修改备忘录等功能。整体程序运行流畅、功能齐全、符合操作习惯。 下面是程序运行效果截图: 日历主界面(可以实现每个月的日历,可以按年或按月前后翻动,能够显示当前日期,并能够选择背景图片):

认识画图软件教学设计

《认识画图软件》教学设计 设计人:大方县兴隆乡兴隆小学郝家彬 教学内容: 贵州版信息技术教材四年级上册P1~P4。 教材分析: 本课是教材关于画图知识的初步认识,贯穿着以后整个画图的知识教学,是学生能够顺利、快捷操作使用画图的基础。本课主要介绍了启动“画图”程序的方法和了解“画图”窗口的组成及初步认识绘图工具箱、颜料盒。使他们明白用计算机画图,既不用纸和笔,也不用任何颜料。从而激发学生利用计算机画图的兴趣,调动学生的积极性。 学情分析: 由于本地未开设信息技术课程,因此这是学生第一次接触电脑绘图的学习,大部分的学生只有纸上绘图的操作基础。由于大部分学生可能没有接触过电脑,所以在教学中学生在操作方面会受到一定的影响。 教学目标: (一)知识与技能 1、认识电脑系统中自带的画图软件。 2、掌握画图软件的启动与退出的方法,并熟悉画图软件窗口的组成。 3、尝试自选画图工具完成一幅简单的图画。 (二)过程与方法:通过讲解与演示等方法,进一步让学生熟悉画图软件窗口的组成及画图工具,为以后能熟练运用画图软件画图打下基础。 (三)情感态度与价值观:通过画图软件的学习,激发学生对学习电脑的兴趣,感受成功,体验学习计算机,用计算机画画的快乐! 重难点分析: 重点是认识并掌握画图窗口的各个组成部分。 难点是画图软件工具的认识。 教学过程: 一、创设情境,激趣导入。 1.谈话 同学们,平时画画用的是什么工具呢?(学生自由说)今天老师想要送件礼物给大家,猜猜会是什么呢?(学生一脸迟疑)期待吗?好,请大家看向大屏幕,马上送给你们的礼物就出来了。 2.演示 教师用画图软件画出机器猫图,画完后问同学们,这是什么?(学生自由说)

计算器java课程设计(完整版)

目录 一、课设任务及要求 (1) 二、需求分析 (2) 三、设计思路 (3) 四、详细设计 (4) 五、运行调试与分析讨论 (14) 六、设计体会与小结 (18) 七、参考文献 (19)

一、课设任务及要求 1)课设任务: ⑴、设计的计算器应用程序可以完成加法、减法、乘法、除法以及取余运算(可以进行浮点数和负数的运算); ⑵、有求倒数、退格和清零功能。 2)创新要求: 能进行正切、余弦,以及求平方根、指数(包括对e)、自然对数运算。 3)设计要求 ①设计的计算器应用程序可以完成加法、减法、乘法、除法和取余运算。且有小数点、正负号、求倒数、退格和清零功能。 ②课程设计可选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。 ③认真按时完成课程设计报告,课程设计报告内容包括:设计任务与要求、需求分析、设计思路、详细设计、运行调试与分析讨论和设计体会与小结六个部分。

二、需求分析 ⑴、开发的技术及功能 本课程设计是要做一个图形界面的计算器,其界面主要是由swing组件中的控件构成。程序实现了计算器的基本功能有:加、减、乘、除基本算术运算(可以进行浮点和负数运算)和sin、cos、tan等三角函数求值运算,同时能进行指数运算和自然对数运算,还有求倒数、退格和清零功能。 ⑵设计思路 设计这个计算器主要是参考Windows操作系统中自带的计算器,由于编者水平和时间的限制,不能将计算器设计到科学型及其他更复杂的类型,在设计过程中还参考了一些其他的优秀设计。但本计算器除了常用的加减乘除(可以进行浮点和负数运算)这些基本运算外,还有求余、求倒、退格、清零,甚至还能进行一些复杂科学的运算,比如余弦(cos)、正切(tan)、指数运算(pow)、自然对数运算(log)、求平方根(sqrt)以及对e的指数运算(exp),并且还能进行连续运算。总体上说来,本计算器设计简单,代码很少,程序很小,但功能却很强大,这是同类计算器所不具备的。 ⑶设计效果图 设计时先在设计界面中添加按钮等控件,后在按钮的actionPerformed 事件中添加代码完成其功能其中调用了Java类中的Math函数库以及各种字符串操作。设计的界面如下: 图1 计算器运行界面

相关文档
最新文档