软件工程项目基于java的wc实现
WC软件工程项目JAVA实现博客
github地址:https://github.com/liudaohu/myrepository.git
功能实现
· -w 统计单词数
-c 统计字符数
-l 统计行数
-a 统计复杂数据
-s 递归处理
-v 可视化窗口
项目相关要求
· 【编程语言】不限
· 【项目设计】分析并理解题目要求,独立完成整个项目,并将最新项目发布在Github上。
· 【项目测试】使用单元测试对项目进行测试,并使用插件查看测试分支覆盖率等指标。
· 【源代码管理】在项目实践过程中需要使用Github管理源代码,代码有进展即签入Github。签入记录不合理的项目会被助教抽查询问项目细节。
- 【博客发布】按照要求发布博客,利用在构建之法中学习到的相关内容,结合个人项目的实践经历,撰写解决项目的心路历程与收获。博客与Github项目明显不符的作业将取消作业成绩。
遇到的困难及解决方法
- 对于项目要求的不理解,例如在命令行的实现等问题
- 向经验丰富的同学请教
- 已解决
- 大体明白需求
- 实现-w功能时,原想使用read()方法,但返回参数是int,不方便判断
- 改用readline()方法,并使用正则表达式实现
- 已解决
- 对正则表达式的使用更加熟悉
- 仍希望挑战用read()方法实现-w功能
- 强行把read()方法返回的int值转成char,再加到string里面
- 已解决
- 能用多种方法解决问题
- 递归实现时发现前面搭建的框架不合理
- 重新构思框架
- 已解决
- 刚开始搭建框架时考虑不周,下次注意
- 报错时找不到错误源
- 对不同报错区别处理
- 已解决
- 下次注意对不同报错区别处理
- 计算注释行时,无法处理同行多个块注释的特殊情况
- 尝试构思各种方法,包括设sign,包括数块注释起始和块注释结束的个数等
- 未解决,目前认为堆栈方法可行,但最后没执行
- 挫败感
- 计算代码行
- 没有
- 未解决
- 注释行都没计算,代码行就算了
- 计算空白行统计结果错误
- 用了多种方法最后定位bug原因在于字符串后是否有空格
- 已解决
- 无法理解,但懂得了妥协的办法,反正字符串后面加个空格就行了
- 想把文本框设为只读
- 百度
- 未解决
- 百度不是万能的
- 递归执行时覆盖了原结果
- 延时
- 未解决
- 尚未搞懂延时的效果,不过传参部分本来有问题,延时解决不了
- 重启电脑后,窗口类无法打开
- 各种尝试,就剩把电脑砸了
- 新建一个项目,把原来代码一个不差地剪过去,已解决
- eclipse文件关联的问题,并非我代码内问题,至今未搞懂
关键代码or设计说明
贴出你认为的关键代码或者设计图,并进行解释
1 public static int countl(File file) throws IOException {//数行数 2 BufferedReader br = new BufferedReader(new FileReader(file)); 3 int ln=0; 4 while((br.readLine())!=null) { 5 ln++; 6 } 7 br.close(); 8 return ln; 9 } 10 public static int countc(File file) throws IOException {//数字符数 11 BufferedReader br = new BufferedReader(new FileReader(file)); 12 int cn=0; 13 while((br.read())!=-1) { 14 cn++; 15 } 16 br.close(); 17 return cn; 18 } 19 public static int countw(File file) throws IOException {//数单词数第一种方法 20 BufferedReader br = new BufferedReader(new FileReader(file)); 21 String c; 22 int wn=0; 23 while((c=br.readLine())!=null) { 24 String[] s = c.split("\\W");//按行正则匹配按非词字符拆分成数组 25 wn+=s.length;//数组元素数即为单词数 26 } 27 br.close(); 28 return wn; 29 } 30 public static int countw2(File file) throws IOException {//第二种 31 BufferedReader br = new BufferedReader(new FileReader(file)); 32 String c; 33 int cc; 34 int s=0;//这个sign是关键,表示上一个是否为空 35 int wn=1; 36 while((cc=br.read())!=-1) {//正则只能匹配字符串 37 c=(char)cc+"";//所以把读到的int强行转为char 38 //System.out.println(c); 39 if(c.matches("\\S")&s==0) {s=1;wn++;} 40 if(c.matches("\\s")&s==1) {s=0;}; 41 } 42 br.close(); 43 return wn; 44 } 45 public static int counta(File file) throws IOException {//数空白行 46 BufferedReader br = new BufferedReader(new FileReader(file)); 47 String c; 48 int ccca = 0; 49 while((c=br.readLine())!=null) { 50 c+=" ";//这个原理我也不懂,反正实测不加空格的话会数错 51 String[] s = c.split("\\S"); //就算两个相邻字符也分开,中间为空集 52 if(s.length<=2) {ccca++;}//按需求,一行内只有单一字符算空行 53 } 54 br.close(); 55 return ccca; 56 } 57 public static void scan(File file) throws IOException{ 58 if(file!=null){ 59 if(file.isDirectory()){ 60 File[] fileArray=file.listFiles();//列出里面的文件目录 61 if(fileArray!=null){ 62 for (int i = 0; i < fileArray.length; i++) { 63 //递归调用 64 scan(fileArray[i]); 65 } 66 } 67 } 68 else{ 69 all(file);//这个方法没贴上来,内容很简单的,就是分别调用前面的wcl方法 70 } 71 } 72 } 73 void run(File file) throws IOException {//这个是窗口界面里面的执行实现 74 int ww=Method.countw2(file); 75 int wc=Method.countc(file); 76 int wl=Method.countl(file); 77 int wa=Method.counta(file); 78 wordArea.setText("代码文件路径:"+path+"\n单词数目为:"+ww+"\n字符数目为:"+wc+"\n总行数为:"+wl+ 79 "\n空白行数为:"+wa); 80 }
【注意】不得贴项目无关代码,一经发现,算抄袭。
例:
void selection_sort(int* array, int n) { for (int i = 0; i < n; ++i) { int min_idx = n - 1; for (int j = n - 2; j >= i; --j) { if (array[j] < array[min_idx]) min_idx = j; } if (min_idx != i) swap(array, min_idx, i); } }
PSP
- 实现之前先在PSP中预估时间
- 实施后各个环节实际花费多少时间也请做记录
- 表中有一项: Estimate 指的“预估”这个活动,“预估时间”也是一项任务。
- 例如:我估计自己需要花30分钟来估算出整个项目需要多少时间完成,结果我花了20分钟估算出整个项目需要6个小时完成。Estimate这一项应该在“预估耗时”填写30分钟,实际耗时填写“20”分钟。
- 一级和二级活动的包含关系:
- Planning 这个一级活动包含了1个二级活动(Estimate)
- Development 这个一级活动包含了8个二级活动
- Reporting 这个一级活动包含了3个二级活动
- 大家在记录时间的时候, 只用记录二级活动, 然后把总数加了, 就是相应的一级活动的时间
- 这个时间的长短并不会对分数有直接影响,这是为了大家自己总结。
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | ||
· Estimate | · 估计这个任务需要多少时间 | 5 | 2 |
Development | 开发 | ||
· Analysis | · 需求分析 (包括学习新技术) | 120 | 240 |
· Design Spec | · 生成设计文档 | 60 | 0 |
· Design Review | · 设计复审 (和同事审核设计文档) | 60 | 0 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 60 | 0 |
· Design | · 具体设计 | 60 | 120 |
· Coding | · 具体编码 | 180 | 720 |
· Code Review | · 代码复审 | 60 | 120 |
· Test | · 测试(自我测试,修改代码,提交修改) | 60 | 60 |
Reporting | 报告 | ||
· Test Report | · 测试报告 | 60 | 120 |
· Size Measurement | · 计算工作量 | 60 | 10 |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 60 | 60 |
合计 | 865 | 1452 |
PSP2.1 Markdown Source
| PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|-----------------------------------------|-----------------------------------------|------------------|------------------|
| Planning | 计划 | | |
| · Estimate | · 估计这个任务需要多少时间 | | |
| Development | 开发 | | |
| · Analysis | · 需求分析 (包括学习新技术) | | |
| · Design Spec | · 生成设计文档 | | |
| · Design Review | · 设计复审 (和同事审核设计文档) | | |
| · Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | | |
| · Design | · 具体设计 | | |
| · Coding | · 具体编码 | | |
| · Code Review | · 代码复审 | | |
| · Test | · 测试(自我测试,修改代码,提交修改) | | |
| Reporting | 报告 | | |
| · Test Report | · 测试报告 | | |
| · Size Measurement | · 计算工作量 | | |
| · Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | | |
| 合计 | | | |
记录自己的学习进度条(每周追加)
第N周 | 新增代码(行) | 累计代码(行) | 本周学习耗时(小时) | 累计学习耗时(小时) | 重要成长 |
---|---|---|---|---|---|
1 | 500 | 500 | 5 | 5 | 熟悉x语言1、2、3特性 |
2 | 1000 | 1500 | 12 | 17 | 通过练习xxx,掌握了xxx用法 |
… |
参考
- 项目博客模板:http://www.cnblogs.com/vertextao/p/7469789.html
- 别人的博文工
- http://www.cnblogs.com/pramy/p/9607743.html
- https://www.jb51.net/article/102424.htm
- https://www.cnblogs.com/LFBlog/p/6240906.html
- https://blog.csdn.net/lxasmall_white/article/details/78649747
- https://blog.csdn.net/Rookie_Or_Veteran/article/details/78151513
转载于:https://www.cnblogs.com/h309456108/p/9649140.html
软件工程项目基于java的wc实现相关推荐
- 类记事本字处理软件java_基于Java的记事本程序的设计与实现.doc
基于Java的记事本程序的设计与实现 基于Java的记事本程序的设计与实现 张会 攀枝花学院数学与计算机学院 X 关注成功! 加关注后您将方便地在 我的关注中得到本文献的被引频次变化的通知! 新浪微博 ...
- java 人力资源软件_基于-JAVA人力资源管理系统.doc
. .. 毕业设计(论文) 课 题 名 称 人力资源管理系统的设计与实现 学 生 姓 名 万友利 学 号 1041302041 系.年级专业 信息工程系.10级计算机科学与技术 指 导 教 师 柳 小 ...
- 基于java平台和运用5种设计模式的五子棋游戏
软件设计模式--基于java平台和运用5种设计模式的五子棋游戏 点击链接查看文档代码 二.设计要求 仿照教材上面围棋软件的设计思路,设计一款五子棋,采用至少5种设计模式. 三.引言 五子棋相传起源于四 ...
- java毕业设计——基于java+EVENODD编码的基于纠错码的冗余技术设计与实现(毕业论文+程序源码)——基于纠错码的冗余技术
基于java+EVENODD编码的基于纠错码的冗余技术设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+EVENODD编码的基于纠错码的冗余技术设计与实现,文章末尾附有本毕业设计的 ...
- java开发组态软件下载_基于JAVA的煤矿安全监控系统组态软件设计研究.pdf
·218· 工矿自动化 基于JAVA的煤矿安全监控系统组态软件设计 鲍毅华钢 (中国矿业大学信电学院 江苏徐州 221008) [摘要]本文通过对当前煤矿安全监控系统组态存在的问题和发展趋势的问题,提 ...
- java技术论坛的毕业设计_基于java的bbs论坛设计,软件毕业设计
基于java的bbs论坛设计,软件毕业设计 XXX毕 业 设 计 任 务 书专业 软件技术 年级 xx 级 班级 二班姓名 xx 学号 20 xx0205xx3威 海 职 业 学 院 教 务 处 编 ...
- 基于Java毕业设计写手管理平台源码+系统+mysql+lw文档+部署软件
基于Java毕业设计写手管理平台源码+系统+mysql+lw文档+部署软件 基于Java毕业设计写手管理平台源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S架构 开发语言: ...
- 基于Java毕业设计研究生招生信息管理源码+系统+mysql+lw文档+部署软件
基于Java毕业设计研究生招生信息管理源码+系统+mysql+lw文档+部署软件 基于Java毕业设计研究生招生信息管理源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S架构 ...
- 基于Java毕业设计缘梦书屋网站源码+系统+mysql+lw文档+部署软件
基于Java毕业设计缘梦书屋网站源码+系统+mysql+lw文档+部署软件 基于Java毕业设计缘梦书屋网站源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S架构 开发语言: ...
最新文章
- 提取so文件的特征值
- 教程,使用YCSB测试MYSQL数据库,获取千万条测试后的数据
- POJ3695(矩形切割中等题)
- matlab中表示拉普拉斯分布_深度优化局部拉普拉斯金字塔滤波器。
- stl vector 函数_在C ++ STL中使用vector :: begin()和vector :: end()函数打印矢量的所有元素...
- java中的private public protected
- svg与png/jpg快速转换
- 无透镜成像相关资料汇总
- 【英语学习】【English L06】U04 Adventure L4 I got lost in New York
- Spring AOP体系学习
- MSSQL常用操作及方法总结
- Cookie和Session的详细介绍和使用规范
- NUC1921 E.迷雾森林【筛选法】
- 图像过滤,so easy~~
- myeclipse修改控制台Console面板
- Advance Installer安装问题
- python官方文档中文版下载,python官方手册中文pdf
- 工业机器人pallet指令_对《工业机器人编程指令详解》的详细介绍
- 平面设计师okr_设计师如何定制OKR?
- java毕业设计校园服装租赁系统mybatis+源码+调试部署+系统+数据库+lw
热门文章
- 7-2 冒泡法排序之过程 (15分)
- 揭秘 Google 成长史:荒诞梦想的副产品
- java多线程listview_ListView的优化
- 手机取证技巧之微信迁移取证_数字取证技巧和窍门:«您的电话»应用取证
- prometheus-简介
- Android最牛的开源整理
- MySQL中利用经纬度计算两点之间的距离
- 苹果手机计算机报不了名,为什么iphone连不上电脑
- hbilderx 扫一扫_【报Bug】hbuilder 扫一扫从相册中选图的图片扫码识别不出来
- 明德文理学院的计算机,今日迎来全球计算机强校CMU卡耐基梅隆,多少中国学生获得青睐?...