软件工程作业--词频统计

摘要:
两个小时的调试和测试,加上两个小时研究性能测试和编写测试用例,总共花了14个小时来完成这项任务。。。提高绩效:提高绩效贯穿于我计划的每一部分。最重要的几点如下:1)在存储单词时,原始书写的单词将按照它们在文件中出现的顺序存储在链接列表中。存储所有单词后,对其进行排序。

预计用时:
在刚接到这个作业的时候,根据上学期的经验,我预计完成这份作业需要的时间为:查找资料1小时,学习c#基础知识2小时,写代码4小时,调试测试1小时
实际用时:
但是,当我真正开始写这份作业之后,才意识到这次的作业远比我想象预计中的复杂,于是,等做完作业之后,我的实际用时是:查找资料2小时,学习c#基础知识2小时,写代码6小时……调试测试之类的2小时,再加上研究性能测试写测试用例用的2小时,总共完成这份作业用了14小时。。。
改进性能:
改进性能一直贯穿在我写程序的每个部分,其中比较重要的几点如下:
1)存储单词的时候,原本写的是按其在文件中的出现次序依次存进链表里,全部存储完之后,再对其全部排序。这个排序方法用时太长,后来思考之后,我改成了边存储边排序,每加入一个单词,其数量肯定为1,直接加在链表末尾即可,如果是给已存在的单词增加数量,则对该单词调整位置,使整个链表一直按照按此的出现次数排序,之后再将个数为一的单词按照ASCII码值进行排序,改进这个部分用时20分钟;
2)在取前十个连续两个单词以及连续三个单词的时候,本来是对链表里的所有元素进行从大到小的排序,然后取前十位,改进性能之后,是将链表里的前十个元素先存进一个十元素的数组,之后先对这十个元素排序,然后遍历链表中的其余所有元素,若个数大于数组中任一元素的个数,则将数组此位置后的元素依次后移并替换当前位置单词,改进这个部分大约用时20分钟。

性能测试图:

软件工程作业--词频统计第1张

十个测试用例:

1)空文件夹

测试结果如下:

所有单词:
前十组连续两个的单词:
(不足10个)
前十组连续三个的单词:
(不足10个)

2)123helper helper123 helper123 helper123 123helper

测试结果如下:

所有单词:
helper123:3
前十组连续两个的单词:
helper123 helper123:2
(不足10个)
前十组连续三个的单词:
helper123 helper123 helper123:1
(不足10个)

3)helper123 HELPER123 HELPer123

测试结果如下:

所有单词:
HELPER123:3
前十组连续两个的单词:
HELPER123 HELPer123:2
(不足10个)
前十组连续三个的单词:
helper123 HELPER123 HELPer123:1
(不足10个)

4)

we come to this 56 city.play together#$^%&*( happy
hgfshfoe

测试结果如下:

所有单词:
city:1
come:1
happy:1
hgfshfoe:1
play:1
this:1
together:1
前十组连续两个的单词:
play together:1
(不足10个)
前十组连续三个的单词:
(不足10个)

5)文件名字为test5.h.mp3,文件内容包含正常单词

测试结果为

所有单词:
前十组连续两个的单词:
(不足10个)
前十组连续三个的单词:
(不足10个)

6)文件名字为test6.doc,文件内容包含正常单词

测试结果为

所有单词:
前十组连续两个的单词:
(不足10个)
前十组连续三个的单词:
(不足10个)

7)文件夹两层嵌套,包含三个文件,每个文件内容都是The Board Meeting had come to an end. 

测试结果:

所有单词:
Board:3
come:3
end:3
had:3
Meeting:3
The:3
前十组连续两个的单词:
Board Meeting:3
had come:3
Meeting had:3
The Board:3
(不足10个)
前十组连续三个的单词:
Board Meeting had:3
Meeting had come:3
The Board Meeting:3
(不足10个)

8)有一个空文件夹还有一个txt,txt内容为

aaa aaa aaa aaa aaa
bbb bbb bbb bbb bbb
ZZZ ZZZ ZZZ ZZZ ZZZ
YYY YYY YYY YYY YYY

测试结果:

所有单词:
aaa:5)
bbb:5)
YYY:5)
ZZZ:5)
前十组连续两个的单词:
aaa aaa:4
bbb bbb:4
YYY YYY:4
ZZZ ZZZ:4
(不足10个)
前十组连续三个的单词:
aaa aaa aaa:3
bbb bbb bbb:3
YYY YYY YYY:3
ZZZ ZZZ ZZZ:3
(不足10个)

9)

AAA BBB bbb
ccc ccc ccc

测试结果:

所有单词:
ccc:3
BBB:2
AAA:1
前十组连续两个的单词:
ccc ccc:2
AAA BBB:1
BBB bbb:1
(不足10个)
前十组连续三个的单词:
AAA BBB bbb:1
ccc ccc ccc:1
(不足10个)

10)

此文件夹里包含一个无后缀文件,一个.mp3文件,这两个文件中都有正常单词,还有一个.h文件,内容为一篇英文文章

测试结果中不包含前两个文件的内容,只包含英文文章中出现过的单词

