源代码转html课程设计报告Word文件下载.docx
《源代码转html课程设计报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《源代码转html课程设计报告Word文件下载.docx(21页珍藏版)》请在冰豆网上搜索。
学号
姓名
工作量%
成绩
(指导老师填写)
组长
201230740209
何志豪
50%
组员
201230740224
叶炜杰
30%
201230740219
孙常鹏
20%
小组评分表
评分项目
分数
1.实现情况(15):
完成课程设计要求的情况
2.系统分析(10):
对系统的理解及分析的深入程度。
3.系统设计(20):
总体设计、具体设计、数据结构设计等。
4.程序设计(30):
面向对象程序设计方法与编程工具掌握水平。
5.界面设计(15):
界面美观程度、操作方式友好程度等。
6.论文撰写(10):
论文撰写的规范性、合理性等等。
小组总成绩:
教师签名
日期
一、系统分析
1.1问题描述
在写Blog的时候,常常需要粘贴Java及其它源代码,但是从IDE中复制过去的源码为纯文本格式的。
IDE中的高亮语法语法全部丢失,贴出去全成黑白的了。
看起来很难看,也不易于阅读。
源程序代码是纯文本文件,本课程设计的目标是编写一个应用程序可以将源程序文件转换为HTML的网页文件。
1.2系统功能分析
1.能够处理的源程序包括:
Java源程序(扩展名.java)、C源程序(扩展名.h和.c)。
鼓励能处理其他源程序代码。
2.提供一个基于JavaSwing实现的GUI界面,类似Windows的资源管理器。
在该界面中选择一个或多个源程序文件进行转换。
3.转换时要求按语法分色。
因此需要该对转换进行设置,如:
目标文件名、字体、关键字颜色等。
4.得到的HTML文件,用浏览器查看如下图所示。
另外要求每行有行号。
开发平台及工具介绍:
Neatbeanse,命令行cmd,极智截图2008(后期排版),ACDSee(后期排版)。
二、系统设计
1.1系统总体结构设计
主要从语法,转换,界面三方面进行设计。
关于语法分色:
1.为需要的处理源程序的程序设计语言定义一个配置文件,在配置文件中需要包括:
(1)该语言的关键字
(2)配色方案,如:
关键字字体的颜色、大小;
标识符的字体颜色、大小,......
配置文件的格式可以是:
XML或Java的properties文件
2.处理时,读取配置文件和源程序文件,创建文件解剖器实现语言关键字的分析,主要用IO包与UTIL包中的“java.io.BufferedReader;
java.io.File;
java.io.FileReader;
java.io.IOException;
java.io.InputStream;
java.io.InputStreamReader;
java.io.Reader;
java.io.StringReader;
.URL;
java.util.Hashtable;
java.util.StringTokenizer”对源文件进行解剖并与配置关键字的文件进行比对,如果存在则进行高亮操作。
3.首先要理解HTML文件和源程序文件都是文本文件,因此使用Java的文本输入流读入,文本输出流输出。
中间因为要分词,所以可能用到:
Scanner、Buffer、正则表达式等。
4.输出时:
首先生成如下的HTML文件结构
<
HTML>
<
HEAD>
.......
/HEAD>
BODY>
......
/BODY>
<
/HTML>
格式化后的文本放置在BODY部分。
1.2界面设计:
实现用JavaSwing构造的GUI界面,进行图形化操作与显示。
1.综合利用各种对象如JMenuBar、JMenu、JMenuItem、JButton、JPanel、JComponent、JComboBox、JLabel、JTextField、BorderLayout、Connection、JTextArea进行界面的规划布局;
解决办法:
使用BorderLayout中的null的布局方式,对每个元件进行大小和程序界面的相对坐标定位,如:
实例名称.setBounds(x,y,a,b)。
2.对界面中必要的元件实例编写事件驱动如JButton、JComboBox等;
在该必要的元件调用方法(get+“元件名称”)中直接添加ActionListener(监听器)方法;
即:
实例.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
//事件触发执行代码
}
3.实现用JavaSwing构造的GUI界面,进行图形化操作与显示,通过按钮设置事件驱动,还有监听器对象。
程序提供界面能够读取文件的信息,采用简单人性化的操作界面图形窗口的生成使用各种的方法,调用方便。
4.用JFileChooser创建文件读取与保存对话框。
其中的文件选择器的设计较为重要。
JFileChooserchooser=newJFileChooser(currentDirectory);
//JFileChooserchooser2=newJFileChooser();
chooser.setDialogTitle("
OpenSourceCode"
);
chooser.setFileFilter(newFileFilter(){
publicStringgetDescription(){
return"
*.java&
&
*.c&
*.h&
*.cpp&
*.cs"
;
publicbooleanaccept(Filef){
returnf.isDirectory()||f.getName().toLowerCase().endsWith("
.java"
)||
1.3系统各个类及类之间关系设计
1.4数据存储的设计(文件等)
基本数据存储说明:
支持代码格式:
包括java,c,c++,c#等四种源代码文件。
(原理上可以更多)
输入:
以*.java,*.c,*.h,*.cs文件存储的源代码
输出:
文件格式为*.html
语言关键字:
利用hashmap分类型存储关键字。
三、系统实现
。
系统运行事务过程可以用以下关系表示
}
主界面程序代码片段(主要是面板与面板之间,面板与组件之间的嵌套,监听器的实现):
publicclassJava2HtmlApplication{
privatefinalJFrameframe;
privatefinalJButtonbExit;
privatefinalJava2HtmlOptionsPaneloptionsPanel=newJava2HtmlOptionsPanel();
publicJava2HtmlApplication(){
finalJTabbedPanetabbedPane=newJTabbedPane();
tabbedPane.addTab("
FileConversion"
newFileConversionPanel(optionsPanel).getContent());
DirectTextConversion"
newDirectTextConversionPanel(
optionsPanel,
newIStatisticsView(){
publicvoidsetStatistics(JavaSourceStatisticstatistic){
//nothingtodo
}).getContent());
bExit=newJButton("
Exit"
bExit.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventevt){
System.exit(0);
});
finalJPanelsouthPanel=newJPanel(newFlowLayout(FlowLayout.RIGHT));
southPanel.add(bExit);
finalJPanelpOptions=GuiTools.createBorderedPanel("
Options"
pOptions.setLayout(newBorderLayout());
pOptions.add(optionsPanel.getContent(),BorderLayout.CENTER);
JPanelp=newJPanel(newBorderLayout());
p.add(pOptions,BorderLayout.NORTH);
p.add(Box.createVerticalGlue(),BorderLayout.CENTER);
frame=newJFrame(Version.getJava2HtmlConverterTitle());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(newBorderLayout(4,4));
frame.getContentPane().add(p,BorderLayout.EAST);
frame.getContentPane().add(tabbedPane,BorderLayout.CENTER);
frame.getContentPane().add(southPanel,BorderLayout.SOUTH);
……
文件读取代码片段(用FileReader读取源文件,JFileChooser创建读取文件对话框,文件选择器的应用较为关键):
JFileChooserchooser=newJFileChooser(currentDirectory);
publicboo