




已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)日歷設(shè)計(jì) 學(xué) 院: 級(jí)別專業(yè): 班 級(jí): 姓 名: 指導(dǎo)老師: 學(xué) 號(hào):程序設(shè)計(jì)任務(wù)書一、設(shè)計(jì)題目:日歷程序設(shè)計(jì)二、設(shè)計(jì)目的 1、使學(xué)生進(jìn)一步理解和掌握課堂上所學(xué)VB程序設(shè)計(jì)中各種基本數(shù)據(jù)、數(shù)組、常用過程的定義與使用,各種程序設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì),界面設(shè)計(jì)與常用控件的使用方法。 2、是學(xué)生掌握復(fù)雜程序設(shè)計(jì)的基本內(nèi)容和設(shè)計(jì)方法,培養(yǎng)學(xué)生規(guī)范化軟件設(shè)計(jì)的能力。 3、使學(xué)生掌握使用各種計(jì)算機(jī)資料和有關(guān)參考資料,提高學(xué)生程序?qū)嶋H的自我學(xué)習(xí)能力。三、程序設(shè)計(jì)的任務(wù)及要求 1、基本要求: 1)實(shí)現(xiàn)日歷的基本功能(參照windows操作系統(tǒng)自帶的日歷功能)。 2)友好性:界面要友好,輸入有提示,盡量展示人性化。 3)可讀性:原程序代碼清晰、有層次。 4)健壯性:對(duì)輸入的數(shù)據(jù)有糾錯(cuò)處理。 2、創(chuàng)新要求: 實(shí)現(xiàn)24節(jié)氣,重要節(jié)日的著重顯示和12小時(shí)制24小時(shí)制之間的切換四、設(shè)計(jì)內(nèi)容 包括初始界面和時(shí)鐘部分。五、課程設(shè)計(jì)工作量 在這個(gè)程序中我主要負(fù)責(zé)參與時(shí)鐘的編寫,尋找合適的代碼及界面的運(yùn)行圖的一些修改工作。六、課程設(shè)計(jì)工作計(jì)劃2010年6月21日,開始選題。2010年6月22日,確定題目,分配小組成員各自的工作,開始題目制作。2010年6月23日25日,制作題目,并完成答辯。目 錄一概述.4二總體設(shè)計(jì)方案.5三詳細(xì)設(shè)計(jì).5四程序的調(diào)試與運(yùn)行結(jié)果.11五課程設(shè)計(jì)總結(jié).12. 一、 概述1、課程設(shè)計(jì)的目的1、使學(xué)生進(jìn)一步理解和掌握課堂上所學(xué)VB程序設(shè)計(jì)中各種基本數(shù)據(jù)、數(shù)組、常用過程的定義與使用,各種程序設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì),界面設(shè)計(jì)與常用控件的使用方法。 2、是學(xué)生掌握復(fù)雜程序設(shè)計(jì)的基本內(nèi)容和設(shè)計(jì)方法,培養(yǎng)學(xué)生規(guī)范化軟件設(shè)計(jì)的能力。 3、使學(xué)生掌握使用各種計(jì)算機(jī)資料和有關(guān)參考資料,提高學(xué)生程序?qū)嶋H的自我學(xué)習(xí)能力。2、課程設(shè)計(jì)的要求要求我們熟悉對(duì)VB語言知識(shí)的運(yùn)用,養(yǎng)成良好的編程習(xí)慣,能夠熟練的應(yīng)用循環(huán),團(tuán)結(jié)小組成員加強(qiáng)之間的團(tuán)結(jié)合作精神。在遇到困難的時(shí)候能夠堅(jiān)持不懈,有恒心有毅力的繼續(xù)完成任務(wù)。在編寫的過程中善于總結(jié)和概括,巧妙利用身邊的可利用資源(例如書本、互聯(lián)網(wǎng)、老師同學(xué)等)解決難題。學(xué)會(huì)運(yùn)用VB語言作圖部分知識(shí)。能夠在原有的設(shè)計(jì)理念上有所創(chuàng)新,使得界面更美觀,運(yùn)行效果更好。3、課程設(shè)計(jì)的主要設(shè)計(jì)思想 日歷程序設(shè)計(jì)主要由日歷部分和指針時(shí)鐘兩部分組成。最重要的地方就在于指針時(shí)鐘的構(gòu)思和制作。1)日歷部分:從VB程序中可以自動(dòng)生成日歷格式,點(diǎn)擊工具欄,在其部件中選取出合適可行的日歷格式,再經(jīng)過簡單的位置排版即可。2)指針時(shí)鐘部分:先確定時(shí)鐘表盤的中心,然后通過label控件數(shù)組畫出十二指數(shù),再畫出刻度,最后安裝指針,其中這都需要運(yùn)用到三角函數(shù)原理來控制坐標(biāo)位置。注意:日歷程序設(shè)計(jì)要求日歷部分能夠自由變動(dòng)年份和月份,同時(shí)日期列表處跟隨作相應(yīng)的變動(dòng),另外日歷設(shè)計(jì)中要達(dá)到的另一目的就是,當(dāng)點(diǎn)擊日期所在處時(shí),界面圖上會(huì)彈出方框,要求填入你所想要顯示的時(shí)間,按確定按鈕,指針可自動(dòng)顯示其輸入的時(shí)間。二、總體方案設(shè)計(jì)日歷程序設(shè)計(jì)過程中應(yīng)該考慮到的是整體界面的實(shí)用性和美觀性,小組經(jīng)過商榷一致決定采取簡約的設(shè)計(jì)風(fēng)格,即設(shè)計(jì)界面由日歷部分、label、Timer和Frame組成。對(duì)于該日歷程序的具體功能作用的演示可概括為:運(yùn)行程序時(shí),Label和Timer隱藏起來,Label1顯示日期系統(tǒng)日期,Label3則顯示系統(tǒng)時(shí)間。點(diǎn)擊Label1的日期時(shí)彈出方框,要求填入你所想要顯示的時(shí)間,并按確定,指針可自動(dòng)顯示其輸入的時(shí)間。在這個(gè)程序中我主要負(fù)責(zé)參與時(shí)鐘的編寫,尋找合適的代碼及界面的運(yùn)行圖的一些修改工作。 三、詳細(xì)設(shè)計(jì)以下是我在參與時(shí)鐘的編寫過程中,通過上網(wǎng)尋找一些可以借鑒的代碼并加以改進(jìn)后最終完成的編寫過程。相信通過這些語言可以對(duì)我們編寫的日歷程序有更直觀深刻的了解。(一)界面設(shè)計(jì) 界面設(shè)計(jì)共用到四種控件:Label 、Timer 、Frame 、Calendar 1、創(chuàng)建一個(gè)窗體 進(jìn)入VB6.0后生成一個(gè)Form窗體,命名為:日歷。 2、確定日歷和時(shí)鐘的擺放位置 根據(jù)Windows中的日歷,將日歷部分放在左側(cè),時(shí)鐘放在右側(cè)。 3、添加控件Label 、Timer 、Frame 、Calendar(1)在窗體左側(cè)添加一個(gè)Frame,并更名為 日期(D)(2)在Frame上添加Calendar控件,調(diào)整位置(3)添加Label1、Label2的控件數(shù)組、Label3和一個(gè)時(shí)鐘控件Timer1 4、調(diào)整Frame與Calendar的位置,確保Calendar全部顯現(xiàn),未被Frame框遮擋。 5、將Label1移動(dòng)到日歷的下方,并將Label3移動(dòng)到Label1平行右側(cè)的一定位置上。 6、進(jìn)行檢查,檢查Label2控件數(shù)組的個(gè)數(shù)是否是十二個(gè),名稱為Label2(0)-Label2(11)。7、Timer和Label2控件數(shù)組的位置不做確定,系統(tǒng)運(yùn)行時(shí)不會(huì)顯現(xiàn)出來。 8、初始界面設(shè)計(jì)完成,如下圖: (二)時(shí)鐘設(shè)計(jì)主要分五步驟:A:確定中點(diǎn)坐標(biāo) B:標(biāo)出12個(gè)數(shù)字刻度 C:畫出60個(gè)刻度 D:標(biāo)出并運(yùn)行指針 E:彈出方框設(shè)計(jì)總的代碼為:Dim h As Integer, m As Integer, s As Integer, tConst pi As Double = 3.14159265358979 /*全局定義的量Pi和 h m sPrivate Sub Form_Load() Timer1.Interval = 1000 /*Timer每隔一秒觸發(fā)一次 Me.ScaleLeft = -7000 /*中點(diǎn)的橫坐標(biāo) Me.ScaleTop = -3000 /*中點(diǎn)的縱坐標(biāo) For i = 0 To 11 Label2(i).AutoSize = True Label2(i).Caption = i + 1 /*Label2的名稱定義為i+1 (i為變值) Label2(i).Left = 1300 * Cos(i * 30 - 60) * pi / 180) 80 /*12個(gè)Label的橫坐標(biāo),運(yùn)用了三角函數(shù)的Cos函數(shù) Label2(i).Top = 1300 * Sin(i * 30 - 60) * pi / 180) 100 /*12個(gè)Label的縱坐標(biāo),運(yùn)用了三角函數(shù)的Sin函數(shù)NextEnd Sub /*以上實(shí)現(xiàn)了中點(diǎn)坐標(biāo)和標(biāo)出12個(gè)數(shù)字刻度。Private Sub Timer1_Timer()RefreshFor i = 1 To 60PSet (1500 * Cos(i * 6 * pi / 180), 1500 * Sin(i * 6 * pi / 180), vbBlack /*利用Pset函數(shù)來完成畫出60個(gè)刻度,并定顏色為黑色NextLabel1.Caption = 日期: & Space(3) & Date /*定義Label1的名稱,并定其內(nèi)容為系統(tǒng)日期Label3.Caption = 時(shí)間: & Space(1) & Time /*定義Label2的名稱,并定其內(nèi)容為系統(tǒng)時(shí)間 h = Format(Now, h)m = Format(Now, n)s = Format(Now, s)Line (0, 0)-(700 * Cos(h * pi / 6 - pi / 2), 700 * Sin(h * pi / 6 - pi / 2), vbRed /*畫出時(shí)針,并定其顏色為紅色Line (0, 0)-(800 * Cos(m * pi / 30 - pi / 2), 800 * Sin(m * pi / 30 - pi / 2), vbBlue /*畫出分針,并定其顏色為藍(lán)色Line (0, 0)-(1000 * Cos(s * pi / 30 - pi / 2), 1000 * Sin(s * pi / 30 - pi / 2), vbGreen /*畫出秒針,并定其顏色為綠色End Sub /*以上完成了畫出60個(gè)刻度和標(biāo)出并運(yùn)行指針Private Sub Label1_Click()t = InputBox(請(qǐng)輸入時(shí)間) /*彈出的方框上顯示“請(qǐng)輸入時(shí)間”If IsDate(t) = True ThenLabel1.Caption = t /*將Label1的標(biāo)題改為“t”Timer1.Enabled = False /*Timer1的Enabled屬性改為 Flase RefreshFor i = 1 To 60PSet (1400 * Cos(i * 6 * pi / 180), 1400 * Sin(i * 6 * pi / 180), vbBlack /*重畫60個(gè)刻度,并定其顏色為黑色Nexth = Format(t, h)m = Format(t, n)s = Format(t, s)Line (0, 0)-(700 * Cos(h * pi / 6 - pi / 2), 700 * Sin(h * pi / 6 - pi / 2), vbRed /*畫出時(shí)針,并定其顏色為紅色 Line (0, 0)-(800 * Cos(m * pi / 30 - pi / 2), 800 * Sin(m * pi / 30 - pi / 2), vbBlue /*畫出分針,并定其顏色為藍(lán)色Line (0, 0)-(1000 * Cos(s * pi / 30 - pi / 2), 1000 * Sin(s * pi / 30 - pi / 2),vbGreen /*畫出秒針,并定其顏色為綠色End IfEnd Sub /*以上完成了彈出方框選擇自己所想選擇的時(shí)間四、調(diào)試的結(jié)果與運(yùn)行結(jié)果說明 代碼編寫好之后嘗試運(yùn)行卻屢試屢敗,于是不得不仔細(xì)檢查代碼尋找問題出錯(cuò)的關(guān)鍵,這是一項(xiàng)繁瑣而細(xì)致的工作,經(jīng)過大家齊心協(xié)力終于發(fā)現(xiàn)有好幾處拼寫錯(cuò)誤,將其改正后,發(fā)現(xiàn)可以運(yùn)行。但是指針每走一步就加長一些,經(jīng)過多方的詢問始終不能得到有效的改善最后只好請(qǐng)教老師,老師給了我們極大的幫助,告訴我們?nèi)呛瘮?shù)求坐標(biāo)的公式有問題。經(jīng)過多次改正,最后終于將代碼完成。程序編程成功后,開始運(yùn)行,終于達(dá)到了我們想要的效果:窗體左側(cè)日歷框顯示系統(tǒng)日期,日歷框下方顯示數(shù)字日期,并且與系統(tǒng)日期一致。窗體右側(cè)顯示指針式時(shí)鐘,時(shí)針為紅色,分針為藍(lán)色,秒針為綠色,并且顯示系統(tǒng)時(shí)間。在時(shí)鐘下方顯示數(shù)字時(shí)間。單擊數(shù)字日期時(shí),彈出方框,方框上顯示“請(qǐng)輸入時(shí)間”,輸入符合格式的時(shí)間后,單擊確定,時(shí)鐘上顯示的即為輸入的時(shí)間。運(yùn)行界面如下:五、課程設(shè)計(jì)總結(jié)經(jīng)過這5天來大家堅(jiān)持不懈的努力,最終比較滿意的完成了本次程序設(shè)計(jì)的任務(wù),編寫出一個(gè)具有日歷基本功能的程序。這
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廢舊金屬回收與綜合利用技術(shù)合作協(xié)議
- 智能家居技術(shù)合作補(bǔ)充協(xié)議
- 電商倉儲(chǔ)物流安全責(zé)任與風(fēng)險(xiǎn)評(píng)估協(xié)議
- 虛擬偶像虛擬形象版權(quán)交易與授權(quán)合同
- 氫燃料電池產(chǎn)品壽命測試員聘用合同
- 網(wǎng)絡(luò)平臺(tái)內(nèi)容監(jiān)控算法授權(quán)租賃及效果評(píng)估合同
- 幼兒園教師全職聘用合同(園本課程研發(fā))
- 寵物醫(yī)療中心獸醫(yī)助理專業(yè)技術(shù)合作合同
- 交通安全標(biāo)志維護(hù)補(bǔ)充協(xié)議
- 孤兒撫養(yǎng)費(fèi)銀行賬戶監(jiān)管與監(jiān)護(hù)權(quán)變更服務(wù)合同
- 數(shù)字貿(mào)易學(xué) 課件 第18、19章 全球數(shù)字經(jīng)濟(jì)治理概述、包容性發(fā)展與全球數(shù)字鴻溝
- DLT 866-2015 電流互感器和電壓互感器選擇及計(jì)算規(guī)程解讀
- 房屋抵押個(gè)人借款標(biāo)準(zhǔn)合同
- 云南省昆明市2022-2023學(xué)年二年級(jí)下學(xué)期語文期中試卷(含答案)
- 口腔預(yù)防保健課件 英文
- 讀后續(xù)寫-制作稻草人(T8聯(lián)考)課件-高考英語作文復(fù)習(xí)專項(xiàng)
- 研發(fā)成果商業(yè)化轉(zhuǎn)化(資料)
- 高速鐵路關(guān)鍵技術(shù)
- 丁麗娟《數(shù)值計(jì)算方法》五章課后實(shí)驗(yàn)題答案(源程序很詳細(xì)-且運(yùn)行無誤)
- 情境學(xué)習(xí)理論在教育中的應(yīng)用
- 血糖監(jiān)測操作流程及考核標(biāo)準(zhǔn)(100分)
評(píng)論
0/150
提交評(píng)論