基于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; } 三、效果演示

输入登入密码:

输入数据:

查询成绩:

修改成绩:

输出所有学生成绩:

退出系统:

推荐阅读