C#源代码统计程序
来源:互联网 发布:淘宝动态评分提高 编辑:程序博客网 时间:2024/05/21 20:21
题目:给定一个源代码文件(.cs, .java),输出该文件的总行数、空行数、注释行数、代码行数。
【1】定义一个文件操作接口(FileInterface.java):
import java.io.File;interface FileInterface {public void computing(File file) ;}【2】定义一个实现文件接口的Computer类(Computing.java:):
import java.io.File; import java.io.BufferedReader; import java.io.FileReader; import java.io.FileNotFoundException; import java.io.IOException; //定义一个实现文件接口的Computer类public class Computing implements FileInterface{ //声明代码行数变量 private static int daima = 0 ; //声明空白行数变量 private static int nothing = 0; //声明注释行数变量 private static int explain= 0; //定义computing方法,对文件进行操作,读取文件计算文件空白行数、注释行数、代码行数 public void computing(File file) { BufferedReader buf = null; boolean comment = false; //定义一个boolean标记对象,对注释行进一步判断 try { buf = new BufferedReader(new FileReader(file)); //创建一个字符输入处理流对象对文件进行操作 try { comment = judging(buf,comment); //调用判断文件的方法 } catch (IOException e) { e.printStackTrace(); } }catch (FileNotFoundException e) { e.printStackTrace(); }finally { if (buf != null) { printResult(buf); //调用统计输出结果的方法 } } } //文件判断方法 private boolean judging(BufferedReader buf, boolean comment) throws IOException { String line = ""; while ((line = buf.readLine()) != null) { //读取一行 line = line.trim(); //去掉左右空格及空字符 if (line.matches("")) { //判断是否为空格或者空字符,是的话空白行数加1 nothing++; } else if (line.startsWith("/*") && !line.endsWith("*/")) { //判断是否为注释行,是的话注释行数加1 explain++; comment = true; } else if (true == comment) { explain++; if (line.endsWith("*/")) { comment = false; } } else if (line.startsWith("//")) { explain++; } else { //以上判断都不是的话就为代码行数加1 daima++; } }return comment;}//统计结果输出方法private void printResult(BufferedReader buf) {try { //输出空行数 System.out.println("空行数:"+nothing); //输出注释行数 System.out.println("注释行数:"+explain); //输出代码行数 System.out.println("代码行数:"+daima); //输出文件总行数 System.out.println("文件总行数:"+(nothing+explain+daima)); buf.close(); //关闭BufferedRead流 buf = null; } catch (IOException e){ e.printStackTrace(); }}}【3】定义主函数,调用Computer类相关方法(Main_Java .java:):
import java.io.File;//定义主函数,调用Computer类相关方法public class Main_Java { public static void main(String[] args) { File f = new File("E:" + File.separator + "javaComputing.java"); Computing com = new Computing() ; com.computing(f) ; }}
【4】程序运行结果:
0 0
- C#源代码统计程序
- C#源代码统计程序
- C#源代码统计程序
- C#源代码统计程序
- 源代码统计程序
- 页面统计程序源代码
- c#代码统计程序
- c#代码统计程序
- 用Shell扩展实现源代码统计程序
- 扫雷游戏程序及源代码--c#
- 读写卡测试程序c#2003源代码
- 读写卡测试程序c#2003源代码
- C#写的邮箱发送程序源代码
- (转)用Shell扩展实现源代码统计程序
- 某公司面试题:使用多线程,统计项目程序源代码行数
- C语言代码行数分类统计小程序(源代码)
- 一个统计代码行数的程序C#
- 我的 C#+flash socket 聊天程序(C#源代码)
- OpenMAX Call Sequences
- mvc 架构模式
- Nagios 里面监控MySQL 监控事务夯住
- 编一个程序,从 string 对象中去掉标点符号。要求输入到程序的字符串必须含有标点符号,输出结果则是去掉标点符号后的 string 对象。
- 移动互联网迅猛发展,手机信息安全隐患如何消除?
- C#源代码统计程序
- Android获取状态栏高度
- NYOJ 44【子串和】
- Oracle中insert into select和select into的区别
- 蓝桥杯 输入日期
- 国产ROM纷争升级 能否诞生终结者?
- hdu 5199 map水题
- 痛苦转型,谁毁了华强北的至尊荣耀?
- linux下mysql的root密码忘记解决方法