多媒体技术课程设计报告

上传人:仙*** 文档编号:92306185 上传时间:2022-05-18 格式:DOC 页数:18 大小:491KB
收藏 版权申诉 举报 下载
多媒体技术课程设计报告_第1页
第1页 / 共18页
多媒体技术课程设计报告_第2页
第2页 / 共18页
多媒体技术课程设计报告_第3页
第3页 / 共18页
资源描述:

《多媒体技术课程设计报告》由会员分享,可在线阅读,更多相关《多媒体技术课程设计报告(18页珍藏版)》请在装配图网上搜索。

1、二九 二一 学年第 二 学期应用技术学院课程设计报告书课程名称:多媒体技术班 级:09 级网络工程学 号:姓 名:指导教师:二 一 年 六 月目录1. 需求分析 21.1 课程设计题目 21.2 课程设计要求 21.3 系统功能需求分析 22. 概要设计 33. 详细设计 43.1 界面设计 43.2 行程编码设计 114. 程序调试 144.1 源文件的压缩 144.2 源文件的解压 155. 总结 181. 需求分析1.1 课程设计题目信源与信道编 / 解码练习1.2 课程设计要求1)要求利用程序设计软件 (如 VC、Java、Matlab) 制作一个能完成信道编 / 解码 (海明/CRC

2、码) ,信源编/解码(如行程编码 )软件。2)基本要求为编制软件至少能根据所输入的数据完成信源、信道编解码,其中 信道编码要求能产生 1-2 位随机错误,且能纠 1 位错,最后是能读取 txt 文 件,或者直接读取图片来完成,如能对视频完成则更佳。3)编写的软件编译后能直接运行,验证编 / 解码效果,否则无效。1.3 系统功能需求分析? 操作环境(软件、硬件及条件)Windws 9x/NT/2000/XP/2003NetBeans IDE 6.8? 系统功能此软件是在 JAVA平台下编写的 ,能根据所输入的数据完成信道 (海明码)、 信源编解码(行程编码) ,其中信道编码(海明码)能产生 1

3、位随机错误,且能 纠 1 位错,最后是能直接读取图片或 txt 文件来完成。? 用户操作流程编 码:解 码:2. 概要设计系统总体框架:3. 详细设计本次课程设计中我主要负责界面设计和行程编码,故作以下详细介绍3.1 界面设计界面设计如图 3-1 所示:图 3-1 界面设计代码如下: int rndChooser; byte targetBit; private int i; File f1,f2; byte mybyte1,mybyte2; public NewJFrame() initComponents(); this.setTitle(重庆大学 09 网络工程 尹力 沈小波 多媒体课程

4、设计 ); SuppressWarnings(unchecked) ; private void initComponents() jPanel1 = = = = jLabel2 = jTextField2 = jButton2 = jButton4 = jButton5 = jPanel2 = jLabel3 = jLabel4 = jPanel3 = jLabel5 = jLabel6 = jLabel7 = jLabel8 = jButton3 = jLabel9 = 行程编码文件 ); jButton1.setText( 打开 ); jButton1ActionPerformed(ev

5、t););jLabel1.setText( 源文件: );jTextField1.setEnabled(false);jLabel2.setText( 目标文件: ); jTextField2.setEnabled(false);jButton2.setText( 保存 ); jButton2ActionPerformed(evt););jButton4.setText( 开始编码 ); jButton4ActionPerformed(evt););jButton5.setText( 开始解码 ); jButton5ActionPerformed(evt););= Alignment.LEAD

