1、多媒体技术课程设计报告二九 二一 学年第 二 学期应用技术学院课程设计报告书课程名称: 多媒体技术 班 级: 09级网络工程 学 号: 姓 名: 指导教师: 二一 年 六 月1.需求分析1.1课程设计题目信源与信道编/解码练习。1.2课程设计要求 1)要求利用程序设计软件(如VC、Java、Matlab)制作一个能完成信道编/解码(海明/CRC码),信源编/解码(如行程编码)软件。2)基本要求为编制软件至少能根据所输入的数据完成信源、信道编解码,其中信道编码要求能产生1-2位随机错误,且能纠1位错,最后是能读取txt文件,或者直接读取图片来完成,如能对视频完成则更佳。3)编写的软件编译后能直接
2、运行,验证编/解码效果,否则无效。 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 DMTco
3、de;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网络工程 尹力 沈小波 多媒体课程设计); Sup
4、pressWarnings(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 =
5、 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 ja
6、vax.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(行程
7、编码文件); 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); jButto
8、n2.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.even
9、t.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.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(
10、jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addGap(38, 38, 38) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.
11、LEADING, false) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup() .addComponent(jLabel2) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jTextField2) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(jLabel1) .a
12、ddPreferredGap(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, Short.MAX_VALUE) .addGroup(jPanel1Layout.create
13、ParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jButton2) .addComponent(jButton1) .addGap(50, 50, 50) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jButton5) .addComponent(jButton4) .addContainerGap(98, Short.MAX_VALUE) )
14、; jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addGa
15、p(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.GroupLayout.PREFERRED_SIZE) .addGap(7, 7, 7) .addGroup(jPa
16、nel1Layout.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(jPanel1Layout.createSequentialGroup() .addConta
17、inerGap() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jButton1) .addComponent(jButton4) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELIN
18、E) .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(new java.awt.Dimension(442, 40); jLabel3.setTex
19、t(源文件大小:); jLabel4.setText(目标文件大小:); javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); jPanel2.setLayout(jPanel2Layout); jPanel2Layout.setHorizontalGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel2Layout.createSequentialG
20、roup() .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.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .a
21、ddGroup(jPanel2Layout.createSequentialGroup() .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel3) .addComponent(jLabel4) .addContainerGap(17, Short.MAX_VALUE) ); getContentPane().add(jPanel2, java.awt.BorderLayout.CENTER); jPanel3.setBorder(
22、javax.swing.BorderFactory.createTitledBorder(海明编码信息); jLabel6.setText(字节二进制编码:); jLabel7.setText(字节海明编码:); jLabel8.setText(随机出错:); jButton3.setText(校验); jButton3.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(java.awt.event.ActionEvent evt) jButton3ActionPerformed(
23、evt); ); jLabel9.setText(纠正:); javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3); jPanel3.setLayout(jPanel3Layout); jPanel3Layout.setHorizontalGroup( jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel3Layout.createSequentialGroup(
24、) .addGap(26, 26, 26) .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel3Layout.createSequentialGroup() .addComponent(jLabel7) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 321, Short.MAX_VALUE) .addComponent(jLabel9) .addGa
25、p(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.createSequentialGroup() .addGroup(jPanel3Layout.cr
26、eateParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel6) .addComponent(jLabel5) .addContainerGap(531, Short.MAX_VALUE) ); jPanel3Layout.setVerticalGroup( jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel3Layout.createSequentialGr
27、oup() .addContainerGap() .addComponent(jLabel5) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel6) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .ad
28、dComponent(jLabel7) .addComponent(jLabel9) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel8) .addComponent(jButton3) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE
29、, 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.showOpenDialog(jLabel1); jTextField1.setText(chooser.g
30、etSelectedFile().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 chooser1=new JFileChooser(); chooser1.showSaveDial
31、og(jLabel1); f2=chooser1.getSelectedFile(); jTextField2.setText(chooser1.getSelectedFile().getPath().toString(); jLabel4.setText(目标文件大小:+chooser1.getSelectedFile().length()+字节); private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) jLabel8.setText(随机出错:+myOp.revertAndCheckhammingCode()0); jLabel
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1