小學(xué)期實(shí)踐報(bào)告和總結(jié)
小學(xué)期實(shí)踐報(bào)告和總結(jié)
實(shí)踐報(bào)告:
經(jīng)過(guò)了兩周左右的時(shí)間,小學(xué)期結(jié)束了,在小學(xué)期中我和我的隊(duì)友共同完成了一個(gè)超市賬務(wù)管理系統(tǒng)。
在這個(gè)過(guò)程中我們不斷進(jìn)行溝通,互相交流意見(jiàn),我們也與其他同樣選擇這個(gè)項(xiàng)目的同學(xué)交流想法,最終確定我們的思路。由于我的隊(duì)友需要準(zhǔn)備補(bǔ)考,于是我承擔(dān)了主要的程序編制工作。下面我來(lái)簡(jiǎn)單介紹一下我們的程序設(shè)計(jì)思路:
我們的程序主要分為兩大部分:1、顧客界面2、商店管理員界面。在顧客界面中我們有六個(gè)選項(xiàng)。其中一個(gè)是返回上一單元選項(xiàng),另外的五個(gè)選項(xiàng)分別代表著五種不同的功能。
選項(xiàng)一(1.Goshoppingandprinttheshoppinglist)啟動(dòng)我們模擬顧客購(gòu)物并打印出小票的功能。進(jìn)入后先會(huì)讓顧客輸入自己的顧客賬號(hào),這個(gè)賬號(hào)是我們用來(lái)統(tǒng)計(jì)顧客所有購(gòu)買(mǎi)信息的。賬號(hào)必須先注冊(cè)(選項(xiàng)五中)。之后需要輸入購(gòu)物小票編號(hào)。我們以小票編號(hào)創(chuàng)立一個(gè)文件,這個(gè)文件會(huì)在退貨時(shí)被讀出,以確定顧客確實(shí)在這里購(gòu)物,并且可以查詢購(gòu)物記錄。之后輸入購(gòu)物日期、商品編號(hào)、商品名稱(chēng)和要購(gòu)買(mǎi)的數(shù)量。
選項(xiàng)二(2.Checkthegoodsinformation)可以將專(zhuān)門(mén)給顧客查閱的商品信息打印出來(lái)。選型三(3.Checktheshoppinghistory)中顧客可以查詢自己所有的購(gòu)物記錄(顧客必須有顧客賬號(hào))。
選項(xiàng)四(4.Returngoods)是退貨選項(xiàng)。顧客在這個(gè)選項(xiàng)中退貨時(shí)首先要輸入當(dāng)時(shí)購(gòu)物的小票編號(hào),之后程序會(huì)以”r”方式打開(kāi)一個(gè)以小票編號(hào)命名的txt文件。如果能夠打開(kāi)文件,說(shuō)明顧客的確在此購(gòu)物,我們讓顧客輸入想要退貨的商品編號(hào)和想要退回的商品數(shù)量。退貨過(guò)程中程序會(huì)進(jìn)行營(yíng)業(yè)額和庫(kù)存的增減計(jì)算。如果打開(kāi)文件失敗,證明這位顧客并沒(méi)有在此購(gòu)物,不能接受退貨。
選項(xiàng)五(5.Applyforaccount)是顧客申請(qǐng)顧客賬號(hào)的選項(xiàng)。顧客申請(qǐng)顧客賬號(hào)的過(guò)程中程序在后臺(tái)為顧客建立了一個(gè)以顧客賬號(hào)為文件名的txt文件。這個(gè)文件用來(lái)記錄顧客的所有購(gòu)物記錄。選項(xiàng)六(6.Returnback)是返回上一個(gè)界面的選項(xiàng)。
所有的六個(gè)選項(xiàng)被包含在一個(gè)while循環(huán)中,整個(gè)while循環(huán)又被包含在一個(gè)if語(yǔ)句中。下面介紹一下管理員界面。
選擇管理員界面后首先程序會(huì)先讓管理員輸入其ID,之后會(huì)讓管理員輸入密碼(初始密碼為T(mén)urboC),ID或密碼輸入不正確會(huì)讓其從新輸入,直到輸入正確為止。輸入ID和密碼后程序會(huì)提供5個(gè)選項(xiàng),其中一個(gè)是返回上一界面選項(xiàng),其他四個(gè)選項(xiàng)代表了管理員可以執(zhí)行的四個(gè)不同功能。
選項(xiàng)一(1.Checktheturnoverandsortthesales.)是查詢營(yíng)業(yè)額以及把商品按營(yíng)業(yè)額和銷(xiāo)售數(shù)量從高到低順序排列的選項(xiàng)。排序過(guò)程使用了經(jīng)典的冒泡法。如果有顧客進(jìn)行了購(gòu)物或是退貨,營(yíng)業(yè)額和銷(xiāo)售數(shù)量會(huì)改變,其排序也會(huì)改變。
選項(xiàng)二(2.Checkthegoodswhichneedpurchase.)是查詢商品哪些需要進(jìn)貨。我們?yōu)槊恳患唐范荚O(shè)置了一個(gè)最小庫(kù)存值(這個(gè)值儲(chǔ)存在名為storeroom的txt文件中,程序運(yùn)行時(shí)會(huì)從這個(gè)文件中讀取出其最小庫(kù)存值)。當(dāng)商品庫(kù)存小于其最小庫(kù)存值時(shí),程序就會(huì)將需要進(jìn)貨的商品打印到屏幕上。
選項(xiàng)三(Checktheprofit.)是查詢所有商品的利潤(rùn)。并且可以把利潤(rùn)最高和最低的商品計(jì)算并打印出來(lái)。
選項(xiàng)四(4.Changethepassword.)是管理員更改密碼的功能。我們?yōu)槊艽a專(zhuān)門(mén)創(chuàng)建了一個(gè)名為fpassword的txt文件,用于儲(chǔ)存密碼,更改的密碼會(huì)儲(chǔ)存在這個(gè)文件中。
選項(xiàng)五(6.Returnback)是退回上一界面的選項(xiàng)。
五個(gè)選項(xiàng)同樣被包含在一個(gè)while循環(huán)中,整個(gè)while循環(huán)又被包含在一個(gè)if語(yǔ)句中。本次實(shí)習(xí)總結(jié):
這個(gè)程序編寫(xiě)的還不夠完整,最突出的一點(diǎn)是容錯(cuò)處理能力比較差,我們?cè)?jì)劃容錯(cuò)處理最后進(jìn)行編制,但由于后期時(shí)間緊張,沒(méi)能來(lái)的及進(jìn)行容錯(cuò)處理的編制。并且,我們沒(méi)有對(duì)以批發(fā)價(jià)進(jìn)行購(gòu)買(mǎi)的過(guò)程進(jìn)行編制,只是在商品信息中打出了批發(fā)價(jià)。另外,在顧客退貨之后我們沒(méi)有對(duì)顧客所有的購(gòu)物記錄進(jìn)行改動(dòng)。并且我們計(jì)劃編寫(xiě)多用戶的方式,但是由于技術(shù)和時(shí)間上的問(wèn)題,我們沒(méi)能編寫(xiě)出完善的多用戶程序。
總之,這個(gè)程序還有很多的不足之處,這也體現(xiàn)出我們的編程能力上的不足。我們會(huì)在今后的學(xué)習(xí)中努力提高、加強(qiáng)。
本次C語(yǔ)言實(shí)習(xí)是我第一次去編寫(xiě)一個(gè)實(shí)用的程序,與每次的C語(yǔ)言練習(xí)有很大的不同:
首先,我所要編寫(xiě)的程序是一個(gè)完整的系統(tǒng),一個(gè)可以正常地進(jìn)入、運(yùn)行、退出的系統(tǒng)。我們要考慮很多方面的問(wèn)題,如每次用戶需要輸入數(shù)據(jù)的時(shí)候,我們要考慮所有用戶可能輸入的數(shù)據(jù),做好容錯(cuò)處理功能,能讓用戶在輸入錯(cuò)誤的情況下從新輸入。再比如,這個(gè)超市賬務(wù)管理系統(tǒng)分為兩部分,顧客界面和管理員界面。這兩部分聯(lián)系時(shí)非常緊密的。當(dāng)顧客進(jìn)行了購(gòu)物或是退貨后商品的銷(xiāo)售額和銷(xiāo)售數(shù)量和庫(kù)存都會(huì)有變化,這個(gè)變化要在管理員查詢銷(xiāo)售額、銷(xiāo)售數(shù)量和庫(kù)存時(shí)體現(xiàn)出來(lái)。我們考慮的越周到,這個(gè)程序就越完整。其次我用自己掌握的C語(yǔ)言知識(shí)來(lái)解決很多實(shí)際的問(wèn)題。比如密碼管理功能。以前我并沒(méi)有進(jìn)行過(guò)有關(guān)密碼的編程。這是第一次遇到這樣的問(wèn)題,而這種問(wèn)題在實(shí)際生活是非常常見(jiàn)的。再認(rèn)真考慮之后,我最終選擇了用讀寫(xiě)文件的辦法來(lái)解決這個(gè)問(wèn)題。在這次C語(yǔ)言的實(shí)習(xí)中我學(xué)到了很多東西。
我學(xué)到了很多以前沒(méi)有接觸過(guò)的編寫(xiě)方法,學(xué)會(huì)了使用一些新的函數(shù)。更重要的是我學(xué)會(huì)了利用各種資源去解決問(wèn)題。當(dāng)我遇到解決不了的問(wèn)題時(shí),我不再是死看教材或是不斷求助老師,我會(huì)去圖書(shū)館查閱其他的有關(guān)書(shū)籍,或是上網(wǎng)搜索解決辦法,或是請(qǐng)教其他學(xué)院的學(xué)習(xí)計(jì)算機(jī)、軟件的同學(xué)。我認(rèn)為這是我學(xué)會(huì)的最重要的能力。另外我還學(xué)到了一些團(tuán)隊(duì)合作的方法。一開(kāi)始我和我的隊(duì)友是共同進(jìn)行編寫(xiě),進(jìn)度比較慢。而當(dāng)他因?yàn)橐獪?zhǔn)備補(bǔ)考而將編寫(xiě)任務(wù)完全交給我之后我發(fā)現(xiàn)我們的進(jìn)度加快了很多。等他回來(lái)之后我們選擇了共同討論思路,共同改錯(cuò),但編寫(xiě)工作完全由我進(jìn)行的方法。這樣使我們的效率比以前提高了很多。所以在團(tuán)隊(duì)工作中一定要分工明確,才能提高效率。
在這次C語(yǔ)言的實(shí)習(xí)中我也看到了很多自己的不足。認(rèn)識(shí)到了如果要去編寫(xiě)一個(gè)實(shí)用的、完整的、系統(tǒng)化的程序,自己所掌握的編程知識(shí)是遠(yuǎn)遠(yuǎn)不夠的。自己的C語(yǔ)言基礎(chǔ)還不夠扎實(shí),還有很多編程方法、技巧我不會(huì)運(yùn)用,還有很多函數(shù)我不了解,不熟悉。所以今后我要繼續(xù)加強(qiáng)自己的C語(yǔ)言編程能力,同時(shí)我要開(kāi)始去接觸其他的編程方式如JAVA。
擴(kuò)展閱讀:小學(xué)期計(jì)算機(jī)實(shí)習(xí)總結(jié)報(bào)告
小學(xué)期計(jì)算機(jī)實(shí)習(xí)總結(jié)報(bào)告
第一題、算術(shù)運(yùn)算測(cè)試程序
題目要求:
制作一個(gè)可供小學(xué)數(shù)學(xué)運(yùn)算的程序。
0100整數(shù)加減乘除四則運(yùn)算,如結(jié)果為小數(shù)四舍五入保留小數(shù)點(diǎn)后兩位。根據(jù)輸入題數(shù)出題,題目應(yīng)為隨機(jī),每次應(yīng)不一樣。如:題目數(shù)=377-55=33*3=100/3=
判斷是否正確,如不正確給出正確答案,并計(jì)算分?jǐn)?shù),分?jǐn)?shù)為正確題目的百分比(四舍五入取整數(shù))。如:77-55=22對(duì)33*3=99對(duì)
100/3=33錯(cuò)結(jié)果應(yīng)為33.33分?jǐn)?shù)為:67分
設(shè)計(jì)思路:
本題我選用VB來(lái)設(shè)計(jì),
首先是0100整數(shù)加減乘除四則運(yùn)算,故需要用到取隨機(jī)數(shù)函數(shù)Rnd()以及SelectCase語(yǔ)句。
其次小數(shù)四舍五入保留小數(shù)點(diǎn)后兩位,這主要出現(xiàn)在除法運(yùn)算中,需要用到format();算分?jǐn)?shù)時(shí)要四舍五入取整,需要用到CInt()再次判斷結(jié)果對(duì)錯(cuò)主要用到ifelse語(yǔ)句
大體思路確定后再根據(jù)題目要求確定需要使用的控件的種類(lèi)和數(shù)量,其次以每種控件為單位將整個(gè)程序分成幾塊,先編寫(xiě)每小塊的代碼即每個(gè)控件的功能代碼。本題需要使用的控件為commandbutton(用于判斷對(duì)錯(cuò)、得出分?jǐn)?shù)、清空答題板和退出)、textbbox(用于輸入結(jié)果)、label(用于顯示所出題目)、optionbutton、(用于選擇所要進(jìn)行測(cè)試的題型)、picturebox(用于顯示答題情況及最終分?jǐn)?shù))分塊一:
PrivateSubOption1_Click()Command1.Caption="確認(rèn)"Command1.Enabled=TrueText1.FontSize=18Randomize
shu1=Int(Rnd*100+1)//取0到100的隨機(jī)整數(shù)shu2=Int(Rnd*100+1)//取0到100的隨機(jī)整數(shù)
jieguo=shu1+shu2
Label1.Caption=shu1&"+"&shu2&"="Label1.FontSize=18
EndSub//此過(guò)程執(zhí)行加法運(yùn)算與此相同可寫(xiě)出減法運(yùn)算、乘法運(yùn)算和除法運(yùn)算的代碼,但在寫(xiě)除法運(yùn)算代碼是需注意除數(shù)不能取0,即shu2=Int(100*Rnd+1),表示取1到100的隨機(jī)數(shù),而且結(jié)果小數(shù)超過(guò)兩位的要四舍五入保留兩位,即jieguo=Format(shu1/shu2,"0.00")。分塊二:
PrivateSubOption5_Click()Command1.Caption="確認(rèn)"Command1.Enabled=True
DimsuijishuAsInteger,fuhaoAsString*1//定義suijishu為整型數(shù)據(jù),fuhao為長(zhǎng)度為1的字符串Text1.FontSize=18Randomize
shu1=Int(Rnd*100+1)shu2=Int(Rnd*100+1)
suijishu=Int(Rnd*4+1)//取1到4的隨機(jī)整數(shù)SelectCasesuijishu//隨機(jī)選取加減乘除運(yùn)算Case1
fuhao="+"
jieguo=shu1+shu2Case2
fuhao="-"
jieguo=shu1-shu2Case3
fuhao="*"
jieguo=shu1*shu2Case4
fuhao="/"
Ifshu20Then//判斷除數(shù)是否為0
jieguo=Format(shu1/shu2,"0.00")//結(jié)果形式EndIfEndSelect
Label1.Caption=shu1&fuhao&shu2&"="http://顯示所出題目Label1.FontSize=18EndSub
此過(guò)程主要是混合運(yùn)算的代碼,使用了selectcase語(yǔ)句
分塊三:
PrivateSubCommand1_Click()Option1.Value=FalseOption2.Value=FalseOption3.Value=FalseOption4.Value=FalseOption5.Value=False
IfCommand1.Caption="確認(rèn)"Then//判斷做題者所填結(jié)果與正確結(jié)果是否相同
IfVal(Text1.Text)=jieguoThenPicture1.PrintLabel1.Caption;Text1;"√太棒了!"dui=dui+1Else
Text1.Text=""Text1.SetFocusPicture1.PrintLabel1.Caption;Text1;"(正確答案";jieguo;")";"×好好再想想!"
cuo=cuo+1EndIfEndIf
Text1.Text=""EndSub
此命令按鈕的功能是在做完題后檢驗(yàn)結(jié)果對(duì)錯(cuò),判斷對(duì)錯(cuò)使用ifelse語(yǔ)句,用Val()函數(shù)取出text文本框中的數(shù)與正確結(jié)果進(jìn)行比較進(jìn)而判斷對(duì)錯(cuò)。判斷的結(jié)果用屬性picture.print在picturebox中顯示出來(lái),其間也統(tǒng)計(jì)處了正確和錯(cuò)誤的題數(shù),為計(jì)算分?jǐn)?shù)做準(zhǔn)備。
分塊四:
PrivateSubCommand2_Click()
Picture1.Print"★★★★★★★給你算算多少分★★★★★★★"Picture1.Print"你一共做了";(dui+cuo);"道題"Ifdui+cuo0Then
Picture1.Print"你得了";CInt(dui/(dui+cuo)*100);"分"EndIfEndSub
計(jì)算分?jǐn)?shù),取整使用到CInt()函數(shù)至此本程序的主體部分已完成,剩下的退出按鈕和清空答題框按鈕的代碼都很容易寫(xiě)出,然后再找出所用的全局變量在程序開(kāi)始對(duì)其定義,最后加一個(gè)工程運(yùn)行過(guò)程即完成了代碼的初步編寫(xiě)。在VB上通過(guò)編譯不斷進(jìn)行調(diào)試,最終得到正確的代碼。
本題的代碼:
DimjieguoAsSingle,shu1AsInteger,shu2AsInteger,duiAsInteger,cuoAsInteger
PrivateSubCommand1_Click()Option1.Value=FalseOption2.Value=FalseOption3.Value=FalseOption4.Value=FalseOption5.Value=False
IfCommand1.Caption="確認(rèn)"ThenIfVal(Text1.Text)=jieguoThenPicture1.PrintLabel1.Caption;Text1;"√太棒了!"dui=dui+1Else
Text1.Text=""Text1.SetFocusPicture1.PrintLabel1.Caption;Text1;"(正確答案";jieguo;")";"×好好再想想!"
cuo=cuo+1EndIfEndIf
Text1.Text=""EndSub
PrivateSubCommand2_Click()
Picture1.Print"★★★★★★★給你算算多少分★★★★★★★"Picture1.Print"你一共做了";(dui+cuo);"道題"Ifdui+cuo0Then
Picture1.Print"你得了";CInt(dui/(dui+cuo)*100);"分"EndIfEndSub
PrivateSubForm_Load()
Option1.Value=FalseOption2.Value=FalseOption3.Value=FalseOption4.Value=FalseOption5.Value=FalseEndSub
PrivateSubCommand3_Click()End
EndSub
PrivateSubcommand4_click()Picture1.ClsEndSub
PrivateSubOption1_Click()Command1.Caption="確認(rèn)"Command1.Enabled=TrueText1.FontSize=18Randomize
shu1=Int(Rnd*100+1)shu2=Int(Rnd*100+1)jieguo=shu1+shuLabel1.Caption=shu1&"+"&shu2&"="Label1.FontSize=18EndSub
PrivateSubOption2_Click()Command1.Caption="確認(rèn)"Command1.Enabled=TrueDimtAsIntegerText1.FontSize=18Randomize
shu1=Int(Rnd*100+1)shu2=Int(Rnd*100+1)jieguo=shu1-shu2
Label1.Caption=shu1&"-"&shu2&"="Label1.FontSize=18EndSub
PrivateSubOption3_Click()Command1.Caption="確認(rèn)"Command1.Enabled=TrueText1.FontSize=18Randomize
shu1=Int(Rnd*100+1)shu2=Int(Rnd*100+1)jieguo=shu1*shu2
Label1.Caption=shu1&"×"&shu2&"="Label1.FontSize=18EndSub
PrivateSubOption4_Click()Command1.Caption="確認(rèn)"Command1.Enabled=TrueText1.FontSize=18Randomize
shu1=Int(Rnd*100+1)shu2=Int(100*Rnd+1)
jieguo=Format(shu1/shu2,"0.00")Label1.Caption=shu1&"÷"&shu2&"="Label1.FontSize=18EndSub
PrivateSubOption5_Click()Command1.Caption="確認(rèn)"Command1.Enabled=True
DimsuijishuAsInteger,fuhaoAsString*1Text1.FontSize=18Randomizeshu1=Int(Rnd*100+1)shu2=Int(Rnd*100+1)suijishu=Int(Rnd*4+1)SelectCasesuijishuCase1
fuhao="+"
jieguo=shu1+shu2Case2
fuhao="-"
jieguo=shu1-shu2Case3
fuhao="*"
jieguo=shu1*shu2Case4
fuhao="/"
Ifshu20Then
jieguo=Format(shu1/shu2,"0.00")EndIfEndSelect
Label1.Caption=shu1&fuhao&shu2&"="Label1.FontSize=18EndSub
最終得到的出的出題器:
優(yōu)缺點(diǎn)評(píng)估:
最后得到的出題器軟件最大的優(yōu)點(diǎn)是測(cè)試前可以選擇題型,最大缺點(diǎn)是一次只能出一道題而且不能進(jìn)行混合運(yùn)算。
從實(shí)用的角度來(lái)說(shuō)這個(gè)出題器還是比較適合小學(xué)生使用的,“選擇題型”這一點(diǎn)可以使他們能夠根據(jù)自己的薄弱環(huán)節(jié)有針對(duì)性地進(jìn)行強(qiáng)化訓(xùn)練,至于一次能夠出幾道題對(duì)測(cè)試結(jié)果的影響不是很大,盡管該題的要求是能夠在做題前確定測(cè)試題數(shù)。
軟件還有一個(gè)缺點(diǎn):顯示答題情況的picturebox由于沒(méi)有scrollbars屬性,使得顯示范圍只能局限在最初picturebox的大小范圍,針對(duì)這一點(diǎn)我添加了一個(gè)清空答題板按鈕,每當(dāng)picturebox填滿時(shí)將其清空,這樣只是稍微解決了問(wèn)題,因?yàn)榍蹇蘸缶筒荒芸吹街暗拇痤}情況。
第二題、倒計(jì)時(shí)器
題目要求:
制作一個(gè)倒計(jì)時(shí)器,輸入倒計(jì)時(shí)時(shí)間后,顯示剩余時(shí)間,時(shí)間到后有提示音和提示畫(huà)面
給分原則:顯示剩余時(shí)間5分到時(shí)提示5分
其它(界面美觀,操作便捷,程序無(wú)bug,功能有創(chuàng)意)
設(shè)計(jì)思路:
首先是倒計(jì)時(shí)需要用到Timer控件,然后輸入倒計(jì)時(shí)時(shí)間可以用inputbox,顯示剩余時(shí)間用label,提示音可以用Windowsmediaplayer控件,提示畫(huà)面可以再增加一個(gè)form2,將其界面當(dāng)成提示畫(huà)面,當(dāng)時(shí)間到時(shí)form1隱藏,form2顯現(xiàn)。根據(jù)這個(gè)思路需要的空間有:commandbutton(用于設(shè)置時(shí)間、啟動(dòng)時(shí)間、關(guān)閉鈴聲和退出)、label(用于顯示剩余時(shí)間)、Timer(用于倒計(jì)時(shí))、Windowsmediaplayer(用于播放鈴聲)
本題代碼:
DimTsAsInteger,TmAsInteger,ThAsInteger
DimStartTAsBoolean//定義一個(gè)布爾型數(shù)據(jù)StartT對(duì)應(yīng)倒計(jì)時(shí)器的啟動(dòng)與關(guān)閉
PrivateSubCommand1_Click()Command1.BackColor=vbBlueIfStartT=FalseThen
Command1.Caption="暫停時(shí)間"Command3.Caption="退出"Else
Command1.Caption="啟動(dòng)時(shí)間"Command3.Caption="重新設(shè)定"EndIfStartT=NotStartTTimer1.Interval=1000Timer1.Enabled=TrueEndSub
PrivateSubCommand2_Click()Command2.BackColor=vbBlueTh=Val(InputBox("輸入小時(shí)"))Tm=Val(InputBox("輸入分鐘"))
Ts=Val(InputBox("輸入秒"))//輸入倒計(jì)時(shí)時(shí)間EndSub
PrivateSubForm1_Load()
Command1.Caption="啟動(dòng)時(shí)間"Command2.Caption="設(shè)置時(shí)間"Command3.Caption="退出"EndSub
PrivateSubcommand3_click()Command3.BackColor=vbBlue
IfCommand3.Caption="重新設(shè)定"ThenForm1_LoadTh=0Tm=0Ts=0
ElseIfCommand3.Caption="退出"ThenEndEndIfEndSub
PrivateSubtimer1_timer()Th=Format(Th,"00")Tm=Format(Tm,"00")Ts=Format(Ts,"00")
Label1.Caption=Th&":"&Tm&":"&TsIfStartT=TrueThenIfTs>0ThenTs=Ts-1EndIf
IfTs=0AndTm>0ThenTm=Tm-1Ts=59EndIf
IfTm=0AndTs=0AndTh>0ThenTh=Th-1Tm=59Ts=EndIf
IfTh<0ThenTh=0EndIf
IfTm<0ThenTm=0EndIf
IfTh=0AndTm=0AndTs=0ThenStartT=FalseForm1.Hide
Form2.Show//倒計(jì)時(shí)結(jié)束時(shí)彈出工程2的框圖作為提示畫(huà)面
WindowsMediaPlayer1.URL=App.Path&"\\music\\raining.mp3"http://播放提示音樂(lè)EndIfEndIfEndSub
PrivateSubcommand4_click()Command4.BackColor=vbBlue
WindowsMediaPlayer1.Close//關(guān)閉提示音樂(lè)Command1.Caption="啟動(dòng)時(shí)間"EndSub
最終得到的倒計(jì)時(shí)器界面及提示畫(huà)面:
軟件的優(yōu)缺點(diǎn)評(píng)估:
倒計(jì)時(shí)器的各種功能比較齊全,倒計(jì)時(shí)結(jié)束時(shí)彈出的提示畫(huà)面及提示鈴聲能很好地起到提示作用,另外各個(gè)按鈕都有雙重功能,減少了使用控件的數(shù)量,不僅使程序代碼更簡(jiǎn)潔而且也使倒計(jì)時(shí)器使用操作起來(lái)更方便。倒計(jì)時(shí)器在很多方面還有待完善。首先是界面不夠美觀,如果對(duì)倒計(jì)時(shí)界面形狀進(jìn)行一些修改比如改成時(shí)鐘的形狀會(huì)更好一些;其次是提示鈴聲及畫(huà)面不能由使用者自己設(shè)定;還有一點(diǎn)就是在倒計(jì)時(shí)結(jié)束時(shí)沒(méi)有自動(dòng)關(guān)閉的功能,即到時(shí)間后長(zhǎng)時(shí)間沒(méi)有人對(duì)其進(jìn)行操作倒計(jì)時(shí)器會(huì)自動(dòng)關(guān)閉。
第三題:
題目要求:
動(dòng)畫(huà):以每位同學(xué)自己為原型設(shè)計(jì)一組功夫動(dòng)畫(huà)(20分)時(shí)間不少于20秒,動(dòng)作不重復(fù)
給分原則:突出人物形象特點(diǎn),能明確看出為作者本人(4分)美工精美(4分)
動(dòng)作流暢不重復(fù)(4分)與動(dòng)作相符的配音(4分)其它(4分)
設(shè)計(jì)思路:
主要利用flash軟件來(lái)設(shè)計(jì)動(dòng)畫(huà)
首先我選擇了《中國(guó)功夫》這首歌曲作為背景音樂(lè),然后以這首歌曲的歌詞內(nèi)容為主題來(lái)設(shè)計(jì)動(dòng)畫(huà)。然后就拍了幾張自己功夫動(dòng)作的照片,并用PS對(duì)其進(jìn)行簡(jiǎn)單的加工,在做動(dòng)畫(huà)時(shí)配上合適的背景,插上相應(yīng)的解說(shuō)文字。最后對(duì)各個(gè)片段進(jìn)行剪接最終完成了動(dòng)畫(huà)的制作。
動(dòng)畫(huà)基本符合題目要求,主題突出,動(dòng)畫(huà)主角是作者本人,背景音樂(lè)與動(dòng)畫(huà)也很搭配。但是也存在很多不足之處,首先是動(dòng)畫(huà)中幾乎沒(méi)有連貫的武打動(dòng)作,其次就是背景的選擇不是很搭配,如果能對(duì)背景圖片進(jìn)行一下PS處理,效果可能會(huì)更好。另外動(dòng)畫(huà)的內(nèi)容也不是很吸引人,即設(shè)計(jì)思想欠佳。
第四題:
題目要求:
矩陣計(jì)算器(20分)
可輸入矩陣,并最大可進(jìn)行10*10矩陣運(yùn)算給分原則:矩陣加法5分矩陣乘法5分求轉(zhuǎn)置矩陣5分求矩陣的秩5分
設(shè)計(jì)思路:
首先是定義一個(gè)矩陣,這可以通過(guò)定義一個(gè)二維數(shù)組來(lái)設(shè)定,具體代碼如下:
ReDima(1Tom,1Ton)AsLong
Fori=1Tom
Forj=1Ton矩陣輸入可以用inputbox(),顯示矩陣可以用picture.print然后就是要在矩陣進(jìn)行運(yùn)算之前判定矩陣是否為空,要用到if語(yǔ)句,判斷矩陣是否為空的代碼如下,Ifm=0Orn=0Orp=0Orq=0ThenMsgBox"請(qǐng)先輸入矩陣",vbOKOnly,"提示"
ElseIfmpOrnqThen
MsgBox"請(qǐng)輸入行數(shù)和列數(shù)相同的矩陣才可相加",vbOKOnly,"提示"
接著就是矩陣的各種運(yùn)算,根據(jù)題目要求需要四個(gè)command功能按鈕,點(diǎn)擊command1為矩陣的加法運(yùn)算,實(shí)現(xiàn)這一運(yùn)算需要再定義一個(gè)二維數(shù)組c(i,j)作為最后的求和結(jié)果,求和即c(i,j)=a(i,j)+b(i,j),然后用picture.print顯示出來(lái)。進(jìn)行乘法運(yùn)算時(shí),需要重新定義二維數(shù)組c(i,j),即Redimc(i,j).乘法運(yùn)算的代碼為:ReDimc(1Tom,1Toq)AsLong
Fori=1Tom
Forj=1ToqFork=1Ton
c(i,j)=a(i,k)*b(k,j)+c(i,j)矩陣轉(zhuǎn)置比較簡(jiǎn)單,即列變行,行變列。代碼如下:ReDimc(1Ton,1Tom)AsLongFori=1TonForj=1Tomc(i,j)=a(j,i)
本題的完整代碼為:
Dima(),b(),c()AsLongDimi,j,k,m,n,p,qAsLongPrivateSubCommand1_Click()
m=Val(InputBox("請(qǐng)輸入A矩陣行數(shù)","提示"))n=Val(InputBox("請(qǐng)輸入A矩陣列數(shù)","提示"))Picture1.ClsPicture3.Cls
Ifm0Andn0Then
ReDima(1Tom,1Ton)AsLongFori=1TomForj=1Ton
a(i,j)=Val(InputBox("請(qǐng)輸入矩陣a("&i&","&j&")數(shù)值","提示"))
Picture1.Printa(i,j);Nextj
Picture1.PrintNexti
Else:ExitSubEndIfEndSub
PrivateSubCommand2_Click()p=Val(InputBox("請(qǐng)輸入B矩陣行數(shù)","提示"))q=Val(InputBox("請(qǐng)輸入B矩陣列數(shù)","提示"))Picture2.ClsPicture3.Cls
Ifp0Andq0Then
ReDimb(1Top,1Toq)AsLongFori=1TopForj=1Toq
b(i,j)=Val(InputBox("請(qǐng)輸入矩陣b("&i&","&j&")數(shù)值","提示"))
Picture2.Printb(i,j);Nextj
Picture2.PrintNexti
Else:ExitSubEndIfEndSub
PrivateSubCommand3_Click()Picture3.Cls
Ifm=0Orn=0Orp=0Orq=0ThenMsgBox"請(qǐng)先輸入矩陣",vbOKOnly,"提示"ElseIfmpOrnqThen
MsgBox"請(qǐng)輸入行數(shù)和列數(shù)相同的矩陣才可相加",vbOKOnly,"提示"ElseIfm=pAndn=qThenLabel1.Caption="+"
ReDimc(1Tom,1Ton)AsLongFori=1TomForj=1Ton
c(i,j)=a(i,j)+b(i,j)Picture3.Printc(i,j);Nextj
Picture3.PrintNextiEndIfEndSub
PrivateSubCommand4_Click()Picture3.Cls
Ifm=0Orn=0Orp=0Orq=0ThenMsgBox"請(qǐng)先輸入矩陣",vbOKOnly,"提示"ElseIfnpThen
MsgBox"請(qǐng)輸入A矩陣列數(shù)和B矩陣行數(shù)相等的矩陣再做乘積",vbOKOnly,"提示"
ElseIfn=pThenLabel1.Caption="x"ReDimc(1Tom,1Toq)AsLongFori=1TomForj=1ToqFork=1Ton
c(i,j)=a(i,k)*b(k,j)+c(i,j)Nextk
Picture3.Printc(i,j);Nextj
Picture3.PrintNextiEndIfEndSub
PrivateSubCommand5_Click()Ifm=0Orn=0Then
MsgBox"請(qǐng)先輸入矩陣",vbOKOnly,"Else
ReDimc(1Ton,1Tom)AsLongFori=1TonForj=1Tom
c(i,j)=a(j,i)
Picture3.Printd(i,j);
Nextj
Picture3.PrintNextiEndIfEndSub
PrivateSubCommand6_Click()m=0n=0p=0q=0
Picture1.ClsPicture2.ClsPicture3.Cls
Label1.Caption=""EndSub
PrivateSubCommand7_Click()m=0n=0
Picture1.ClsEndSub
提示"PrivateSubCommand8_Click()p=0q=0
Picture2.ClsEndSub
PrivateSubForm1_Load()EndSub
PrivateSubcommand9_click()End
EndSub
PrivateSubCommand10_Click()DimrmarkAsLongDimd()AsLongPicture3.ClsIfm=0Then
MsgBox"請(qǐng)先輸入矩陣",vbOKOnly,"提示"GoTolab:EndIf
ReDimd(1Tom,1Tom)AsLongFori=1TomForj=1TomFork=1Ton
d(i,j)=a(i,k)*a(j,k)+d(i,j)NextkNextjNexti
Dimtemp_nAsLongDimresultAsDoubleDimMatrix()AsLongtemp_n=m
Dimtemp_mAsLong
Fortemp_n=1Tom
temp_m=m-temp_n+1
ReDimMatrix(1Tom,1Tom)AsLongFori=1TomForj=1Tom
Matrix(i,j)=d(i,j)NextjNexti
result=calcMatrix(Matrix(),temp_m)Ifresult0ThenExitForEndIfNexttemp_n
Picture3.Printm-temp_n+1lab:EndSub
FunctioncalcMatrix(g()AsLong,kAsLong)AsDoubleDime,fAsIntegerDimtempAsDouble
Dimi,j,x,yAsIntegerDimtemp1()AsDoubleDimtemp2()AsDouble
ReDimtemp1(1Tok,1Tok)Fori=1TokForj=1Tok
temp1(i,j)=g(i,j)NextjNextif=k
Fore=1Tof
ReDimg(1Tof,1Tof)Fori=1TofForj=1Tof
g(i,j)=temp1(i,j)NextjNextik=f
Ifk>=2Then
ReDimtemp2(1Tok-1,1Tok-1)Forx=1Tok-1
Fory=1Tok-1Ify temp2(x,y)=g(x+1,y)Else temp2(x,y)=g(x+1,y+1)EndIfNextyNextx k=k-1 ReDimg(1Tok,1Tok)Forx=1TokFory=1Tok g(x,y)=temp2(x,y)NextyNextxtemp=(-1)^(1+e)*temp1(1,e)*calcMatrix(g(),k)calcMatrix=calcMatrix+tempElseIfk=1ThencalcMatrix=g(1,1) EndIfNexte EndFunction 軟件的優(yōu)缺點(diǎn)評(píng)估: 設(shè)計(jì)出的矩陣計(jì)算器具備了題目所要求的各種功能,使用起來(lái)操作簡(jiǎn)便,其中各個(gè)窗口設(shè)置的清零按鈕可以在輸入出錯(cuò)時(shí)及時(shí)糾正以及某一矩陣重復(fù)使用時(shí)可以只改另一矩陣而不必兩個(gè)矩陣都重新輸入。 軟件缺點(diǎn)是能夠進(jìn)行的矩陣運(yùn)算的階數(shù)有限,輸入矩陣?yán)玫氖莍nputbox,這樣不是很方便,如果能在顯示框中直接輸入會(huì)更好一些。另外顯示矩陣的框圖使用的是picturebox控件,這樣由于picturebox沒(méi)有scrollbar屬性使得顯示范圍只能有最初picturebox框圖的范圍而定。 本次小學(xué)期計(jì)算機(jī)實(shí)習(xí)的整體總結(jié): 回首這三周緊張而又忙碌的小學(xué)期實(shí)習(xí),我感觸頗深,總結(jié)起來(lái)主要有以下幾點(diǎn)收獲。 通過(guò)這幾題的認(rèn)真鉆研,我基本上學(xué)會(huì)了用VB編寫(xiě)一些簡(jiǎn)單的程序,并打包生成相應(yīng)的軟件。在得到小學(xué)期實(shí)習(xí)任務(wù)后,我首先選定VB作為自己的編程工具。由于之前從未用過(guò)VB,完全是零基礎(chǔ)的,所以我不得不先花些時(shí)間去熟悉一下VB,這主要是通過(guò)閱讀參考書(shū)上的基礎(chǔ)知識(shí)以及相關(guān)例題來(lái)完成的。然后我就進(jìn)入這次實(shí)習(xí)的主要部分編寫(xiě)程序,在這個(gè)過(guò)程中我根據(jù)需要用到的控件類(lèi)型將程序分成幾塊進(jìn)行編寫(xiě),對(duì)每一塊中需要用到的函數(shù)我主要是通過(guò)百度外加參考書(shū)來(lái)了解其用法,在這個(gè)過(guò)程中我也進(jìn)一步掌握了一些VB的基礎(chǔ)知識(shí)和編程思想。在初步編寫(xiě)好程序后,調(diào)試也是一個(gè)比較麻煩的環(huán)節(jié),在這個(gè)過(guò)程中經(jīng)常會(huì)遇到一些自己無(wú)從下手的問(wèn)題,比如倒計(jì)時(shí)器在生成exe文件后的音樂(lè)路徑問(wèn)題,起初不熟悉Windowsmediaplayer控件的使用,以為這個(gè)地方應(yīng)該改用其它的控件,但經(jīng)過(guò)幾天的調(diào)試與查詢,我發(fā)現(xiàn)用相對(duì)路徑app.path可以解決這一問(wèn)題。程序調(diào)試好后就是軟件界面的修飾,這一點(diǎn)需要了解各控件的屬性,也是通過(guò)查詢相關(guān)資料解決了這一問(wèn)題。 整個(gè)設(shè)計(jì)過(guò)程其實(shí)就是不斷發(fā)現(xiàn)問(wèn)題然后查詢資料解決問(wèn)題的過(guò)程,在這個(gè)過(guò)程中,相關(guān)專(zhuān)業(yè)知識(shí)的積累是很重要的一點(diǎn)收獲,除此之外就是個(gè)人品質(zhì)能力方面的收獲。 獨(dú)立解決問(wèn)題的能力在剛得到實(shí)習(xí)任務(wù)后,由于自己在大一時(shí)就沒(méi)有學(xué)好C語(yǔ)言,無(wú)形中把這次實(shí)習(xí)任務(wù)的困難想的很大很大,不假思索地就準(zhǔn)備尋求編程高手的幫助,好在自己嘗試后稍有收獲使得自己的興趣得到了極大的激發(fā),進(jìn)而獨(dú)立進(jìn)行到底,F(xiàn)在回過(guò)頭來(lái)想想,我很慶幸自己當(dāng)時(shí)沒(méi)有找“槍手”,盡管自己的軟件跟那些有“槍手”相助的同學(xué)的相比顯得極為“簡(jiǎn)陋”,但這畢竟是自己獨(dú)立完成的,在這一過(guò)程中自己獨(dú)立解決問(wèn)題的能力得到了極大的提高,這也正是此次實(shí)習(xí)的真正目的。查詢(搜集)資料的能力在程序的編寫(xiě)過(guò)程中涉及到了大量的資料查詢與搜集,由于完成任務(wù)的時(shí)間有限,因此必須有正對(duì)性地進(jìn)行資料的查詢與搜集,如何做到有針對(duì)性就要看自己的相關(guān)能力,這一能力在當(dāng)今知識(shí)爆炸的信息社會(huì)顯得尤為重要。經(jīng)過(guò)此次小學(xué)期實(shí)習(xí),自己查詢資料的能力得到了很大的提高,重要的一點(diǎn)體現(xiàn)就是根據(jù)所使用控件的類(lèi)型將程序進(jìn)行分塊編寫(xiě),分塊之后自己查詢資料的針對(duì)性大大提高,節(jié)省了相當(dāng)一些時(shí)間。 與他人討論分析的能力這一點(diǎn)主要體現(xiàn)在flash動(dòng)畫(huà)的著作過(guò)程中,由于flash軟件對(duì)大家來(lái)說(shuō)都很陌生,使用起來(lái)問(wèn)題不斷,而這些問(wèn)題的解決主要都是通過(guò)與室友的討論來(lái)解決的。 以上就是此次小學(xué)期計(jì)算機(jī)實(shí)習(xí)的幾點(diǎn)收獲,最后要感謝老師在驗(yàn)收時(shí)的耐心指點(diǎn),正是老師的指點(diǎn)才使自己對(duì)自己的完成情況有一個(gè)客觀的評(píng)估,進(jìn)而去完善其間的不足。 暑期計(jì)算機(jī)實(shí)習(xí)總結(jié)報(bào)告 學(xué)院:電子工程班級(jí):姓名:徐浩然學(xué)號(hào):日期: 201*21120408210999201*.7.21 友情提示:本文中關(guān)于《小學(xué)期實(shí)踐報(bào)告和總結(jié)》給出的范例僅供您參考拓展思維使用,小學(xué)期實(shí)踐報(bào)告和總結(jié):該篇文章建議您自主創(chuàng)作。 來(lái)源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問(wèn)題,請(qǐng)聯(lián)系我們及時(shí)刪除。
《小學(xué)期實(shí)踐報(bào)告和總結(jié)》由互聯(lián)網(wǎng)用戶整理提供,轉(zhuǎn)載分享請(qǐng)保留原作者信息,謝謝!
鏈接地址:http://m.hmlawpc.com/gongwen/704662.html