画图画板设计模式.docx
- 文档编号:17965619
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:34
- 大小:917.23KB
画图画板设计模式.docx
《画图画板设计模式.docx》由会员分享,可在线阅读,更多相关《画图画板设计模式.docx(34页珍藏版)》请在冰点文库上搜索。
画图画板设计模式
长沙学院
课程设计说明书
题
目
设计模式课程设计
系
(
部
)
数学与计算机科学系
专
业(
班级)
姓
名
学
号
指
导
教
师
起
止
日
期
课程设计任务书
课程名称:
设计模式课程设计
设计题目:
基于设计模式的绘图程序已知技术参数和设计要求:
1•问题描述(功能要求):
1.需求分析
该系统是一个画图程序,我们要用设计模式的思想来设计系统结构,然后实现基
本图形的绘制功能。
1.1设计模式要求
至少在其中运用3种模式,其中涉及到的模式有装饰模式、策略模式、桥梁模式三种。
1.2画图基本要求
能实现基本图形的绘制功能
1.3画图高级要求
实现图形的操作(如选取、移动、放大、缩小、改变颜色、改变线形等)和持久化(利用文件或利用数据库)。
1.4参考界面
图1参考效果图1
2.运行环境要求:
Windows操作系统;
Eclipse
3.技术要求:
给出至少3种设计模式,要求具体说明使用每种设计模式的动机,
出类图,并代码实现,然后评价该设计模式的优缺点。
设计工作量:
2周
工作计划:
(1)2013级软件工程
4课时:
讲授
32课时:
上机、调试。
计算机系机房4课时:
答辩。
计算机系机房
日期:
日期:
日期:
指导教师签名:
教研室主任签名:
系主任签名:
长沙学院课程设计鉴定表
姓名
学号专业班级
设计题目指导教师
指导教师意见:
评定等级:
教师签名:
日期:
答辩小组意见:
评定等级:
答辩小组长签名:
日期:
教研室意见:
教研室主任签名:
日期:
系(部)意见:
系主任签名:
日期:
说明
课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类;
第1章系统需求8...
1.1系统总需求8
1.2功能需求8
第3章系统设计9...
3.1系统总功能模块设计9
3.2子功能模块设计9
3.2.1构建基本图形9
3.2.2装饰模式组合图形10
3.2.3桥接模式修饰图形颜色线条粗细10
第4章系统实现1..1.
4.1登陆界面11
4.2简单工厂模式绘制基本图形11
4.2.1装饰模式图形组合13
4.2.2桥接模式改变粗细绘制图形14
第5章系统测试1..5.
5.1测试目的15
5.2测试手段15
5.3测试用例15
5.3.1登陆界面测试15
结论1..6..
参考文献1..7..
结束语1..8..
附录1..9..
第1章系统需求
1.1系统总需求
该系统是一个画图程序,我们要用设计模式的思想来设计系统结构,然后实现基本图形的绘制功能
1.2功能需求
1.至少在其中运用3种模式,其中涉及到的模式有装饰模式、策略模式、桥梁模式三种。
2.选择图形模块:
点击图形后,可以用画笔绘画出对应的图形。
选择装饰模式模块:
点击模式,根据两次按钮的不同选择可以在原有的图形上进行组合。
选择桥接模式模块:
点击模式后,根据所选择色体,笔的型号,进行新的图形绘制。
第3章系统设计
3.1系统总功能模块设计
盘
-
i'
4
:
丄笔部
图3.1程序总架构
3.2子功能模块设计
3.2.1构建基本图形
功能:
通过点击对应按钮,生成对应可控制大小的基本图形。
vMhi耳刑矗int■h赋yQcftvrQ
3
||
-RF£ft7£ijTapjh*^c,ir:
k,ntTintxl;iriyLCjcct=':
图.3.2简单工厂模式设计
322装饰模式组合图形
(1)功能:
对基本图形进行组合。
⑵程序流程图:
基本信息管理的程序流程图如下图所示:
3.2.3桥接模式修饰图形颜色线条粗细
功能:
选择颜色与画笔粗细,重新绘制图片。
图3.4桥接模式设计
第4章系统实现
4.1登陆界面
本系统启动后直接显示登陆界面。
如图4.1所示:
图4.1登陆界面
4.2简单工厂模式绘制基本图形
点击工厂模式中的按钮可以控制鼠标绘制所选图形。
如图4.1所示:
图4.2绘制基本图形(三角形)
I-
一T
利Pi越
«bKlT
图4.3绘制基本图形(圆形)
图4.4绘制基本图形(矩形)
二Chcm*由Ccrfor
…j-R.-'.ins■-i•,
图4.5选择色彩绘绘制图形
4.2.1装饰模式图形组合
此模块让图形进行组合共有9种形式。
如图4.6所示:
图4.6各种图形组合
4.2.2桥接模式改变粗细绘制图形
图4.7桥接模式绘制图形
第5章系统测试
5.1测试目的
通过测试发现软件错误;
功能的完备性:
检验程序功能是否达到用户预先制定的需求;
错误检查:
检查程序潜在的错误,为软件可靠性与安全性的评估提供依据。
5.2测试手段
人工测试技术。
5.3测试用例
531登陆界面测试
如表5.1所示:
表5.1班级学生成绩管理测试用例
班级学生成绩管理
序
号
1
测试子
项
输入/动作
期望输出/相应
实际
情况
绘制基
本图形
鼠标点击对应按钮
绘制对应基本图形
V
2
绘制组
合图形
鼠标点击对应按钮
绘制组合图形
V
绘制桥
接图形
鼠标点击对应按钮
绘制外观不同的新图形
V
结论
绘图程序实现了图形的基本绘制功能,并在绘制的其中运用到了本学期所学
的设计模式的知识,使得整个系统变得更具结构性,便于后期的功能扩展或其他
参考文献
[1]谭浩强编著,java程序设计[M],清华大学出版社,1991.7
[2]姜仲秋编著,java程序设计[M],南京大学出版社,1998.1
[3]刘瑞挺主编,计算机二级教程[M],南开大学出版社,1996.10
[4]陈朔鹰编著,java程序设计基础教程[M],兵器工业出版社,1994.9
[5]李虹主编,java程序设计,[M],南京大学出版社,2010.2
[1]马石安、魏文平.面向对象程序设计教程[M].北京:
清华大学出版社.2007.8
结束语
为期两周的实训结束了,在老师和同学的帮助下,我基本完成绘图程序系统的设计。
我们按照系统工程软件设计的要求,从需求分析,概念设计,总体设计,详细设计,系统测试等各个步骤,分步完成系统的各项任务,实现了系统中的学生信息查询,学生信息更新,学生信息添加等模块的功能。
在这实训期间里我们的收获很多:
巩固和加深了对JAVA的理解,提高了综合运用本课程所学知识的能力。
使用窗体控件开发桌面程序。
在Swing中使用控件可减少代码书写量加快开发速度。
培养了我们查阅文献资料的能力。
培养独立思考,深入研究,分析问题、解决问题的能力。
通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。
通过这次实训,我们也认识到在以后的学习当中注意:
认真上好专业实验课,多在实践中锻炼自己。
写程序的过程中要考虑周到,严密。
在做设计的时候要有信心,有耐心,切勿浮躁。
认真的学习课本知识,掌握课本中的知识点,并在此基础上学会灵活运用。
在课余时间里多写程序,熟练掌握在调试程序的过程中所遇到的常见错误,以便能节省调试程序的时间。
附录
界面:
package界面;
importjava.awt.Color;
importjava.awt.Font;
importjava.awt.Graphics;
importjava.awt.MouseInfo;
importjava.awt.Point;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.MouseAdapter;
importjava.awt.event.MouseEvent;
importjava.awt.event.MouseListener;
importjava.io.File;
importjavax.swing.BorderFactory;
importjavax.swing.ImageIcon;
importjavax.swing.JButton;
importjavax.swing.JColorChooser;
importjavax.swing.JFileChooser;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
importjavax.swing.JTextArea;
importjavax.swing.JTextField;
importjavax.swing.filechooser.FileNameExtensionFilter;
import简单工厂模式.*;import装饰模式.*;
import桥接模式.*;
publicclassMainFrameextendsJFrame{
privateJPaneldownPanel=newJPanel();privateColorc=Color.black;intx=0;
inty=0;
intx1=0;
inty1=0;
Stringname;
Shingname2八in二aguo八conpoCDnfcon八penpen八
Fi-euse-ecCDdzl-esHnu=inwi-e-ndexHo八infwidfhH200八infheighfH200八pub=cMainFrameo宀
10showFrameo-=裆毬去^回和『^辛
privaCDvoidinic-0宀fina-JTexmie-djffGrapHnewJTexmie-d(=函黑=)八
fina-JTexmie-djffModiHnewJTexmie-d(=>s=)八fina-JTexmie-djffsfraHnewJTexmie-d(=^淋=)八fina-JBUffonjbfcooHnewJBU=on(=豊®=)八fina-JBUffonjbHriaHnewJBUffon(=m>^=)八fina-JBuffonjbfRounHnewJBU=on(=国黑=)八fina-JBuffonjbfRecfHnewJBU=on(=a^=)八
fina-JBUffonjbfc-eaHnewJBU=on(=掘战=)八fina-JBuffonSMOCHHnewJBUffon(=m>^=xfina-JBuffonjbfMod2HnewJBUffon(=国黑=)八fina-JBuffonjbfMod3HnewJBUffon(=書黑=)八fina-JBuffonjbfMod4HnewJBUffon(=到<轻=)八fina-JBuffonjssmH=ewJBU=on(=”>笛=)-fina-JBuffonjbfs=r2HnewJBU=on(=”>>=)八fina-JBuffonjbfs=r3HnewJBU=on(=、」/a^=)-fina-JBuffonjbfs=r4HnewJBuffon(=、」/>>=)八fina-Jpane-jppane-lHnewJpane-0八fina-Jpane-jppane-2HnewJpane-0八fina-Jpane-jppane-3HnewJpane-0八
jbfcoo.se66ounds(=5yIQ9。
20)八jbfcoo.semoregroundmewco-0553217』234))八jbfco-o.sefconCDn?
eaFi--ed(fa-se)八jbfcoo.semonsewFonw-猥寡=Fonf.BOLp14))-
jtfGrap.setBounds(15,5,40,30);jtfGrap.setFont(newFont("黑体",Font.BOLD,14));jtfGrap.setBorder(null);
jtfGrap.setEditable(false);
jtfGrap.setOpaque(false);
jbtTria.setBounds(15,35,90,40);jbtTria.setForeground(newColor(153,217,234));jbtTria.setContentAreaFilled(false);
jbtTria.setFont(newFont("黑体",Font.BOLD,14));
jbtRoun.setBounds(115,35,90,40);jbtRoun.setForeground(newColor(153,217,234));jbtRoun.setContentAreaFilled(false);jbtRoun.setFont(newFont("黑体",Font.BOLD,14));
jbtRect.setBounds(15,85,90,40);jbtRect.setForeground(newColor(153,217,234));jbtRect.setContentAreaFilled(false);jbtRect.setFont(newFont("黑体",Font.BOLD,14));
jtfModi.setBounds(15,5,40,30);jtfModi.setFont(newFont("黑体",Font.BOLD,14));jtfModi.setBorder(null);
jtfModi.setEditable(false);
jtfModi.setOpaque(false);
jbtMod1.setBounds(15,35,90,40);jbtMod1.setForeground(newColor(153,217,234));jbtMod1.setContentAreaFilled(false);jbtMod1.setFont(newFont("黑体",Font.BOLD,14));
jbtMod2.setBounds(115,35,90,40);jbtMod2.setForeground(newColor(153,217,234));
jbtMod2.setContentAreaFilled(false);jbtMod2.setFont(newFont("黑体",Font.BOLD,14));
jbtMod3.setBounds(15,85,90,40);jbtMod3.setForeground(newColor(153,217,234));
jbtMod3.setContentAreaFilled(false);jbtMod3.setFont(newFont("黑体",Font.BOLD,14));
jbtMod4.setBounds(115,85,90,40);jbtMod4.setForeground(newColor(153,217,234));jbtMod4.setContentAreaFilled(false);
jbtMod4.setFont(newFont("黑体",Font.BOLD,14));
jtfStra.setBounds(15,5,40,30);
jtfStra.setFont(newFont("黑体",Font.BOLD,14));jtfStra.setBorder(null);
jtfStra.setEditable(false);
jtfStra.setOpaque(false);
jbtStr1.setBounds(15,35,90,40);jbtStr1.setForeground(newColor(153,217,234));jbtStr1.setContentAreaFilled(false);
jbtStr1.setFont(newFont("黑体",Font.BOLD,14));
jbtStr2.setBounds(115,35,90,40);jbtStr2.setForeground(newColor(153,217,234));jbtStr2.setContentAreaFilled(false);
jbtStr2.setFont(newFont("黑体",Font.BOLD,14));
jbtStr3.setBounds(115,85,90,40);jbtStr3.setForeground(newColor(153,217,234));jbtStr3.setContentAreaFilled(false);
jbtStr3.setFont(newFont("黑体",Font.BOLD,14));
jbtStr4.setBounds(15,85,90,40);jbtStr4.setForeground(newColor(153,217,234));jbtStr4.setContentAreaFilled(false);
jbtStr4.setFont(newFont("黑体",Font.BOLD,14));
jbtClea.setBounds(620,10,70,20);jbtClea.setForeground(newColor(153,217,234));jbtClea.setContentAreaFilled(false);jbtClea.setFont(newFont("黑体",Font.BOLD,14));jbtClea.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){downPanel.removeAll();downPanel.add(jbtClea);downPanel.update(downPanel.getGraphics());}
});
downPanel.setBounds(260,15,700,627);downPanel.setBackground(Color.WHITE);downPanel.setLayout(null);
downPanel.add(jbtClea);
jpPanel1.setBorder(BorderFactory.createLineBorder(getForeground()));jpPanel1.setBounds(20,15,222,142);
jpPanel1.setBackground(Color.WHITE);jpPanel1.setLayout(null);
jpPanel1.add(jbtTria);jpPanel1.add(jbtRoun);
jpPanel1.add(jbtRect);
jpPanel1.add(jbtColo);
jpPanel1.add(jtfGrap);
jpPanel2.setBorder(BorderFactory.createLineBorder(getForeground()));jpPanel2.setBounds(20,177,222,142);jpPanel2.setBackground(Color.WHITE);
jpPanel2.setLayout(null);jpPanel2.add(jbtMod1);jpPanel2.add(jbtMod2);jpPanel2.add(jbtMod3);jpPanel2.add(jbtMod4);
jpPanel2.add(jtfModi);
jpPanel3.setBorder(BorderFactory.createLineBorder(getForeground()));jpPanel3.setBounds(20,339,222,142);jpPanel3.setBackground(Color.WHITE);
jpPanel3.setLayout(null);jpPanel3.add(jbtStr1);jpPanel3.add(jbtStr2);jpPanel3.add(jbtStr3);jpPanel3.add(jbtStr4);jpPanel3.add(jtfStra);
this.add(downPanel);
this.add(jpPanel1);
this.add(jpPanel2);
this.add(jpPanel3);
//////jbtRoun.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventarg0){name="圆形";
}
});jbtRect.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventarg0){
name="矩形";
}
});jbtTria.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventarg0){
name="三角形";
}
});
jbtColo.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
c=JColorChooser.showDialog(null,"ChooseaColor",jbtColo.getForeground());}
});jbtMod1.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){name2="三角形";if(name!
=null
&&name.equ
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 画图 画板 设计 模式