基于C語言實現(xiàn)簡單學生成績管理系統(tǒng)
更新時間:2022年08月31日 11:23:23 作者:派丶小星
這篇文章主要為大家詳細介紹了基于C語言實現(xiàn)簡單學生成績管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了C語言實現(xiàn)簡單學生成績管理系統(tǒng)的具體代碼,供大家參考,具體內容如下
一、系統(tǒng)主要功能
1、密碼登錄
2、輸入數(shù)據
3、查詢成績
4、修改成績
5、輸出所有學生成績
6、退出系統(tǒng)
二、代碼實現(xiàn)
#include <stdio.h> #include <stdlib.h> #include <string.h> #define N 10 struct student { ?? ?char num[10]; ? ? char name[20]; ?? ?int old; ?? ?char add[30]; ?? ?char xb[5]; ?? ?char mc[5]; ? ? int ds; ?? ?int eng; ?? ?int math; ?? ?int lan; }; struct student stu[N]; int count=0; void insert(int i) //輸入學生的具體信息 { ?? ?printf("第%d個學生的姓名:",i); ? ? scanf("%s",stu[i].name); ?? ?printf("第%d個學生的年齡:",i); ? ? scanf("%d",&stu[i].old); ?? ?printf("第%d個學生的住址:",i); ? ? scanf("%s",stu[i].add); ?? ?printf("第%d個學生的性別:",i); ? ? scanf("%s",stu[i].xb); ?? ?printf("第%d個學生的民簇:",i); ? ? scanf("%s",stu[i].mc); ? ? printf("第%d個學生的線性代數(shù)分數(shù):",i); ? ? scanf("%d",&stu[i].ds); ? ? printf("第%d個學生的英語分數(shù):",i); ? ? scanf("%d",&stu[i].eng); ? ? printf("第%d個學生的高等數(shù)學分數(shù):",i); ? ? scanf("%d",&stu[i].math); ? ? printf("第%d個學生的C語言分數(shù):",i); ? ? scanf("%d",&stu[i].lan); ? ? count++; ? ? sprintf(stu[i].num,"%d",count); } void input() //輸入數(shù)據 { ? ? system("color 3e"); ? ? void menu(); ? ? void insert(int i); ? ? int i,k,l,u; ? ? printf("請設定輸入的學生人數(shù):"); ?? ?scanf("%d",&u); ?? ?while(u<1||u>10) ?? ?{ ?? ??? ?printf("超出數(shù)據范圍請重輸:"); ?? ??? ?scanf("%d",&u); ?? ?} ? ? for(i=1;i<u+1;i++) ? ? { ? ? ? ? printf("\n請輸入第%d個學生的信息!\n",i); ? ? ? ? insert(i); ? ? } ? ? do ? ? { ? ? ? ? printf("請按0返回菜單:"); ? ? ? ? scanf("%d",&k); ? ? ? ? if (k==0) ? ? ? ? { ? ? ? ? ? ? system("cls"); ? ? ? ? ? ? menu(); ? ? ? ? } ? ? ? ? else ? ? ? ? ? ? l=0; ? ? }while(l==0); } void search() //查詢成績 { ? ? system("color 3f"); ?? ?void menu(); ? ? void printf_one(int k); ? ? struct student s; ? ? int i,k,w0,w1,w2; ? ? do ? ? { ? ? ? ? printf("1.姓名 ?2.學號 \n請選擇查找的類別:"); ? ? ? ? scanf("%d",&w1); ? ? ? ? if (w1<1||w1>2) ? ? ? ? { ? ? ? ? ? ? printf("輸入錯誤!請重輸:\n"); ? ? ? ? ? ? w2 = 1; ? ? ? ? } ? ? ? ? else ? ? ? ? ? ? w2 = 0; ? ? }while(w2 == 1); ? ? if(w1==1) //按姓名查找 ? ? { ?? ??? ?do ? ? ? ? { ? ? ? ? ? ? k=-1; ? ? ? ? ? ? do ? ? ? ? ? ? { ? ? ? ? ? ? ? ? printf("請輸入您想查找的學生的姓名:"); ? ? ? ? ? ? ? ? scanf("%s",s.name); ? ? ? ? ? ? ? ? for(i= 1;i<N;i++) ? ? ? ? ? ? ? ? ? ? if(strcmp(s.name,stu[i].name)==0) ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? k=i; ? ? ? ? ? ? ? ? ? ? ? ? s=stu[i]; ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? if(k==-1) //沒有找到 ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? int o; ? ? ? ? ? ? ? ? ? ? printf("\n沒有這個學生的信息!\n"); ? ? ? ? ? ? ? ? ? ? printf("\n 1.繼續(xù) ?2.返回菜單 \n請選擇進行下一個操作;"); ? ? ? ? ? ? ? ? ? ? scanf("%d",&o); ? ? ? ? ? ? ? ? ? ? if (o==1) ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? system("cls"); ? ? ? ? ? ? ? ? ? ? ? ? search(); //繼續(xù)查找 ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? if(o==2) ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? system("cls"); ? ? ? ? ? ? ? ? ? ? ? ? menu(); //返回菜單 ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? } ? ? ? ? ? ? }while(k==-1); ? ? ? ? ? ? system("cls"); ? ? ? ? ? ? printf_one(k); //查找到以后輸出這個學生的信息 ? ? ? ? ? ? printf("\n 1.繼續(xù) ?2.返回菜單 \n請選擇進行下一個操作:"); ? ? ? ? ? ? scanf("%d",&w0); ? ? ? ? }while(w0==1); ? ? ? ? system("cls"); ? ? ? ? menu(); //不再查找時返回菜單 ? ? } ? ? else //按學號查找 ? ? { ? ? ? ? do ? ? ? ? { ? ? ? ? ? ? k=-1; ? ? ? ? ? ? do ? ? ? ? ? ? { ? ? ? ? ? ? ? ? printf("請輸入您想查找的學生的學號:"); ? ? ? ? ? ? ? ? scanf("%s",s.num); ? ? ? ? ? ? ? ? for(i=0;i<N;i++) ? ? ? ? ? ? ? ? ? ? if(strcmp(s.num,stu[i].num)==0) //找到了 ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? k=i; ? ? ? ? ? ? ? ? ? ? ? ? s=stu[i]; ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? if(k==-1) ? ?//沒有找到 ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? int o; ? ? ? ? ? ? ? ? ? ? printf("\n沒有這個學生的信息!\n"); ? ? ? ? ? ? ? ? ? ? printf("\n 1.繼續(xù) ?2.返回菜單 \n請選擇進行下一個操作:"); ? ? ? ? ? ? ? ? ? ? scanf("%d",&o); ? ? ? ? ? ? ? ? ? ? if(o==1) ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? system("cls"); ?? ??? ??? ??? ??? ??? ?search(); ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? if(o==2) ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? system("cls"); ? ? ? ? ? ? ? ? ? ? ? ? menu(); //返回菜單 ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? } ? ? ? ? ? ? }while(k==-1); ? ? ? ? ? ? system("cls"); ? ? ? ? ? ? printf_one(k); //找到后輸出這個學生的信息 ? ? ? ? ? ? printf("\n 1.繼續(xù) ?2.返回菜單 \n請選擇進行下一個操作:"); ? ? ? ? ? ? scanf("%d",&w0); ? ? ? ? }while(w0==1); ? ? ? ? system("cls"); ? ? ? ? menu(); //不再查找時返回菜單 ? ? } } void xiugai() //修改學生信息的函數(shù) { ? ? system("color 1a"); ?? ?void menu(); ? ? void printf_one(int k); ? ? void xiugai_2(); ? ? struct student s; ? ? int i,n,k,w0=1,w1,w2=0,o; ? ? do ? ? { ? ? ? ? k=-1; ? ? ? ? do ? ? ? ? { ? ? ? ? ? ? printf("請輸入您想要修改的學生的姓名:"); ? ? ? ? ? ? scanf("%s",s.name); ? ? ? ? ? ? for(i=0;i<N;i++) ? ? ? ? ? ? if(strcmp(s.name,stu[i].name)==0) //與其中一個學生匹配 ? ? ? ? ? ? { ? ? ? ? ? ? ? ? k=i; ? ? ? ? ? ? ? ? s=stu[i]; ? ? ? ? ? ? } ? ? ? ? ? ? if(k==-1) //沒有找到輸入的學生 ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? printf("沒有這個學生的信息!\n"); ? ? ? ? ? ? ? ? printf("\n 1.繼續(xù) ?2.返回菜單 \n請選擇進行下一個操作:"); ? ? ? ? ? ? ? ? scanf("%d",&o); ? ? ? ? ? ? ? ? if(o==1) ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? system("cls"); ?? ??? ??? ??? ??? ?xiugai(); ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? if(o==2) ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? system("cls"); ? ? ? ? ? ? ? ? ? ? menu(); //返回菜單 ? ? ? ? ? ? ? ? } ? ? ? ? ? ? } ? ? ? ? }while(k==-1); ? ? ? ? system("cls"); ?? ??? ?printf("請輸入修改后的線性代數(shù)分數(shù):"); ?? ??? ?scanf("%d",&stu[k].ds); ?? ??? ?printf("請輸入修改后的英語分數(shù):"); ?? ??? ?scanf("%d",&stu[k].eng); ?? ??? ?printf("請輸入修改后的高等數(shù)學分數(shù):"); ?? ??? ?scanf("%d",&stu[k].math); ?? ??? ?printf("請輸入修改后的C語言分數(shù):"); ?? ??? ?scanf("%d",&stu[k].lan); ? ? ? ? printf("\n"); ?? ??? ?printf("\n該生修改后的信息如下:\n"); ? ? ? ? printf_one(k); //輸出這個學生的信息 ? ? ? ? printf("\n請按0返回菜單:"); ? ? ? ? scanf("%d",&o); ? ? ? ? if(o==0) ? ? ? ? { ? ? ? ? ? ? system("cls"); ? ? ? ? ? ? menu(); //返回菜單 ? ? ? ? } ? ? }while(1); } void printf_all() //輸出所有學生成績的函數(shù) { ? ? void menu(); ? ? system("color 9e"); ? ? int i,j,k; ? ? for (i=1;i<3;i++) ? ? { ? ? ? ? printf("\n學號:%s \n姓名:%s \n性別:%s \n民簇:%s \n年齡:%d \n地址:%s \n線性代數(shù)分數(shù):%d \n英語分數(shù):%d \n高等數(shù)學分數(shù):%d \nC語言分數(shù):%d \n",stu[i].num,stu[i].name,stu[i].xb,stu[i].mc,stu[i].old,stu[i].add,stu[i].ds,stu[i].eng,stu[i].math,stu[i].lan); ? ? } ? ? do ? ? { ? ? ? ? printf("請按0返回菜單:"); ? ? ? ? scanf("%d",&j); ? ? ? ? if(j==0) ? ? ? ? { ? ? ? ? ? ? system("cls"); ? ? ? ? ? ? menu(); ? ? ? ? } ? ? ? ? else ? ? ? ? { ? ? ? ? ? ? k = 0; ? ? ? ? } ? ? } while (k == 0); } void printf_one(int k) ?//輸出某一個學生的信息的函數(shù) { ?? ?printf("\n學號:%s \n姓名:%s \n性別:%s \n民簇:%s \n年齡:%d \n地址:%s \n線性代數(shù)分數(shù):%d \n英語分數(shù):%d \n高等數(shù)學分數(shù):%d \nC語言分數(shù):%d \n",stu[k].num,stu[k].name,stu[k].xb,stu[k].mc,stu[k].old,stu[k].add,stu[k].ds,stu[k].eng,stu[k].math,stu[k].lan); } void Exit() //退出系統(tǒng)的函數(shù) { ? ? system("cls"); ?? ?system("color 2e"); ?? ?printf("\n祝您生活愉快!\n"); ?? ?exit(0); } void menu() //菜單函數(shù) { ? ? system("color 1e"); ? ? printf("\n\t\t\t歡迎使用學生學籍管理系統(tǒng)!\n"); ? ? printf("\n"); ? ? int n,m; ? ? do ? ? { ? ? ? ? puts("\t\t********************菜單*********************"); ? ? ? ? puts("\t\t**************學生學籍管理系統(tǒng)***************"); ? ? ? ? puts("\t\t*********************************************"); ? ? ? ? puts("\t\t******* ? ? ? ?1--輸入數(shù)據 ? ? ? ? ? ? ? ****"); ? ? ? ? puts("\t\t******* ? ? ? ?2--查詢成績 ? ? ? ? ? ? ? ****"); ? ? ? ? puts("\t\t******* ? ? ? ?3--修改成績 ? ? ? ? ? ? ? ****"); ? ? ? ? puts("\t\t******* ? ? ? ?4--輸出所有學生成績 ? ? ? ****"); ? ? ? ? puts("\t\t******* ? ? ? ?5--退出系統(tǒng) ? ? ? ? ? ? ? ****"); ? ? ? ? puts("\t\t*********************************************"); ? ? ? ? printf("\t\t*************請選擇服務種類(1~5):"); ? ? ? ? scanf("%d",&n); ? ? ? ? if(n<1||n>5) ? ? ? ? { ? ? ? ? ? ? system("cls"); ? ? ? ? ? ? printf("\n\t\t*************選擇錯誤! 請重新選擇!\n"); ? ? ? ? ? ? m=1; ? ? ? ? } ? ? ? ? else ? ? ? ? { ? ? ? ? ? ? m = 0; ? ? ? ? } ? ? }while(m==1); ? ? switch(n) ? ? { ?? ??? ?case 1:system("cls");input();break; ?? ??? ?case 2:system("cls");search();break; ?? ??? ?case 3:system("cls");xiugai();break; ?? ??? ?case 4:system("cls");printf_all();break; ?? ??? ?case 5:Exit();break; ? ? } } int main() { ?? ?int c; ?? ?printf("請輸入密碼:"); ?? ?scanf("%d",&c); ?? ?while(c!=12345) ?? ?{ ?? ??? ?printf("密碼錯誤,請重輸:"); ?? ??? ?scanf("%d",&c); ?? ?} ?? ?system("cls"); ?? ?menu(); ? ? return 0; }
三、效果演示
輸入登入密碼:
輸入數(shù)據:
查詢成績:
修改成績:
輸出所有學生成績:
退出系統(tǒng):
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。