您好,登錄后才能下訂單哦!
這篇文章主要介紹“C語言實現學生成績管理系統的代碼如何寫”,在日常操作中,相信很多人在C語言實現學生成績管理系統的代碼如何寫問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”C語言實現學生成績管理系統的代碼如何寫”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
設計學生成績管理系統
要求如下:
1.輸入學生信息
2.統計學生成績
3.查找并顯示學生成績
4.按姓名查找,修改學生資料
5.顯示所有學生名單
6.查找并刪除學生信息
7.輸出個科目成績最高的學生
#include<stdio.h> #include<ctype.h> #include<stdlib.h> #include<string.h> struct Student { int cls; char namee[10]; char number[10]; int chinese; int english; int computer; int math; }stud1[100]; int menu() { char a; while(a>'8'||a<'0') { system("cls"); printf("***** 學生成績管理系統 *******\n"); printf(" 1.輸入學生信息\n"); printf(" 2.統計學生成績\n"); printf(" 3.查找并顯示學生成績\n"); printf(" 4.按姓名查找,修改學生資料\n"); printf(" 5.顯示所有學生名單\n"); printf(" 6.查找并刪除學生信息\n"); printf(" 7.輸出個科目成績最高的學生\n"); printf(" 0.退出系統\n"); printf("************************************\n"); printf("請選擇(0-8)\n"); a=getchar();//鍵盤敲的字符賦給a } return(a-'0'); } /******************************************/ int Input(Student stud[],int n) //輸入數據 定義輸入數據函數 { int i=0; char sign,x[10]; for(;sign !='n'&&sign !='N';) { printf(" 姓名:"); scanf("%s",stud[n+i].namee); printf(" 班級:"); scanf("%d",&stud[n+i].cls); printf(" 學號:"); scanf("%s",stud[n+i].number); printf(" 語文:"); scanf("%d",&stud[n+i].chinese); printf(" 數學:"); scanf("%d",&stud[n+i].math); printf(" 英語:"); scanf("%d",&stud[n+i].english); printf(" 計算機:"); scanf("%d",&stud[n+i].computer); gets(x); printf("還有要輸入的信息嗎?(y/n)"); scanf("%c",&sign); i++; } return(n+i); } void Sort(Student stud[], int n)//根據平均分排序(冒泡法) { int i,j; struct Student tmp; for (i=0;i<n;i++) { for (j=1;j<n-i;j++) { if ((stud[j-1].chinese+stud[j-1].english+stud[j-1].computer+stud[j-1].math)<(stud[j].chinese+stud[j].english+stud[j].computer+stud[j].math)) { tmp=stud[j-1]; stud[j-1]=stud[j]; stud[j]=tmp; } } } } /***************統計數據*******/ void Display(Student stud[], int n) { Sort(stud,n); int i; printf(" 班級 學號 姓名 語文 數學 英語 計算機 總分 平均分\n"); for(i=1;i<n+1;i++) { int s=stud[i-1].chinese+stud[i-1].math+stud[i-1].english+stud[i-1].computer; printf("%7d,%7s,%7s,%7d,%7d,%7d,%7d,%7d,%7d\n",stud[i-1].cls,stud[i-1].number,stud[i-1].namee,stud[i-1].chinese,stud[i-1].math,stud[i-1].english,stud[i-1].computer,s,s/4); if(i>1 && i%10==0) { system("pause"); } } system("pause"); int a; printf("語文不及格的有:班級 姓名 學號 成績\n"); for(a=0;a<n;a++) { if(stud[a].chinese<60) printf(" %7d %7s %7s% 7d\n",stud[a].cls,stud[a].namee,stud[a].number,stud[a].chinese); } printf("數學不及格的有:班級 姓名 學號 成績\n"); for(a=0;a<n;a++) { if(stud[a].math<60) printf(" %7d %7s %7s %7d\n",stud[a].cls,stud[a].namee,stud[a].number,stud[a].math); } printf("英語不及格的有:班級 姓名 學號 成績\n"); for(a=0;a<n;a++) { if(stud[a].english<60) printf(" %7d %7s %7s %7d\n",stud[a].cls,stud[a].namee,stud[a].number,stud[a].english); } printf("計算機不及格的有:班級 姓名 學號 成績\n"); for(a=0;a<n;a++) { if(stud[a].computer<60) printf(" %7d %7s %7s %7d\n",stud[a].cls,stud[a].namee,stud[a].number,stud[a].computer); } system("pause"); } /************查找學生顯示其信息*******************/ void Query(Student stud[],int n) { char namee[20]; printf(" 輸入其姓名:\n"); scanf("%s",namee); int i=0; while(strcmp(stud[i].namee,namee)!=0&&i<n) i++; if(i==n) { printf("\t\t\t沒有發現該學生的資料!\n"); return; } printf(" 學號:%s\n",stud[i].number); printf(" 班級:%d\n",stud[i].cls); printf(" 語文:%d\n",stud[i].chinese); printf(" 英語:%d\n",stud[i].english); printf(" 數學:%d\n",stud[i].math); printf(" 計算機:%d\n",stud[i].computer); } /************刪除學生信息*********/ int Delete(Student stud[],int n) { char s[20]; int i=0,j; printf(" 請輸入要刪除的學生的姓名:\n"); scanf("%s",s); while(strcmp(stud[i].namee,s)!=0&&i<n) i++; if(i==n) { printf("\t\t\t沒有發現該學生資料!\n"); return(n); } for(j=i;j<n-1;j++) { strcpy(stud[j].number,stud[j+1].number); strcpy(stud[j].namee,stud[j+1].namee); stud[j].cls=stud[j+1].cls; stud[j].chinese=stud[j+1].chinese; stud[j].math=stud[j+1].math; stud[j].english=stud[j+1].english; stud[j].computer=stud[j+1].computer; } printf(" 當前信息已刪除成功!"); return(n-1); } /****************修改信息**********************/ int Revise(Student stud[],int n) { int i=0; char na[10]; scanf("%s",na); while(strcmp(stud[i].namee,na)!=0&&i<n) i++; if(i==n) { printf("\t\t\t沒有發現該學生的資料!\n"); } printf("修改班級:\n"); scanf("%d",&stud[i].cls); printf("修改學號:\n"); scanf("%s",stud[i].number); printf("修改語文成績:\n"); scanf("%d",&stud[i].chinese); printf("修改英語成績:\n"); scanf("%d",&stud[i].english); printf("修改數學成績:\n"); scanf("%d",&stud[i].math); printf("修改計算機成績:\n"); scanf("%d",&stud[i].computer); printf("修改成功\n"); return(n); } /***************************************顯示學生名單**************************************/ void show(Student stud[],int n) { for(int i=0;i<n;i++) { printf(" %s\n",stud[i].namee); } system("pause"); } // void SercherH(Student stud[],int n)//搜索成績最高者輸出 { int a; int max ; printf("語文成績最高為:班級 姓名 學號 成績\n"); max=stud[0].chinese; for(a=1;a<n;a++) { if(stud[a].chinese>max) max=stud[a].chinese; } for(a=0;a<n;a++) { if(max==stud[a].chinese) printf(" %7d %7s %7s% 7d\n",stud[a].cls,stud[a].namee,stud[a].number,stud[a].chinese); } printf("數學成績最高為:班級 姓名 學號 成績\n"); max=stud[0].math; for(a=1;a<n;a++) { if(stud[a].math>max) max=stud[a].math; } for(a=0;a<n;a++) { if(max==stud[a].math) printf(" %7d %7s %7s% 7d\n",stud[a].cls,stud[a].namee,stud[a].number,stud[a].math); } printf("英語成績最高為:班級 姓名 學號 成績\n"); max=stud[0].english; for(a=1;a<n;a++) { if(stud[a].english>max) max=stud[a].english; } for(a=0;a<n;a++) { if(max==stud[a].english) printf(" %7d %7s %7s% 7d\n",stud[a].cls,stud[a].namee,stud[a].number,stud[a].english); } printf("計算機成績最高為:班級 姓名 學號 成績\n"); max=stud[0].computer; for(a=1;a<n;a++){ if(stud[a].computer>max) max=stud[a].computer;} for(a=0;a<n;a++) { if(max==stud[a].computer) printf(" %7d %7s %7s% 7d\n",stud[a].cls,stud[a].namee,stud[a].number,stud[a].computer);} system("pause");} /*****************主函數調用*****************/ int main() { int n1=0; for(;;) { switch(menu()){ case 1: printf(" 輸入學生資料\n"); n1=Input(stud1,n1);break; case 2: printf(" 輸出所有學生資料\n"); Display(stud1,n1);break; case 3: int r;printf(" 查找學生\n"); Query(stud1,n1); system("pause");break; case 4: int p;printf(" 修改學生資料\n"); printf(" 輸入你要修改的學生的姓名:"); n1=Revise(stud1,n1); system("pause");break; case 5: printf(" 顯示所有學生名單:\n"); show(stud1,n1); system("pause");break; case 6: printf(" 查找并刪除學生信息\n"); int o; n1=Delete(stud1,n1); system("pause");break; case 7: int l;SercherH(stud1,n1);break; case 0: system("pause");break; } } }
到此,關于“C語言實現學生成績管理系統的代碼如何寫”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。