6、ING).addGroup(jPanel1Layout.createSequentialGroup().addGap(38, 38, 38), jPanel1Layout.createSequentialGroup().addComponent(jLabel2)ELATED).addComponent(jTextField2) .addGroup(jPanel1Layout.createSequentialGroup().addComponent(jLabel1)174, 103, Short.MAX_V ALUE).addComponent(jButton2).addComponent(jB

7、utton1) .addGap(50, 50, 50) .addComponent(jButton5).addComponent(jButton4).addContainerGap(98, Short.MAX_V ALUE);.addGroup(jPanel1Layout.createSequentialGroup().addGap(17, 17, 17).addComponent(jLabel1).addGap(7, 7, 7).addComponent(jLabel2).addGroup(jPanel1Layout.createSequentialGroup().addContainerG

8、ap().addComponent(jButton1).addComponent(jButton4).addComponent(jButton5).addComponent(jButton2).addContainerGap(11, Short.MAX_V ALUE);文件信息 );40);jLabel3.setText( 源文件大小: );jLabel4.setText( 目标文件大小: );= Alignment.LEADING).addGroup(jPanel2Layout.createSequentialGroup().addGap(29, 29, 29) 268, Short.MAX

9、_V ALUE).addComponent(jLabel4).addGap(200, 200, 200);.addGroup(jPanel2Layout.createSequentialGroup().addComponent(jLabel3).addComponent(jLabel4).addContainerGap(17, Short.MAX_V ALUE);海明编码信息 );jLabel6.setText( 字节二进制编码: );jLabel7.setText( 字节海明编码: );jLabel8.setText( 随机出错: );jButton3.setText( 校验 ); jBut

