資源簡介
這個一個用java編寫的算術編碼程序,里面還有實驗報告和代碼,是多媒體課程設計的一個內容。

代碼片段和文件信息
package?com.suanshu2;
import?java.io.BufferedReader;
import?java.io.IOException;
import?java.io.InputStreamReader;
public?class?Bianma?{
int XYFHBit=0;//信源符號位數
int XYFHNum=0;//信源符號個數
String[]?XYFH=new?String[100];//信源符號
double[]?XYFHGailv=new double[100];//信源符號概率
double?GeStart[]=new?double[100];//編碼各區間間隔的開始值
double?GeLength[]=new?double[100];//編碼各區間間隔的長度
double?ZongStart=0;//編碼總間隔的開始值
double?ZongLength=1;//編碼總間隔的長度
String[]?InputXXXL=new?String[100];//輸入消息序列
int?XXXLZhi[]=new?int[100];//消息序列值
int?XXNum=0;//消息數目
int?XXLength=0;//消息長度
int?DQXX=0;//當前消息
public?static?void?main(String[]?arg)
{
Bianma?SuanShu=new?Bianma();
try?{
SuanShu.inputData();
}
catch(Exception?e)?{
System.out.println(“輸入數據錯誤退出!!!“);
System.exit(0);
}
try?{
SuanShu.beginCoding();
}
catch(Exception?e)?{
System.out.println(“輸入錯誤的消息序列退出!!!“);
System.exit(0);
}
}
public?void?inputData()throws?IOException
{
System.out.println(“~~~~~~~~~~~~20105333計科二班袁有根~~~~~~~~~~~“);
System.out.println(“???????????????????數據輸入????????????????????????????????????????????“);
String?inputStr?=?null;
double?Gailvhe=0;
System.out.println(“\n信源符號的位數(n=123...):“);
BufferedReader?WeiShu?=?new?BufferedReader(new?InputStreamReader(System.in));
for(int?i=0;(inputStr?=?WeiShu.readLine())!=?null;i++)
{
if(i==0)
{
XYFHBit=Integer.parseInt(inputStr?10);
if(XYFHBit==0||XYFHBit<0)
{
System.out.println(“請從新輸入正整數:“);
i=i-1;
continue;
}
XYFHNum=(int)Math.pow(2XYFHBit);
System.out.println(“信源符號的位數為:“+XYFHBit);
System.out.println(“接下來請輸入信源符號概率:“);
for(int?j=0;?j {
XYFH[j]=Integer.toBinaryString(j);
while(XYFH[j].length() {
XYFH[j]=“0“+XYFH[j];
}
}
System.out.println(“請輸入信源符號\““+XYFH[i]+“\“的概率:“);
System.out.println(“輸入值不大于:“+1);
}
if(i>0&&i {
XYFHGailv[i-1]=Double.parseDouble(inputStr);
Gailvhe=Gailvhe+XYFHGailv[i-1];
if(XYFHGailv[i-1]>1.0||XYFHGailv[i-1]<0)
{
Gailvhe=Gailvhe-XYFHGailv[i-1];
System.out.println(“輸入數據錯誤概率值應該在0至1之間“);
i=i-1;
}
if(Gailvhe>1||XYFHGailv[i-1]<0)
{
Gailvhe=Gailvhe-XYFHGailv[i-1];
System.out.println(“輸入錯誤概率之和越界“);
i=i-1;
}
double?TiShi=1.0-Gailvhe;
System.out.println(“請輸入信源符號“+XYFH[i]+“的概率:“);
System.out.println(“輸入值不大于:“+TiShi);
}
if(i==XYFHNum)
{
XYFHGailv[i-1]=Double.parseDouble(inputStr);
Gailvhe=Gailvhe+XYFHGailv[i-1];
if(Gailvhe>1.0||XYFHGailv[i-1]<0)
{
Gailvhe=Gailvhe-XYFHGailv[i-1];
System.out.println(“輸入錯誤最終概率和應該等于1.0“);
System.out.println(“請輸入信源符號“+XYFH[i-1]+“的概率:“);
i=i-1;
}
}
if(i==XYFHNum)
{
break;
}
}
Gailvhe=0;
for(int?i=0;i {
GeStart[i]=Gailvhe;
GeLength[i]=XYFHGailv[i];
Gail
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????86528??2012-12-28?19:36??20105333-算法-袁有根-算術編碼?java實現.doc
?????文件????????301??2012-12-28?15:40??20105333-算法-袁有根-算術編碼?java實現\.classpath
?????文件????????384??2012-12-28?15:40??20105333-算法-袁有根-算術編碼?java實現\.project
?????文件????????629??2012-12-28?15:40??20105333-算法-袁有根-算術編碼?java實現\.settings\org.eclipse.jdt.core.prefs
?????文件???????4816??2012-12-28?19:43??20105333-算法-袁有根-算術編碼?java實現\bin\com\suanshu2\Bianma.class
?????文件???????4236??2012-12-28?18:42??20105333-算法-袁有根-算術編碼?java實現\src\com\suanshu2\Bianma.java
?????目錄??????????0??2012-12-28?19:43??20105333-算法-袁有根-算術編碼?java實現\bin\com\suanshu2
?????目錄??????????0??2012-12-28?19:40??20105333-算法-袁有根-算術編碼?java實現\src\com\suanshu2
?????目錄??????????0??2012-12-28?19:43??20105333-算法-袁有根-算術編碼?java實現\bin\com
?????目錄??????????0??2012-12-28?19:40??20105333-算法-袁有根-算術編碼?java實現\src\com
?????目錄??????????0??2012-12-28?19:40??20105333-算法-袁有根-算術編碼?java實現\.settings
?????目錄??????????0??2012-12-28?19:43??20105333-算法-袁有根-算術編碼?java實現\bin
?????目錄??????????0??2012-12-28?19:40??20105333-算法-袁有根-算術編碼?java實現\src
?????目錄??????????0??2012-12-28?19:40??20105333-算法-袁有根-算術編碼?java實現
-----------?---------??----------?-----??----
????????????????96894????????????????????14
- 上一篇:小叮當代碼JAVA.rar
- 下一篇:java 聊天室 計算機網絡
評論
共有 條評論