《炫酷提醒工具软件的设计与实现设计说明书.docx》由会员分享,可在线阅读,更多相关《炫酷提醒工具软件的设计与实现设计说明书.docx(13页珍藏版)》请在课桌文档上搜索。
1、炫酷提醒工具软件的设计与实现设计说明书炫酷提醒工具软件的设计与实现一、需求分析1、功能模型52、业务类图5二、系统设计1、详细类图、构件图62、数据设计73、任务设计94、Ul设计9三、实现1、主要业务对象的编码实现112、程序设计风格133、测试14四、总结1、OoAD的开发过程的认识142、UML在分析设计中的作用143、设计模式的使用经验144、源程序文档化的重要性145、边设计、边编码、边测试的经验总结146、对对象使用的经验总结147、使用第三方构件中对象的使用经验158、如何编写自己的事件响应机制15一、需求分析1、功能模型系统配置2、业务类图系统配置二、系统设计1、详细类图、构件
2、图a.系统配置子系统类图IsettingwinleftwintopinwkithAVinheightlastmusicpositionIoadFromFiIeO*SaveToFile()b.音乐播放子系统类图c.语言提示子系统类图2、数据设计FormMain类的数据:publicSettingsetting;音频播放设置publicclocksettingclockrecode;/定时报时设置privateintrowofselected;选中行的行号privateintrow;选中的行在IiSt中的索引号publicstringMusicListFilename=MusicList.mist
3、”;缺省的音乐列表MusicListmist=nul1;MediaPlayMusicPlayer=null;intplayingrow=-1;正在播放音乐的行VoiceListvlst=null;stringVOiCeLiStFiIename;/声明语音列表文件VoicePlayervoiceplayer;Recodc类的数据:publicinttype;表示是哪种类型;publicstringthistime;设置的时间publicstringtime;下一次提醒的时间publicboollist;标记每星期的哪几天要提醒publicinttimes;循环提醒的剩余提醒次数publicint
4、number;/记录的序号clock_setting类的数据:publicRecodelist;用来存放记录publicuintnum_recode;记录的条数publicintfenpei;序号分配器MusicTtem类的数据:privateintsn;privatestringfilename;音频文件privateintduration;时长privateintvolume;波形音量放大系数,O-TOo,100表示原样大小privateboolused;/是否启用privateintfixedtime;定时记录的开播时间privateintstarttime;/计算记录的开播时间publ
5、iceventPropertyChangedEventHandlerPropertyChanged;VoicePlayer的数据:SpeechSynthesizerhintsynth;publicListInstalledVoices=newList();安装的语音库3、任务设计4、UI设计音乐播放界面:语言提示界面:三炫酷提供工Jl音乐播放:遹音提示,定时报时参数设置播放停止I打开保存I筋为增加记录|而踢新建音乐列表I语音文本提示时间rl*i速度朗读次数是否启用序号朗读文本提醒时间是否启用朗读次数音里速度O今天是课程设计的最后一天09:20:00True1100Y02:今天好高兴,学会语音提
6、.08:00:00True2100-203:今天好高兴,学会语音提09:00:00True2100-204:今天好型,学会语音提10:00:00Tru2100-205:今天好高兴,学会语音提11:00:00Trut2100-206:今天好嘉兴,学会诺W提12:00:00Trut2100-207:今天好高兴,学会语音提13:00:00Tru.2100-208:今天好高兴,学会语音提.14:00:00True2100-209:今天好高兴,学会语音提15:00:00True2100-2010:今天好高兴,学会语音提.16:00:00True2100-201:今天好高兴,学会语音提07:00:00Tr
7、ue2100-2信息编辑文件MusicListmIst定时报时界面:参数设置界面:三、实现1、主要业务对象的编码实现增加定点报时记录代码:privatevoidbutton2_Click(objectsender,EventArgse)temp,type=1;temp,number=clock_recode.fenpei+;temp,thistime=Current_Timer.Text;temp,time=textBoxl.Text;temp,list=newbool7;temp.list0=checkBoxl.Checked;temp.listl=checkBox2.Checked:tem
8、p.list2=checkBox3.Checked;temp.list3=checkBox4.Checked;temp.list4=checkBox5.Checked;temp.list5=checkBox6.Checked:temp.list6=checkBox7.Checked:stringbeizhu=stringtt=newString7“星期一J星期二星期三星期四星期五星期六星期天;for(inti=0;i7;+i)if(temp.listi)beizhu+=tti;);clock_recode.listclock_recode.num_recode+=temp;添加到记录中Iist
9、Viewl.Items.Add(newLiStViewItem(newstring+temp.number,“在这个点报时“,temp.time,beizhu);checkBoxl.Checked=false;checkBox2.Checked=false;checkBox3.Checked=false;checkBox4.Checked=false;checkBox5.Checked=false;checkBox6.Checked=false;checkBox7.Checked=false;textBoxl.Text=00:00:00”;)修改记录代码:privatevoidbutton5_
10、Click(objectsender,EventArgse)if(row0&IistViewl.Itemsrowofselected.Selected=false)return;temp,type=1;temp,number=clock_recode.listrow,number;temp,thistime=Current_Timer.Text;temp,time=textBoxl.Text;temp,list=newbool7;temp.list0=checkBoxl.Checked;temp.listl=checkBox2.Checked:temp.list2=checkBox3.Chec
11、ked;temp.list3=checkBox4.Checked;temp.list4=checkBox5.Checked;temp.list5=checkBox6.Checked:temp.list6=checkBox7.Checked;stringbeizhu=;stringtt=newstring7“星期一星期二星期三星期四星期五星期六星期天;for(inti=0;i7:+i)(if(temp,listi)beizhu+=tti;);clock_recode.Iistrow=temp;修改到记录中IistViewl.IternsErowofselected.SubItemsEO.Text
12、=temp,number.ToStringO;IistViewl.IternsErowofselectecl.SubItemstl.Text=在这个点报时“;IistViewl.IternsErowofselected.Subltems2.Text=temp,time;IistViewLItemstrowofselected.Subltems3.Text=beizhu;)删除记录代码:privatevoidbuttonl2_Click(objectsender,EventArgse)if(rowO&IistViewl.IternsErowofselected.Selected=false)re
13、turn;IistViewLItemsErowofselected.RemoveO;for(inti=row;iclock_recode.num_recode-1;+i)clock_recode.listi=clock_recode.listi+1;clock_recode.num_recode;IistViewl.SelectedItems.ClearO:2、程序设计风格3、测试四、总结1、OOAD的开发过程的认识OOAD工具能协助人们建立企业系统及资讯系统的模式(model)。由于OOAD的概念和技术对目前大多数的人们而言,仍然是新接触的东西。所以对大多数的Nrier系统开发团队来说,学习
14、OOAD的观念和技术是一项费时的事情,但是学习又是获取工作所需的技巧的必经之路。此时,透过OOAD工具来加快学习速度和效果是个重要的途径。2、UML在分析设计中的作用类图一般在详细设计过程中出现,主要用来描述系统中各个模块中类之间的关系,包括类或者类与接口的继承关系,类之间的依赖、聚合等关系。它还描述每一个类的详细信息,包括变量,和方法,通过类图,就能实际的把系统中的各个类,即对象描述清楚,下一步就是按照这个详细的设计编码了。3、设计模式的使用经验工厂模式(FaCtOry):定义一个用以创建对象的接口,让子类决定实例化哪个类.当遇到需要根据某个前提条件创建不同的类实现时,会实用工厂模式.观察者
15、模式(ObSerVer):定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对象,在它的状态发生变化时,会通知所有的观察者.抽象工厂模式(AbStactFactory):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类.单例模式(SingletOn):保证一个类仅有一个实例,并提供一个访问它的全局控制点.4、源程序文档化的重要性源程序文档化可以使得程序的可读性大大提高。从而间接提高代码的重用能力,以及可扩展性,使得其它人修改更加方便。5、边设计、边编码、边测试的经验总结边测试一边编码可以使得测试的效率大大提高,因为当某个小模块编写完成后立即测试,不需要等一个大模块编写完再测试,这样,对本小模块的代码会更加熟悉,因而可以大大提高测试的效率,同时容易找出错误。同时设计是以便于发现系统一开始设计上的不足,可以及时加以改正,而不用等到整个系统完成之后再修改。6、对对象使用的经验总结使用对象大大简化了大型的系统设计,因为你只需要关系你所设计的类要完成的那部分的业务并知道如何使用现成的类就可以了,打个比方就是你在设计一辆汽车时,只要设计整个汽车的框架就可以了,至于发动机可以利用现成的就可以了,大大提高了效率。7、使用第三方构件中对象的使用经验编码中借用第三方构件非常方便,大大简化了个人的代码量,可以使你有更多的精力去完成你的任务。8、如何编写自己的事件响应机制