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

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

程序引導(dǎo)(dǎo)

  • 單片機(jī)系統(tǒng)軟件抗干擾方法

    單片機(jī)系統(tǒng)軟件抗干擾方法:在提高硬件系統(tǒng)抗干擾能力的同時(shí),軟件抗干擾以其設(shè)計(jì)靈活、節(jié)省硬件資源、可靠性好越來越受到重視。下面以MCS-51單片機(jī)系統(tǒng)為例,對微機(jī)系統(tǒng)軟件抗干擾方法進(jìn)行研究。1、軟件抗干擾方法的研究在工程實(shí)踐中,軟件抗干擾研究的內(nèi)容主要是:􀁺 消除模擬輸入信號(hào)的嗓聲(如數(shù)字濾波技術(shù));􀁺 程序運(yùn)行混亂時(shí)使程序重入正軌的方法。本文針對后者提出了幾種有效的軟件抗干擾方法。1.1 指令冗余CPU取指令過程是先取操作碼,再取操作數(shù)。當(dāng)PC受干擾出現(xiàn)錯(cuò)誤,程序便脫離正常軌道“亂飛”,當(dāng)亂飛到某雙字節(jié)指令,若取指令時(shí)刻落在操作數(shù)上,誤將操作數(shù)當(dāng)作操作碼,程序?qū)⒊鲥e(cuò)。若“飛”到了三字節(jié)指令,出錯(cuò)機(jī)率更大。在關(guān)鍵地方人為插入一些單字節(jié)指令,或?qū)⒂行巫止?jié)指令重寫稱為指令冗余。通常是在雙字節(jié)指令和三字節(jié)指令后插入兩個(gè)字節(jié)以上的NOP。這樣即使亂飛程序飛到操作數(shù)上,由于空操作指令NOP的存在,避免了后面的指令被當(dāng)作操作數(shù)執(zhí)行,程序自動(dòng)納入正軌。此外,對系統(tǒng)流向起重要作用的指令如RET、RETI、LCALL、LJMP、JC等指令之前插入兩條NOP,也可將亂飛程序納入正軌,確保這些重要指令的執(zhí)行。1.2 攔截技術(shù)所謂攔截,是指將亂飛的程序引向指定位置,再進(jìn)行出錯(cuò)處理。通常用軟件陷阱來攔截亂飛的程序。因此先要合理設(shè)計(jì)陷阱,其次要將陷阱安排在適當(dāng)?shù)奈恢谩?.2.1 軟件陷阱的設(shè)計(jì)當(dāng)亂飛程序進(jìn)入非程序區(qū),冗余指令便無法起作用。通過軟件陷阱,攔截亂飛程序,將其引向指定位置,再進(jìn)行出錯(cuò)處理。軟件陷阱是指用來將捕獲的亂飛程序引向復(fù)位入口地址0000H的指令。通常在EPROM中非程序區(qū)填入以下指令作為軟件陷阱:

    標(biāo)簽: 單片機(jī) 系統(tǒng)軟件 抗干擾

    上傳時(shí)間: 2013-10-29

    上傳用戶:大三三

  • 對PC聲卡進(jìn)行操作

    對PC聲卡進(jìn)行操作,可以修改程序?qū)崿F(xiàn)A/D轉(zhuǎn)換功能

    標(biāo)簽: PC聲卡 操作

    上傳時(shí)間: 2015-11-13

    上傳用戶:sammi

  • struts的詳細(xì)說明

    struts的詳細(xì)說明,是struts的經(jīng)典經(jīng)驗(yàn)集合,對于做web開發(fā)的技術(shù)人員來說恨合適d o dio 哦!感覺寫的恨不錯(cuò)就發(fā)上來了!

    標(biāo)簽: struts

    上傳時(shí)間: 2016-01-01

    上傳用戶:懶龍1988

  • 自己動(dòng)手自做美麗炫目的萬花筒

    自己動(dòng)手自做美麗炫目的萬花筒,程序引腳齊全,動(dòng)動(dòng)看!

    標(biāo)簽: 自己動(dòng)手

    上傳時(shí)間: 2016-06-09

    上傳用戶:181992417

  • LED的顯示功能

    LED的顯示功能,以及步進(jìn)電機(jī)的驅(qū)動(dòng)程序,打開程序后見程序中的I/O的備注就可以,只作為參考

    標(biāo)簽: LED

    上傳時(shí)間: 2013-11-29

    上傳用戶:ghostparker

  • 基于FPGA和單片機(jī)的多波形發(fā)生器設(shè)計(jì)

    本系統(tǒng)采用MSP430F149單片機(jī)為控制核心,利用單片機(jī)內(nèi)置的DA芯片,通過按鍵中斷來邏輯選擇要輸出的波形(正弦波、方波、三角波、鋸齒波),再設(shè)置其它鍵來控制波形的幅值及頻率,然后通過單片機(jī)控制顯示到LCD1602上。  波形的產(chǎn)生是通過MSP430單片機(jī)執(zhí)行某一波形發(fā)生程序,向D/A轉(zhuǎn)換器的輸入端按一定的規(guī)律發(fā)生數(shù)據(jù),從而在D/A轉(zhuǎn)換電路的輸出端得到相應(yīng)的電壓波形。在MSP430學(xué)習(xí)板的鍵盤按鍵,通過軟件編程來選擇各種波形、幅值電壓和頻率,按不同按鍵產(chǎn)生不同波形的信號(hào)。此方案的有點(diǎn)是電路原理比較簡單,實(shí)現(xiàn)起來比較容易

    標(biāo)簽: FPGA 單片機(jī) 多波形 發(fā)生器

    上傳時(shí)間: 2017-03-13

    上傳用戶:彌勒佛祖

  • 成績查詢系統(tǒng)

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

    標(biāo)簽: 成績查詢系統(tǒng)

    上傳時(shí)間: 2019-06-08

    上傳用戶:啊的撒旦

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

    標(biāo)簽: c語言

    上傳時(shí)間: 2019-06-09

    上傳用戶:啊的撒旦

  • 基于AT89C51單片機(jī)的轉(zhuǎn)速控制系統(tǒng)設(shè)計(jì)與應(yīng)用

      隨著科學(xué)技術(shù)的發(fā)展,工業(yè)控制領(lǐng)域的自動(dòng)化程度越來越高,工業(yè)控制對精度的要求也越來越高。電動(dòng)機(jī)作為工業(yè)生產(chǎn)主要的動(dòng)力源,對其轉(zhuǎn)速的測量以及控制的研究顯得十分有意義。電力電子技術(shù)、計(jì)算機(jī)技術(shù)、自動(dòng)控制技術(shù)逐漸應(yīng)用于電動(dòng)機(jī)的轉(zhuǎn)速控制系統(tǒng)中,使得電動(dòng)機(jī)轉(zhuǎn)速控制系統(tǒng)的控制精度得以不斷提高。本文的設(shè)計(jì)是基于AT89C51單片機(jī)的交流電動(dòng)機(jī)轉(zhuǎn)速控制系統(tǒng),以變頻調(diào)速技術(shù)為核心,實(shí)現(xiàn)對三相交流異步電動(dòng)機(jī)轉(zhuǎn)速的精確控制和測量。文中主要研究了變頻調(diào)速技術(shù)的相關(guān)原理,并以三相交流異步電動(dòng)機(jī)的轉(zhuǎn)速測量和控制為實(shí)例,設(shè)計(jì)基于AT89C51單片機(jī)的三相交流異電動(dòng)機(jī)轉(zhuǎn)速控制系統(tǒng),通過仿真得到驗(yàn)證,并在此基礎(chǔ)上開展抗干擾措施的研究。本文主要研究的內(nèi)容如下:   第一章介紹課題研究的意義及現(xiàn)狀,提出課題研究的內(nèi)容及目標(biāo),最后給出了課題研究的技術(shù)路線。   第二章闡述基于AT89C51單片機(jī)的轉(zhuǎn)速控制系統(tǒng)的原理,并根據(jù)該原理分別提出硬件系統(tǒng)、軟件系統(tǒng)這兩個(gè)系統(tǒng)的設(shè)計(jì)方案。   第三章對轉(zhuǎn)速控制系統(tǒng)的硬件系統(tǒng)進(jìn)行設(shè)計(jì)。主要從單片機(jī)、電源模塊、信號(hào)采集模塊、顯示模塊、按鍵模塊這幾個(gè)方面進(jìn)行設(shè)計(jì),然后作相關(guān)的說明。   第四章對轉(zhuǎn)速控制系統(tǒng)的軟件系統(tǒng)進(jìn)行詳細(xì)的設(shè)計(jì)。主要從編寫語言的選擇、AT89C51單片機(jī)資源分配、控制單元程序、初始化程序、A/D轉(zhuǎn)換程序、按鍵程序、顯示程序這幾個(gè)方面進(jìn)行設(shè)計(jì),并作相關(guān)的說明。   第五章對前面設(shè)計(jì)的轉(zhuǎn)速控制系統(tǒng)進(jìn)行仿真驗(yàn)證。構(gòu)建硬件系統(tǒng),然后再對軟件系統(tǒng)的程序完成編譯以及調(diào)試后,加載給硬件系統(tǒng),協(xié)同仿真驗(yàn)證基于AT89C51單片機(jī)的轉(zhuǎn)速控制系統(tǒng)設(shè)計(jì)的可實(shí)現(xiàn)性,然后對該系統(tǒng)的應(yīng)用條件、范圍做出說明。   第六章對設(shè)計(jì)好的轉(zhuǎn)速控制系統(tǒng)進(jìn)行抗干擾技術(shù)的分析研究。先分析干擾可能的來源,然后在前面分析的基礎(chǔ)上從硬件、軟件兩個(gè)系統(tǒng),進(jìn)行抗干擾技術(shù)措施的研究。   文章的最后對論文進(jìn)行總結(jié),并對未來的研究工作,給出展望。

    標(biāo)簽: at89c51 單片機(jī) 轉(zhuǎn)速控制系統(tǒng)

    上傳時(shí)間: 2022-06-11

    上傳用戶:wangshoupeng199

  • TMS320C54X DSP 實(shí)驗(yàn)指導(dǎo)程序 實(shí)驗(yàn)一 常用指令實(shí)驗(yàn) 實(shí)驗(yàn)二 數(shù)據(jù)存儲(chǔ)實(shí)驗(yàn) 實(shí)驗(yàn)三 I/O實(shí)驗(yàn) 實(shí)驗(yàn)四 定時(shí)器實(shí)驗(yàn) 實(shí)驗(yàn)五 INT2中斷實(shí)驗(yàn) 實(shí)驗(yàn)六 A/D轉(zhuǎn)換實(shí)驗(yàn) 實(shí)驗(yàn)七

    TMS320C54X DSP 實(shí)驗(yàn)指導(dǎo)程序 實(shí)驗(yàn)一 常用指令實(shí)驗(yàn) 實(shí)驗(yàn)二 數(shù)據(jù)存儲(chǔ)實(shí)驗(yàn) 實(shí)驗(yàn)三 I/O實(shí)驗(yàn) 實(shí)驗(yàn)四 定時(shí)器實(shí)驗(yàn) 實(shí)驗(yàn)五 INT2中斷實(shí)驗(yàn) 實(shí)驗(yàn)六 A/D轉(zhuǎn)換實(shí)驗(yàn) 實(shí)驗(yàn)七 D/A轉(zhuǎn)換實(shí)驗(yàn) 實(shí)驗(yàn)八 AD/DA綜合實(shí)驗(yàn)

    標(biāo)簽: 實(shí)驗(yàn) 320C INT2 TMS

    上傳時(shí)間: 2014-02-16

    上傳用戶:縹緲

主站蜘蛛池模板: 老河口市| 西昌市| 栾城县| 姚安县| 灵台县| 大关县| 海南省| 拉萨市| 梧州市| 宁明县| 阜康市| 常山县| 沭阳县| 泸水县| 鹤庆县| 湖口县| 郁南县| 固阳县| 遂川县| 武平县| 津南区| 集贤县| 洮南市| 南溪县| 江都市| 桃园市| 马龙县| 伊春市| 黑水县| 卓尼县| 武穴市| 五峰| 壶关县| 沙坪坝区| 济南市| 清苑县| 教育| 论坛| 从化市| 黄浦区| 申扎县|