10、ton3ActionPerformed(evt););jLabel9.setText( 纠正: );= jPanel3.setLayout(jPanel3Layout);.addGap(26, 26, 26) 321, Short.MAX_V ALUE).addComponent(jLabel9).addGap(186, 186, 186)278, Short.MAX_V ALUE).addComponent(jButton3) .addGap(232, 232, 232).addGroup(jPanel3Layout.createSequentialGroup().addComponent(

11、jLabel6).addComponent(jLabel5).addContainerGap(531, Short.MAX_V ALUE); jPanel3Layout.setVerticalGroup();pack();/ / TODO add your handling code here: JFileChooser chooser=new JFileChooser(); chooser.showOpenDialog(jLabel1); jTextField1.setText(chooser.getSelectedFile().getPath().toString(); jLabel3.s

12、etText( 源文件大小: +chooser.getSelectedFile().length()+ 字节 ); f1=chooser.getSelectedFile();/ TODO add your handling code here:JFileChooser chooser1=new JFileChooser(); chooser1.showSaveDialog(jLabel1); f2=chooser1.getSelectedFile(); jTextField2.setText(chooser1.getSelectedFile().getPath().toString(); jL

13、abel4.setText( 目标文件大小: +chooser1.getSelectedFile().length()+ 字节 ); jLabel8.setText( 随机出错: +myOp.revertAndCheckhammingCode()0);jLabel9.setText( 纠正: +myOp.revertAndCheckhammingCode()1);/ TODO add your handling code here:/* 调用编码方法开始压缩文件 */ if(jTextField1.getText()=null&jTextField2.getText()=null)JOptio

14、nPane.showMessageDialog(null, 还没有设置文件呢! );elsetry mybyte1=myOp.importFile(f1); mybyte2=myOp.zipCode(mybyte1); myOp.exportFile(f2, mybyte2);jLabel4.setText( 目标文件大小: +f2.length()+ 字节 ); rndChooser=(int)(Math.random()*mybyte2.length); targetBit=mybyte2rndChooser;jLabel5.setText( 字节值: +String.valueOf(ta

15、rgetBit);jLabel6.setText( 字节二进制编码: +myOp.hammingCode(targetBit)0); jLabel7.setText( 字节海明编码: +myOp.hammingCode(targetBit)1);catch(Exception e)/* 调用解码码方法开始解压文件 */if(jTextField1.getText()=null&jTextField2.getText()=null)JOptionPane.showMessageDialog(null, 还没有设置文件呢! );elsetry mybyte1=myOp.importFile(f1)

16、; mybyte2=myOp.unzipCode(mybyte1); myOp.exportFile(f2, mybyte2);jLabel4.setText( 目标文件大小: +f2.length()+ 字节 ); rndChooser=(int)(Math.random()*mybyte2.length); targetBit=mybyte2rndChooser;jLabel5.setText( 字节值: +String.valueOf(targetBit);jLabel6.setText( 字节二进制编码: +myOp.hammingCode(targetBit)0); jLabel7.

17、setText( 字节海明编码: +myOp.hammingCode(targetBit)1);catch(Exception e)public static void main(String args) public void run() new NewJFrame().setVisible(true););3.2 行程编码设计由界面中的开始解码调用行程编码的函数,其代码如下:public static byte zipCode(byte mycode)byte tempArray=new byte10000000;/ 构建一个足够大的临时数组; int lengthArray=new in

18、t4;/ 临时的存位数长度的数组 lengthArray0=-127;int i=1;int n=0;int mycount=1;doif(mycodei=mycodei-1)mycount+;i+;elsetempArrayn=mycodei-1;n+; if(mycount127)tempArrayn=(byte)lengthArray0;n+;if(lengthArray1=mycount/127)127) lengthArray2=lengthArray1/127; lengthArray1=127;tempArrayn=(byte)lengthArray1; n+;tempArray

19、n=(byte)lengthArray2;else tempArrayn=(byte)lengthArray1; n+;tempArrayn=0;n+;lengthArray3=mycount%127; tempArrayn=(byte)lengthArray3;elsetempArrayn=(byte)mycount;mycount=1;n+;i+;while(i127)tempArrayn=(byte)lengthArray0;n+;if(lengthArray1=mycount/127)127) lengthArray2=lengthArray1/127; lengthArray1=12

20、7; tempArrayn=(byte)lengthArray1; n+;tempArrayn=(byte)lengthArray2;else tempArrayn=(byte)lengthArray1; n+;tempArrayn=0;n+;lengthArray3=mycount%127; tempArrayn=(byte)lengthArray3;else tempArrayn=(byte)mycount;byte result=new byten+1;/ 定义一个新数组,存放压缩后实际大小的图像文件 for(int count=0;countresult.length;count+)r

21、esultcount=tempArraycount;目前的字节是 : +result.length);return result;public static byte unzipCode(byte myrecode)byte tempArray=new byte10000000;int lengthBit;int n=0;for(int i=0;imyrecode.length;)if(myrecodei+1=-127)if(myrecodei+3=0) myrecodei+3=1; lengthBit=myrecodei+2*myrecodei+3*127+myrecodei+4;for(i

22、nt l=0;llengthBit;l+) tempArrayn=myrecodei; n+;i+=5;elsefor(int m=0;mmyrecodei+1;m+) tempArrayn=myrecodei; n+;i+=2;byte result=new byten+1;/ 定义一个新数组,存放压缩后实际大小的图像文件 for(int count=0;countresult.length;count+) resultcount=tempArraycount;解压后目前的字节是 : +result.length); JOptionPane.showMessageDialog(null, 解

23、压成功! );return result;4. 程序调试我做的行程编码,只对其做了调试程序调试步骤如下:4.1 源文件的压缩首先点击界面中的打开按钮,选择 123.bmp图片,点击打开;如图 4-1 所示:图 4-1 选择打开,然后点击界面保存按钮,在文件名中输入 321,点击保存;如图 4-2 所示:图 4-2 点击界面的开始编码按钮;出现如图 4-3 所示:图 4-3 点击确定;出现如图 4-4 所示:图 4-4由文件的字节大小可以确定图片的压缩过程已经完成4.2 源文件的解压点击界面的打开按钮,打开文件名为 321 的文件;如图 4-5 所示:图 4-5点击打开,再点击界面的保存按钮,输

24、入 132.bmp;如图 4-6 所示:图 4-6点击保存,如图 4-7 ;点击界面的开始解码按钮,出现如图 4-8 所示:图 4-7图 4-8由此解压过程结束。如图 4-9 所示, 可知压缩文件 321,解压文件 132,和源文件 123 的属性,从而可知设计成功,调试完成图 4-95. 总结通过本次多媒体课程设计, 我深入学习了使用 Java 来设计程序界面, 并且 学会了调用行程编码函数。 在设计的过程中遇到了不少问题, 其中最难解决的问 题就是在调用行程编码时,对 Java 掌握不熟悉,出现了链接问题,通过对程序 的调试以及同组伙伴的帮助, 发现了问题的所在, 从而解决了问题; 最后在老师 的帮助和同组伙伴的同心协力下, 我们顺利的完成了课程设计的内容, 我在此由 衷的感谢老师和同组的伙伴。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!