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

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

半導(dǎo)體產(chǎn)業(yè)

  • 學生成績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);//統計成績 void input_score1(void);//統計成績總函數 void print_help(void);//輸出幫助信息 void exit_student(void);//退出系統 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)//退出系統   {   exit(1);   } void print_help(void)//輸出幫助信息   {   printf("本系統所能容納的最大學生數為%d人\n學生信息保存在D盤根目錄下,保存文件為“學生信息.txt”。\n感謝使用!\n",N);   } void input_score1(void)//統計成績總函數   {   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)//統計成績   {   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("======歡迎來到學生信息管理系統======\n");   printf("      1、輸入學生資料\n");   printf("      2、刪除學生資料\n");   printf("      3、查詢學生資料\n");   printf("      4、修改學生資料\n");   printf("      5、顯示學生資料\n");   printf("      6、統計學生成績\n");   printf("      7、排序學生成績\n");   printf("      8、保存學生資料\n");   printf("      9、獲取幫助信息\n");   printf("      10、退出系統\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#一個簡單的學生成績管理系統.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);//統計成績 void input_score1(void);//統計成績總函數 void print_help(void);//輸出幫助信息 void exit_student(void);//退出系統 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)//退出系統   {   exit(1);   } void print_help(void)//輸出幫助信息   {   printf("本系統所能容納的最大學生數為%d人\n學生信息保存在D盤根目錄下,保存文件為“學生信息.txt”。\n感謝使用!\n",N);   } void input_score1(void)//統計成績總函數   {   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

    上傳用戶:啊的撒旦

  • 數組子系統

    #include <stdio.h> #include <stdlib.h> #define SMAX 100 typedef struct SPNode { int i,j,v; }SPNode; struct sparmatrix { int rows,cols,terms; SPNode data [SMAX]; }; sparmatrix CreateSparmatrix() { sparmatrix A; printf("\n\t\t請輸入稀疏矩陣的行數,列數和非零元素個數(用逗號隔開):"); scanf("%d,%d,%d",&A.cols,&A.terms); for(int n=0;n<=A.terms-1;n++) { printf("\n\t\t輸入非零元素值(格式:行號,列號,值):"); scanf("%d,%d,%d",&A.data[n].i,&A.data[n].j,&A.data[n].v); } return A; } void ShowSparmatrix(sparmatrix A) { int k; printf("\n\t\t"); for(int x=0;x<=A.rows-1;x++) { for(int y=0;y<=A.cols-1;y++) { k=0; for(int n=0;n<=A.terms-1;n++) { if((A.data[n].i-1==x)&&(A.data[n].j-1==y)) { printf("%8d",A.data[n].v); k=1; } } if(k==0) printf("%8d",k); } printf("\n\t\t"); } } void sumsparmatrix(sparmatrix A) { SPNode *p; p=(SPNode*)malloc(sizeof(SPNode)); p->v=0; int k; k=0; printf("\n\t\t"); for(int x=0;x<=A.rows-1;x++) { for(int y=0;y<=A.cols-1;y++) { for(int n=0;n<=A.terms;n++) { if((A.data[n].i==x)&&(A.data[n].j==y)&&(x==y)) { p->v=p->v+A.data[n].v; k=1; } } } printf("\n\t\t"); } if(k==1) printf("\n\t\t對角線元素的和::%d\n",p->v); else printf("\n\t\t對角線元素的和為::0"); } int main() { int ch=1,choice; struct sparmatrix A; A.terms=0; while(ch) { printf("\n"); printf("\n\t\t      稀疏矩陣的三元組系統       "); printf("\n\t\t*********************************"); printf("\n\t\t      1------------創建          "); printf("\n\t\t      2------------顯示          "); printf("\n\t\t      3------------求對角線元素和"); printf("\n\t\t      4------------返回          "); printf("\n\t\t*********************************"); printf("\n\t\t請選擇菜單號(0-3):"); scanf("%d",&choice); switch(choice) { case 1: A=CreateSparmatrix(); break; case 2: ShowSparmatrix(A); break; case 3: SumSparmatrix(A); break; default: system("cls"); printf("\n\t\t輸入錯誤!請重新輸入!\n"); break; } if (choice==1||choice==2||choice==3) { printf("\n\t\t"); system("pause"); system("cls"); } else system("cls"); } }

    標簽: 數組 子系統

    上傳時間: 2020-06-11

    上傳用戶:ccccy

  • 抗干擾/抗噪/高穩定性LCD屏顯示驅動,抗干擾LCD驅動段碼屏芯片:VK2C21A/B/C/D

    產品型號:VK2C21A/B/C/D 產品品牌:VINKA/永嘉微/永嘉微電 封裝形式:SOP28/24/20/16 裸片:DICE(邦定COB)/COG(邦定玻璃用) 產品年份:新年份 聯 系 人:許碩  原廠直銷,工程服務,技術支持,價格最具優勢!QT374 VK2C21A/B/C/D概述: VK2C21是一個點陣式存儲映射的LCD驅動器,可支持最大80點(20SEGx4COM)或者最大128點(16SEGx8COM)的LCD屏。單片機可通過I2C接口配置顯示參數和讀寫顯示數據,也可通過指令進入省電模式。其高抗干擾,低功耗的特性適用于水電氣表以及工控儀表類產品。 特點: ★  工作電壓 2.4-5.5V ★  內置32 kHz RC振蕩器 ★  偏置電壓(BIAS)可配置為1/3、1/4 ★  COM周期(DUTY)可配置為1/4、1/8 ★  內置顯示RAM為20x4位、16x8位 ★  幀頻可配置為80Hz、160Hz ★  省電模式(通過關顯示和關振蕩器進入)

    標簽: LCD VK2C 抗干擾 21 高穩定 顯示驅動 驅動 芯片

    上傳時間: 2022-04-08

    上傳用戶:2937735731

  • VK2C21一款存儲器映射和多功能抗干擾LCD 控制 / 驅動顯示芯片:VK2C21A/B/C/D

    產品型號:VK2C21A/B/C/D 產品品牌:VINKA/永嘉微/永嘉微電 封裝形式:SOP28/24/20/16 裸片:DICE(邦定COB)/COG(邦定玻璃用) 產品年份:新年份 聯 系 人:許碩  原廠直銷,工程服務,技術支持,價格最具優勢! VK2C21A/B/C/D概述: VK2C21是一個點陣式存儲映射的LCD驅動器,可支持最大80點(20SEGx4COM)或者最大128點(16SEGx8COM)的LCD屏。單片機可通過I2C接口配置顯示參數和讀寫顯示數據,也可通過指令進入省電模式。其高抗干擾,低功耗的特性適用于水電氣表以及工控儀表類產品。 特點: ★  工作電壓 2.4-5.5V ★  內置32 kHz RC振蕩器 ★  偏置電壓(BIAS)可配置為1/3、1/4 ★  COM周期(DUTY)可配置為1/4、1/8 ★  內置顯示RAM為20x4位、16x8位 ★  幀頻可配置為80Hz、160Hz ★  省電模式(通過關顯示和關振蕩器進入)

    標簽: 21 VK2C C21 LCD VK2 VK 2C 存儲器 多功能 映射

    上傳時間: 2022-04-08

    上傳用戶:2937735731

  • VK2C21A/B/C/D大量應用于抗干擾環境LCD液晶驅動(裸片可訂貨)

    產品型號:VK2C21A/B/C/D 產品品牌:VINKA/永嘉微/永嘉微電 封裝形式:SOP28/24/20/16 裸片:DICE(邦定COB)/COG(邦定玻璃用) 產品年份:新年份 聯 系 人:許碩  原廠直銷,工程服務,技術支持,價格最具優勢!QT446 VK2C21A/B/C/D概述: VK2C21是一個點陣式存儲映射的LCD驅動器,可支持最大80點(20SEGx4COM)或者最大128點(16SEGx8COM)的LCD屏。單片機可通過I2C接口配置顯示參數和讀寫顯示數據,也可通過指令進入省電模式。其高抗干擾,低功耗的特性適用于水電氣表以及工控儀表類產品。 特點: ★  工作電壓 2.4-5.5V ★  內置32 kHz RC振蕩器 ★  偏置電壓(BIAS)可配置為1/3、1/4 ★  COM周期(DUTY)可配置為1/4、1/8 ★  內置顯示RAM為20x4位、16x8位 ★  幀頻可配置為80Hz、160Hz ★  省電模式(通過關顯示和關振蕩器進入)

    標簽: VK2C 21 LCD 應用于 抗干擾 環境 液晶驅動

    上傳時間: 2022-06-07

    上傳用戶:2937735731

  • 工業儀表顯示,收音機LCD驅動,音箱/音響LCD段碼屏驅動:VK2C21A/B/C/D(裸片可訂貨)

    產品型號:VK2C21A/B/C/D 產品品牌:VINKA/永嘉微/永嘉微電 封裝形式:SOP28/24/20/16 裸片:DICE(邦定COB)/COG(邦定玻璃用) 產品年份:新年份 聯 系 人:許碩  Q Q:191 888 5898 聯系手機:18898582398(信) 原廠直銷,工程服務,技術支持,價格最具優勢!QT459 VK2C21A/B/C/D概述: VK2C21是一個點陣式存儲映射的LCD驅動器,可支持最大80點(20SEGx4COM)或者最大128點(16SEGx8COM)的LCD屏。單片機可通過I2C接口配置顯示參數和讀寫顯示數據,也可通過指令進入省電模式。其高抗干擾,低功耗的特性適用于水電氣表以及工控儀表類產品。 特點: ★  工作電壓 2.4-5.5V ★  內置32 kHz RC振蕩器 ★  偏置電壓(BIAS)可配置為1/3、1/4 ★  COM周期(DUTY)可配置為1/4、1/8 ★  內置顯示RAM為20x4位、16x8位 ★  幀頻可配置為80Hz、160Hz ★  省電模式(通過關顯示和關振蕩器進入)

    標簽: VK2C21 VK2C21A VK2C21B VK2C21C VK2C21D LCD抗干擾段碼屏驅動 段碼屏驅動抗干擾

    上傳時間: 2022-06-09

    上傳用戶:2937735731

  • 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發布的文件。4 . 4 B S D在1 . 1 3節中討論。每個非空白行都有編號。正文所描述的代碼的起始和結束位置的行號記于行開始處,如本段所示。有時在段前有一個簡短的描述性題頭,對所描述的代碼提供一個概述。這些源代碼同4 . 4 B S D - L i t e發行版一樣,偶爾也包含一些錯誤,在遇到時我們會提出來并加以討論,偶爾還包括一些原作者的編者評論。這些代碼已通過了 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,因為我們假設系統被作為一個路由器或多播路由器 )。所有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行的函數一般被分成段,一段一段地顯示。雖然盡量使代碼和相應的描述文字放在同一頁或對開的兩頁上,但為了節約版面,不可能完全做到。本書中有很多對其他函數的交叉引用。為了避免給每個引用都添加一個圖號和頁碼,書封底內頁中有一個本書中描述的所有函數和宏的字母交叉引用表和描述的起始頁碼。因為本書的源代碼來自公開的 4 . 4 B S D _ L i t e版,因此很容易獲得它的一個拷貝:附錄 B詳細說明了各種方法。當你閱讀文章時,有時它會幫助你搜索一個在線拷貝 [例如U n i x程序grep ( 1 )]。描述一個源代碼模塊的各章通常以所討論的源文件的列表開始,接著是全局變量、代碼維護的相關統計以及一個實際系統的一些例子統計,最后是與所描述協議相關的 S N M P變量。全局變量的定義通常跨越各種源文件和頭文件,因此我們將它們集中到的一個表中以便于參考。這樣顯示所有的統計,簡化了后面當統計更新時對代碼的討論。卷 1的第2 5章提供了S N M P的所有細節。我們在本文中關心的是由內核中的 T C P / I P例程維護的、支持在系統上運行的S N M P代理的信息。TCP IP詳解 卷1協議 :http://dl.21ic.com/download/tcpip-288223.html TCP IP詳解 卷2實現 :http://dl.21ic.com/download/tcpip-288224.html TCPIP詳解卷三:TCP事務協議,HTTP,NNTP和UNIX域協議 :http://dl.21ic.com/download/tcpip-288225.html 

    標簽: tcp-ip 實現

    上傳時間: 2022-07-27

    上傳用戶:

  • matlab教程

    M AT L A B是一個可視化的計算程序,被廣泛地使用于從個人計算機到超級計算機范圍內 的各種計算機上。 M AT L A B包括命令控制、可編程,有上百個預先定義好的命令和函數。這些函數能通過 用戶自定義函數進一步擴展。 M AT L A B有許多強有力的命令。例如, M AT L A B能夠用一個單一的命令求解線性系統, 能完成大量的高級矩陣處理。 M AT L A B有強有力的二維、三維圖形工具。 M AT L A B能與其他程序一起使用。例如, M AT L A B的圖形功能,可以在一個 F O RT R A N 程序中完成可視化計

    標簽: matlab 教程

    上傳時間: 2013-04-24

    上傳用戶:xinshou123456

  • 數字陷波器的設計

    陷波器是無限沖擊響應(IIR)數字濾波器,該濾波器可以用以下常系數線性差分方程表示:ΣΣ==−−−=MiNiiiinybinxany01)()()( (1)式中: x(n)和y(n)分別為輸人和輸出信號序列;和為濾波器系數。 iaib對式(1)兩邊進行z變換,得到數字濾波器的傳遞函數為: ΠΠΣΣ===−=−−−==NiiMiiNiiiMiiipzzzzbzazH1100)()()( (2)式中:和分別為傳遞函數的零點和極點。 izip由傳遞函數的零點和極點可以大致繪出頻率響應圖。在零點處,頻率響應出現極小值;在極點處,頻率響應出現極大值。因此可以根據所需頻率響應配置零點和極點,然后反向設計帶陷數字濾波器。考慮一種特殊情況,若零點在第1象限單位圓上,極點在單位圓內靠近零點的徑向上。為了防止濾波器系數出現復數,必須在z平面第4象限對稱位置配置相應的共軛零點、共軛極點。 izip∗iz∗ip這樣零點、極點配置的濾波器稱為單一頻率陷波器,在頻率ωo處出現凹陷。而把極點設置在零的的徑向上距圓點的距離為l-μ處,陷波器的傳遞函數為: ))1()()1(())(()(2121zzzzzzzzzHμμ−−−−−−= (3)式(3)中μ越小,極點越靠近單位圓,則頻率響應曲線凹陷越深,凹陷的寬度也越窄。當需要消除窄帶干擾而不能對其他頻率有衰減時,陷波器是一種去除窄帶干擾的理想數字濾波器。當要對幾個頻率同時進行帶陷濾波時,可以按(2)式把幾個單獨頻率的帶陷濾波器(3)式串接在一起。一個例子:設有一個輸入,它

    標簽: 數字 陷波器

    上傳時間: 2013-10-18

    上傳用戶:uuuuuuu

  • struts的詳細說明

    struts的詳細說明,是struts的經典經驗集合,對于做web開發的技術人員來說恨合適d o dio 哦!感覺寫的恨不錯就發上來了!

    標簽: struts

    上傳時間: 2016-01-01

    上傳用戶:懶龍1988

主站蜘蛛池模板: 湘潭市| 禄劝| 睢宁县| 白城市| 大埔区| 越西县| 嫩江县| 合水县| 太保市| 屏东市| 米易县| 天镇县| 德安县| 宁阳县| 通州市| 潜江市| 昌江| 抚松县| 宁明县| 宝清县| 南康市| 禹城市| 宝应县| 南昌县| 射阳县| 霍州市| 亚东县| 罗定市| 霍城县| 峨山| 嘉兴市| 神池县| 万源市| 无为县| 九台市| 罗平县| 广宗县| 红原县| 贺州市| 沙雅县| 扎鲁特旗|