软件工程项目基于java的wc实现
2021-06-28 14:07
标签:文本 设计文档 word 过程 info 需求 递归调用 方便 数组元素 github地址:https://github.com/liudaohu/myrepository.git · 【编程语言】不限 · 【项目设计】分析并理解题目要求,独立完成整个项目,并将最新项目发布在Github上。 · 【项目测试】使用单元测试对项目进行测试,并使用插件查看测试分支覆盖率等指标。 · 【源代码管理】在项目实践过程中需要使用Github管理源代码,代码有进展即签入Github。签入记录不合理的项目会被助教抽查询问项目细节。 贴出你认为的关键代码或者设计图,并进行解释 【注意】不得贴项目无关代码,一经发现,算抄袭。 例:WC软件工程项目JAVA实现博客
项目相关要求
遇到的困难及解决方法
关键代码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//按需求,一行内只有单一字符算空行
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 ) {
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 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
软件工程项目基于java的wc实现
标签:文本 设计文档 word 过程 info 需求 递归调用 方便 数组元素
原文地址:https://www.cnblogs.com/h309456108/p/9649140.html