C語言實現(xiàn)學(xué)生成績管理系統(tǒng)課程設(shè)計
本文實例為大家分享了C語言實現(xiàn)學(xué)生成績管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
設(shè)計要求
設(shè)計學(xué)生成績管理系統(tǒng)
要求如下:
1.輸入學(xué)生信息
2.統(tǒng)計學(xué)生成績
3.查找并顯示學(xué)生成績
4.按姓名查找,修改學(xué)生資料
5.顯示所有學(xué)生名單
6.查找并刪除學(xué)生信息
7.輸出個科目成績最高的學(xué)生
完整代碼
#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("***** ? ?學(xué)生成績管理系統(tǒng) ? ?*******\n"); ?? ??? ?printf(" ? ? ? ? ? ? ?1.輸入學(xué)生信息\n"); ?? ??? ?printf(" ? ? ? ? ? ? ?2.統(tǒng)計學(xué)生成績\n"); ?? ??? ?printf(" ? ? ? ? ? ? ?3.查找并顯示學(xué)生成績\n"); ?? ??? ?printf(" ? ? ? ? ? ? ?4.按姓名查找,修改學(xué)生資料\n"); ?? ??? ?printf(" ? ? ? ? ? ? ?5.顯示所有學(xué)生名單\n"); ?? ??? ?printf(" ? ? ? ? ? ? ?6.查找并刪除學(xué)生信息\n"); ?? ??? ?printf(" ? ? ? ? ? ? ?7.輸出個科目成績最高的學(xué)生\n"); ?? ??? ?printf(" ? ? ? ? ? ? ? 0.退出系統(tǒng)\n"); ?? ??? ?printf("************************************\n"); ?? ??? ?printf("請選擇(0-8)\n"); ?? ??? ?a=getchar();//鍵盤敲的字符賦給a? ?? ?} ?? ?return(a-'0'); } /******************************************/ int Input(Student stud[],int n) ? ? ?//輸入數(shù)據(jù) ? 定義輸入數(shù)據(jù)函數(shù) { ?? ?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(" ? ? ? ? ? ? ? 學(xué)號:"); ?? ??? ?scanf("%s",stud[n+i].number); ?? ??? ?printf(" ? ? ? ? ? ? ? 語文:"); ?? ??? ?scanf("%d",&stud[n+i].chinese); ?? ??? ?printf(" ? ? ? ? ? ? ? 數(shù)學(xué):"); ?? ??? ?scanf("%d",&stud[n+i].math); ?? ??? ?printf(" ? ? ? ? ? ? ? 英語:"); ?? ??? ?scanf("%d",&stud[n+i].english); ?? ??? ?printf(" ? ? ? ? ? ? ? 計算機(jī):"); ?? ??? ?scanf("%d",&stud[n+i].computer); ?? ??? ?gets(x); ?? ??? ?printf("還有要輸入的信息嗎?(y/n)"); ?? ??? ?scanf("%c",&sign); ?? ??? ?i++; ?? ?} ?? ?return(n+i); } void Sort(Student stud[], int n)//根據(jù)平均分排序(冒泡法) { ?? ? 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; ? ? ? ? ? ? } ? ? ? ? ?} ? ? ?} }? /***************統(tǒng)計數(shù)據(jù)*******/ void Display(Student stud[], int n) { ?? ?Sort(stud,n); ?? ?int i; ?? ?printf(" ? ? 班級 ? ?學(xué)號 ? ?姓名 ? 語文 ? ? 數(shù)學(xué) ? ?英語 ? 計算機(jī) ? 總分 ? 平均分\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("語文不及格的有:班級 ? ?姓名 ? 學(xué)號 ? ?成績\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("數(shù)學(xué)不及格的有:班級 ? ?姓名 ? 學(xué)號 ? ?成績\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("英語不及格的有:班級 ? ?姓名 ? 學(xué)號 ? ?成績\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("計算機(jī)不及格的有:班級 ? ?姓名 ? 學(xué)號 ? ?成績\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"); } /************查找學(xué)生顯示其信息*******************/ 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沒有發(fā)現(xiàn)該學(xué)生的資料!\n"); ?? ??? ?return; ?? ?} ?? ?printf(" ? ? ? ? ?學(xué)號:%s\n",stud[i].number); ?? ?printf(" ? ? ? ? ?班級:%d\n",stud[i].cls); ?? ?printf(" ? ? ? ? ?語文:%d\n",stud[i].chinese); ?? ?printf(" ? ? ? ? ?英語:%d\n",stud[i].english); ?? ?printf(" ? ? ? ? ?數(shù)學(xué):%d\n",stud[i].math); ?? ?printf(" ? ? ? ? ?計算機(jī):%d\n",stud[i].computer); } /************刪除學(xué)生信息*********/ int Delete(Student stud[],int n) { ?? ?char s[20]; ?? ?int i=0,j; ?? ?printf(" ? ? ? 請輸入要刪除的學(xué)生的姓名:\n"); ?? ?scanf("%s",s); ?? ?while(strcmp(stud[i].namee,s)!=0&&i<n) i++;? ?? ?if(i==n)? ?? ?{ ?? ??? ?printf("\t\t\t沒有發(fā)現(xiàn)該學(xué)生資料!\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(" ? ? ? ? ?當(dāng)前信息已刪除成功!");? ?? ?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沒有發(fā)現(xiàn)該學(xué)生的資料!\n"); ?? ?} ?? ?printf("修改班級:\n"); ?? ?scanf("%d",&stud[i].cls); ?? ?printf("修改學(xué)號:\n"); ?? ?scanf("%s",stud[i].number); ?? ?printf("修改語文成績:\n"); ?? ?scanf("%d",&stud[i].chinese); ?? ?printf("修改英語成績:\n"); ?? ?scanf("%d",&stud[i].english); ?? ?printf("修改數(shù)學(xué)成績:\n"); ?? ?scanf("%d",&stud[i].math); ?? ?printf("修改計算機(jī)成績:\n"); ?? ?scanf("%d",&stud[i].computer); ?? ?printf("修改成功\n"); ?? ?return(n); } /***************************************顯示學(xué)生名單**************************************/ 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("語文成績最高為:班級 ? ?姓名 ? 學(xué)號 ? ?成績\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("數(shù)學(xué)成績最高為:班級 ? ?姓名 ? 學(xué)號 ? ?成績\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("英語成績最高為:班級 ? ?姓名 ? 學(xué)號 ? ?成績\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("計算機(jī)成績最高為:班級 ? ?姓名 ? 學(xué)號 ? ?成績\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");} /*****************主函數(shù)調(diào)用*****************/ int main() { ?? ?int n1=0; ?? ?for(;;) ?? ?{ ?? ??? ?switch(menu()){ ?? ??? ?case 1: ?? ??? ??? ?printf(" ? ? ? ? ? ? ? 輸入學(xué)生資料\n"); ?? ??? ??? ?n1=Input(stud1,n1);break; ?? ??? ?case 2: ?? ??? ??? ?printf(" ? ? ? ? ? ? ? ? ?輸出所有學(xué)生資料\n"); ?? ??? ??? ??? ?Display(stud1,n1);break; ?? ??? ?case 3: ?? ??? ??? ?int r;printf(" ? ? ? ? ? ? ? 查找學(xué)生\n"); ?? ??? ??? ?Query(stud1,n1); system("pause");break; ?? ??? ?case 4: ?? ??? ??? ?int p;printf(" ? ? ? ? ? ? ? 修改學(xué)生資料\n"); printf(" ? ? ? ? ? ? ? 輸入你要修改的學(xué)生的姓名:"); ?? ??? ??? ??? ?n1=Revise(stud1,n1); ?? ??? ??? ?system("pause");break; ?? ??? ?case 5: ?? ??? ??? ?printf(" ? ? ? ? ? ? ? 顯示所有學(xué)生名單:\n"); ?? ??? ??? ??? ?show(stud1,n1); ?? ??? ??? ?system("pause");break; ? ? ? ? case 6: ?? ??? ??? ?printf(" ? ? ? ? ? ? ? 查找并刪除學(xué)生信息\n"); ?? ??? ??? ?int o; n1=Delete(stud1,n1); system("pause");break; ?? ??? ?case 7: ?? ??? ??? ?int l;SercherH(stud1,n1);break;?? ? ?? ??? ?case 0:?? ??? ??? ??? ? ?? ??? ??? ?system("pause");break; ?? ??? ?} ?? ?} }
運(yùn)行結(jié)果
后面的需要執(zhí)行哪項功能,就輸入對應(yīng)數(shù)字就可以!
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- C語言編寫學(xué)生成績管理系統(tǒng)
- 學(xué)生成績管理系統(tǒng)C語言代碼實現(xiàn)
- C語言利用結(jié)構(gòu)體數(shù)組實現(xiàn)學(xué)生成績管理系統(tǒng)
- C語言學(xué)生成績管理系統(tǒng)源代碼
- C語言實現(xiàn)學(xué)生成績管理系統(tǒng)實戰(zhàn)教學(xué)
- C語言實現(xiàn)簡單學(xué)生成績管理系統(tǒng)
- C語言結(jié)構(gòu)體版學(xué)生成績管理系統(tǒng)
- 使用C語言實現(xiàn)學(xué)生成績管理系統(tǒng)
- C語言實現(xiàn)學(xué)生成績管理系統(tǒng)
- C語言學(xué)生成績管理系統(tǒng)課程設(shè)計
相關(guān)文章
C++ Boost PropertyTree示例超詳細(xì)講解
Boost是為C++語言標(biāo)準(zhǔn)庫提供擴(kuò)展的一些C++程序庫的總稱。Boost庫是一個可移植、提供源代碼的C++庫,作為標(biāo)準(zhǔn)庫的后備,是C++標(biāo)準(zhǔn)化進(jìn)程的開發(fā)引擎之一,是為C++語言標(biāo)準(zhǔn)庫提供擴(kuò)展的一些C++程序庫的總稱2022-11-11VC運(yùn)用OPENGL加載BMP紋理圖的實現(xiàn)方法匯總
這篇文章主要介紹了VC運(yùn)用OPENGL加載BMP紋理圖的實現(xiàn)方法,對于更好的了解OpenGL很有幫助,需要的朋友可以參考下2014-07-07C語言中獲取進(jìn)程識別碼的相關(guān)函數(shù)
這篇文章主要介紹了C語言中獲取進(jìn)程識別碼的相關(guān)函數(shù),分別為getpid()函數(shù)和getppid()函數(shù)的使用,需要的朋友可以參考下2015-08-08