#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é)號是否重復(fù) void input_student4(int,int);//覆蓋原信息 void sort_student3(student s[],int);//按照英語成績排序 void sort_student4(student s[],int);//按照計算機成績排序 void sort_student2(student s[],int);//按照數(shù)學(xué)成績排序 void sort_student5(student s[],int);//按照平均成績排序 float input_score2(int);//計算學(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é)號查詢學(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)計成績 void input_score1(void);//統(tǒng)計成績總函數(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é)號 姓名 數(shù)學(xué)成績 英語成績 計算機成績 平均成績\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)計成績總函數(shù) { int c; c=search_student2(iNumOfStu); printf("學(xué)號:%d\n",stu[c].number); printf("姓名:%s\n",stu[c].name); input_score3(c); printf("新成績錄入成功!\n"); stu[c].average=input_score2(c); } void input_score3(int a)//統(tǒng)計成績 { printf("數(shù)學(xué)新成績:"); 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)//修改學(xué)生資料 { printf("學(xué)號:%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("計算機成績:%.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é)號查詢\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、按計算機成績排序\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é)號 姓名 數(shù)學(xué)成績 英語成績 計算機成績 平均成績\n"); } void input_student4(int a,int b)//覆蓋原信息 { stu[a]=stu[b-1]; --iNumOfStu; } void input_student3(int &a,int b)//判斷學(xué)號是否重復(fù) { if(a!=0) { int i=0; do { if(stu[a].number==stu[i].number) { printf("此學(xué)號代表的學(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)計學(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é)生信息(在最后一個學(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é)號:"); 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("計算機成績:"); scanf("%f",&stu[a].sco.computer); } float input_score2(int a)//計算學(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)//按照計算機成績排序 { 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é)號查找學(xué)生并輸出 { int num; int c; printf("請輸入要查詢的學(xué)號:"); 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; } } 運行結(jié)果: 源文件下載地址: http://115.com/file/clnq138g#一個簡單的學(xué)生成績管理系統(tǒng).rar (請將此地址復(fù)制到瀏覽器地址欄中訪問下載頁面)
標(biāo)簽: 成績查詢系統(tǒng)
上傳時間: 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);//輸入學(xué)生信息 void input_student2(void);//輸入總函數(shù) void input_student3(int &,int);//判斷學(xué)號是否重復(fù) void input_student4(int,int);//覆蓋原信息 void sort_student3(student s[],int);//按照英語成績排序 void sort_student4(student s[],int);//按照計算機成績排序 void sort_student2(student s[],int);//按照數(shù)學(xué)成績排序 void sort_student5(student s[],int);//按照平均成績排序 float input_score2(int);//計算學(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é)號查詢學(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)計成績 void input_score1(void);//統(tǒng)計成績總函數(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é)號 姓名 數(shù)學(xué)成績 英語成績 計算機成績 平均成績\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)計成績總函數(shù) { int c; c=search_student2(iNumOfStu); printf("學(xué)號:%d\n",stu[c].number); printf("姓名:%s\n",stu[c].name); input_score3(c); printf("新成績錄入成功!\n"); stu[c].average=input_score2(c); } void input_score3(int a)//統(tǒng)計成績 { printf("數(shù)學(xué)新成績:"); 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)//修改學(xué)生資料 { printf("學(xué)號:%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("計算機成績:%.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é)號查詢\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、按計算機成績排序\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é)號 姓名 數(shù)學(xué)成績 英語成績 計算機成績 平均成績\n"); } void input_student4(int a,int b)//覆蓋原信息 { stu[a]=stu[b-1]; --iNumOfStu; } void input_student3(int &a,int b)//判斷學(xué)號是否重復(fù) { if(a!=0) { int i=0; do { if(stu[a].number==stu[i].number) { printf("此學(xué)號代表的學(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)計學(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é)生信息(在最后一個學(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é)號:"); 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("計算機成績:"); scanf("%f",&stu[a].sco.computer); } float input_score2(int a)//計算學(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)//按照計算機成績排序 { 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é)號查找學(xué)生并輸出 { int num; int c; printf("請輸入要查詢的學(xué)號:"); 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; } } 運行結(jié)果: 源文件下載地址: http://115.com/file/clnq138g#一個簡單的學(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é)號是否重復(fù) void input_student4(int,int);//覆蓋原信息 void sort_student3(student s[],int);//按照英語成績排序 void sort_student4(student s[],int);//按照計算機成績排序 void sort_student2(student s[],int);//按照數(shù)學(xué)成績排序 void sort_student5(student s[],int);//按照平均成績排序 float input_score2(int);//計算學(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é)號查詢學(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)計成績 void input_score1(void);//統(tǒng)計成績總函數(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é)號 姓名 數(shù)學(xué)成績 英語成績 計算機成績 平均成績\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)計成績總函數(shù) { int c; c=search_student2(iNumOfStu); printf("學(xué)號:%d\n",stu[c].number); printf("姓名:%s\n",stu[c].name); input_score3(c); printf("新成績錄入成功!
標(biāo)簽: c語言
上傳時間: 2019-06-09
上傳用戶:啊的撒旦
序號 題號 題目名稱 組別1 A 微電網(wǎng)模擬系統(tǒng) 本科2 B 滾球控制系統(tǒng) 本科3 C 四旋翼自主飛行器探測跟蹤系統(tǒng) 本科4 E 自適應(yīng)濾波器 本科5 F 調(diào)幅信號處理實驗電路 本科6 H 遠(yuǎn)程幅頻特性測試裝置 本科7 I 可見光室內(nèi)定位裝置 本科8 K 單相用電器分析監(jiān)測裝置 本科9 L 自動泊車系統(tǒng) 高職高專10 M 管道內(nèi)鋼珠運動測量裝置 高職高專11 O 直流電動機測速裝置 高職高專12 P 簡易水情檢測系統(tǒng) 高職高專
標(biāo)簽: 全國大學(xué)生電子設(shè)計競賽
上傳時間: 2021-12-11
上傳用戶:wangshoupeng199
AC220V轉(zhuǎn)DC5V(3W )-RS485電路-繼電器驅(qū)動板ALTIUM設(shè)計硬件原理圖+PCB+AD集成封裝庫,2層板設(shè)計,大小為59x62mm,Altium Designer 設(shè)計的工程文件,包括完整的原理圖及PCB文件,可以用Altium(AD)軟件打開或修改,可作為你產(chǎn)品設(shè)計的參考。集成封裝器件型號列表:Library Component Count : 20Name Description----------------------------------------------------------------------------------------------------CAP1 GRM21BR61A106KE19L,106,10μF,±10%,10V,X5R,0805,muRata,RoHSCON2 ConnectorCON3 ConnectorCON4 ConnectorDIODE ZENER2 SMBJ6.5CA,DO-214AA,君耀,RoHSDIODE1 1N4148,SOD-323,長電,RoHSFUSE1 MST2.50,T2.5A,250V,長方形,CONQUER,RoHSHEADER 5X2 HOLE - 不上螺絲 MARKER MAX485CSA SP485REN-L,SO-8,EXAR,RoHSNPN-1 9013,SOT-23,長電,RoHSRELAY-SPST HF46F/005-HS1,20.5×7.2×15.3mm,宏發(fā),RoHSRES-PTC NTC,5D-9,DIP,RoHSRES2 10Ω,0603,*,RoHSRES4 471KD10,直插,君耀,RoHSZLGZY GAOYA ZY0IFBxxP-3W ZY0IGB05P-3W V1.00ZY_ESD-MARK
上傳時間: 2021-12-21
上傳用戶:aben
黑金CYCLONE4 EP4CE6F17C8 FPGA開發(fā)板ALTIUM設(shè)計硬件工程(原理圖+PCB+AD集成封裝庫),Altium Designer 設(shè)計的工程文件,包括完整的原理圖及PCB文件,可以用Altium(AD)軟件打開或修改,可作為你產(chǎn)品設(shè)計的參考。集成封裝器件型號列表:Library Component Count : 50Name Description----------------------------------------------------------------------------------------------------1117-3.3 24LC04B_0 4148 BAV99 CAP NP_Dup2CAP NP_Dup2_1 CAP NP_Dup2_2CP2102_0 C_Dup1 C_Dup1_1C_Dup2 C_Dup3 C_Dup4 C_Dup4_1 Circuit Breaker Circuit BreakerConnector 15 Receptacle Assembly, 15-Pin, Sim Line ConnectorDS1302_8SO EC EP4CE6F17C8 Cyclone IV Family FPGA, 2V Core, 179 I/O Pins, 2 PLLs, 256-Pin FBGA, Speed Grade 8, Commercial GradeEP4CE6F17C8_1 Cyclone IV Family FPGA, 2V Core, 179 I/O Pins, 2 PLLs, 256-Pin FBGA, Speed Grade 8, Commercial GradeFuse 2 FuseHEX6HY57651620/SO_0 Header 2 Header, 2-PinHeader 9X2 Header, 9-Pin, Dual rowINDUCTOR JTAG-10_Dup1 KEYB LED LED_Dup1 M25P16-VMN3PB 16 Mb (x1) Automotive Serial NOR Flash Memory, 75 MHz, 2.7 to 3.6 V, 8-pin SO8 Narrow (MN), TubeMHDR2X20 Header, 20-Pin, Dual rowMiniUSBB OSCPNP R RESISTOR RN RN_Dup1 R_Dup1 R_Dup2 R_Dup3 R_Dup5R_Dup6 SD SPEAKERSRV05-4SW KEY-DPDT ZTAbattery
標(biāo)簽: 黑金 cyclone4 ep4ce6f17c8 fpga
上傳時間: 2021-12-22
上傳用戶:
基于DSP設(shè)計的數(shù)字化大功率電源數(shù)字化全橋變換器電源ALTIUM設(shè)計硬件原理圖+PCB文件,包括主板和控制板2個硬件,均為4層板設(shè)計,ALTIUM設(shè)計的硬件工程文件,包括完整的原理圖和PCB文件,可以做為你的設(shè)計參考。主板原理圖器件如下:Library Component Count : 55Name Description----------------------------------------------------------------------------------------------------6CWQ09F Schottky Rectifier7416474HC16474LS1647805 7812 7815 7824 ACT45B 共模電感ARRESTER R27030059BAV99 R26010005BRIDGE R26060153CAPCB CD CON4 ConnectorComponent_1_1 D-1N5819 DiodeDEDIO-SMDELECTRO1 R21010742FUSE R27010205HOLHeader 3 Header, 3-PinHeader 6 Header, 6-PinHeader 7 Header, 7-PinIR1150S JQX-115F-I L0 L2 LBAV70 R26010012LM358MOSFET N NMOS-2 R26110100NPN R26080003OPTOISO1 R25030015PNP PNP TransistorR-NTCR20190006 R20190075R21020037 R21020037/工業(yè)B/消費C/瓷片電容/4700pF±20%/250Vac/Y2/Y5U/引腳間距7.5mmR26020054 R26020054/工業(yè)A/消費C/快恢復(fù)二極管/1000V/1A/1.7V/75ns/SMA/US1M-E3-61TR26030048 R26030048/工業(yè)A/消費B/肖特基二極管/1A/100V/0.79V/SMA/SS110LR26030097 R26030097/工業(yè)B/肖特基二極管/60V/1A/0.70V/SMA/B160R29030691 R29030691/防雷接地座/最大尺寸7.36*7*10/紫銅鍍錫RES R20190099RES2 RES_1Res3 ResistorTL431 TRANS01TRANS7-9 Transformer UCC3804VARISTOR R27030060ZENERu型槽3.5x7
標(biāo)簽: tms320f28035 dsp 全橋變換器
上傳時間: 2021-12-22
上傳用戶:aben
瑞芯微RK3399 軟硬件資料包括3款硬件Cadence原理圖PCB文件,硬件設(shè)計文檔,LINIUX軟件開發(fā)文檔i資料硬件文檔主要介紹RK3399處理器硬件設(shè)計的要點及注意事項,旨在幫助RK客戶縮短產(chǎn)品的設(shè)計周期、提高產(chǎn)品的設(shè)計穩(wěn)定性及降低故障率。請客戶參考本指南的要求進(jìn)行硬件設(shè)計,同時盡量使用RK發(fā)布的相關(guān)核心模板。 SDK 是基于 Linux 64bit 系統(tǒng),內(nèi)核基于 kernel 4.40,適用于 RK3399 挖掘機以及基于其 上所有 linux 開發(fā)產(chǎn)品。 支持 VPU 硬解碼、GPU 3D、QT 等功能。具體功能調(diào)試和接口說明,請閱讀工程目錄 docs/目錄下文檔。
標(biāo)簽: rk3399 軟硬件 cadence pcb
上傳時間: 2022-01-29
上傳用戶:
飛凌嵌入式-LS1043A LS1046A核心板硬件設(shè)計手冊第一章 NXP QorIQ LS104xA 簡介 QorIQ? LS104xA 處理器是恩智浦面向嵌入式網(wǎng)絡(luò)推出的一款四核 64 位 ARM?處理器。LS1023A (雙 核版本)和 LS104xA (四核版本)可通過支持無風(fēng)扇設(shè)計的靈活 I/O 封裝,提供超過 10 Gbps 的性能。這款 SoC 是專為小規(guī)格網(wǎng)絡(luò)和工業(yè)應(yīng)用而設(shè)計的解決方案,針對經(jīng)濟(jì)型低端 PCB 進(jìn)行了 BOM 優(yōu)化,降低了 電源成本,采用了單時鐘設(shè)計。全新 0.9V 版本的 LS104xA 和 LS1023A 能夠面向無線 LAN 和以太網(wǎng)供電 系統(tǒng)提供額外的功耗節(jié)省。全新 23x23 封裝方式,支持引腳兼容設(shè)計,可擴(kuò)展至 LS1046A (四核 A72 處 理器)。QorIQ LS104xA 能夠提升雙核 32 位 ARM 產(chǎn)品的性能,并且延續(xù)了 QorIQ 系列一貫的 I/O 靈活性, 集成了 QUICC Engine?,繼續(xù)提供對 HDLC、TDM 或 Profibus 的無縫支持。 FET104xA-C 核心板 CPU 采用的是 LS1043AXE8QQB 和 LS1046AXE8T1A。如下為 LS1043A 和 LS1046A 的應(yīng)用處理框圖:
標(biāo)簽: 嵌入式
上傳時間: 2022-03-06
上傳用戶:
華為硬件工程師手冊 159頁 1M 超清書簽版第一節(jié) 硬件開發(fā)過程簡介 §1.1.1 硬件開發(fā)的基本過程 產(chǎn)品硬件項目的開發(fā),首先是要明確硬件總體需求情況,如 CPU 處理能力、 存儲容量及速度,I/O 端口的分配、接口要求、電平要求、特殊電路(厚膜等) 要求等等。其次,根據(jù)需求分析制定硬件總體方案,尋求關(guān)鍵器件及電咱的技術(shù) 資料、技術(shù)途徑、技術(shù)支持,要比較充分地考慮技術(shù)可能性、可靠性以及成本控 制,并對開發(fā)調(diào)試工具提出明確的要求。關(guān)鍵器件索取樣品。第三、總體方案確 定后,作硬件和單板軟件的詳細(xì)設(shè)計,包括繪制硬件原理圖、單板軟件功能框圖 及編碼、PCB 布線,同時完成開發(fā)物料清單、新器件編碼申請、物料申領(lǐng)。第 四,領(lǐng)回 PCB 板及物料后由焊工焊好 1~2 塊單板,作單板調(diào)試,對原理設(shè)計中 的各功能進(jìn)行調(diào)測,必要時修改原理圖并作記錄。第五,軟硬件系統(tǒng)聯(lián)調(diào),一般 的單板需硬件人員、單板軟件人員的配合,特殊的單板(如主機板)需比較大型 軟件的開發(fā),參與聯(lián)調(diào)的軟件人員更多。一般地,經(jīng)過單板調(diào)試后在原理及 PCB 布線方面有些調(diào)整,需第二次投板。第六,內(nèi)部驗收及轉(zhuǎn)中試,硬件項目完成開 發(fā)過程。 §1.1.2 硬件開發(fā)的規(guī)范化 上節(jié)硬件開發(fā)的基本過程應(yīng)遵循硬件開發(fā)流程規(guī)范文件執(zhí)行,不僅如此,硬 件開發(fā)涉及到技術(shù)的應(yīng)用、器件的選擇等,必須遵照相應(yīng)的規(guī)范化措施才能達(dá)到 質(zhì)量保障的要求。這主要表現(xiàn)在,技術(shù)的采用要經(jīng)過總體組的評審,器件和廠家 的選擇要參照物料認(rèn)證部的相關(guān)文件,開發(fā)過程完成相應(yīng)的規(guī)定文檔,另外,常 用的硬件電路(如 ID.WDT)要采用通用的標(biāo)準(zhǔn)設(shè)計。 第二節(jié) 硬件工程師職責(zé)與基本技能 §1.2.1 硬件工程師職責(zé) 一個技術(shù)領(lǐng)先、運行可靠的硬件平臺是公司產(chǎn)品質(zhì)量的基礎(chǔ),硬件
上傳時間: 2022-03-13
上傳用戶:jiabin
硬件工程師筆試題大全及答案21頁 硬件工程師筆試題大全及答案1、請列舉您知道的電阻、電容、電感品牌(最好包括國內(nèi)、國外品牌)。 電阻:RALEC旺詮、ROYALOHM、SUPEROHM、UniOhm、TA-I大毅、TDK、TOKEN、VISHAY、YAGEO、廣東風(fēng)華 電容:AVX、KEMET、Kyocera、muRata、NEC、nichicon、Panasonic、SAMSUNG、SANYO、TAIYO YUDEN、TDK、VISHAY、YAGEO、廣東風(fēng)華、 電感:AEM、EPCOS、ETC、Gausstek豐晶、muRata、sumida村田、Sunlord順絡(luò)、TAI-TECH臺慶、TDK、TOKEN、TOREX、VISHAY、WE、YAGEO國巨、柯愛亞、科達(dá)嘉、奇力新、千如電子、捷比信、紫泰荊、肇慶英達(dá)、廣東風(fēng)華 2、請解釋電阻、電容、電感封裝的含義:0402、0603、0805。表示的是尺寸參數(shù)。 0402:40*20mil;0603:60*30mil;0805:80*50mil。 3、請問電阻、電容、電感的封裝大小分別與什么參數(shù)有關(guān)?電阻封裝大小與電阻值、額定功率有關(guān);電容封裝大小與電容值、額定電壓有關(guān);電感封裝大小與電感量、額定電流有
標(biāo)簽: 硬件工程師
上傳時間: 2022-03-25
上傳用戶:ttalli
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1