【文章內(nèi)容簡(jiǎn)介】
i = 0 。c h a r c h a x u n _ n a m e [ 5 0 ] 。s t r u c t s t u d e n t * p 。p = h e a d 。i s t u d e n t _ n u ms t r c m p ( c h a x u n _ n a m e, p n a m e ) = = 0輸出 p 所指向的結(jié)構(gòu)體數(shù)據(jù)i + +結(jié)束圖 3 查找缺課記錄 查看單科曠課記錄子模塊根據(jù)學(xué)科名稱和時(shí)間范圍查出所有在該范圍內(nèi)曠課的學(xué)生以及次數(shù) 如圖 4 所示。開(kāi)始s t r u c t s t u d e n t * p 1 , * p 2 , * p 3 。 c h a r l e s s o n [ 5 0 ] 。l o n g l o o k _ t i m e 1 , l o o k _ t i m e 2 。i n t x u n h u a n _ n u m = 0 。p 3 = ( s t r u c t s t u d e n t * ) m a l l o c ( L E N ) 。p 1 = h e a d 。p 2 = p 1 n e x tx u n h u a n _ n u m s t u d e n t _ n ump 2 ! = N U L Lp 2 k u a n g k e _ n u m p 1 k u a n g k e _ n u mp 1 = p 2 。p 2 = p 2 n e x t 。p 1 = h e a d 。p 2 = p 1 n e x t 。x u n h u a n _ n u m + + 。交換 p 1 與 p 2 指向數(shù)據(jù)p r i n t f ( 請(qǐng)輸入要查看的學(xué)科名稱 : ) 。s c a n f ( % s , l e s s o n ) 。p r i n t f ( 請(qǐng)輸入要查看的時(shí)間范圍 ) 。 s c a n f ( % l d % l d , amp。 l o o k _ t i m e 1 , amp。 l o o k _ t i m e 2 ) 。p 1 = h e a d 。p 1 ! = N U L Ls t r c m p ( l e s s o n , p 1 l e s s o n _ n a m e ) = = 0 amp。 amp。 l o o k _ ti m e 1 = p 1 t i m e amp。 amp。 p 1 t i m e = l o o k _ t i m e 2輸出學(xué)生姓名和曠課次數(shù)p 1 = p 1 n e x t 。結(jié)束YNYYNN 圖 4 查看學(xué)生單科曠課記錄 查看學(xué)生曠課記錄子模塊根據(jù)要查詢的學(xué)科名稱及時(shí)間段查出在改時(shí)間段內(nèi)該門課上曠課的人數(shù) 如圖 5 所示。開(kāi)始i n t n , i , j , z h o n g j i a n 。s t r u c t s t u d e n t * p 1 。c h a r z h o n g j i a n _ n a m e [ 5 0 ] 。l o n g l o o k _ t i m e 1 , l o o k _ t i m e 2 。p r i n t f ( 請(qǐng)輸入第 % d 個(gè)學(xué)科名稱 : , i + 1 ) 。s c a n f ( % s , a [ i ] . x u e k e _ n a m e ) 。a [ i ] . p e o p l e _ n u m = 0 。p r i n t f ( 請(qǐng)輸入要查看的時(shí)間范圍由小到大 ) 。s c a n f ( % l d % l d , amp。 l o o k _ t i m e 1 , amp。 l o o k _ t i m e 2 ) 。p 1 = h e a d 。 i = 0 。i np 1 ! = N U L L amp。 amp。 l o o k _ t i m e 1 = p 1 t i m e amp。 amp。 p 1 t i m e = l o o k _ t i m e 2( s t r c m p ( a [ i ] . x u e k e _ n a m e ,p 1 l e s s o n _ n a m e ) = = 0p 1 = p 1 n e x t 。p 1 = h e a d 。i + + ;a [ i ] . p e o p l e _ n u m + = p1 k u a n g k e _ n u m 。j n 1i n 1 ja [ i ] . p e o p l e _ n u m a [ i + 1 ]. p e o p l e _ n u m交換 a [ i ] 與 a [ i + 1 ] 的數(shù)據(jù)j + + ;i + + 。輸出學(xué)生姓名與曠課人數(shù)結(jié)束i = 0YYYYYYNNNNNNN圖 5 查看學(xué)生曠課記錄 載入學(xué)生曠課記錄子模塊可以載入實(shí)現(xiàn)儲(chǔ)存在當(dāng)前文件夾中 txt 文件中所儲(chǔ)存的數(shù)據(jù) 如圖 6 所示。 開(kāi)始s t r u c t s t u d e n t * p 1 = N U L L , * p 2 = N U L L , * h e a d = N U L L 。s t r u c t s t u d e n t s t u d e n t _ z i l i a o [ 1 0 0 ] 。i n t i = 0 , n = 0 。打開(kāi)文件! f e o f ( f p 1 )將文件里的數(shù)據(jù)存入結(jié)構(gòu)體數(shù)組通過(guò)結(jié)構(gòu)體數(shù)組建立鏈表結(jié)束圖 6 載入學(xué)生曠課記錄 儲(chǔ)存學(xué)生曠課記錄子??爝M(jìn)入系統(tǒng)界面,順序的完成各項(xiàng)操作,進(jìn)行數(shù)據(jù)的輸入,信息的保存調(diào)用相應(yīng)的函數(shù)打開(kāi)相應(yīng)的地址,查詢各項(xiàng)信息。如圖 7 所示。 圖 7 儲(chǔ)存學(xué)生曠課記錄第五章 調(diào)試與測(cè)試 調(diào)試此程序是用 VC 程序編寫,調(diào)試過(guò)程中在菜單中選擇乍看學(xué)生曠課記錄,程序不執(zhí)行。因?yàn)闆](méi)有加入選擇的 case 語(yǔ)句。后在 switch 后加一個(gè) case 就可以自動(dòng)執(zhí)行了。 測(cè)試由于程序的源代碼是在記事本文本中復(fù)制到 VC 中的,有些 printf 后比較長(zhǎng)的語(yǔ)句會(huì)被放到下一行,使程序出現(xiàn)多處類似的錯(cuò)誤,經(jīng)過(guò)在 VC 中的修改,程序得以正常的運(yùn)行。 結(jié)論課程設(shè)計(jì)順利完成,題目所要求的功能也都一一實(shí)現(xiàn),可以對(duì)學(xué)生的缺課信息進(jìn)行添加,修改,刪除以及查詢的顯示。不過(guò)這個(gè)程序還有些不夠完善,例如不能往當(dāng)前文件夾中的 txt 文件中添加記錄。結(jié)束語(yǔ)整個(gè)系統(tǒng)的設(shè)計(jì)過(guò)程對(duì)于我來(lái)說(shuō)算是個(gè)學(xué)習(xí)、探索的過(guò)程,通過(guò)實(shí)踐和對(duì)比別人開(kāi)發(fā)程序的過(guò)程。在整個(gè)設(shè)計(jì)過(guò)程中,出現(xiàn)過(guò)很多的問(wèn)題,很多繁瑣的東西都需要反復(fù)的修改,主要是前期工作不徹底,對(duì)系統(tǒng)的需求分析的要求認(rèn)識(shí)不夠清楚,使得在后邊的工作中不得不經(jīng)常反復(fù)去修改。使我體會(huì)到設(shè)置中每一步的重要性。所以在分析一個(gè)問(wèn)題時(shí),我們需要站在一個(gè)有遠(yuǎn)見(jiàn)的高度。通過(guò)此次設(shè)計(jì),我不但對(duì) C 語(yǔ)言編程有了更深刻的認(rèn)識(shí),積累了使用軟件工程的思想來(lái)開(kāi)發(fā)軟件的經(jīng)驗(yàn),更重要的是學(xué)會(huì)了在對(duì)待問(wèn)題時(shí)應(yīng)該考慮到哪些方面和怎么解決問(wèn)題。雖然時(shí)間緊迫但我學(xué)會(huì)了很多,也感到自身知識(shí)的貧乏,希望在日后的努力中能做出更完善的系統(tǒng)。致 謝這次 C 語(yǔ)言的程序設(shè)計(jì),對(duì)于我來(lái)說(shuō)是一個(gè)挑戰(zhàn)。我在 C 語(yǔ)言的學(xué)習(xí)過(guò)程中的困難并不只在程序的設(shè)計(jì)中有所體現(xiàn),每一個(gè)函數(shù)都設(shè)計(jì)好了,也調(diào)試好了,把它們分開(kāi)運(yùn)行并沒(méi)有錯(cuò)誤,但是當(dāng)把它們組合成一個(gè)程序時(shí),便是一個(gè)一個(gè)地出現(xiàn)錯(cuò)誤;把這個(gè)問(wèn)題解決了,另一個(gè)新問(wèn)題又來(lái)了。這不能不說(shuō)是對(duì)知識(shí)的欠缺。通過(guò)這次的程序設(shè)計(jì),我懂得了無(wú)論什么事都要去做才會(huì)發(fā)現(xiàn)問(wèn)題,才有可能去解決問(wèn)題。對(duì)知識(shí)的學(xué)習(xí),不能潛償輒止,要深入去學(xué)習(xí),去了解,這樣才會(huì)有所收獲。有許多東西,許多事,不是想像中的那么容易,不去實(shí)踐,永遠(yuǎn)也不會(huì)有提高,尤其是學(xué)習(xí)計(jì)算機(jī)。同時(shí),在這次課程設(shè)計(jì)的過(guò)程中,我認(rèn)識(shí)到學(xué)好計(jì)算機(jī)要重視實(shí)踐操作,不僅僅是學(xué)習(xí) C 語(yǔ)言,還是其它的語(yǔ)言,以及其它的計(jì)算機(jī)方面的知識(shí)都要重在實(shí)踐,不能只是學(xué)習(xí)和重視書本上的理論知識(shí),所以日后在學(xué)習(xí)過(guò)程中,我會(huì)更加注視實(shí)踐操作,使自己更好地學(xué)好計(jì)算機(jī)這門課程。 以前做實(shí)驗(yàn)題目的時(shí)候總是感覺(jué)很難,因?yàn)楦揪筒恢缽哪睦镩_(kāi)始。這次課程設(shè)計(jì)讓我對(duì)編程有了新的認(rèn)識(shí),也是我知道了只有自己親自動(dòng)手才能學(xué)到更多東西。拿到題目的時(shí)候也是很困惑但仔細(xì)琢磨后也不是想象中那么難,覺(jué)得就是上課講到的一些內(nèi)容,是自己先把自己嚇住了。后來(lái),參照書上的和網(wǎng)上的諸多例子,一個(gè)模塊一個(gè)模塊的編寫,調(diào)試,一個(gè)功能一個(gè)功能去完善。發(fā)現(xiàn)越做越順利,由于以前的實(shí)驗(yàn)中對(duì)于改錯(cuò)的經(jīng)驗(yàn)積累和幾個(gè)學(xué)得不錯(cuò)的同學(xué)的幫助,我的程序中的錯(cuò)誤也一個(gè)一個(gè)的順利解決。再后來(lái),等我的程序完全做好以后,我竟然可以獨(dú)立的幫同學(xué)修改一些以前根本不知所以然的錯(cuò)誤,其實(shí),從這次實(shí)驗(yàn)中我認(rèn)識(shí)到,我距離