




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
VisualBasic課程設(shè)計(jì)報(bào)告報(bào)告人:王菁題目介紹及功能要求每個(gè)現(xiàn)代人都有眾多的親戚、朋友、業(yè)務(wù)伙伴的通訊信息(包括姓名、性別、生日、工作單位、電話號(hào)碼和郵政編碼等)需要維護(hù)。平常所使用的紙質(zhì)通訊錄不便于管理大量的通訊錄信息,特別是查詢起來(lái)相當(dāng)費(fèi)事。本題目要求編制一個(gè)通訊錄管理程序,實(shí)現(xiàn)通訊錄信息的添加、修改、刪除和查詢功能。所含控件名稱命令按鈕控件、文本框控件、標(biāo)簽控件、列表框控件、圖片框控件、滾動(dòng)條控件、組合框控件、動(dòng)態(tài)數(shù)組控件、日期選擇器控件新控件簡(jiǎn)介DTPicker控件日期選擇器控件,是專為用戶輸入單個(gè)日期設(shè)計(jì)的,一般狀態(tài)下它像個(gè)組合框,可以單獨(dú)編輯器中日期的年、月、日數(shù)值。單擊右邊下拉按鈕時(shí),會(huì)彈出一個(gè)月歷控件,從中可以方便的單擊選擇一個(gè)日期,當(dāng)Value值改變時(shí)引發(fā)Change事件。本程序中編寫B(tài)irthday=DTPicker1.Value語(yǔ)句對(duì)該控件進(jìn)行應(yīng)用。配置文件的應(yīng)用配置文件是一種特殊格式的文本文件,一般以.ini為擴(kuò)展名。配置文件中的空行被忽略,以分號(hào)“;”開(kāi)頭的行作為注釋內(nèi)容也被忽略。節(jié)名不能重復(fù),同節(jié)中的鍵名也不能重復(fù)。本例中[Record1][Record2][Record3]等即為節(jié)名,姓名、性別、郵政編碼、手機(jī)、電子郵件、出生日期、所在城市、工作單位、住宅電話、辦公電話、照片、職務(wù)職稱、地址即為鍵名。因?yàn)榕渲梦募奶厥飧袷?,Windows提供了專門的API函數(shù)對(duì)其進(jìn)行讀寫,與一般的文本文件讀寫操作相比更加簡(jiǎn)便,配置文件的讀寫不必使用Open、Close、Write、Input等順序文件的文件操作語(yǔ)句??梢允褂肳ritePrivateProfileString函數(shù)在配置文件的指定節(jié)中寫入一個(gè)鍵,此函數(shù)的聲明語(yǔ)句如下:PublicDeclareFunctionWritePrivateProfileStringLib"kernel32"Alias"WritePrivateProfileStringA"(ByVallpApplicationNameAsString,ByVallpKeyNameAsAny,ByVallpStringAsAny,ByVallpFileNameAsString)AsLong使用時(shí)如果指定的文件不存在會(huì)自動(dòng)創(chuàng)建,如果文件中無(wú)指定的節(jié)名也會(huì)自動(dòng)創(chuàng)建,如果指定的節(jié)名中已有同名的鍵,會(huì)被新值覆蓋??梢允褂肎etPrivateProfileString函數(shù)在配置文件的指定節(jié)中讀出一個(gè)鍵,此函數(shù)的聲明語(yǔ)句如下:PublicDeclareFunctionGetPrivateProfileStringLib"kernel32"Alias"GetPrivateProfileStringA"(ByVallpApplicationNameAsString,ByVallpKeyNameAsAny,ByVallpDefaultAsString,ByVallpReturnedStringAsString,ByValnSizeAsLong,ByVallpFileNameAsString)AsLong注意:對(duì)應(yīng)于lpReturnedString參數(shù)的變量應(yīng)是一個(gè)足夠長(zhǎng)的字符串變量,否則不能容納讀出的字符。nSize參數(shù)的值不能大于lpReturnedString參數(shù)的實(shí)際長(zhǎng)度。運(yùn)行界面和功能此界面為主界面,可用來(lái)顯示各個(gè)聯(lián)系人的信息。此界面為添加聯(lián)系人界面,在此界面可以輸入新的人員信息然后保存。此界面為修改當(dāng)前記錄界面,可修改除姓名外的所有信息,點(diǎn)擊確定保存。遇到的困難及解決辦法多個(gè)變量的處理本來(lái)想使用各個(gè)變量單獨(dú)定義的方法,發(fā)現(xiàn)太麻煩,不僅編寫程序麻煩,而且錄入信息、修改信息、保存信息也很麻煩。后來(lái)參考課本上的提示,選擇了動(dòng)態(tài)數(shù)組控件,解決了這個(gè)問(wèn)題。PublicTypeAddrNameAsString*4'姓名SexAsBoolean'性別BirthdayAsDate'生日CityAsString*20'所在城市TitleAsString*6'職務(wù)職稱CompanyAsString*30'工作單位AddressAsString*30'地址Tel_HomeAsString*8'住宅電話Tel_OfficeAsString*8'辦公電話MobileAsString*11'手機(jī)PostalCodeAsString*6'郵編EmailAsString*40'電子郵件地址photoAsBoolean'是否有照片DeletedAsBoolean'是否被刪除ModifiedAsBoolean'是否被修改EndTypePublicAddrs()AsAddr'通訊錄信息PublicRecNumAsInteger'通訊錄記錄數(shù)通訊錄信息的保存本來(lái)想使用寫順序文件的語(yǔ)句即“Write#文件號(hào),一個(gè)或多個(gè)參數(shù),|;”,發(fā)現(xiàn)用這種方式保存的文件閱讀起來(lái)很困難,因?yàn)樾畔⑹前凑諏傩皂槾屋敵龅?,而不是每個(gè)人的信息在一起,造成文件中的信息混亂無(wú)章,查閱不方便。后來(lái)根據(jù)課本上的提示,選擇使用配置文件格式將通訊錄信息保存在Abbr.ini文件中,每個(gè)人的信息保存在單獨(dú)的一節(jié)中,閱讀起來(lái)比較清晰明了。文件的最后有“[系統(tǒng)]”節(jié),其中保存了用到的所有城市名和職務(wù)名。雖然讀寫速度較慢,但比寫順序文件的操作還是方便很多。Fori=1ToRecNumIfNotAddrs(i).DeletedThenWritePrivateProfileString"Record"&i,"姓名",Addrs(i).Name,App.Path&"\addr.ini"IfAddrs(i).SexThenWritePrivateProfileString"Record"&i,"性別","男",App.Path&"\addr.ini"ElseWritePrivateProfileString"Record"&i,"性別","女",App.Path&"\addr.ini"EndIfWritePrivateProfileString"Record"&i,"郵政編碼",Addrs(i).PostalCode,App.Path&"\addr.ini"WritePrivateProfileString"Record"&i,"手機(jī)",Addrs(i).Mobile,App.Path&"\addr.ini"WritePrivateProfileString"Record"&i,"電子郵件",Addrs(i).Email,App.Path&"\addr.ini"WritePrivateProfileString"Record"&i,"出生日期",CStr(Addrs(i).Birthday),App.Path&"\addr.ini"WritePrivateProfileString"Record"&i,"所在城市",Addrs(i).City,App.Path&"\addr.ini"WritePrivateProfileString"Record"&i,"工作單位",Addrs(i).Company,App.Path&"\addr.ini"WritePrivateProfileString"Record"&i,"住宅電話",Addrs(i).Tel_Home,App.Path&"\addr.ini"WritePrivateProfileString"Record"&i,"辦公電話",Addrs(i).Tel_Office,App.Path&"\addr.ini"WritePrivateProfileString"Record"&i,"照片",CStr(Addrs(i).photo),App.Path&"\addr.ini"WritePrivateProfileString"Record"&i,"職務(wù)職稱",Addrs(i).Title,App.Path&"\addr.ini"WritePrivateProfileString"Record"&i,"地址",Addrs(i).Address,App.Path&"\addr.ini"EndIfNext使用WritePrivateProfileString函數(shù)在配置文件的指定節(jié)中寫入一個(gè)鍵,此函數(shù)的聲明語(yǔ)句在標(biāo)準(zhǔn)模塊中。保存以后下一次操作時(shí)讀取信息也很方便,不需要用Get語(yǔ)句,而是直接使用GetPrivateProfileString函數(shù)。n=GetPrivateProfileString("系統(tǒng)","城市名","",s,99,App.Path&"\addr.ini")'讀入城市名稱s=Left(s,n)n=DivideString(s,",",Cities)Fori=1ToncomCity.AddItemCities(i)Next'讀入職務(wù)名==============================n=GetPrivateProfileString("系統(tǒng)","職務(wù)名","",s,99,App.Path&"\addr.ini")s=Left(s,n)n=DivideString(s,",",Titles)Fori=1ToncomTitle.AddItemTitles(i)Nexti=0Doi=i+1n=GetPrivateProfileString("Record"&i,"姓名","",s,99,App.Path&"\addr.ini")Ifn<2ThenExitDoReDimPreserveAddrs(i)Addrs(i).Name=Left(s,n/2)n=GetPrivateProfileString("Record"&i,"性別","",s,99,App.Path&"\addr.ini")IfLeft(s,n/2)="男"Then'一個(gè)漢字兩上字節(jié)Addrs(i).Sex=TrueElseAddrs(i).Sex=FalseEndIfn=GetPrivateProfileString("Record"&i,"郵政編碼","",s,99,App.Path&"\addr.ini")Addrs(i).PostalCode=sn=GetPrivateProfileString("Record"&i,"手機(jī)","",s,99,App.Path&"\addr.ini")Addrs(i).Mobile=sn=GetPrivateProfileString("Record"&i,"電子郵件","",s,99,App.Path&"\addr.ini")Addrs(i).Email=sn=GetPrivateProfileString("Record"&i,"出生日期","",s,99,App.Path&"\addr.ini")Addrs(i).Birthday=sn=GetPrivateProfileString("Record"&i,"所在城市","",s,99,App.Path&"\addr.ini")Addrs(i).City=sn=GetPrivateProfileString("Record"&i,"工作單位","",s,99,App.Path&"\addr.ini")Addrs(i).Company=sn=GetPrivateProfileString("Record"&i,"住宅電話","",s,99,App.Path&"\addr.ini")Addrs(i).Tel_Home=sn=GetPrivateProfileString("Record"&i,"辦公電話","",s,99
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 代寫課題申報(bào)書(shū)多少錢
- 成囊材料市場(chǎng)分析及競(jìng)爭(zhēng)策略分析報(bào)告
- 企業(yè)生產(chǎn)線用工合同范本
- 中國(guó)傳統(tǒng)文化學(xué)習(xí)心得體會(huì)
- 廠家求購(gòu)鋼材合同范本
- 臨床護(hù)理習(xí)題(附答案)
- 機(jī)械制造基礎(chǔ)模擬試題含答案
- 代理經(jīng)營(yíng)承包協(xié)議合同范本
- 箱包維修合同范本
- 流體力學(xué)復(fù)習(xí)題(含答案)
- 倉(cāng)儲(chǔ)管理改善計(jì)劃表
- 人教版四年級(jí)音樂(lè)下冊(cè)(簡(jiǎn)譜)全冊(cè)課件【完整版】
- 高中語(yǔ)文《茶館》第二課時(shí)課件
- 新教科版五年級(jí)上冊(cè)科學(xué)全冊(cè)重點(diǎn)題型練習(xí)課件(含答案)
- 堡壘機(jī)產(chǎn)品功能
- 發(fā)展?jié)h語(yǔ)-初級(jí)讀寫-I-第八課
- 跨境電商基礎(chǔ)PPT完整全套教學(xué)課件
- 冀人版五年級(jí)科學(xué)下冊(cè)同步練習(xí)(全冊(cè))
- 直殼體螺桿鉆具維護(hù)使用手冊(cè)
- 蕉嶺縣幅地質(zhì)圖說(shuō)明書(shū)
- 學(xué)院中層正副職民主測(cè)評(píng)表
評(píng)論
0/150
提交評(píng)論