基於C語言實現簡單學生成績管理系統
本文實例為大傢分享瞭C語言實現簡單學生成績管理系統的具體代碼,供大傢參考,具體內容如下
一、系統主要功能
1、密碼登錄
2、輸入數據
3、查詢成績
4、修改成績
5、輸出所有學生成績
6、退出系統
二、代碼實現
#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個學生的線性代數分數:",i); scanf("%d",&stu[i].ds); printf("第%d個學生的英語分數:",i); scanf("%d",&stu[i].eng); printf("第%d個學生的高等數學分數:",i); scanf("%d",&stu[i].math); printf("第%d個學生的C語言分數:",i); scanf("%d",&stu[i].lan); count++; sprintf(stu[i].num,"%d",count); } void input() //輸入數據 { system("color 3e"); void menu(); void insert(int i); int i,k,l,u; printf("請設定輸入的學生人數:"); scanf("%d",&u); while(u<1||u>10) { printf("超出數據范圍請重輸:"); 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.繼續 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.繼續 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.繼續 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.繼續 2.返回菜單 \n請選擇進行下一個操作:"); scanf("%d",&w0); }while(w0==1); system("cls"); menu(); //不再查找時返回菜單 } } void xiugai() //修改學生信息的函數 { 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.繼續 2.返回菜單 \n請選擇進行下一個操作:"); scanf("%d",&o); if(o==1) { system("cls"); xiugai(); } if(o==2) { system("cls"); menu(); //返回菜單 } } }while(k==-1); system("cls"); printf("請輸入修改後的線性代數分數:"); scanf("%d",&stu[k].ds); printf("請輸入修改後的英語分數:"); scanf("%d",&stu[k].eng); printf("請輸入修改後的高等數學分數:"); scanf("%d",&stu[k].math); printf("請輸入修改後的C語言分數:"); 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() //輸出所有學生成績的函數 { 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線性代數分數:%d \n英語分數:%d \n高等數學分數:%d \nC語言分數:%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) //輸出某一個學生的信息的函數 { printf("\n學號:%s \n姓名:%s \n性別:%s \n民簇:%s \n年齡:%d \n地址:%s \n線性代數分數:%d \n英語分數:%d \n高等數學分數:%d \nC語言分數:%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() //退出系統的函數 { system("cls"); system("color 2e"); printf("\n祝您生活愉快!\n"); exit(0); } void menu() //菜單函數 { system("color 1e"); printf("\n\t\t\t歡迎使用學生學籍管理系統!\n"); printf("\n"); int n,m; do { puts("\t\t********************菜單*********************"); puts("\t\t**************學生學籍管理系統***************"); puts("\t\t*********************************************"); puts("\t\t******* 1--輸入數據 ****"); puts("\t\t******* 2--查詢成績 ****"); puts("\t\t******* 3--修改成績 ****"); puts("\t\t******* 4--輸出所有學生成績 ****"); puts("\t\t******* 5--退出系統 ****"); 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; }
三、效果演示
輸入登入密碼:
輸入數據:
查詢成績:
修改成績:
輸出所有學生成績:
退出系統:
以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。