軟體工程作業--詞頻統計

來源:互聯網
上載者:User

標籤:des   blog   http   io   os   使用   ar   strong   for   

預計用時:
在剛接到這個作業的時候,根據上學期的經驗,我預計完成這份作業需要的時間為:尋找資料1小時,學習c#基礎知識2小時,寫代碼4小時,調試測試1小時
實際用時:
但是,當我真正開始寫這份作業之後,才意識到這次的作業遠比我想象預計中的複雜,於是,等做完作業之後,我的實際用時是:尋找資料2小時,學習c#基礎知識2小時,寫代碼6小時……調試測試之類的2小時,再加上研究效能測試寫測試案例用的2小時,總共完成這份作業用了14小時。。。
改進效能:
改進效能一直貫穿在我寫程式的每個部分,其中比較重要的幾點如下:
1)儲存單詞的時候,原本寫的是按其在檔案中的出現次序依次存進鏈表裡,全部儲存完之後,再對其全部排序。這個排序方法用時太長,後來思考之後,我改成了邊儲存邊排序,每加入一個單詞,其數量肯定為1,直接加在鏈表末尾即可,如果是給已存在的單詞增加數量,則對該單詞調整位置,使整個鏈表一直按照按此的出現次數排序,之後再將個數為一的單詞按照ASCII碼值進行排序,改進這個部分用時20分鐘;
2)在取前十個連續兩個單詞以及連續三個單詞的時候,本來是對鏈表裡的所有元素進行從大到小的排序,然後取前十位,改進效能之後,是將鏈表裡的前十個元素先存進一個十元素的數組,之後先對這十個元素排序,然後遍曆鏈表中的其餘所有元素,若個數大於數組中任一元素的個數,則將數組此位置後的元素依次後移並替換當前位置單詞,改進這個部分大約用時20分鐘。

效能測試圖:

十個測試案例:

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)其他方面,每寫一個有難度的程式,都是對耐心的極大鍛煉,我們會不斷的遇到問題,不斷的調試,又遇到新的問題,接著調試、測試,直到自己不在發現錯誤,這一點可以極大地鍛煉我們的耐心,對以後各方面的發展都有極大的益處。

軟體工程作業--詞頻統計

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.