绘图程序说明书Word格式.docx

上传人:b****6 文档编号:17671269 上传时间:2022-12-08 格式:DOCX 页数:20 大小:124.34KB
下载 相关 举报
绘图程序说明书Word格式.docx_第1页
第1页 / 共20页
绘图程序说明书Word格式.docx_第2页
第2页 / 共20页
绘图程序说明书Word格式.docx_第3页
第3页 / 共20页
绘图程序说明书Word格式.docx_第4页
第4页 / 共20页
绘图程序说明书Word格式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

绘图程序说明书Word格式.docx

《绘图程序说明书Word格式.docx》由会员分享,可在线阅读,更多相关《绘图程序说明书Word格式.docx(20页珍藏版)》请在冰豆网上搜索。

绘图程序说明书Word格式.docx

编程;

GUI

序言

简单的Java桌面应用软件开发主要表现为JavaGUI程序设计,要求能基于AWT或Swing,使用Eclipse、NetBeans等IDE,进行非可视化或可视化的GUI编程。

进行GUI程序设计,同时也是对Java语言基础知识、Java面向对象程序设计、Java多线程技术信和数据访问等技术。

此类软件包括记事本、计算器、画板和各类简单游戏软件等等。

和Java异常处理技术的综合应用。

此外,根据具体业务领域的不同,GUI程序也可能涉及网络通实际编程中,我们每设计一个窗体,都要往其中添加若干组件。

为了管理好这些组件的布局,我们就需要使用布局管理器。

比如说,设计一个简单的计算器,或一个文本编辑器等等。

这些组件是让JVM自己任意安排呢?

还是按照一定的位置关系进行规范的安排呢?

当然应该选择后者。

将加入到容器的组件按照一定的顺序和规则放置,使之看起来更美观,这就是布局。

在Java中,布局由布局管理器(LayoutManager)来管理。

通过本课程设计使学生加深理解、巩固课堂理论知识和实验知识,使学生初步具备综合运用所学Java语言基础知识,面向对象程序设计的基本思想、方法与技术,网络通信编程技术和数据库编程技术等开发简单应用系统的基本能力,初步掌握软件开发中系统分析、系统设计、系统实现和系统测试等阶段的基本方法与技术,培养学生的创新意识,提高实践应用能力,为培养应用型人才服务。

目录

摘要1

序言2

目录3

一、系统分析与设计1

1.1、Java实现画图应用程序1

1.2、画图应用程序的综合要求1

(1)程序功能需求1

(2)程序性能需求1

(3)程序可靠性和可用性需求1

(4)程序出错处理需求2

(5)程序总体设计2

二、画图应用程序详细设3

2.1程序实现流程3

2.2程序算法设计3

2.3程序重点核心代码简介3

(1)画图应用程序的“选择颜色”代码3

(2)画图应用程序的“保存”和“打开”代码4

2.4程序按钮功能核心代码列表5

三、画图应用程序测试6

3.1程序代码测试6

3.2程序功能实现测试6

3.3程序测试结果10

四、画图应用程序使用介绍11

设计总结12

参考文献13

致谢14

附录:

部分程序源代码15

一、系统分析与设计

需求分析是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。

可以说在软件工程当中的“需求分析”就是确定要计算机做什么。

利用Java语言编写一个简单的画图应用程序。

1.1、Java实现画图应用程序

学习了《Java面向对象编程》的课程,为了更进一步的提高我们对Java的深入学习,进行了一周的课程设计,我所选择课程设计是利用Java的GUI实现画图应用程度。

其目的是通过本课程设计使我们能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。

1.2、画图应用程序的综合要求

(1)程序功能需求

1)利用Java设计一个画图应用程序;

2)可绘制直线、曲线、椭圆、矩形;

3)可改变线条颜色;

4)可完成图形文件的保存、打开功能。

(2)程序性能需求

1)计算机硬件要求:

P4以上微机。

2)计算机软件要求:

安装Java的JDK6软件。

