




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、PAGE PAGE 34二九 二一 学年第 二 学期应用技术学院课程设计报告书课程名称: 多媒体技术 班 级: 09级网络工程 学 号:姓 名:指导教师:二一 年 六 月目录TOC o 1-3 h z u HYPERLINK l _Toc263701556 1.需求分析 PAGEREF _Toc263701556 h 2 HYPERLINK l _Toc263701557 1.1课程设计题目 PAGEREF _Toc263701557 h 2 HYPERLINK l _Toc263701558 1.2课程设计要求 PAGEREF _Toc263701558 h 2 HYPERLINK l _T
2、oc263701559 1.3系统功能需求分析 PAGEREF _Toc263701559 h 2 HYPERLINK l _Toc263701560 2.概要设计 PAGEREF _Toc263701560 h 3 HYPERLINK l _Toc263701561 3.详细设计 PAGEREF _Toc263701561 h 4 HYPERLINK l _Toc263701562 3.1界面设计 PAGEREF _Toc263701562 h 4 HYPERLINK l _Toc263701563 3.2行程编码设计 PAGEREF _Toc263701563 h 11 HYPERLINK
3、 l _Toc263701564 4.程序调试 PAGEREF _Toc263701564 h 14 HYPERLINK l _Toc263701565 4.1源文件的压缩 PAGEREF _Toc263701565 h 14 HYPERLINK l _Toc263701566 4.2源文件的解压 PAGEREF _Toc263701566 h 15 HYPERLINK l _Toc263701567 5.总结 PAGEREF _Toc263701567 h 181.需求分析1.1课程设计题目信源与信道编/解码练习。1.2课程设计要求要求利用程序设计软件(如VC、Java、Matlab)制作一
4、个能完成信道编/解码(海明/CRC码),信源编/解码(如行程编码)软件。基本要求为编制软件至少能根据所输入的数据完成信源、信道编解码,其中信道编码要求能产生1-2位随机错误,且能纠1位错,最后是能读取txt文件,或者直接读取图片来完成,如能对视频完成则更佳。编写的软件编译后能直接运行,验证编/解码效果,否则无效。 1.3系统功能需求分析操作环境(软件、硬件及条件) Windws 9x/NT/2000/XP/2003 NetBeans IDE 6.8系统功能此软件是在JAVA平台下编写的 ,能根据所输入的数据完成信道(海明码)、信源编解码(行程编码),其中信道编码(海明码)能产生1位随机错误,且
5、能纠1位错,最后是能直接读取图片或txt文件来完成。用户操作流程 编 码: 打开(选择源文件)打开(选择源文件)保存(选择目标文件)保存(选择目标文件)开始编码开始编码 校验 校验查看所存目标文件是否压缩成功查看所存目标文件是否压缩成功 解 码:打开(选择已压缩的文件)打开(选择已压缩的文件)保存(选择目标文件)保存(选择目标文件)开始解码开始解码查看所存目标文件是否解压成功查看所存目标文件是否解压成功2.概要设计系统总体框架: 压 缩 压 缩检 错打开源文件检 错打开源文件 纠 错得到源文件 纠 错得到源文件 解 压 解 压3.详细设计本次课程设计中我主要负责界面设计和行程编码,故作以下详细
6、介绍。3.1界面设计界面设计如图3-1所示:图3-1界面设计代码如下:package DMTcode;import java.io.File;import javax.swing.JFileChooser;import javax.swing.JOptionPane;public class NewJFrame extends javax.swing.JFrame int rndChooser; byte targetBit; private int i; File f1,f2; byte mybyte1,mybyte2; public NewJFrame() initComponents()
7、; this.setTitle(重庆大学 09网络工程 尹力 沈小波 多媒体课程设计); SuppressWarnings(unchecked); private void initComponents() jPanel1 = new javax.swing.JPanel(); jButton1 = new javax.swing.JButton(); jLabel1 = new javax.swing.JLabel(); jTextField1 = new javax.swing.JTextField(); jLabel2 = new javax.swing.JLabel(); jTextF
8、ield2 = new javax.swing.JTextField(); jButton2 = new javax.swing.JButton(); jButton4 = new javax.swing.JButton(); jButton5 = new javax.swing.JButton(); jPanel2 = new javax.swing.JPanel(); jLabel3 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); jPanel3 = new javax.swing.JPanel(); jLab
9、el5 = new javax.swing.JLabel(); jLabel6 = new javax.swing.JLabel(); jLabel7 = new javax.swing.JLabel(); jLabel8 = new javax.swing.JLabel(); jButton3 = new javax.swing.JButton(); jLabel9 = new javax.swing.JLabel(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); jPanel1.setBorder
10、(javax.swing.BorderFactory.createTitledBorder(行程编码文件); jButton1.setText(打开); jButton1.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) jButton1ActionPerformed(evt); ); jLabel1.setText(源文件:); jTextField1.setEnabled(false); jLabel2.setTe
11、xt(目标文件:); jTextField2.setEnabled(false); jButton2.setText(保存); jButton2.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) jButton2ActionPerformed(evt); ); jButton4.setText(开始编码); jButton4.addActionListener(new java.awt.event.ActionList
12、ener() public void actionPerformed(java.awt.event.ActionEvent evt) jButton4ActionPerformed(evt); ); jButton5.setText(开始解码); jButton5.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) jButton5ActionPerformed(evt); ); javax.swing.GroupLay
13、out jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addGap(38, 38, 38) .addGroup(jPanel1Layout.create
14、ParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup() .addComponent(jLabel2) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jTextField2) .addGroup(jPanel1Layout.c
15、reateSequentialGroup() .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 174, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 103,
16、 Short.MAX_VALUE) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jButton2) .addComponent(jButton1) .addGap(50, 50, 50) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jButton5) .addComponent(j
17、Button4) .addContainerGap(98, Short.MAX_VALUE) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGr
18、oup(jPanel1Layout.createSequentialGroup() .addGap(17, 17, 17) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel1) .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayou
19、t.PREFERRED_SIZE) .addGap(7, 7, 7) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel2) .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup
20、(jPanel1Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jButton1) .addComponent(jButton4) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParalle
21、lGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jButton5) .addComponent(jButton2) .addContainerGap(11, Short.MAX_VALUE) ); getContentPane().add(jPanel1, java.awt.BorderLayout.PAGE_START); jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder( 文件信息); jPanel2.setPreferredSize
22、(new java.awt.Dimension(442, 40); jLabel3.setText(源文件大小:); jLabel4.setText(目标文件大小:); javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); jPanel2.setLayout(jPanel2Layout); jPanel2Layout.setHorizontalGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
23、ADING) .addGroup(jPanel2Layout.createSequentialGroup() .addGap(29, 29, 29) .addComponent(jLabel3) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 268, Short.MAX_VALUE) .addComponent(jLabel4) .addGap(200, 200, 200) ); jPanel2Layout.setVerticalGroup(jPanel2Layout.createParallelGro
24、up(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel2Layout.createSequentialGroup() .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel3) .addComponent(jLabel4) .addContainerGap(17, Short.MAX_VALUE) ); getContentPane().add(jPanel2, j
25、ava.awt.BorderLayout.CENTER); jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(海明编码信息); jLabel6.setText(字节二进制编码:); jLabel7.setText(字节海明编码:); jLabel8.setText(随机出错:); jButton3.setText(校验); jButton3.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt
26、.event.ActionEvent evt) jButton3ActionPerformed(evt); ); jLabel9.setText(纠正:); javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3); jPanel3.setLayout(jPanel3Layout); jPanel3Layout.setHorizontalGroup( jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING
27、) .addGroup(jPanel3Layout.createSequentialGroup() .addGap(26, 26, 26) .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel3Layout.createSequentialGroup() .addComponent(jLabel7) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 321
28、, Short.MAX_VALUE) .addComponent(jLabel9) .addGap(186, 186, 186) .addGroup(jPanel3Layout.createSequentialGroup() .addComponent(jLabel8) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 278, Short.MAX_VALUE) .addComponent(jButton3) .addGap(232, 232, 232) .addGroup(jPanel3Layout.cr
29、eateSequentialGroup() .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel6) .addComponent(jLabel5) .addContainerGap(531, Short.MAX_VALUE) ); jPanel3Layout.setVerticalGroup( jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEA
30、DING) .addGroup(jPanel3Layout.createSequentialGroup() .addContainerGap() .addComponent(jLabel5) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel6) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel3Layout.createParallelGroup
31、(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel7) .addComponent(jLabel9) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel8) .addComponent(jButton3) .addC
32、ontainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) ); getContentPane().add(jPanel3, java.awt.BorderLayout.SOUTH); pack(); / private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) / TODO add your handling code here: JFileChooser chooser=new JFileChooser(); chooser.showOp
33、enDialog(jLabel1); jTextField1.setText(chooser.getSelectedFile().getPath().toString(); jLabel3.setText(源文件大小:+chooser.getSelectedFile().length()+字节); f1=chooser.getSelectedFile(); private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) / TODO add your handling code here: JFileChooser ch
34、ooser1=new JFileChooser(); chooser1.showSaveDialog(jLabel1); f2=chooser1.getSelectedFile(); jTextField2.setText(chooser1.getSelectedFile().getPath().toString();jLabel4.setText(目标文件大小:+chooser1.getSelectedFile().length()+字节); private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) jLabel
35、8.setText(随机出错:+myOp.revertAndCheckhammingCode()0); jLabel9.setText(纠正:+myOp.revertAndCheckhammingCode()1); private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) / TODO add your handling code here: /*调用编码方法开始压缩文件*/ if(jTextField1.getText()=null&jTextField2.getText()=null) JOptionPane.
36、showMessageDialog(null, 还没有设置文件呢!); else try 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(targetBit);
37、 jLabel6.setText(字节二进制编码:+myOp.hammingCode(targetBit)0); jLabel7.setText(字节海明编码:+myOp.hammingCode(targetBit)1); catch(Exception e) private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) /*调用解码码方法开始解压文件*/ if(jTextField1.getText()=null&jTextField2.getText()=null) JOptionPane.showMessageD
38、ialog(null, 还没有设置文件呢!); else try mybyte1=myOp.importFile(f1); 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.s
39、etText(字节二进制编码:+myOp.hammingCode(targetBit)0); jLabel7.setText(字节海明编码:+myOp.hammingCode(targetBit)1); catch(Exception e) public static void main(String args) java.awt.EventQueue.invokeLater(new Runnable() public void run() new NewJFrame().setVisible(true); ); private javax.swing.JButton jButton1; pr
40、ivate javax.swing.JButton jButton2; private javax.swing.JButton jButton3; private javax.swing.JButton jButton4; private javax.swing.JButton jButton5; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; privat
41、e javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JLabel jLabel9; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel3; private javax.swin
42、g.JTextField jTextField1; private javax.swing.JTextField jTextField2;3.2行程编码设计由界面中的开始解码调用行程编码的函数,其代码如下: public static byte zipCode(byte mycode) byte tempArray=new byte10000000;/构建一个足够大的临时数组; int lengthArray=new int4;/临时的存位数长度的数组 lengthArray0=-127; int i=1; int n=0; int mycount=1; do if(mycodei=mycod
43、ei-1) mycount+; i+; else tempArrayn=mycodei-1; n+; if(mycount127) tempArrayn=(byte)lengthArray0; n+; if(lengthArray1=mycount/127)127) lengthArray2=lengthArray1/127; lengthArray1=127; tempArrayn=(byte)lengthArray1; n+; tempArrayn=(byte)lengthArray2; else tempArrayn=(byte)lengthArray1; n+; tempArrayn=
44、0; n+; lengthArray3=mycount%127; tempArrayn=(byte)lengthArray3; else tempArrayn=(byte)mycount; mycount=1; n+; i+; while(i127) tempArrayn=(byte)lengthArray0; n+; if(lengthArray1=mycount/127)127) lengthArray2=lengthArray1/127; lengthArray1=127; tempArrayn=(byte)lengthArray1; n+; tempArrayn=(byte)lengthArray2; else tempArrayn=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年计算机二级ACCESS考试常见问题试题及答案
- 高效利用复习时间搭建知识框架2025年计算机二级VB考试试题及答案
- C语言编码标准程序规范研究试题及答案
- 实战经验2025年VFP考试试题及答案
- 2025年嵌入式系统知识梳理试题及答案
- 诗歌中的形式美与内涵研究试题及答案
- C语言中不同数据访问方式考题及答案
- 计算机二级VFP考试示例题及答案
- 状态转移测试方法详解试题及答案
- 模板清包工合同协议书
- 上海市上宝中学新初一分班(摸底)语文模拟试题(5套带答案)
- 河南省南阳市2023-2024学年高二下学期期终质量评估+物理试卷答案
- 食品安全与质量检测技能大赛考试题库400题(含答案)
- 2024年浙江省嘉兴市初三中考三模科学试卷试题(含答案详解)
- 核心素养-空间观念
- 吉林省长春市2024年中考语文真题试卷【附真题答案】
- DZ/T 0462.3-2023 矿产资源“三率”指标要求 第3部分:铁、锰、铬、钒、钛(正式版)
- 梧州喜得宝矿业有限公司广西梧州市金山顶金银矿矿山地质环境保护与土地复垦方案
- 2024年职业卫生技术人员评价方向考试题库附答案
- 安全管理之肉制品安全及防控措施
- 绿色算力基础设施的能源与算力协同优化
评论
0/150
提交评论