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