BC20-TE-B NB-Iot 評估板評估板原廠原理圖V1.2。完整對應實物裝置。
上傳時間: 2022-06-17
上傳用戶:
ASR M08-B設置軟件 V3.2 arduino 2560+ASRM08-B測試程序 arduino UNO+ASRM08-B測試程序語音控制臺燈電路圖及C51源碼(不帶校驗碼) 繼電器模塊設置。 ASR M08-B是一款語音識別模塊。首先對模塊添加一些關鍵字,對著該模塊說出關鍵字,串口會返回三位的數,如果是返回特定的三位數字,還會引起ASR M08-B的相關引腳電平的變化。【測試】①打開“ASR M08-B設置軟件 V3.2.exe”。②選擇“串口號”、“打開串口”、點選“十六進制顯示”。③將USB轉串口模塊連接到語音識別模塊上。接線方法如下:語音模塊TXD --> USB模塊RXD語音模塊RXD --> USB模塊TXD語音模塊GND --> USB模塊GND語音模塊3V3 --> USB模塊3V3(此端為3.3V電源供電端。)④將模塊的開關撥到“A”端,最好再按一次上面的大按鈕(按一次即可,為了確保模塊工作在正確的模式)。⑤對著模塊說“開燈”、“關燈”模塊會返回“0B”、“0A”,表示正常(注意:0B對應返回值010,0B對應返回值010,返回是16進制顯示的嘛,設置的時候是10進制設置的)。
標簽: ASR M08-B
上傳時間: 2022-07-06
上傳用戶:aben
介紹了以PLC為控制單元,變頻器為執行單元的控制系統及其在煙支輸送儲存系統中的應用,并給出了系統的組成、硬件的配置及具體的實現方法。關鍵詞 : PLC 變頻器輸送儲存系統 Ab str ac t;T hisp aperi ntroducest hec ontrols ystem whichc onsistso fP LCa ndf requencyc onvertera ndi ts application in the buffer conveyor for cigarettes. The system constitute, hardware disposal and realization method are also presented in detail.Keywords:PLC f requencyc onverter b ufferc onveyor
上傳時間: 2013-10-22
上傳用戶:ouyang426
#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 (請將此地址復制到瀏覽器地址欄中訪問下載頁面)
標簽: 成績查詢系統
上傳時間: 2019-06-08
上傳用戶:啊的撒旦
#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
上傳用戶:啊的撒旦
近年來,隨著多媒體技術、計算機網絡與通信技術的的快速發展,傳統的監控系統也不斷向著新的發展方向進行著不斷的更新與發展。進而隨著嵌入式技術的出現以及人們對降低監控系統成本和提高可靠性的迫切需求,基于嵌入式系統的網絡視頻監控系統將成為新的研發熱點。 本文的目的是把嵌入式技術與計算機網絡技術相結合,構造一個性能穩定且具有較強處理能力的數字化遠程視頻監控系統。該監控系統以嵌入式Linux系統平臺作為服務器端,服務器程序在其上以后臺方式運行,等待監控系統環境中的客戶機使用瀏覽器向其發送訪問請求,實現在局域網乃至Internet網上對攝像頭的遠程控制。 文中把系統設計分為三大部分:系統硬件設計、嵌入式Linux在硬件平臺的實現和系統軟件設計。硬件設計部分首先提出了整個硬件系統的實現方案,接著詳細介紹了S3C2410處理器與存儲器、以太網控制器芯片以及USB和串口的接口電路設計;第二部分詳細敘述了嵌入式Linux在本系統硬件平臺的移植實現及應用程序的開發特點,重點講述了本系統平臺上Linux的引導加載程序Bootloader的設計過程;系統軟件部分首先介紹了USB接口攝像頭驅動在嵌入式Linux下的實現,重點講述了Video4Linux下視頻采集的實現,接著論述了如何實現圖像的JPEG壓縮,最后針對基于B/S模式的網絡通信系統結構,詳細闡述了網絡通信的具體實現過程和方法。 最后在辦公室局域網通過對系統測試,顯示了系統運行結果,實現了利用局域網或Internet網對遠程環境進行監控的功能。
上傳時間: 2013-07-04
上傳用戶:lgnf
永磁同步發電機由于一系列高效節能的優點,在工農業生產、航空航天、國防和日常生活中得到廣泛應用,并且受到許多學者的關注,其研究領域主要涉及永磁同步發電機的設計、精確性能分析、控制等方面。 本課題作為國家自然科學基金項目《無刷無勵磁機諧波勵磁的混合勵磁永磁電機的研究》的課題,主要研究永磁電機的電磁場空載和負載計算,求出永磁電機的電壓波形和電壓調整率,為分段式轉子的混合勵磁永磁電機的研究奠定基礎,主要做了以下工作: 首先介紹了永磁同步發電機的基本原理,包括永磁同步發電機的結構形式和永磁同步發電機的運行性能,采用傳統解析理論給出了電壓調整率的計算方法及外特性的計算模型;然后用有限元ANSYS對永磁同步發電機樣機進行實體建模,經過定義分配材料、劃分網格、加邊界條件和載荷、求解計算等,得到矢量磁位Az、磁場強度H、磁感應強度B等結果,直觀地看出電機內部的磁場分布情況。 其次根據電磁場計算結果,應用齒磁通法對其進行后處理。該方法求解轉子在一個齒距內不同位置處的磁場,以定子齒的磁通為計算單位,根據繞組與齒的匝鏈關系,計算出磁鏈隨時間的變化,進而得到永磁同步發電機空、負載時電壓大小及波形。通過計算結果寫實驗結果對比,驗證了齒磁通法的正確性,為計算永磁同步發電機各種性能特性提供有力工具。 最后,基于齒磁通法對永磁同步發電機的外特性進行了深入研究,定量分析了結構參數對外特性的影響規律,提出了有效降低電壓調整率的方法的是:增加氣隙長度g的同時,適當增加永磁體的磁化方向的長度hm;此外,要盡量的減少每相串聯匝數N和增大導線面積以減小阻抗參數。通過改變電機的結構參數,對其電磁場進行計算,找到永磁電機電壓調整率的變化規律,為加電勵磁的混合勵磁永磁電機做準備,達到穩定輸出電壓的目的。
上傳時間: 2013-04-24
上傳用戶:15853744528
心音信號是人體最重要的生理信號之一,包含心臟各個部分如心房、心室、大血管、心血管及各個瓣膜功能狀態的大量生理病理信息。心音信號分析與識別是了解心臟和血管狀態的一種不可缺少的手段。本文針對目前該研究領域中存在的分析方法問題和分類識別技術難點展開了深入的研究,內容涉及心音構成的分析、心音信號特征向量的提取、正常心音信號(NM)和房顫(AF)、主動脈回流(AR)、主動脈狹窄(AS)、二尖瓣回流(MR)4種心臟雜音信號的分類識別。本文的工作內容包括以下5個方面: a)心音信號采集與預處理。本文采用自行研制的帶有錄音機功能的聽診器實現對心音信號的采集。通過對心音信號噪聲分析,選用小波降噪作為心音信號的濾波方法。根據實驗分析,選擇Donoho閾值函數結合多級閾值的方法作為心音信號預處理方案。 b)心音信號時頻分析方法。文中采用5種時頻分析方法分別對心音信號進行了時頻譜特性分析,結果表明:不同的時頻分析方法與待分析心音信號的特性有密切關系,即需要在小的交叉項干擾與高的時頻分辨率之間作綜合的考慮。鑒于此,本文提出了一種自適應錐形核時頻(ATF)分析方法,通過實驗驗證該分布能較好地反映心音信號的時頻結構,其性能優于一般錐形核分布(CKD)以及Choi-Williams分布(CWD)、譜圖(SPEC)等固定核時頻分析方法,從而選擇自應錐形核時頻分析方法進行心音信號分析。 c)心音信號特征向量提取。根據對3M Littmann() Stethoscopes[31]數據庫中標準心音信號的時頻分析結果,提取8組特征數據,通過Fihser降維處理方法提取出了實現分類可視化,且最易于分類的心音信號的2維特征向量,作為心音信號分類的特征向量。 d)心音信號分類方法。根據心音信號特征向量組成的散點圖,研究了支持向量機核函數、多分類支持向量機的選取方法,同時,基于分類的目的 性和可信性,本文提出以分類精度最大為判斷準則的核函數參數與松弛變量的優化方法,建立了心音信號分類的支持向量機模型,選取標準數據庫中NM、AF、AR、AS、MR每類心音信號的80組2維特征向量中每類60組數據作為支持向量機的學習樣本,對余下的每類20組數據進行測試,得到每類的分類精度(Ar)均為100%,同時對臨床上采集的與上述4種同類心臟雜音信號和正常心音信號中每類24個心動周期進行分類實測,分類精度分別為:NM、AF、MR的分類精度均為100%,而AR、AS均為95.83%,驗證了該方法的分類有效性。 e)心音信號分析與識別的軟件系統。本文以MATLAB語言的可視化功能實現了心音信號分析與識別的軟件運行平臺構建,可完成對心音信號的讀取、預處理,繪制時-頻、能量特性的三維圖及兩維等高線圖;同時,利用MATLAB與EXCEL的動態鏈接,實現對心音信號分析數據的存儲以及統計功能;最后,通過對心音信號2維特征向量的分析,實現心音信號的自動識別功能。 本文的研究特色主要體現在心音信號特征向量提取的方法以及多分類支持向量機模型的建立兩方面。 綜上所述,本文從理論與實踐兩方面對心音信號進行了深入的研究,主要是采用自適應錐形核時頻分析方法提取心音信號特征向量,根據心音信號特征向量組成的散點圖,建立心音信號分類的支持向量機模型,并對正常心音信號和4種心臟雜音信號進行了分類研究,取得了較為滿意的分類結果,但由于用于分類的心臟雜音信號種類及數據量尚不足,因此,今后的工作重點是采集更多種類的心臟雜音信號,進一步提高心音信號分類精度,使本文研究成果能最終應用于臨床心臟量化聽診。 關鍵詞:心音信號,小波降噪,非平穩信號,心臟雜音,信號處理,時頻分析,自適應,支持向量機
上傳時間: 2013-04-24
上傳用戶:weixiao99
本文分析了永磁同步直線電動機的運行機理與運行特性,并通過坐標變換,分別得出了電機在a—b—c,α—β、d—q坐標系下的數學模型。針對永磁同步直線電機模型的非線性與耦合特性,采用了次級磁場定向的矢量控制,并使id=0,不但解決了上述問題,還實現了最大推力電流比控制。為了獲得平穩的推力,采用了SVPWM控制,并對它算法實現進行了研究。 針對速度環采用傳統PID控制難以滿足高性能矢量控制系統,通過對傳統PID控制和模糊控制理論的研究,將兩者相結合,設計出能夠在線自整定的模糊PID控制器。將該控制器代替傳統的PID控制器應用于速度環,以提高系統的動靜態性能。 在以上分析的基礎上,設計了永磁同步直線電機矢量控制系統的軟、硬件。其中電流檢測采用了新穎的電流傳感器芯片IR2175,以解決溫漂問題;速度檢測采用了增量式光柵尺,設計了與DSP的接口電路,通過M/T法實現對電機的測速。最后在Matlab/Simlink下建立了電機及其矢量控制系統的仿真模型,并對分別采用傳統PID速度控制器和模糊PID速度控制器的系統進行仿真,結果表明采用模糊PID控制具有更好的動態響應性能,能有效的抑制暫態和穩態下的推力脈動,對于負載擾動具有較強的魯棒性。
上傳時間: 2013-07-04
上傳用戶:13681659100
本書主要闡述設計射頻與微波功率放大器所需的理論、方法、設計技巧,以及將分析計算與計算機輔助設計相結合的優化設計方法。這些方法提高了設計效率,縮短了設計周期。本書內容覆蓋非線性電路設計方法、非線性主動設備建模、阻抗匹配、功率合成器、阻抗變換器、定向耦合器、高效率的功率放大器設計、寬帶功率放大器及通信系統中的功率放大器設計。 本書適合從事射頻與微波動功率放大器設計的工程師、研究人員及高校相關專業的師生閱讀。 作者簡介 Andrei Grebennikov是M/A—COM TYCO電子部門首席理論設計工程師,他曾經任教于澳大利亞Linz大學、新加坡微電子學院、莫斯科通信和信息技術大學。他目前正在講授研究班課程,在該班上,本書作為國際微波年會論文集。 目錄 第1章 雙口網絡參數 1.1 傳統的網絡參數 1.2 散射參數 1.3 雙口網絡參數間轉換 1.4 雙口網絡的互相連接 1.5 實際的雙口電路 1.5.1 單元件網絡 1.5.2 π形和T形網絡 1.6 具有公共端口的三口網絡 1.7 傳輸線 參考文獻 第2章 非線性電路設計方法 2.1 頻域分析 2.1.1 三角恒等式法 2.1.2 分段線性近似法 2.1.3 貝塞爾函數法 2.2 時域分析 2.3 NewtOn.Raphscm算法 2.4 準線性法 2.5 諧波平衡法 參考文獻 第3章 非線性有源器件模型 3.1 功率MOSFET管 3.1.1 小信號等效電路 3.1.2 等效電路元件的確定 3.1.3 非線性I—V模型 3.1.4 非線性C.V模型 3.1.5 電荷守恒 3.1.6 柵一源電阻 3.1.7 溫度依賴性 3.2 GaAs MESFET和HEMT管 3.2.1 小信號等效電路 3.2.2 等效電路元件的確定 3.2.3 CIJrtice平方非線性模型 3.2.4 Curtice.Ettenberg立方非線性模型 3.2.5 Materka—Kacprzak非線性模型 3.2.6 Raytheon(Statz等)非線性模型 3.2.7 rrriQuint非線性模型 3.2.8 Chalmers(Angek)v)非線性模型 3.2.9 IAF(Bemth)非線性模型 3.2.10 模型選擇 3.3 BJT和HBT汀管 3.3.1 小信號等效電路 3.3.2 等效電路中元件的確定 3.3.3 本征z形電路與T形電路拓撲之間的等效互換 3.3.4 非線性雙極器件模型 參考文獻 第4章 阻抗匹配 4.1 主要原理 4.2 Smith圓圖 4.3 集中參數的匹配 4.3.1 雙極UHF功率放大器 4.3.2 M0SFET VHF高功率放大器 4.4 使用傳輸線匹配 4.4.1 窄帶功率放大器設計 4.4.2 寬帶高功率放大器設計 4.5 傳輸線類型 4.5.1 同軸線 4.5.2 帶狀線 4.5.3 微帶線 4.5.4 槽線 4.5.5 共面波導 參考文獻 第5章 功率合成器、阻抗變換器和定向耦合器 5.1 基本特性 5.2 三口網絡 5.3 四口網絡 5.4 同軸電纜變換器和合成器 5.5 wilkinson功率分配器 5.6 微波混合橋 5.7 耦合線定向耦合器 參考文獻 第6章 功率放大器設計基礎 6.1 主要特性 6.2 增益和穩定性 6.3 穩定電路技術 6.3.1 BJT潛在不穩定的頻域 6.3.2 MOSFET潛在不穩定的頻域 6.3.3 一些穩定電路的例子 6.4 線性度 6.5 基本的工作類別:A、AB、B和C類 6.6 直流偏置 6.7 推挽放大器 6.8 RF和微波功率放大器的實際外形 參考文獻 第7章 高效率功率放大器設計 7.1 B類過激勵 7.2 F類電路設計 7.3 逆F類 7.4 具有并聯電容的E類 7.5 具有并聯電路的E類 7.6 具有傳輸線的E類 7.7 寬帶E類電路設計 7.8 實際的高效率RF和微波功率放大器 參考文獻 第8章 寬帶功率放大器 8.1 Bode—Fan0準則 8.2 具有集中元件的匹配網絡 8.3 使用混合集中和分布元件的匹配網絡 8.4 具有傳輸線的匹配網絡 8.5 有耗匹配網絡 8.6 實際設計一瞥 參考文獻 第9章 通信系統中的功率放大器設計 9.1 Kahn包絡分離和恢復技術 9.2 包絡跟蹤 9.3 異相功率放大器 9.4 Doherty功率放大器方案 9.5 開關模式和雙途徑功率放大器 9.6 前饋線性化技術 9.7 預失真線性化技術 9.8 手持機應用的單片cMOS和HBT功率放大器 參考文獻
上傳時間: 2013-04-24
上傳用戶:W51631