身份證合法性判斷,二代身份證合法性判斷
標簽: 身份證
上傳時間: 2014-01-22
上傳用戶:hphh
#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
上傳用戶:啊的撒旦
移動機器人導航與定位技術隨 著 計 算機 技 術 、微 電 子 技 術 、網 絡 技 術 等 的快 速 發 展 ,特 別是 通 訊 技 術 的進 步 。機 器 人 技 術 也 得 到 了飛 速 發 展 ,移 動機 器 人 的 關鍵 技 術 得 到 深 入 而 廣 泛 的研 究 。并 且 部 分 已經 走 向成 熟 , 移 動 機 器 人 應 用 領 域 不 斷擴 展 ,與 制 造 業 相 比 ,移動 機 器 人 的 工 作 環 境 具 有 非 結 構 化 和 不 確 定 性 。因而 對機 器人 的要 求 更 高 。不 僅 要 求 機 器 人 完 成 一 定 的 功 能 ,還 需 要 機 器 人具 有 行 走 功 能 。對 外感 知 能力 以及 局 部 的 自主 規 劃 能 力等 ,因 此 移 動機 器 人 的 導 航 與 定位 技 術 成 為 智 能機 器 人 領 域 的一 個 重 要 研 究 方 向 .也 是 智 能移 動 機 器 人 的一 項 關 鍵 技 術 。 多年 來 國際 國 內都 有 大 量 的 科技 工 作 者 致 力 于 這 方 面 的研 究 開 發 工作 .因 而 對 許 多 問題 的 認 識 與求 解 都 取 得 了長 足 的 發 展 。在 某 些特 定 的 應用 領 域 ,移 動 機 器人 導航 技 術 已得 到 了實 際 應用 。本 文 介 紹 了移 動機 器人 導 航 技 術 研 究 中的 相 關 關 鍵 技 術 。 2移動 機 器 人導 航 與定位 研 究 的 目的 移 動 機 器 人 根 據 運 動 行 為 方 式 分 為 自主 和 半 自主 式 .根 據 應 用 的環 境 有 室 內和 室 外 機器 人之 分 。無 論 哪 種 移動 機 器人 。在 它的運動過程 中始終要求解決 自身的導航與定位 問題 .也就是 Dm.~ntWhyte提 出 的 三 個 問 題 :(1)”我 現 在 何 處 ?”,(2)”我 要 往 何 處 去 ?”,(3)”要 如 何 到 該 處 去?”。其 中 問題 (1)是 移 動 機 器 人 導 航 系統 中 的定 位 及 跟 蹤 問題 ,(2)(3)是 移 動機 器人 導 航 系 統 中 的 路徑 規劃 問題 。移 動 機 器 人 導航 與 定位 技 術 研 究 的 目的 就 是 解 決上 面 的 3個 問題 .給 出 已知 和 未 知 環 境 下 移 動機 器 人 實 時 導 航 與 定 為 控 制 的 理 論 、方 法 與 關 鍵 技 術 ,并 驗 證 該 理 論 與 方 法 的 的 實用 性 :提 出適 應 多種 環境 的 實 時導 航 策 略 和 具 有 良好 可 擴 展 性 的 移動 機 器 導航 體 系 結 構 :未知 環 境 中 移 動 機 器 人 的 快 速環 境 建模 與 定 位 方 法 :未 知環 境 中基 于 傳 感 器 的 移 動 機 器 人 局部 運 動 規 劃 理 論 與 方 法 :與 未 知環 境 中移 動 機 器 人 導 航 控 制 相 關 的機 器 學 習的 基 礎 理 論 與 方 法 ;移 動 機 器 人 的 故 障 自診
上傳時間: 2022-02-12
上傳用戶:xsr1983
新版本無人機.刷機用借助此實際應用程序,管理無人機的所有區域,例如電動機,GPS,傳感器,陀螺儀,接收器,端口和固件INAV-Chrome 的配置器中的新功能:修復了導致加速度計校準失敗的錯誤支持DJI FPV系統配置輸出選項卡中的怠速節氣門和馬達極現在可以在“混合器”選項卡中選擇“漫遊者”和“船用”平臺。 固件方面的支持仍然有限!閱讀完整的變更日誌 在過去的幾年中,無人駕駛飛機取得了相當大的進步,越來越多的人能夠獲取和使用無人機。 不用說,無人機可以基於特定固件在一組命令上運行。 在這方面, 用於Chrome的INAV-Configurator隨附的工具可幫助您輕鬆配置無人機的各個方面。支持多種硬件配置首先要提到的一件事是,要求Google Chrome瀏覽器能夠訪問INAV-Chrome的配置器功能。 儘管它已集成到Chrome中,但它可以作為獨立應用程序運行,甚至可以脫機使用,而與瀏覽器無關。 您甚至可以從Google Apps菜單為其創建桌面快捷方式。不用說,另一個要求是實際的飛行裝置。 該應用程序支持所有支持INAV的硬件配置,例如Sirius AIR3,SPRacingF3,Vortex,Sparky,DoDo,CC3D / EVO,Flip32 / + / Deluxe,DragonFly32,CJMCU Microquad,Chebuzz F3,STM32F3Discovery,Hermit ,Naze32 Tricopter框架和Skyline32。該窗口非常直觀,並提供各種令人印象深刻的提示和文檔。 在上方的工具欄上,您可以找到連接選項,這些選項可以通過COM端口,手動選擇或無線模式進行。 您也可以選擇自動連接。 連接後,您可以在上方的工具欄中查看設備的功能,並在側面板中輕鬆瀏覽配置選項。管理傳感器,電機,端口和固件本。
標簽: configurator 無人機
上傳時間: 2022-06-09
上傳用戶:
VIP專區-嵌入式/單片機編程源碼精選合集系列(114)資源包含以下內容:1. FREESCALE 9S08AW60 串口調試程序.2. saa7113視頻解碼芯片外圍電路設計原理圖.3. 這是在用的AD7705源程序.4. 紅外線遙控原理以及單片機制作自學習遙控器詳細設計思路.5. 在微波整體集成電路設計、理論和描述特性的一條新穎的路線的PDF學術論文.6. 對于內部具有D /A轉換器的單片機,采用其自備的D /A轉換器產生需要的信號是最經 濟的方法。C8051F020是Cygnal公司最新的一款功能強大的內部具有D /A轉換器的單片機。介紹了 采用查.7. 液晶6963模塊 240*64,外接PS2鍵盤,多級菜單.這是我工作中的一個程序,有興趣的可以看.8. 這是一個i2c程序,經過多次應用都能成功實現功能,而且簡要實用.9. 本電子書是很多嵌入式開發經典文章和技巧使用的PDF格式的書籍.10. 168線SD內存條電路原理圖資料,好像是臺灣人寫的.11. FPGA可促進嵌入式系統設計改善即時應用性能.12. fat32文件系統格式說明 十分詳盡.13. fat32和fat16文件系統格式說明.14. 講解嵌入式開發的入門書!非常不錯,值得一看!.15. TMS320C6000CSLAPIReferenceGuideRev.I的pdf.16. s7300 400 step7 plc仿真軟件說明.17. with avr mega 8515 in the C-code AVR.18. Altera原裝MAX_II開發板原理圖,是用protel繪制的.19. zlg7290是一個能夠8*8的鍵盤驅動芯片.20. 主要介紹各種芯片原理、功能、及其使用方法.21. 對芯片MCP2551的中文使用說明.22. 嵌入式T9輸入法的源代碼.23. BMP頭文件的源代碼.24. 自己收集整理和調試OK的三個Game源代碼.25. S24C10最小系統原理圖 包括FLASH SRAM等.26. 一個電平轉換芯片的資料74LVC4245,它在以太網中也發揮了很大的作用,對WEB開發人員有借鑒的價值.27. mmc卡的specification標準的英文版的.28. TMS320C2812全套例程.29. 這是用于lpc2106的自帶ADC功能的演示,利用KEIL FOR ARM 開發,可以參考學習..30. megal16在codevision下關于1602的驅動程序.31. 分布式多DSP系統的CPCI總線接口設計和驅動開發.32. 電子音量pT2314原程序 需要的朋友請趕快.33. 用protel dxp繪制三分頻原理圖和pcb電路板等.34. Bootloader(引導裝載器)是用于初始化目標板硬件.35. OKI DEMO FLASH WRITE PROGRAM.36. OKI 675050 hardware accelerator sample program.37. verilog的一些源代碼.38. i.mx31 3DS平臺Nandboot引導程序源碼.39. c8051f24是個教學的程序.40. < ALTERA FPGA/CPLD 高級篇>>光盤資料中 體會“面積和速度的平衡與互換” 例程.
上傳時間: 2013-07-17
上傳用戶:eeworm
VIP專區-嵌入式/單片機編程源碼精選合集系列(132)資源包含以下內容:1. siemens PLC Prodave 通訊測試.2. 嵌入式系統下IC卡讀寫的源碼.3. 數字音樂盒的完整畢業論文(無意中發現的) 課程設計題目:數字音樂盒.4. 單片機程序 51頻率計 電子琴 電子鐘程序 按鍵顯示程序最終成功.5. C和C++嵌入式系統編程,一本很嵌入式編程很不錯的書..6. 一本很好的介紹yaffs文件系統的書籍 一本很好的介紹yaffs文件系統的書籍.7. 一份不錯的介紹linux 字符設備驅動的文檔.8. 工程源文件.9. 用holtek3000開發環境編寫的單片機C語言鍵盤掃描程序..10. 8255A芯片的中文資料(8255中文資料).11. mmc_sd_memory_card_driver_sample_project_files spi接口的sd card driver 示例.12. 單片機驅動PS2鍵盤的c程序 希望對大家有用.13. a voice guide client ,it is the second part of voice guide center.14. msc map program to control client of tools,use for map guide.15. C#開發win ce代碼程序.16. 2個Ds18b20溫度顯示電路,12Mhz晶振.17. 5分頻cpld原理圖實現.18. 可實現對ST公司的SPI flash的控制.19. VB實現的文字圖片原理,VB實現的文字圖片原理.20. 嵌入式C精華, 嵌入式C精華,嵌入式C精華.21. 一個簡單的電梯控制系統,主要實現一個八層樓的電梯控制..22. 這是自己做的一個gui 及供初學者參考 如有問題可以一起討論 可發到我的郵箱里 完成的功能就是 對uicontrol的應用.23. 觸摸屏校正算法,主流嵌入式設計都使用此算法,個人覺得經典..24. 基于51單片機的源碼,內有液晶顯示(IIC)接口,還實現串口和定時操作等功能..25. 鏈接器和加載器,這是一本全面介紹我們編寫的程序是如何被鏈接的,個人覺得做嵌入式開發的軟件工程師必備的一本書..26. 使用Embest IDE for ARM 開發環境及ARM 軟件模擬器; 通過實驗掌握簡單ARM 匯編指令的使用方法。.27. AD7714是一款24位高速AD轉換芯片.28. Cortex-M3是首款基于ARMv7-M架構的處理器.29. 剛剛學習ne2000驅動開發.30. ATMEL的芯片資料pdf文檔.31. GPS衛星定位模塊的驅動程序.32. 還可以.33. 基于CAN總線的分布式三維步進電機控制系統.34. 自己做的交通燈~~~用c編寫的.35. 基于PCI總線的高速數據傳輸.36. [轉載]嵌入到系統進程中,檢查并報告主板型號.37. Freescale_071112_1公司內部的器件資料.38. 關于2410開發板的u-boot的說明.39. CX1-22R 可編程控制器(簡稱 CX1)是 22 路 I/O 一體化小型可編程控制器(PLC).40. PIC匯編各個時間延時小程序.
標簽: SD卡
上傳時間: 2013-04-15
上傳用戶:eeworm
VIP專區-嵌入式/單片機編程源碼精選合集系列(145)資源包含以下內容:1. 里面有幾十人MSP430F149系列C編程的源碼資料,只要稍加修改就可以熟練地使用MSP430F系列單片機.2. 本書講解了三菱系列PLC的詳細知識.包括內部結構及及指令集.使初學者能快速使用三菱系列PLC..3. KGLWIN3.62是中文版的LG的PLC編程和調試軟件..4. blackfin 533數模轉換的源代碼 很基礎的 大家有興趣的看下.5. 同步電機的很基礎的代碼 blackfin 533 motor.6. blackfin 533 的nandflash代碼 很基礎的.7. blackfin 533 的tft代碼 很基礎.8. 51EDAQT44B0X開發板說明書.9. 用em4094和STC12C5412合成二代證讀寫器.10. 重量級資料,條幅機原理圖.11. LCD_12232 液晶顯示程序源代碼.12. 嵌入式MYSQL編程例子,在WINDOWS或者LINUX上都可以運行.13. 幾個嵌入式MYSQL編程示例.14. 一個數字顯示時鐘的程序.15. IIC通用驅動程序.16. nios ii 開發板原理圖.17. 嵌入式操作系統ucos ii在visual studio vc下運行.18. pspice的教程.19. 嵌入式freetype庫的應用文檔包含freetype的簡要說明和應用example.20. 嵌入式linux中的usb熱拔插腳本,可以實現u盤的熱拔插功能.21. freetype庫的應用demo,里面包含freetype的很多實例.22. 附上freetype2.1.10的源代碼,這個和上面傳的是一起的.23. dm9000a,u-boot里面的驅動源代碼,可以參照移植到自己的u-boot里面.24. 單鍵遙控碼學習控制器遙控數據讀取 INT0中斷程序 高電平存TMPHADDR為首址RAM 低電平存TMPLADDR為首址RAM.25. 宏晶科技用c語言實現的EEPROM完整底層驅動程序.26. X5045的底層驅動.27. 24c02的c語言源代碼.28. I2C-bus Specification.29. Nucleus開發的需要用的<技術文檔>.30. lpc2100_arm_keil實例,很好的實例.31. 多款FPGA CPLD開發板的原理圖.32. 在數字電路的設計中.33. 制作范例:一個簡單實用的PC遙控器2 需要的話請去下載.34. linux下 minigui用的 qvfb 1.1插件.35. C++編程指南是個人覺得不過入門的參考資料.36. 應用案例.37. 《常用運放電路集錦》美國國家半導體公司 資料 介紹了運放的典型應用.38. ARM Boot2410Init.s分析 ARM Boot2410Init.s分析.39. FS9200ARM9開發板的原理圖.40. 國外高速設計經典書籍.
上傳時間: 2013-04-15
上傳用戶:eeworm
Pro_ENGINEER 野火 5.0 交互式曲面造型設計實例詳解.iso PROE手機設計視頻教程.rar ProENGINEER野火中文版5.0+EMX 6.0模具分模特訓基礎與典型范例.iso PROENGINEER Wildfire5.0基礎設計.二代龍工作室著.iso PROENGINEER Wildfire5.0鈑金造型設計.iso PROENGINEER Wildfire5.0版產品設計從入門到精通.iso ProE5.0入門視頻教程.rar Proe5.0曲面與產品設計教程.rar Proe5.0曲面與產品設計-2DVD.rar ProE5.0快速入門教程.iso PROE5.0機械設計行業應用實踐.rar PROE5.0機械設計行業應用實踐(2).rar PROE5.0機械設計行業應用實踐(1).rar ProE5.0動力學與有限元分析從入門到精通(高清PDF).rar Proe5.0_TomLee管道設計視頻教程.rar Proe5.0_TomLee布線設計視頻.rar Pro ENGINEER 5.0 動力學與有限元分析從入門到精通(隨書光盤).iso ENGINEER野火版5.0從入門到精通 暴風創新科技編著.iso …………
標簽: labview
上傳時間: 2013-06-27
上傳用戶:eeworm
交流電動機是一個多變量、高階、強耦合的非線性系統,不象直流電機那樣易于控制轉矩,采用矢量控制技術可解決傳統交流調速的難題,使交流電機可以按直流電機的控制規律來進行控制,而無傳感器矢量控制技術由于可以省去速度傳感器,使相應的交流調速系統變得簡便、廉價和可靠,所以成為當前研究的熱點,本論文工作就是這方面的一個嘗試。 論文首先介紹了矢量控制技術的基本理論。對感應電動機在三相靜止坐標系下強耦合和互感變參數的數學模型,通過坐標變換,導出感應電機在兩相同步旋轉坐標系下的數學模型,然后將同步坐標系按轉子磁場定向,實現了對轉子磁鏈和轉矩的分別控制,從而可以按直流電機的控制規律來控制交流電機。 其次,論文基于同步軸系下的感應電動機電壓磁鏈方程式,提出了一種感應電動機按轉子磁場定向的矢量控制方法,利用在同步軸系中T軸電流的誤差信號實現對電機速度的估算,這種速度估算方法結構簡單,有一定的自適應能力。同時在該無傳感器矢量控制系統中,由于采用了經典的PI調節器,使得控制系統更為簡單易行。 論文利用MATLAB建立了該無傳感器矢量控制系統的仿真模型。為提高系統的適應性和仿真結果的準確性,仿真模型采用了標么值系統,并考慮了控制周期和采樣信號周期對仿真結果的影響。討論了離散控制引起的相位補償問題,使仿真結果更接近實際工程系統。 最后,通過仿真進一步驗證了本文提出的無傳感器矢量控制系統的正確性和可行性,也證明了速度估計模型對速度估計準確,且對參數的變化有較強的魯棒性。
上傳時間: 2013-06-02
上傳用戶:libinxny