所有单词:
The:25
His:20
Her:13
was:13
And:12
Giovanni:12
She:11
Beatrice:9
That:9
You:7
But:6
flowers:6
from:6
hand:5
him:5
man:5
not:5
about:4
Baglioni:4
garden:4
had:4
like:4
looked:4
One:4
Professor:4
purple:4
They:4
this:4
with:4
breath:3
face:3
for:3
heart:3
little:3
old:3
perfume:3
poison:3
Rappaccini:3
reached:3
your:3
away:2
beautiful:2
bottle:2
came:2
could:2
covered:2
cried:2
daughter:2
Don:2
down:2
even:2
felt:2
hands:2
how:2
last:2
life:2
morning:2
off:2
pain:2
plant:2
put:2
said:2
see:2
small:2
sweet:2
those:2
time:2
told:2
too:2
wanted:2
when:2
will:2
wrong:2
young:2
air:1
all:1
around:1
asked:1
asleep:1
baby:1
because:1
bed:1
began:1
believe:1
blood:1
break:1
bright:1
caught:1
child:1
classes:1
clear:1
combed:1
come:1
continued:1
daily:1
day:1
dear:1
destroy:1
did:1
Doctor:1
doubts:1
drink:1
ever:1
every:1
eyes:1
family:1
father:1
fell:1
Finally:1
fine:1
fingers:1
fire:1
forgot:1
four:1
friend:1
full:1
gave:1
girl:1
Give:1
given:1
glow:1
God:1
grabbed:1
great:1
hair:1
handsome:1
has:1
hat:1
have:1
healthy:1
help:1
helping:1
hers:1
Hiding:1
himself:1
hold:1
holds:1
home:1
house:1
innocent:1
into:1
kiss:1
knife:1
large:1
late:1
later:1
leave:1
left:1
let:1
loved:1
mark:1
may:1
medicine:1
meet:1
meeting:1
mirror:1
month:1
more:1
most:1
much:1
must:1
near:1
nearly:1
never:1
night:1
nothing:1
noticed:1
noticing:1
older:1
out:1
own:1
particularly:1
planning:1
pleased:1
powerful:1
pulled:1
ran:1
realized:1
room:1
sat:1
save:1
saw:1
scream:1
several:1
silver:1
slowly:1
smell:1
something:1
sparkled:1
spent:1
spirit:1
spoke:1
standing:1
stay:1
stop:1
strength:1
stronger:1
succeed:1
sure:1
table:1
take:1
talked:1
talking:1
than:1
thank:1
Then:1
There:1
thinking:1
though:1
through:1
thumb:1
took:1
touch:1
university:1
very:1
visited:1
walked:1
warm:1
wasn:1
water:1
weeks:1
went:1
were:1
what:1
While:1
woke:1
wonderful:1
words:1
worried:1
worry:1
would:1
yet:1

前十组连续两个的单词:
Professor Baglioni:4
And his:3
from the:3
his hand:3
his heart:3
purple flowers:3
the garden:3
away from:2
Beatrice was:2
could not:2
前十组连续三个的单词:
She told him:2
the old man:2
the purple flowers:2
The young man:2
about his home:1
about how sweet:1
about the pain:1
air around her:1
all her strength:1
and beautiful Beatrice:1

我学到了什么?

1)知识方面,我学到了很多c#的基础语法知识,以及写这个程序所涉及到的其他c#知识,比如说文件的读写,集合的使用等;

2)能力方面,程序员每写一个程序就是对自身能力的一次锻炼,因此我得到了锻炼,更熟悉了vs2012的使用;

3)其他方面,每写一个有难度的程序,都是对耐心的极大锻炼,我们会不断的遇到问题,不断的调试,又遇到新的问题,接着调试、测试,直到自己不在发现错误,这一点可以极大地锻炼我们的耐心,对以后各方面的发展都有极大的益处。

免责声明:文章转载自《软件工程作业--词频统计》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇读《移山之道——VSTS软件开发指南》个人阅读作业3下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

英文词频统计预备,组合数据类型练习

1、下载一首英文的歌词或文章,将所有,.?!等替换为空格,将所有大写转换为小写,统计某几个单词出现的次数,分隔出一个一个的单词。s='''You were the shadow to my life Did you feel us&nb...

英语学习相关

英语学习相关 英语多好才够好: 通过生存需要的英语考试 日常英语能顺利交流 自己专业领域内的英语必须非常精通 ##口语 中文发音颗粒饱满,单个字和放在句中发音都一样。而英文有连读、失爆、变音等现象,本质是偷懒,为了读着更顺畅。如果按照中文发音思维读英文,听着就会感觉发音磕磕巴巴很硌人不舒服,没有流畅感。 ###音标练习 一图包含所有元音和重要的辅音,每...

[ACM] POJ 1035 Spell checker (单词查找,删除替换添加不论什么一个字母)

Spell checker Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 18693 Accepted: 6844 Description You, as a member of a development team for a new...

LeetCode 1160. 拼写单词

1160. 拼写单词 难度简单 给你一份『词汇表』(字符串数组)words和一张『字母表』(字符串)chars。 假如你可以用chars中的『字母』(字符)拼写出words中的某个『单词』(字符串),那么我们就认为你掌握了这个单词。 注意:每次拼写(指拼写词汇表中的一个单词)时,chars中的每个字母都只能用一次。 返回词汇表words中你掌握的所有...

关于 微软必应词典客户端 的案例分析

【前言】 本次的个人作业是对于微软必应词典客户端的案例分析,我个人是第一次知道这个软件的(不会很out吧),平常的日子都用有道词典查单词,所以我先去百度了一下必应词典的背景,“必应词典 是微软首款中英文智能词典。不仅可提供中英文单词和短语查询,还拥有词条对比等众多特色功能,能够为英文写作提供帮助。”(百度百科的第一句)之后下载使用了一下,我下载的是ios端和...

(描述需要改进)Leetcode No.68 **

给定一个单词数组和一个长度maxWidth,重新排版单词,使其成为每行恰好有maxWidth个字符,且左右两端对齐的文本。 你应该使用“贪心算法”来放置给定的单词;也就是说,尽可能多地往每行中放置单词。必要时可用空格' '填充,使得每行恰好有maxWidth个字符。 要求尽可能均匀分配单词间的空格数量。如果某一行单词间的空格不能均匀分配,则左侧放置的空格数要...