亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

Micrium-NXP-<b>ucos-i</b>I-LPC

  • 學生成績guanli

    #include<stdio.h> #include<string.h> #include<stdlib.h> #define N 100 int iNumOfStu=0; struct score   {   float math;   float english;   float computer;   }; struct student   {   int number;   char name[20];   struct score sco;   float average;   }; struct student stu[N]; void print_menu(void);//輸出菜單 void choosemenu(void);//菜單選擇 void input_student1(int);//輸入學生信息 void input_student2(void);//輸入總函數 void input_student3(int &,int);//判斷學號是否重復 void input_student4(int,int);//覆蓋原信息 void sort_student3(student s[],int);//按照英語成績排序 void sort_student4(student s[],int);//按照計算機成績排序 void sort_student2(student s[],int);//按照數學成績排序 void sort_student5(student s[],int);//按照平均成績排序 float input_score2(int);//計算學生平均成績 void print_student2(void);//顯示表頭 void print_student3(int);//顯示學生信息 void print_student1(int);//顯示全部學生資料 void sort_student1(void);//排序總函數 void menu(void);//菜單調度總函數 int search_student2(int);//按學號查詢學生信息并輸出 void search_student3(int);//按平均分最高查詢并輸出 void search_student1(void);//查詢總函數 void delete_student2(int,int);//刪除學生信息 void delete_student1(void);//刪除總函數 void change_student2(int);//修改學生資料 void change_student1(void);//修改總函數 void input_score3(int);//統(tǒng)計成績 void input_score1(void);//統(tǒng)計成績總函數 void print_help(void);//輸出幫助信息 void exit_student(void);//退出系統(tǒng) void save_student(student *,int);//保存學生信息 void main()   {   menu();   } void save_student(student *s,int a)//保存學生信息   {   FILE *fp;     if((fp=fopen("d:\\學生信息.txt","wb"))==NULL)       {       printf("不能打開文件!\n");       }     else       {       printf("保存信息到D盤\n");       fprintf(fp,"本班所有學生具體信息如下:\r\n");       fprintf(fp,"  學號       姓名           數學成績       英語成績     計算機成績     平均成績\r\n");       for(int i=0;i<a;i++)         {         fprintf(fp,"%8d%12s%14.2f%14.2f%14.2f%14.2f\n",stu[i].number,stu[i].name,stu[i].sco.math,stu[i].sco.english,stu[i].sco.computer,stu[i].average);         fprintf(fp,"\r\n");         }       fclose(fp);       printf("信息保存成功!\n");       }   } void exit_student(void)//退出系統(tǒng)   {   exit(1);   } void print_help(void)//輸出幫助信息   {   printf("本系統(tǒng)所能容納的最大學生數為%d人\n學生信息保存在D盤根目錄下,保存文件為“學生信息.txt”。\n感謝使用!\n",N);   } void input_score1(void)//統(tǒng)計成績總函數   {   int c;   c=search_student2(iNumOfStu);   printf("學號:%d\n",stu[c].number);   printf("姓名:%s\n",stu[c].name);   input_score3(c);   printf("新成績錄入成功!\n");   stu[c].average=input_score2(c);   } void input_score3(int a)//統(tǒng)計成績   {   printf("數學新成績:");   scanf("%f",&stu[a].sco.math);   printf("英語新成績:");   scanf("%f",&stu[a].sco.english);   printf("計算機新成績:");   scanf("%f",&stu[a].sco.computer);   } void change_student2(int a)//修改學生資料   {   printf("學號:%d----修改為:",stu[a].number);   scanf("%d",&stu[a].number);   getchar();   printf("姓名:%s----修改為:",stu[a].name);   gets(stu[a].name);   printf("數學成績:%.2f----修改為:",stu[a].sco.math);   scanf("%f",&stu[a].sco.math);   printf("英語成績:%.2f----修改為:",stu[a].sco.english);   scanf("%f",&stu[a].sco.english);   printf("計算機成績:%.2f----修改為:",stu[a].sco.computer);   scanf("%f",&stu[a].sco.computer);   } void change_student1(void)//修改總函數   {   int c;   c=search_student2(iNumOfStu);   getchar();   printf("是否要修改此學生信息?(“y”代表是)");   char d;   scanf("%c",&d);   if(d=='y'||d=='Y')     {     change_student2(c);       stu[c].average=input_score2(c);     printf("信息修改成功!\n");     }   } void delete_student1(void)//刪除總函數   {   int c;   c=search_student2(iNumOfStu);   getchar();   printf("是否刪除此條記錄?(“y”代表是)");   char d;   scanf("%c",&d);   if(d=='y'||d=='Y')     {     delete_student2(c,iNumOfStu);     printf("記錄已刪除!\n");     }   } void delete_student2(int a,int b)//刪除學生信息   {   for(int i=a;i<b-1;i++)     {     stu[i]=stu[i+1];     }   --iNumOfStu;   } void search_student1(void)//查詢總函數   {   printf("1、按學號查詢\n2、按平均分最高查詢\n請選擇:");   int c;   scanf("%d",&c);   switch(c)     {     case 1:       {       search_student2(iNumOfStu);       break;       }     case 2:       {       search_student3(iNumOfStu);       break;       }     default: break;     }   } void menu(void)//菜單調度總函數   {   print_menu();   choosemenu();   } void sort_student1(void)//排序總函數   {   printf("1、按數學成績排序\n2、按英語成績排序\n3、按計算機成績排序\n4、按平均成績排序\n請選擇:");   int c;   scanf("%d",&c);   switch(c)     {     case 1:       {       sort_student2(stu,iNumOfStu);       break;       }     case 2:       {       sort_student3(stu,iNumOfStu);       break;       }     case 3:       {       sort_student4(stu,iNumOfStu);       break;       }     case 4:       {       sort_student5(stu,iNumOfStu);       break;       }     default: break;     }   } void print_student1(int a)//顯示全部學生資料   {   printf("本班所有學生具體信息如下\n");   print_student2();   for(int i=0;i<a;i++)     {     print_student3(i);     }   } void print_student3(int a)//顯示學生信息   {   printf("%8d%12s%14.2f%14.2f%14.2f%14.2f\n",stu[a].number,stu[a].name,stu[a].sco.math,stu[a].sco.english,stu[a].sco.computer,stu[a].average);   } void print_student2(void)//顯示表頭   {   printf("  學號       姓名           數學成績       英語成績     計算機成績     平均成績\n");   } void input_student4(int a,int b)//覆蓋原信息   {   stu[a]=stu[b-1];   --iNumOfStu;   } void input_student3(int &a,int b)//判斷學號是否重復   {   if(a!=0)     {     int i=0;     do       {       if(stu[a].number==stu[i].number)         {         printf("此學號代表的學生已錄入\n1、覆蓋原信息\n2、重新輸入\n請選擇:");         int c;         scanf("%d",&c);         switch(c)           {           case 1:             {             input_student4(i,iNumOfStu);             a=iNumOfStu-1;             printf("信息已替換!\n");             break;             }           case 2:             {             printf("請重新輸入學生信息:\n");             input_student1(iNumOfStu-1);             break;             }           default: break;           }         break;         }       ++i;       }       while(i<b-1);     }   } void print_menu(void)//輸出菜單   {   printf("======歡迎來到學生信息管理系統(tǒng)======\n");   printf("      1、輸入學生資料\n");   printf("      2、刪除學生資料\n");   printf("      3、查詢學生資料\n");   printf("      4、修改學生資料\n");   printf("      5、顯示學生資料\n");   printf("      6、統(tǒng)計學生成績\n");   printf("      7、排序學生成績\n");   printf("      8、保存學生資料\n");   printf("      9、獲取幫助信息\n");   printf("      10、退出系統(tǒng)\n");   printf("====================================\n");   printf("請選擇:");   } void input_student2(void)//輸入總函數   {   char end;   printf("請輸入學生信息(在最后一個學生信息錄入完成后以“/”結束錄入):\n");   for(int i=0;(end=getchar())!='/';i++)     {     input_student1(i);     ++iNumOfStu;     input_student3(i,iNumOfStu);     }   for(int j=0;j<iNumOfStu;j++)     {     stu[j].average=input_score2(j);     }   } void input_student1(int a)//輸入學生信息   {   printf("學號:");   scanf("%d",&stu[a].number);   getchar();   printf("姓名:");   gets(stu[a].name);   printf("數學成績:");   scanf("%f",&stu[a].sco.math);   printf("英語成績:");   scanf("%f",&stu[a].sco.english);   printf("計算機成績:");   scanf("%f",&stu[a].sco.computer);   } float input_score2(int a)//計算學生平均成績   {   return (stu[a].sco.math+stu[a].sco.english+stu[a].sco.computer)/3;   } void search_student3(int a)//按平均分最高查詢并輸出   {   int max=0;   for(int i=0;i<a;i++)     {     if(stu[max].average<stu[i].average)       {       max=i;       }     }   print_student2();   print_student3(max);   } void sort_student2(student s[],int a)//按照數學成績排序   {   struct student temp;   for(int i=0;i<a-1;i++)     {     int max=i;     for(int j=i+1;j<a;j++)       if(stu[j].sco.math>stu[max].sco.math)         {         max=j;         }     if(max!=i)       {       temp=stu[max];       stu[max]=stu[i];       stu[i]=temp;       }     }   print_student2();   for(int k=0;k<a;k++)     {     print_student3(k);     }   } void sort_student3(student s[],int a)//按照英語成績排序   {   struct student temp;   for(int i=0;i<a-1;i++)     {     int max=i;     for(int j=i+1;j<a;j++)       if(stu[j].sco.english>stu[max].sco.english)         {         max=j;         }     if(max!=i)       {       temp=stu[max];       stu[max]=stu[i];       stu[i]=temp;       }     }   print_student2();   for(int k=0;k<a;k++)     {     print_student3(k);     }   } void sort_student4(student s[],int a)//按照計算機成績排序   {   struct student temp;   for(int i=0;i<a-1;i++)     {     int max=i;     for(int j=i+1;j<a;j++)       if(stu[j].sco.computer>stu[max].sco.computer)         {         max=j;         }     if(max!=i)       {       temp=stu[max];       stu[max]=stu[i];       stu[i]=temp;       }     }   print_student2();   for(int k=0;k<a;k++)     {     print_student3(k);     }   } void sort_student5(student s[],int a)//按照平均成績排序   {   struct student temp;   for(int i=0;i<a-1;i++)     {     int max=i;     for(int j=i+1;j<a;j++)       if(stu[j].average>stu[max].average)         {         max=j;         }     if(max!=i)       {       temp=stu[max];       stu[max]=stu[i];       stu[i]=temp;       }     }   print_student2();   for(int k=0;k<a;k++)     {     print_student3(k);     }   } int search_student2(int a)//按照學號查找學生并輸出   {   int num;   int c;   printf("請輸入要查詢的學號:");   scanf("%d",&num);   for(int i=0;i<a;i++)     {     if(num==stu[i].number)       {       c=i;       }     }   printf("此學生的信息是:\n");   print_student2();   print_student3(c);   return c;   } void choosemenu(void)//菜單選擇   {   int i;   scanf("%d",&i);   switch(i)     {     case 1:       {       input_student2();       printf("按回車鍵返回主菜單");       getchar();       getchar();       menu();       break;       }     case 2:       {       delete_student1();       printf("按回車鍵返回主菜單");       getchar();       getchar();       menu();       break;       }     case 3:       {       search_student1();       printf("按回車鍵返回主菜單");       getchar();       getchar();       menu();       break;       }     case 4:       {       change_student1();       printf("按回車鍵返回主菜單");       getchar();       getchar();       menu();       break;       }     case 5:       {       print_student1(iNumOfStu);       printf("按回車鍵返回主菜單");       getchar();       getchar();       menu();       break;       }     case 6:       {       input_score1();       printf("按回車鍵返回主菜單");       getchar();       getchar();       menu();       break;       }     case 7:       {       sort_student1();       printf("按回車鍵返回主菜單");       getchar();       getchar();       menu();       break;       }     case 8:       {       save_student(stu,iNumOfStu);       printf("按回車鍵返回主菜單");       getchar();       getchar();       menu();       break;       }     case 9:       {       print_help();       printf("按回車鍵返回主菜單");       getchar();       getchar();       menu();       break;       }     case 10:       {       exit_student();       }     default: break;     }   }         運行結果:                         源文件下載地址: http://115.com/file/clnq138g#一個簡單的學生成績管理系統(tǒng).rar (請將此地址復制到瀏覽器地址欄中訪問下載頁面)   #include<stdio.h> #include<string.h> #include<stdlib.h> #define N 100 int iNumOfStu=0; struct score   {   float math;   float english;   float computer;   }; struct student   {   int number;   char name[20];   struct score sco;   float average;   }; struct student stu[N]; void print_menu(void);//輸出菜單 void choosemenu(void);//菜單選擇 void input_student1(int);//輸入學生信息 void input_student2(void);//輸入總函數 void input_student3(int &,int);//判斷學號是否重復 void input_student4(int,int);//覆蓋原信息 void sort_student3(student s[],int);//按照英語成績排序 void sort_student4(student s[],int);//按照計算機成績排序 void sort_student2(student s[],int);//按照數學成績排序 void sort_student5(student s[],int);//按照平均成績排序 float input_score2(int);//計算學生平均成績 void print_student2(void);//顯示表頭 void print_student3(int);//顯示學生信息 void print_student1(int);//顯示全部學生資料 void sort_student1(void);//排序總函數 void menu(void);//菜單調度總函數 int search_student2(int);//按學號查詢學生信息并輸出 void search_student3(int);//按平均分最高查詢并輸出 void search_student1(void);//查詢總函數 void delete_student2(int,int);//刪除學生信息 void delete_student1(void);//刪除總函數 void change_student2(int);//修改學生資料 void change_student1(void);//修改總函數 void input_score3(int);//統(tǒng)計成績 void input_score1(void);//統(tǒng)計成績總函數 void print_help(void);//輸出幫助信息 void exit_student(void);//退出系統(tǒng) void save_student(student *,int);//保存學生信息 void main()   {   menu();   } void save_student(student *s,int a)//保存學生信息   {   FILE *fp;     if((fp=fopen("d:\\學生信息.txt","wb"))==NULL)       {       printf("不能打開文件!\n");       }     else       {       printf("保存信息到D盤\n");       fprintf(fp,"本班所有學生具體信息如下:\r\n");       fprintf(fp,"  學號       姓名           數學成績       英語成績     計算機成績     平均成績\r\n");       for(int i=0;i<a;i++)         {         fprintf(fp,"%8d%12s%14.2f%14.2f%14.2f%14.2f\n",stu[i].number,stu[i].name,stu[i].sco.math,stu[i].sco.english,stu[i].sco.computer,stu[i].average);         fprintf(fp,"\r\n");         }       fclose(fp);       printf("信息保存成功!\n");       }   } void exit_student(void)//退出系統(tǒng)   {   exit(1);   } void print_help(void)//輸出幫助信息   {   printf("本系統(tǒng)所能容納的最大學生數為%d人\n學生信息保存在D盤根目錄下,保存文件為“學生信息.txt”。\n感謝使用!\n",N);   } void input_score1(void)//統(tǒng)計成績總函數   {   int c;   c=search_student2(iNumOfStu);   printf("學號:%d\n",stu[c].number);   printf("姓名:%s\n",stu[c].name);   input_score3(c);   printf("新成績錄入成功!

    標簽: c語言

    上傳時間: 2019-06-09

    上傳用戶:啊的撒旦

  • C語言編寫雅可比迭代

    # include<stdio.h> # include<math.h> # define N 3 main(){     float NF2(float *x,float *y);     float A[N][N]={{10,-1,-2},{-1,10,-2},{-1,-1,5}};     float b[N]={7.2,8.3,4.2},sum=0;     float x[N]= {0,0,0},y[N]={0},x0[N]={};     int i,j,n=0;     for(i=0;i<N;i++)     {         x[i]=x0[i];     }     for(n=0;;n++){                 //計算下一個值     for(i=0;i<N;i++){         sum=0;         for(j=0;j<N;j++){             if(j!=i){                 sum=sum+A[i][j]*x[j];             }         }         y[i]=(1/A[i][i])*(b[i]-sum);         //sum=0;     }     //判斷誤差大小         if(NF2(x,y)>0.01){                 for(i=0;i<N;i++){         x[i]=y[i];     }     }             else             break;     }     printf("經過%d次雅可比迭代解出方程組的解:\n",n+1);     for(i=0;i<N;i++){         printf("%f      ",y[i]);     } } //求兩個向量差的二范數函數 float NF2(float *x,float *y){ int i; float z,sum1=0; for(i=0;i<N;i++){     sum1=sum1+pow(y[i]-x[i],2); } z=sqrt(sum1); return z; }

    標簽: C語言 編寫 迭代

    上傳時間: 2019-10-13

    上傳用戶:大萌萌撒

  • 多元散射校正MSC

    function [R,k,b] = msc(A) % 多元散射校正 % 輸入待處理矩陣,通過多元散射校正,求得校正后的矩陣 %% 獲得矩陣行列數 [m,n] = size(A); %% 求平均光譜 M = mean(A,2); %% 利用最小二乘法求每一列的斜率k和截距b for i = 1:n a = polyfit(M,A(:,i),1); if i == 1 k = a(1); b = a(2); else k = [k,a(1)]; b = [b,a(2)]; end end %% 求得結果 for i = 1:n Ai = (A(:,i)-b(i))/k(i); if i == 1 R = Ai; else R = [R,Ai]; end end

    標簽: MSC 多元 散射 校正

    上傳時間: 2020-03-12

    上傳用戶:15275387185

  • 三相電子電能表檢定裝置

    基本誤差 在相關國標、規(guī)程規(guī)定的參比條件下,輸出電流為50mA~120A裝置的最大允許誤差(含標準表)小于0.01%,輸出電流為1mA~50mA裝置的最大允許誤差(含標準表)小于0.015%。 可實現三只三相電能表的三相四線及三相三線的誤差測量;可測試無功電能基本誤差。 1.2.3.2 測量重復性 裝置的測量重復性用實驗標準差表征,在進行不少于10次的重復測量,其測量結果的標準偏差估計值s不超過0.001%。 1.2.3.3  輸出電量 1.2.3.3.1 電壓電流量程 輸出電壓范圍:3×(57.7V~380V); 每檔電壓輸出瞬間及相位切換時不允許有尖峰。每檔電壓輸出上限達120%Un。  輸出電流范圍:3×(0.001A~100A); 輸出電流范圍上限要求達到120A。每檔電流輸出瞬間及相位切換時不允許有尖峰。每檔電流輸出上限達120%In。 1.2.3.3.2 輸出負載容量 三表位:電壓輸出:每相≥150VA         電流輸出:   每相≥300VA 1.2.3.3.3 輸出電量調節(jié) (1)  電壓、電流調節(jié): 調節(jié)范圍:0%~120%                   調節(jié)細度:優(yōu)于0.005%。 (2)  相位調節(jié): 調節(jié)范圍:0°~360°                 調節(jié)細度:優(yōu)于0.01°。 (3) 頻率調節(jié): 調節(jié)范圍:45Hz~65Hz                 調節(jié)細度:優(yōu)于0.001Hz。 1.2.3.3.4 輸出功率穩(wěn)定度:<0.005% / 3min . 穩(wěn)定度按JJG597的5.2.3.13方法計算。 1.2.3.3.5 輸出電壓電流失真度 裝置輸出電壓電流失真度范圍:小于0.1%。 1.2.3.3.6起動電流:裝置具有起動電流調整、測量功能,能輸出0.5mA的起動電流。 起動電流的測量誤差≤ ?5%,起動功率的測量誤差 ≤ ?10%。 1.2.3.3.7三相電量對稱性 任一相(或線)電壓和相(或線)電壓平均值之差不大于±0.1%;各相電流與其平均值之差不大于±0.2%;任一相電壓與對應相電流間的相位角之差不大于0.5°;任一相電壓(電流)與另一相電壓(電流)間相位角與120°之差不大于0.5°。 1.2.3.4 多路隔離輸出的裝置各路輸出負載影響應符合JJG597—2005中 3.8條的規(guī)定。 1.2.3.5 確定同名端鈕間電位差應符合JJG597—2005中3.9條的規(guī)定。 1.2.3.6 多路輸出的一致性應符合JJG597—2005中3.7條的規(guī)定。 1.2.3.7 監(jiān)視示值的誤差 監(jiān)視儀表應有足夠的測量范圍,電壓示值誤差限為±0.2%,電流、功率示值誤差限為±0.2%,相位示值誤差限為±0.3°,頻率示值誤差限為±0.1%,啟動電流和啟動功率的監(jiān)視示值誤差不超過5%(啟動電流為1mA時的監(jiān)視示值誤差也不應超過5%)。各監(jiān)視示值的分辨力應不超過其對應誤差限的1/5。 1.2.3.8 具有消除自激的功能。可自動消除開機或關機時產生的尖脈沖。 1.2.3.9 裝置的磁場 由裝置產生的在被檢表位置的磁感應強度不大于下列數值: I≤10A時,B≤0.0025mT; I=200A時,B≤0.05mT;10A到200A之間的磁感應強度極限值可按內插法求得。 1.2.3.10  電磁兼容性  (1)電磁騷擾的抗擾度 裝置的設計能保證在傳導和輻射的電磁騷擾以及靜電放電的影響下不損壞或不受實質性影響(如元器件損毀、控制系統(tǒng)死機、精度出現變化等影響正常檢定工作的現象),騷擾量為靜電放電、射頻電磁場。 (2)無線電干擾抑制 裝置不發(fā)生能干擾其他設備的傳導和輻射噪聲。 1.2.3.11 穩(wěn)定性變差 (1)短期穩(wěn)定性變差 裝置基本誤差合格的同時,在15min內的基本誤差最大變化值(連續(xù)測量7h),不大于裝置對應最大允許誤差的20%。 (2)檢定周期內變差 檢定周期內裝置基本誤差合格的同時,其最大變化值,不大于0.01%。 1.2.3.12 安全 裝置的絕緣強度試驗要求和與安全有關的結構要求符合GB 4793.1的規(guī)定。 1.2.3.13 脈沖輸出 同時檢測三路被檢脈沖:顯示當前誤差平均誤差和標準偏差;同時檢測的被檢脈沖的常數、工作方式和脈沖個數,可完全不同;誤差測量所需要的輸入參數的位數,應能覆蓋目前各種標準表和的檢測需要。對每一表位應有高頻、低頻脈沖信號的BNC接收端口,能接收≤600kHz的有/無源脈沖(5-30V脈沖幅值)。 1.2.3.14供電電源 供電電源在3×220V/380V?10?,50Hz?2Hz裝置正常工作。

    標簽: 三相 電子電能表 檢定裝置

    上傳時間: 2021-06-15

    上傳用戶:li091122

  • AD19快捷鍵小結

    走線狀態(tài),+tab,改變線寬;2d 線狀態(tài),+shift+tab ,切換倒角方式;crtl+左鍵 :高亮選中網絡;左下角雙擊,層管理,顯示或隱藏某一層;旋轉:Space;X 軸鏡像:X;Y 軸鏡像:Y;板層管理:L;柵格設置:G;單位進制切換:Q;對齊-水平:A,D;對齊-垂直:A,I,I,Enter;對齊-頂部:A,T;對齊-底部:A,B;對齊-左側:A,L;對齊-右側:A,R;設計-類設置:D,C;設計-板層管理:D,K;

    標簽: Altium Designer

    上傳時間: 2022-04-17

    上傳用戶:trh505

  • TCPIP詳解 卷2實現

    1.2 源代碼表示不考慮主題,列舉 15 000行源代碼本身就是一件難事。下面是所有源代碼都使用的文本格式:1.2.1 將擁塞窗口設置為13 8 7 - 3 8 8 這是文件t c p _ s u b r . c中的函數t c p _ q u e n c h。這些源文件名引用4 . 4 B S D - L i t e發(fā)布的文件。4 . 4 B S D在1 . 1 3節(jié)中討論。每個非空白行都有編號。正文所描述的代碼的起始和結束位置的行號記于行開始處,如本段所示。有時在段前有一個簡短的描述性題頭,對所描述的代碼提供一個概述。這些源代碼同4 . 4 B S D - L i t e發(fā)行版一樣,偶爾也包含一些錯誤,在遇到時我們會提出來并加以討論,偶爾還包括一些原作者的編者評論。這些代碼已通過了 G N U縮進程序的運行,使它們從版面上看起來具有一致性。制表符的位置被設置成 4個欄的界線使得這些行在一個頁面中顯示得很合適。在定義常量時,有些 # i f d e f語句和它們的對應語句 # e n d i f被刪去(如:G A T E W A Y和M R O U T I N G,因為我們假設系統(tǒng)被作為一個路由器或多播路由器 )。所有r e g i s t e r說明符被刪去。有些地方加了一些注釋,并且一些注釋中的印刷錯誤被修改了,但代碼的其他部分被保留下來。這些函數大小不一,從幾行 (如前面的t c p _ q u e n c h)到最大11 0 0行(t c p _ i n p u t)。超過大約4 0行的函數一般被分成段,一段一段地顯示。雖然盡量使代碼和相應的描述文字放在同一頁或對開的兩頁上,但為了節(jié)約版面,不可能完全做到。本書中有很多對其他函數的交叉引用。為了避免給每個引用都添加一個圖號和頁碼,書封底內頁中有一個本書中描述的所有函數和宏的字母交叉引用表和描述的起始頁碼。因為本書的源代碼來自公開的 4 . 4 B S D _ L i t e版,因此很容易獲得它的一個拷貝:附錄 B詳細說明了各種方法。當你閱讀文章時,有時它會幫助你搜索一個在線拷貝 [例如U n i x程序grep ( 1 )]。描述一個源代碼模塊的各章通常以所討論的源文件的列表開始,接著是全局變量、代碼維護的相關統(tǒng)計以及一個實際系統(tǒng)的一些例子統(tǒng)計,最后是與所描述協(xié)議相關的 S N M P變量。全局變量的定義通常跨越各種源文件和頭文件,因此我們將它們集中到的一個表中以便于參考。這樣顯示所有的統(tǒng)計,簡化了后面當統(tǒng)計更新時對代碼的討論。卷 1的第2 5章提供了S N M P的所有細節(jié)。我們在本文中關心的是由內核中的 T C P / I P例程維護的、支持在系統(tǒng)上運行的S N M P代理的信息。TCP IP詳解 卷1協(xié)議 :http://dl.21ic.com/download/tcpip-288223.html TCP IP詳解 卷2實現 :http://dl.21ic.com/download/tcpip-288224.html TCPIP詳解卷三:TCP事務協(xié)議,HTTP,NNTP和UNIX域協(xié)議 :http://dl.21ic.com/download/tcpip-288225.html 

    標簽: tcp-ip 實現

    上傳時間: 2022-07-27

    上傳用戶:

  • 基于有源電力濾波器諧波與無功補償電流的控制算法研究.rar

    隨著電力電子裝置越加廣泛的投入使用,電能得到了更加充分的應用,但是伴隨而來的是越來越多的非線性、沖擊性負載的投入使用,電網中諧波污染日益嚴重,在針對此類諧波抑制和無功補償裝置的研究中,電力有源濾波器APF得到了廣泛應用. 與傳統(tǒng)無源濾波器比較,有源電力濾波器具有動態(tài)響應特性好,濾波特性不受系統(tǒng)阻抗的影響等優(yōu)勢.而APF所采用的諧波電流檢測方法,直接決定了諧波的檢測精度和跟蹤速度,是決定諧波補償特性的關鍵.本論文重點研究了諧波電流檢測方法. 在眾多有源濾波器的諧波及無功電流檢測算法中,基于三相瞬時無功功率理論的應用最為廣泛.應用此理論的i<,p>-i<,q>島檢測方法計算簡單,具有較好實時性,適合電流快速檢測的優(yōu)點;但同時也存在很多局限性. 本文首先通過分析、比較總結出各類APF的優(yōu)缺點和適用性,系統(tǒng)地研究了有源電力濾波器的兩個關鍵技術:諧波電流檢測和PWM信號發(fā)生器的控制策略;在此基礎上,針對在負載電流有較大突變時補償電路會產生較大畸變影響補償效果的問題,以及三相電壓畸變時i<,p>-i<,q>檢測法存在的誤差等問題,從基于DSP控制的三相四線制并聯(lián)型有源電力濾波器的結構出發(fā)進行優(yōu)化設計,提出了一種改進的i<,p>-i<,q>檢測法,在該檢測法中增加了平衡.APF直流側電容總電壓和上下電容電壓的閉環(huán)控制,以消除負載電流突變時產生的畸變;并采用一種新穎的基于低通濾波的A相正序電壓提取單元來代替原始的i<,p>-i<,q>檢測法的PLL鎖相環(huán),在三相電壓畸變情況下仍可以正確提取A相正序電壓,以精確檢測出諧波和無功電流. 最后通過MATLAB6.5對系統(tǒng)進行了仿真驗證,仿真結果表明該算法能有效保證檢測效果的實時性和精確性,證明了該算法的可行性.

    標簽: 有源電力濾波器 無功補償 控制

    上傳時間: 2013-04-24

    上傳用戶:jackgao

  • 可重構FPGA通訊糾錯進化電路及其實現

    ASIC對產品成本和靈活性有一定的要求.基于MCU方式的ASIC具有較高的靈活性和較低的成本,然而抗干擾性和可靠性相對較低,運算速度也受到限制.常規(guī)ASIC的硬件具有速度優(yōu)勢和較高的可靠性及抗干擾能力,然而不是靈活性較差,就是成本較高.與傳統(tǒng)硬件(CHW)相比,具有一定可配置特性的場可編程門陣列(FPGA)的出現,使建立在可再配置硬件基礎上的進化硬件(EHW)成為智能硬件電路設計的一種新方法.作為進化算法和可編程器件技術相結合的產物,可重構FPGA的研究屬于EHW的研究范疇,是研究EHW的一種具體的實現方法.論文認為面向分類的專用類可重構FPGA(ASR-FPGA)的研究,可使可重構電路粒度劃分的針對性更強、設計更易實現.論文研究的可重構FPGA的BCH通訊糾錯碼進化電路是一類ASR-FPGA電路的具體方法,具有一定的實用價值.論文所做的工作主要包括:(1)BCH編譯碼電路的設計——求取實驗用BCH碼的生成多項式和校驗多項式及其相應的矩陣并構造實驗用BCH碼;(2)建立基于可重構FPGA的基核——構造具有可重構特性的硬件功能單元,以此作為可重構BCH碼電路的設計基礎;(3)構造實現可重構BCH糾錯碼電路的方法——建立可重構糾錯碼硬件電路算法并進行實驗驗證;(4)在可重構糾錯碼電路基礎上,構造進化硬件控制功能塊的結構,完成各進化RLA控制模塊的驗證和實現.課題是將可重構BCH碼的編譯碼電路的實現作為一類ASR-FPGA的研究目標,主要成果是根據可編程邏輯電路的特點,選擇一種可編程樹的電路模型,并將它作為可重構FPGA電路的基核T;通過對循環(huán)BCH糾錯碼的構造原理和電路結構的研究,將基核模型擴展為能滿足糾錯碼電路需要的糾錯碼基本功能單元T;以T作為再劃分的基本單元,對FPGA進行"格式化",使T規(guī)則排列在FPGA上,通過對T的控制端的不同配置來實現糾錯碼的各個功能單元;在可重構基核的基礎上提出了糾錯碼重構電路的嵌套式GA理論模型,將嵌套式GA的染色體串作為進化硬件描述語言,通過轉換為相應的VHDL語言描述以實現硬件電路;采用RLA模型的有限狀態(tài)機FSM方式實現了可重構糾錯碼電路的EHW的各個控制功能塊.在實驗方面,利用Xilinx FPGA開發(fā)系統(tǒng)中的VHDL語言和電路圖相結合的設計方法建立了循環(huán)糾錯碼基核單元的可重構模型,進行循環(huán)糾錯BCH碼的電路和功能仿真,在Xilinx公司的Virtex600E芯片進行了FPGA實現.課題在研究模型上選取的是比較基本的BCH糾錯碼電路,立足于解決基于可重構FPGA核的設計的基本問題.課題的研究成果及其總結的一套ASR-FPGA進化硬件電路的設計方法對實際的進化硬件設計具有一定的實際指導意義,提出的基于專用類基核FPGA電路結構的研究方法為新型進化硬件的器件結構的設計也可提供一種借鑒.

    標簽: FPGA 可重構 通訊 糾錯

    上傳時間: 2013-07-01

    上傳用戶:myworkpost

  • H.264完整的C語言代碼和DCT的代碼

    ·詳細說明:H264完整的C語言代碼和DCT的代碼以及一個可修改的Test框架 文件列表:   mm   ..\dct   ..\...\dct-old.i   ..\...\dct1c.i   ..\...\dct1c.sim   ..\...\dct2d-old.i   ..\...\dct8c.i   .

    標簽: 264 DCT C語言代碼 代碼

    上傳時間: 2013-06-14

    上傳用戶:cy_ewhat

  • Clarke和Park變換在DSP上的實現

    ·摘要:  介紹了通過Clarke和Park變換,可將靜止坐標系中三相交流電流ia、ib和ic變換成靜止坐標系中的二相交流電流iα、iβ,再將iα、iβ變換成與轉子磁鏈同步旋轉的坐標系中的二相直流電流isb、isq,給出Clarke和Park變換的數學表達式,在數據信號處理器(DSP)TMS320C240上實現了該種變換.

    標簽: Clarke Park DSP 變換

    上傳時間: 2013-06-15

    上傳用戶:liuwei6419

主站蜘蛛池模板: 商河县| 沁源县| 赤峰市| 龙井市| 天柱县| 堆龙德庆县| 福清市| 宜城市| 木兰县| 余干县| 巢湖市| 应城市| 万全县| 农安县| 西平县| 乐平市| 师宗县| 沁源县| 达拉特旗| 手游| 克拉玛依市| 高阳县| 曲阜市| 五莲县| 柏乡县| 武城县| 三穗县| 高雄市| 胶州市| 米林县| 仙游县| 枞阳县| 南宫市| 苗栗市| 图们市| 崇州市| 安岳县| 辽宁省| 会理县| 永靖县| 扶绥县|