多媒体技术课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二○○九~二○一○学年第二学期应用技术学院
课程设计报告书
课程名称:多媒体技术
班级: 09级网络工程
学号:
姓名:
指导教师:
二○一○年六月
目录
1.需求分析 (2)
1.1课程设计题目 (2)
1.2课程设计要求 (2)
1.3系统功能需求分析 (2)
2.概要设计 (3)
3.详细设计 (4)
3.1界面设计 (4)
3.2行程编码设计 (11)
4.程序调试 (14)
4.1源文件的压缩 (14)
4.2源文件的解压 (16)
5.总结 (19)
1.需求分析
1.1课程设计题目
信源与信道编/解码练习。
1.2课程设计要求
1)要求利用程序设计软件(如VC、Java、Matlab)制作一个能完成信道编/解码
(海明/CRC码),信源编/解码(如行程编码)软件。
2)基本要求为编制软件至少能根据所输入的数据完成信源、信道编解码,其中
信道编码要求能产生1-2位随机错误,且能纠1位错,最后是能读取txt文件,或者直接读取图片来完成,如能对视频完成则更佳。
3)编写的软件编译后能直接运行,验证编/解码效果,否则无效。
1.3系统功能需求分析
➢操作环境(软件、硬件及条件)
Windws 9x/NT/2000/XP/2003
NetBeans IDE 6.8
➢系统功能
此软件是在JAVA平台下编写的,能根据所输入的数据完成信道(海明码)、信源编解码(行程编码),其中信道编码(海明码)能产生1位随机错误,且能纠1位错,最后是能直接读取图片或txt文件来完成。
➢用户操作流程
编码:
解码:
2.概要设计系统总体框架:
3.详细设计
本次课程设计中我主要负责界面设计和行程编码,故作以下详细介绍。
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();
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();
jTextField2 = 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();
jLabel5 = 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(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.setText("目标文件:");
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.ActionListener() {
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);