多媒体技术课程设计报告11150.docx
二九九 二二一 学年年第 二二 学期期应用技术术学院课程设计计报告书书课程名称称: 多媒媒体技术术 班 级: 09级级网络工工程 学 号:姓 名:指导教师师:二一 年 六 月月目录1.需求求分析221.1课课程设计计题目221.2课课程设计计要求221.3系系统功能能需求分分析22.概要要设计333.详细细设计443.1界界面设计计43.2行行程编码码设计1114.程序序调试1144.1源源文件的的压缩1144.2源源文件的的解压1155.总结结181.需求求分析1.1课课程设计计题目信源与信信道编/解码练练习。1.2课课程设计计要求1) 要求利用用程序设设计软件件(如VVC、JJavaa、Maatlaab)制制作一个个能完成成信道编编/解码码(海明明/CRRC码),信源源编/解解码(如如行程编编码)软软件。2) 基本要求求为编制制软件至至少能根根据所输输入的数数据完成成信源、信信道编解解码,其其中信道道编码要要求能产产生1-2位随随机错误误,且能能纠1位位错,最最后是能能读取ttxt文文件,或或者直接接读取图图片来完完成,如如能对视视频完成成则更佳佳。3) 编写的软软件编译译后能直直接运行行,验证证编/解解码效果果,否则则无效。 1.3系系统功能能需求分分析Ø 操作环境境(软件件、硬件件及条件件) WWinddws 9x/NT/20000/XXP/220033 NNetBBeanns IIDE 6.88Ø 系统功能能此软件是是在JAAVA平平台下编编写的 ,能根根据所输输入的数数据完成成信道(海海明码)、信信源编解解码(行行程编码码),其其中信道道编码(海海明码)能能产生11位随机机错误,且且能纠11位错,最最后是能能直接读读取图片片或txxt文件件来完成成。Ø 用户操作作流程 编 码码: 打开(选择源文件)保存(选择目标文件)开始编码 校验查看所存目标文件是否压缩成功 解 码:打开(选择已压缩的文件)保存(选择目标文件)开始解码查看所存目标文件是否解压成功2.概要要设计系统总体体框架: 压 缩检 错打开源文件 纠 错得到源文件 解 压3.详细细设计本次课程程设计中中我主要要负责界界面设计计和行程程编码,故故作以下下详细介介绍。3.1界界面设计计界面设计计如图33-1所所示:图3-11界面设计计代码如如下:packkagee DMMTcoode;impoort javva.iio.FFilee;impoort javvax.swiing.JFiileCChoooserr;impoort javvax.swiing.JOpptioonPaane;publlic claass NewwJFrramee exxtennds javvax.swiing.JFrramee intt rnndChhoosser; bytte ttarggetBBit; priivatte iint i; Fille ff1,ff2; bytte myybytte1,mybbytee2; pubblicc NeewJFFramme() innitCCompponeentss(); thhis.settTittle("重庆庆大学 09网网络工程程 尹力力 沈小小波 多多媒体课课程设计计"); SupppreessWWarnninggs(""uncchecckedd"); priivatte vvoidd innitCCompponeentss() jjPannel11 = neww jaavaxx.swwingg.JPPaneel(); jBButtton11 = neww jaavaxx.swwingg.JBButtton(); jLLabeel1 = nnew javvax.swiing.JLaabell(); jTTexttFieeld11 = neww jaavaxx.swwingg.JTTexttFieeld(); jLLabeel2 = nnew javvax.swiing.JLaabell(); jTTexttFieeld22 = neww jaavaxx.swwingg.JTTexttFieeld(); jBButtton22 = neww jaavaxx.swwingg.JBButtton(); jBButtton44 = neww jaavaxx.swwingg.JBButtton(); jBButtton55 = neww jaavaxx.swwingg.JBButtton(); jPPaneel2 = nnew javvax.swiing.JPaanell(); jLLabeel3 = nnew javvax.swiing.JLaabell(); jLLabeel4 = nnew javvax.swiing.JLaabell(); jPPaneel3 = nnew javvax.swiing.JPaanell(); jLLabeel5 = nnew javvax.swiing.JLaabell(); jLLabeel6 = nnew javvax.swiing.JLaabell(); jLLabeel7 = nnew javvax.swiing.JLaabell(); jLLabeel8 = nnew javvax.swiing.JLaabell(); jBButtton33 = neww jaavaxx.swwingg.JBButtton(); jLLabeel9 = nnew javvax.swiing.JLaabell(); seetDeefauultCClosseOpperaatioon(jjavaax.sswinng.WWinddowCConsstannts.EXIIT_OON_CCLOSSE); jPPaneel1.settBorrderr(jaavaxx.swwingg.BoordeerFaactoory.creeateeTittleddBorrderr("行行程编码码文件""); jBButtton11.seetTeext("打开开"); jBButtton11.adddAcctioonLiisteenerr(neew jjavaa.awwt.eevennt.AActiionLListteneer() ppubllic voiid aactiionPPerfformmed(javva.aawt.eveent.ActtionnEveent evtt) jBuuttoon1AActiionPPerfformmed(evtt); ); jLLabeel1.settTexxt(""源文件件:"); jTTexttFieeld11.seetEnnablled(fallse); jLLabeel2.settTexxt(""目标文文件:""); jTTexttFieeld22.seetEnnablled(fallse); jBButtton22.seetTeext("保存存"); jBButtton22.adddAcctioonLiisteenerr(neew jjavaa.awwt.eevennt.AActiionLListteneer() ppubllic voiid aactiionPPerfformmed(javva.aawt.eveent.ActtionnEveent evtt) jBuuttoon2AActiionPPerfformmed(evtt); ); jBButtton44.seetTeext("开始始编码""); jBButtton44.adddAcctioonLiisteenerr(neew jjavaa.awwt.eevennt.AActiionLListteneer() ppubllic voiid aactiionPPerfformmed(javva.aawt.eveent.ActtionnEveent evtt) jBuuttoon4AActiionPPerfformmed(evtt); ); jBButtton55.seetTeext("开始始解码""); jBButtton55.adddAcctioonLiisteenerr(neew jjavaa.awwt.eevennt.AActiionLListteneer() ppubllic voiid aactiionPPerfformmed(javva.aawt.eveent.ActtionnEveent evtt) jBuuttoon5AActiionPPerfformmed(evtt); ); jaavaxx.swwingg.GrrouppLayyoutt jPPaneel1LLayoout = nnew javvax.swiing.GrooupLLayoout(jPaanell1); jPPaneel1.settLayyoutt(jPPaneel1LLayoout); jjPannel11Layyoutt.seetHoorizzonttalGGrouup(jjPannel11Layyoutt.crreattePaaralllellGrooup(javvax.swiing.GrooupLLayoout.Aliignmmentt.LEEADIING) .adddGrooup(jPaanell1Laayouut.ccreaateSSequuenttiallGrooup() .adddGaap(338, 38, 388) .adddGrroupp(jPPaneel1LLayoout.creeateeParralllelGGrouup(jjavaax.sswinng.GGrouupLaayouut.AAliggnmeent.LEAADINNG, fallse) .aaddGGrouup(jjavaax.sswinng.GGrouupLaayouut.AAliggnmeent.TRAAILIING, jPPaneel1LLayoout.creeateeSeqquenntiaalGrroupp() .adddCommponnentt(jLLabeel2) .adddPreeferrreddGapp(jaavaxx.swwingg.LaayouutSttylee.CoompoonenntPllaceemennt.RRELAATEDD) .adddCommponnentt(jTTexttFieeld22) .aaddGGrouup(jjPannel11Layyoutt.crreatteSeequeentiialGGrouup() .adddCommponnentt(jLLabeel1) .adddPreeferrreddGapp(jaavaxx.swwingg.LaayouutSttylee.CoompoonenntPllaceemennt.RRELAATEDD) .adddCommponnentt(jTTexttFieeld11, jjavaax.sswinng.GGrouupLaayouut.PPREFFERRRED_SIZZE, 1744, jjavaax.sswinng.GGrouupLaayouut.PPREFFERRRED_SIZZE) .adddPrrefeerreedGaap(jjavaax.sswinng.LLayooutSStylle.CCompponeentPPlaccemeent.RELLATEED, 1033, SShorrt.MMAX_VALLUE) .adddGrroupp(jPPaneel1LLayoout.creeateeParralllelGGrouup(jjavaax.sswinng.GGrouupLaayouut.AAliggnmeent.TRAAILIING) .aaddCCompponeent(jBuuttoon2) .aaddCCompponeent(jBuuttoon1) .adddGaap(550, 50, 500) .adddGrroupp(jPPaneel1LLayoout.creeateeParralllelGGrouup(jjavaax.sswinng.GGrouupLaayouut.AAliggnmeent.LEAADINNG) .aaddCCompponeent(jBuuttoon5) .aaddCCompponeent(jBuuttoon4) .adddCoontaaineerGaap(998, Shoort.MAXX_VAALUEE) ); jPPaneel1LLayoout.settVerrticcalGGrouup( jPaanell1Laayouut.ccreaatePParaalleelGrroupp(jaavaxx.swwingg.GrrouppLayyoutt.Allignnmennt.LLEADDINGG) .adddGrooup(jPaanell1Laayouut.ccreaateSSequuenttiallGrooup() .adddGrroupp(jPPaneel1LLayoout.creeateeParralllelGGrouup(jjavaax.sswinng.GGrouupLaayouut.AAliggnmeent.LEAADINNG) .aaddGGrouup(jjPannel11Layyoutt.crreatteSeequeentiialGGrouup() .adddGapp(177, 117, 17) .adddGrooup(jPaanell1Laayouut.ccreaatePParaalleelGrroupp(jaavaxx.swwingg.GrrouppLayyoutt.Allignnmennt.BBASEELINNE) .adddCoompoonennt(jjLabbel11) .adddCoompoonennt(jjTexxtFiieldd1, javvax.swiing.GrooupLLayoout.PREEFERRREDD_SIIZE, jaavaxx.swwingg.GrrouppLayyoutt.DEEFAUULT_SIZZE, javvax.swiing.GrooupLLayoout.PREEFERRREDD_SIIZE) .adddGapp(7, 7, 7) .adddGrooup(jPaanell1Laayouut.ccreaatePParaalleelGrroupp(jaavaxx.swwingg.GrrouppLayyoutt.Allignnmennt.BBASEELINNE) .adddCoompoonennt(jjLabbel22) .adddCoompoonennt(jjTexxtFiieldd2, javvax.swiing.GrooupLLayoout.PREEFERRREDD_SIIZE, jaavaxx.swwingg.GrrouppLayyoutt.DEEFAUULT_SIZZE, javvax.swiing.GrooupLLayoout.PREEFERRREDD_SIIZE) .aaddGGrouup(jjPannel11Layyoutt.crreatteSeequeentiialGGrouup() .adddConntaiinerrGapp() .adddGrooup(jPaanell1Laayouut.ccreaatePParaalleelGrroupp(jaavaxx.swwingg.GrrouppLayyoutt.Allignnmennt.BBASEELINNE) .adddCoompoonennt(jjButttonn1) .adddCoompoonennt(jjButttonn4) .adddPreeferrreddGapp(jaavaxx.swwingg.LaayouutSttylee.CoompoonenntPllaceemennt.RRELAATEDD) .adddGrooup(jPaanell1Laayouut.ccreaatePParaalleelGrroupp(jaavaxx.swwingg.GrrouppLayyoutt.Allignnmennt.BBASEELINNE) .adddCoompoonennt(jjButttonn5) .adddCoompoonennt(jjButttonn2) .adddCoontaaineerGaap(111, Shoort.MAXX_VAALUEE) ); geetCoonteentPPanee().addd(jPPaneel1, jaava.awtt.BoordeerLaayouut.PPAGEE_STTARTT); jPPaneel2.settBorrderr(jaavaxx.swwingg.BoordeerFaactoory.creeateeTittleddBorrderr(" 文件信信息"); jPPaneel2.settPreeferrreddSizze(nnew javva.aawt.Dimmenssionn(4442, 40); jLLabeel3.settTexxt(""源文件件大小:"); jLLabeel4.settTexxt(""目标文文件大小小:"); jaavaxx.swwingg.GrrouppLayyoutt jPPaneel2LLayoout = nnew javvax.swiing.GrooupLLayoout(jPaanell2); jPPaneel2.settLayyoutt(jPPaneel2LLayoout); jPaanell2Laayouut.ssetHHoriizonntallGrooup(jPaanell2Laayouut.ccreaatePParaalleelGrroupp(jaavaxx.swwingg.GrrouppLayyoutt.Allignnmennt.LLEADDINGG) .adddGrooup(jPaanell2Laayouut.ccreaateSSequuenttiallGrooup() .adddGaap(229, 29, 299) .adddCoompoonennt(jjLabbel33) .adddPrrefeerreedGaap(jjavaax.sswinng.LLayooutSStylle.CCompponeentPPlaccemeent.RELLATEED, 2688, SShorrt.MMAX_VALLUE) .adddCoompoonennt(jjLabbel44) .adddGaap(2200, 2000, 2000) ); jPaanell2Laayouut.ssetVVertticaalGrroupp(jPPaneel2LLayoout.creeateeParralllelGGrouup(jjavaax.sswinng.GGrouupLaayouut.AAliggnmeent.LEAADINNG) .adddGrooup(jPaanell2Laayouut.ccreaateSSequuenttiallGrooup() .adddGrroupp(jPPaneel2LLayoout.creeateeParralllelGGrouup(jjavaax.sswinng.GGrouupLaayouut.AAliggnmeent.BASSELIINE) .aaddCCompponeent(jLaabell3) .aaddCCompponeent(jLaabell4) .adddCoontaaineerGaap(117, Shoort.MAXX_VAALUEE) ); geetCoonteentPPanee().addd(jPPaneel2, jaava.awtt.BoordeerLaayouut.CCENTTER); jPPaneel3.settBorrderr(jaavaxx.swwingg.BoordeerFaactoory.creeateeTittleddBorrderr("海海明编码码信息""); jLLabeel6.settTexxt(""字节二二进制编编码:""); jLLabeel7.settTexxt(""字节海海明编码码:"); jLLabeel8.settTexxt(""随机出出错:""); jBButtton33.seetTeext("校验验"); jBButtton33.adddAcctioonLiisteenerr(neew jjavaa.awwt.eevennt.AActiionLListteneer() ppubllic voiid aactiionPPerfformmed(javva.aawt.eveent.ActtionnEveent evtt) jBuuttoon3AActiionPPerfformmed(evtt); ); jLLabeel9.settTexxt(""纠正:"); jaavaxx.swwingg.GrrouppLayyoutt jPPaneel3LLayoout = nnew javvax.swiing.GrooupLLayoout(jPaanell3); jPPaneel3.settLayyoutt(jPPaneel3LLayoout); jPPaneel3LLayoout.settHorrizoontaalGrroupp( jPaanell3Laayouut.ccreaatePParaalleelGrroupp(jaavaxx.swwingg.GrrouppLayyoutt.Allignnmennt.LLEADDINGG) .adddGrooup(jPaanell3Laayouut.ccreaateSSequuenttiallGrooup() .adddGaap(226, 26, 266) .adddGrroupp(jPPaneel3LLayoout.creeateeParralllelGGrouup(jjavaax.sswinng.GGrouupLaayouut.AAliggnmeent.LEAADINNG) .aaddGGrouup(jjPannel33Layyoutt.crreatteSeequeentiialGGrouup() .adddCommponnentt(jLLabeel7) .adddPreeferrreddGapp(jaavaxx.swwingg.LaayouutSttylee.CoompoonenntPllaceemennt.RRELAATEDD, 3321, Shhortt.MAAX_VVALUUE) .adddCommponnentt(jLLabeel9) .adddGapp(1886, 1866, 1186) .aaddGGrouup(jjPannel33Layyoutt.crreatteSeequeentiialGGrouup() .adddCommponnentt(jLLabeel8) .adddPreeferrreddGapp(jaavaxx.swwingg.LaayouutSttylee.CoompoonenntPllaceemennt.RRELAATEDD, 2278, Shhortt.MAAX_VVALUUE) .adddCommponnentt(jBButtton33) .adddGapp(2332, 2322, 2232) .aaddGGrouup(jjPannel33Layyoutt.crreatteSeequeentiialGGrouup() .adddGrooup(jPaanell3Laayouut.ccreaatePParaalleelGrroupp(jaavaxx.swwingg.GrrouppLayyoutt.Allignnmennt.LLEADDINGG) .adddCoompoonennt(jjLabbel66) .adddCoompoonennt(jjLabbel55) .adddConntaiinerrGapp(5331, Shoort.MAXX_VAALUEE) ); jPPaneel3LLayoout.settVerrticcalGGrouup( jjPannel33Layyoutt.crreattePaaralllellGrooup(javvax.swiing.GrooupLLayoout.Aliignmmentt.LEEADIING) .adddGrooup(jPaanell3Laayouut.ccreaateSSequuenttiallGrooup() .adddCoontaaineerGaap() .adddCoompoonennt(jjLabbel55) .adddPrrefeerreedGaap(jjavaax.sswinng.LLayooutSStylle.CCompponeentPPlaccemeent.RELLATEED) .adddCoompoonennt(jjLabbel66) .adddPrrefeerreedGaap(jjavaax.sswinng.LLayooutSStylle.CCompponeentPPlaccemeent.RELLATEED) .adddGrroupp(jPPaneel3LLayoout.creeateeParralllelGGrouup(jjavaax.sswinng.GGrouupLaayouut.AAliggnmeent.BASSELIINE) .aaddCCompponeent(jLaabell7) .aaddCCompponeent(jLaabell9) .adddPrrefeerreedGaap(jjavaax.sswinng.LLayooutSStylle.CCompponeentPPlaccemeent.RELLATEED) .adddGrroupp(jPPan