项目 | 内容 |
---|---|
作业所属课程 | http://www.cnblogs.com/nwnu-daizh/ |
作业要求 | https://www.cnblogs.com/nwnu-daizh/p/10569690.html |
课程学习目标 | 体验软件项目开发中的两人合作,练习结对编程(Pair programming)。掌握Github上增量发布软件的操作方法。 |
在哪个具体方面帮助我们实现目标 | 能够在同学之间更好的进行合作与交流 |
本次项目源代码 | https://github.com/Lxiaoxue/Work |
任务一
项目 | 内容 |
---|---|
点评作业的博客 | https://www.cnblogs.com/shl0/p/10556765.html |
博文评论内容: | 整体来说写的挺好,功能方面也都基本实现了。在按字典排序写入result.txt文件功能实现的不错,写入的很整齐。但是在查询单词这个功上还可以进行优化,连续输入不同的单词一次性查询。还有就是可以学习一下在博文中如何使用表格。继续努力! |
点评心得: | 在看了她的博文之后,相比与自己在有些方面还是很有学习的地方,比如在写入result文件中,写入的很整齐。应该学习。 |
github链接地址 | https://github.com/SHL0/Word-Count |
代码点评内容: | 代码写的很规范,能容易理解,每个类和函数都有注释,是值得学习的地方。希望继续努力。 |
代码点评心得: | 在看了她的代码之后,相比与自己 还有学习的地方,有些代码写注释很重要,方便以后的学习。 |
任务二
a.需求分析
(1)实验2要求的功能;
(2)单词频数可视化柱状图要求是以下样式:
(3)统计该文本行数及字符数;
(4)各种统计功能均提供计时功能,显示程序统计所消耗时间(单位:ms);
(5)可处理任意用户导入的任意英文文本;
(6)人机交互界面要求GUI界面(WEB页面、APP页面都可);
(7)附加分功能:统计文本中除冠词、代词、介词之外的高频词;
b.软件设计
1.首先输入任意正确的文件名。进入功能选择,点击每个功能进行测试。
2.本次项目需要用到图形用户界面。在Mianclass类中编写,设置面板,动作监听。
3.在柱状图和排序编写到不同的类中进行调用。
c.核心功能代码展示
surebt.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
if(event.getSource()==surebt){
JOptionPane.showConfirmDialog(null, "是否退出程序?","查找结果",JOptionPane.DEFAULT_OPTION);
frame1.dispose();//销毁当前界面
}
}
});
okbt.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(e.getSource()==okbt) {
String src = t1.getText();
File file =new File(src);
FileReader reader = null;
try {
reader = new FileReader(src);
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
if(!file.exists())
{
JOptionPane.showConfirmDialog(null, "请输入正确的文件名","查找结果",JOptionPane.DEFAULT_OPTION);
}
BufferedReader br = new BufferedReader(reader);
String readline = null;
int row=0;
int wordnumber=0;
long startTime = System.currentTimeMillis(); //获取开始时间
ArrayList<String> lists = new ArrayList<String>();
try {
while ((readline = br.readLine()) != null)
{
String[] wordsArray=readline.split("[^a-zA-Z]");
for(String word :wordsArray)
{
if(word.length() != 0)
{
word=word.toLowerCase();
lists.add(word);
}
}
row++;
}
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
System.out.println(row);
try {
br.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
d.程序运行
1.运行程序
2.输入任意文本
(若输入的文件名不正确)
(输入正确的文件名)
3.输入任意单词,查询词频。
4.查询高频词。
5.显示柱状图。
6.按字典排序写如result.txt中。
7.附加功能1,查询除代词介词冠词之外的单词词频。
8.退出。
e.结对过程描述
在一起合作的时候也会有很多分歧,需要讨论和尝试很多时间。
f.PSP展示
任务内容 | 计划完成需要的时间(min) | 实际完成需要的时间(main) |
---|---|---|
计划 | 30 | 25 |
估计这个任务需要多少时间,并规划大致工作步骤 | 40 | 30 |
开发 | 240 | 300 |
需求分析 | 30 | 25 |
生成设计文档 | 60 | 50 |
设计复审 (和同学审核设计文档) | 20 | 25 |
代码规范 (为目前的开发制定合适的规范) | 10 | 15 |
具体设计 | 30 | 30 |
具体编码 | 300 | 350 |
代码复审 | 20 | 25 |
测试(自我测试,修改代码,提交修改) | 20 | 15 |
报告 | 30 | 45 |
测试报告 | 30 | 25 |
计算工作量 | 20 | 15 |
事后总结 ,并提出过程改进计划 | 60 | 45 |
g.总结
本次项目的重难点就是图形用户界面,在功能部分我们实现的还算是顺利。但是到了做界面的时候就遇到了很大的困难,虽然之前学习过,大部分方法都忘记了,在编写代码的过程中查阅了书籍。希望可以将更进一步。