3)画图程序最终是在Windows操作系统上实现图形用户界面的窗口化。

(3)程序可靠性和可用性需求

画图应用程序的可靠性和可用性:

即在选择了相应的画图应用程序按钮后其就能实现相应功能的作用。

比如:

选择画笔按钮则可以随便画图;

选择了直线按钮则实现画直线功能;

选择了曲线按钮则实现画曲线的功能。

(4)程序出错处理需求

画图应用程序需要编写有相应的容错、调试等功能。

比如关闭是提醒保存;

或当出现其它什么错误时可以抛出异常、程序调试、基本的容错等功能。

(5)程序总体设计

绘图程序总体设计思路如图1-1所示:

二、画图应用程序详细设

2.1程序实现流程

(1)首先是了解画图应用程序的需求,进行程序的“需求分析”;

在了解其需求基本上再作比较详细的程序规划。

(2)程序规划时需要建立所需文档资料,说明各个程序模块所要实现的功能是什么。

再深入了解和分析需求,举例出相关的界面和界面功能。

(3)根据确认的所需求文档列举的界面和功能需求,用迭代的方式对每个界面或功能做系统的概要设计。

(4)程序员根据所写的需求设计文档进行程序的代码编写,一个一个的实现其相应的编写。

(5)测试编写好的程序。

并补充和完善其相应的程序功能遗漏点,最后验收。

2.2程序算法设计

(1)if…else…和for等语句进行判断其用户选择的相应的功能和现实相应的循环,在调用选择的按钮键的功能。

(2)定义很多公共鼠标类监听鼠标的各种操作。

2.3程序重点核心代码简介

(1)画图应用程序的“选择颜色”代码

1.先判断其用户是否选择“选择颜色”。

当用户选择了“选择颜色”则弹出选色界面对话框提供用户“选择颜色”。

if(e.getActionCommand().equals("

选择颜色"

))

{

JColorChooserjc=newJColorChooser();

linecolor=jc.showDialog(null,"

请选择颜色"

Color.BLACK);

lcolor.setForeground(linecolor);

}

(2)画图应用程序的“保存”和“打开”代码

1.先是判断选择“保存”或“打开”功能,再实现相应的功能。

保存"

