源代码转html课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
华南农业大学
课程论文 ( 设计 )
课程名称面向对象程序设计
论文题目源代码自动转换程序
指导老师肖磊
所在学院信息学院
专业年级2007级计算机科学与技术(2)班提交日期2008年11月20日
华南农业大学计算机科学与技术
《面向对象程序设计》课程设计评分表
题目源代码自动转换程序
专业班级2012级计算机科学与技术(2)班提交日期2014-05-18
小组成员学号姓名工作量% 成绩
(指导老师填写)组长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.提供一个基于Java Swing实现的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.Reade r;java.io.StringReader;.URL;java.util.Hashtable;java.util.StringTokeniz er”对源文件进行解剖并与配置关键字的文件进行比对,如果存在则进行高亮操作。
3. 首先要理解HTML文件和源程序文件都是文本文件,因此使用Java的文本输入流读入,文本输出流输出。中间因为要分词,所以可能用到:Scanner、Buffer、正则表达式等。
4.输出时:首先生成如下的HTML文件结构
.......
......
格式化后的文本放置在BODY部分。
1.2界面设计:实现用Java Swing构造的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(new ActionListener() {
public void actionPerformed(ActionEvent e) { //事件触发执行代码
}
3.实现用Java Swing构造的GUI界面,进行图形化操作与显示,通过按钮设置事件驱动,还有监听器对象。程序提供界面能够读取文件的信息,采用简单人性化的操作界面图形
窗口的生成使用各种的方法,调用方便。
4.用JFileChooser创建文件读取与保存对话框。其中的文件选择器的设计较为重要。
JFileChooser chooser = new JFileChooser(currentDirectory);
//JFileChooser chooser2 = new JFileChooser();
chooser.setDialogTitle("Open Source Code");
chooser.setFileFilter(new FileFilter() {
public String getDescription() {
return "*.java && *.c && *.h && *.cpp && *.cs";
}
public boolean accept(File f) {
return f.isDirectory() || f.getName().toLowerCase().endsWith(".java")||