{style=5;

JFileChoosersfc=newJFileChooser();

intflag=-1;

try{//这里将显示保存文件的对话框

flag=sfc.showSaveDialog(this);

}

catch(HeadlessExceptionhe)

{System.out.println("

SaveFileDialogException!

"

);

if(flag==JFileChooser.APPROVE_OPTION)

{//获取选择文件的路径

Stringfilename=sfc.getSelectedFile().getPath();

try{FileOutputStreamfos=newFileOutputStream(filename);

ObjectOutputStreamoos=newObjectOutputStream(fos);

oos.writeObject(thedraw);

oos.close();

}

catch(Exceptiones)

{System.out.println(es);

}

elseif(e.getActionCommand().equals("

打开"

{style=5;

JFileChooserofc=newJFileChooser();

intreturnVal=ofc.showOpenDialog(this);

if(returnVal==JFileChooser.APPROVE_OPTION)

{Stringfilename=ofc.getSelectedFile().getPath();

try{//获取选择文件的路径

FileInputStreamfis=newFileInputStream(filename);

ObjectInputStreamois=newObjectInputStream(fis);

thedraw=(Vector<

position>

)ois.readObject();

ois.close();

catch(Exceptiones)

repaint();

(3)画图应用程序画图后鼠标“画图轨迹”记录存储

publicvoidmouseDragged(MouseEvente)

{//记录画图轨迹

positionp=newposition();

p.x=e.getX();

p.y=e.getY();

p.type=style;

p.color=linecolor;

thedraw.add(p);

2.4程序按钮功能核心代码列表

1)画直线:

Line2Dt=newLine2D.Double(x1,y1,x2,y2);

2)画矩形:

Rectangle2Dt=newRectangle2D.Double(x1,y1,x2-x1,y2-y1);

3)画曲线:

Arc2Dt=newArc2D.Double(x1,y1,x2-x1,y2-y1,20,90,Arc2D.OPEN);

4)画椭圆:

Ellipse2Dt=newEllipse2D.Double(x1,y1,x2-x1,y2-y1);

三、画图应用程序测试

3.1程序代码测试

(1)将编写好“画图应用程序”的源代码进行测试。

我安装的是Windows8操作系统,安装的JavaJDK是现在的最新版本,将代码进行编译运行如下图3-1:

图3-1用户界面

上图为Java语言编程所实现的画图应用程序“用户界面”。

3.2程序功能实现测试

(1)画图应用程序之画笔(直线、矩形、椭圆,圆矩形)功能实现,如下图3-2标识:

图3-2功能实现

(2)画图应用程序之画笔的颜色选择功能:

其提供了三种选择“样本”、“HSB”、“RGB”的颜色选择方式,分别如图3-3,3-4,3-5所示。

图3-3样本

图3-4HSB

图3-5RGB

(3)画图应用程序之保存功能实现。

如下图3-6:

图3-6保存功能

(4)将“wb”图保存到“桌面”。

如图3-7

图3-7保存到“桌面”

(4)画图应用程序之打开功能实现。

如下图3-8:

图3-8打开功能实现

3.3程序测试结果

(1)画图应用程序的Java源代码全部正确能够通过编译并正常运行。

(2)画图应用程序要求的功能:

画直线、曲线、矩形、椭圆、圆矩形、画笔选择颜色等功能都以完全实现。

(3)通过Java编程完全实现了课程设计任务书的全部功能。

四、画图应用程序使用介绍

画图应用程序其实质也就是一个简单的画图板。

画图板的应用简单灵巧,其占用资源少、操作简单;

可以实现一些简单的画图应用操作。

其功能较少但是可以为用户的小型图形应用工作带来了很多便利。

能实现简单的作图如:

画直线、曲线、椭圆、矩形等;

也可以实现图像保存、打开、选择颜色等功能。

如下图4-1所示,就是本应用程序的使用介绍主面板。

图4-1程序的使用介绍

设计总结

在这次的课程设计中,我主要运用了Java语言的界面设计、异常处理、Awt控件、Swing控件等,综合运用了Java语言。

我深刻感受到了面向对象语言中类库的强大功能,掌握了运用Java中的类实现某些基本功能,并学会了自己查询使用类的方法,为以后的面向对象语言的自学奠定了基础。

通过这两个礼拜的课程设计我真的学到了很多的东西,当然这也和我的同学的帮助是离不开的。

好了,下面就谈一下我在这些天的体会吧:

在这次的课程设计中,主要是运用JAVA语言来编写一个小的应用程序,当然还可以用其他的技术来辅助了。

在这个小应用程序当中,我用了Java外还用了Swing控件。

GUI等技术。

由于以前学的不是很扎实,而且还有些知识我们都是没有学过的,这就要求我们去查相关的书籍,还有就是和同学之间的交流。

正因为这样,才锻炼了我的自学的能力,还有就是加深了我对各个知识点的认识,并且提高了我对专业的学习的兴趣,为我以后的学习打下了基础。

此外,我还感受到了面向对象语言的类库的强大的功能,掌握了运用JAVA中的类实现某些基本功能,并学会了自己查询使用类的方法,也就是要会用API文档,为以后更好的学习面向对象语言奠定了基础。

通过将近两周的努力,这次课程设计终于结束了,在这个过程当中,我学到了很多的知识,同时也感谢我的同学的帮助和指导。

在以后的学习当中,我会更加努力的学习好专业知识,并将所学的知识用于实践当中去,以便牢固掌握知识。

参考文献

[1]曲朝阳,杨杰明等.Java程序设计.北京:

清华大学出版社,2008.10

[2]耿祥以,张跃平.Java大学生实用教程.北京:

电子工业出版社,2012.6

[3]明日科技.Java经典编程.北京:

清华大学出版社,2012.10

[4]李尊朝,苏军.Java语言程序设计.北京:

中国铁道出版社,2004.2

[5]王博.面向对象的建模、设计技术与方法.北京希望电脑公司,1990.

[6]朱福喜.《Java语言程序设计》(第二版).科学出版社

[7]陈国君等.《Java程序设计基础》(第二版).清华大学出版社

[8]Deitel.《Java大学基础教程》(第六版).电子工业出版社

[9]MaryCampione.《Java语言导学》(第四版).机械工业出版社

[10]Y.DanielLiang.《Java语言程序设计基础篇》(第六版).机械工业出版社

[11]KathySierra.《HeadFirstJava》(第二版).东南大学出版社

致谢

首先感谢我的指导老师王燕,她在我的课程设计过程中提出了指导性的方案和架构,并指引我阅读相关的资料和书籍,使我在不熟悉的领域中仍能迅速掌握新的技术。

在这两周的java课程设计中,对课本中所学的知识进一步理解和掌握,学会了如何把学到的知识用于解决实际问题,锻炼了自己动手的能力。

一个人要完成所有的工作是非常困难和耗时的。

在以后的学习中我会更加注意各个方面的能力的协调发展。

在课程设计时遇到了很多的问题,在老师的帮助,和对各种资料的查阅中,将问题解决,培养了我自主动手,独立研究的能力,为今后在学习工作中能更好的发展打下了坚实的基础。

我的同学在我的课程设计中也给了我很多无私的帮助和支持,在此一并表示感谢。

部分程序源代码

finalButtonbutton=newButton("

线"

button.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

n=1;

m=0;

h=0;

j=0;

z=0;

d=0;

y=0;

c=0;

});

panel_1.addMouseListener(newMouseAdapter(){

@Override

publicvoidmousePressed(MouseEvente){

if(n==1)

{positionp=newposition();

p.x=e.getX();

p.y=e.getY();

x1=p.x;

y1=p.y;

p.color=linecolor;

p.s=x;

thedraw.add(p);

}

panel_1.addMouseMotionListener(newMouseMotionAdapter(){

publicvoidmouseDragged(MouseEvente){

if(n==1)

{positionp=newposition();

p.x=e.getX();

p.y=e.getY();

x2=p.x;

y2=p.y;

Graphics2Dg=(Graphics2D)panel_1.getGraphics();

Line2Dt=newLine2D.Double(x1,y1,x2,y2);

g.setColor(p.color);

g.setStroke(newBasicStroke(p.s));

g.draw(t);

x1=x2;

y1=y2;

}});

button.setActionCommand("

线"

panel.add(button);

Buttonbutton_1=newButton("

圆"

button_1.addActionListener(newActionListener(){

m=1;

n=0;

h=0;

j=0;

z=0;

d=0;

y=0;

publicvoidmouseMoved(MouseEvente){

if(m==1)

p.x=e.getX();

p.y=e.getY();

px1=p.x;

py1=p.y;

p.color=linecolor;

p.s=x;

thedraw.add(p);

status=0;

}}

@Override

{

g.setStroke(newBasicStroke(x));

g.setColor(Color.GRAY);

g.setXORMode(Color.DARK_GRAY);

if(status==1)

g.drawOval(px1,py1,px2,py2);

else{

positionp=newposition();

status=1;

}

px2=Math.abs(e.getX()-px1);

py2=Math.abs(e.getY()-py1);

g.drawOval(px1,py1,px2,py2);

rpx1=px1;

rpy1=py1;

rpx2=px2;

rpy2=py2;

}});

panel_1.addMouseListener(newMouseAdapter(){

publicvoidmouseReleased(MouseEvente){

if(m==1)

positionp=newposition();

g.setStroke(newBasicStroke(p.s));

Ellipse2Dt=newEllipse2D.Double(rpx1,rpy1,rpx2,rpy2);

g.draw(t);

}}});

panel.add(button_1);

Buttonbutton_3=newButton("

弧"

button_3.addActionListener(newActionListener(){

h=1;

m=0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1