本篇内容介绍了“基于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(" 请输入第%d个学生的信息! ",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.学号 请选择查找的类别:"); scanf("%d",&w1); if (w1<1||w1>2) { printf("输入错误!请重输: "); 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(" 没有这个学生的信息! "); printf(" 1.继续 2.返回菜单 请选择进行下一个操作;"); scanf("%d",&o); if (o==1) { system("cls"); search(); //继续查找 } if(o==2) { system("cls"); menu(); //返回菜单 } } }while(k==-1); system("cls"); printf_one(k); //查找到以后输出这个学生的信息 printf(" 1.继续 2.返回菜单 请选择进行下一个操作:"); 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(" 没有这个学生的信息! "); printf(" 1.继续 2.返回菜单 请选择进行下一个操作:"); scanf("%d",&o); if(o==1) { system("cls"); search(); } if(o==2) { system("cls"); menu(); //返回菜单 } } }while(k==-1); system("cls"); printf_one(k); //找到后输出这个学生的信息 printf(" 1.继续 2.返回菜单 请选择进行下一个操作:"); 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("没有这个学生的信息! "); printf(" 1.继续 2.返回菜单 请选择进行下一个操作:"); 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(" "); printf(" 该生修改后的信息如下: "); printf_one(k); //输出这个学生的信息 printf(" 请按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(" 学号:%s 姓名:%s 性别:%s 民簇:%s 年龄:%d 地址:%s 线性代数分数:%d 英语分数:%d 高等数学分数:%d C语言分数:%d ",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(" 学号:%s 姓名:%s 性别:%s 民簇:%s 年龄:%d 地址:%s 线性代数分数:%d 英语分数:%d 高等数学分数:%d C语言分数:%d ",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(" 祝您生活愉快! "); exit(0); } void menu() //菜单函数 { system("color 1e"); printf(" 欢迎使用学生学籍管理系统! "); printf(" "); int n,m; do { puts(" ********************菜单*********************"); puts(" **************学生学籍管理系统***************"); puts(" *********************************************"); puts(" ******* 1--输入数据 ****"); puts(" ******* 2--查询成绩 ****"); puts(" ******* 3--修改成绩 ****"); puts(" ******* 4--输出所有学生成绩 ****"); puts(" ******* 5--退出系统 ****"); puts(" *********************************************"); printf(" *************请选择服务种类(1~5):"); scanf("%d",&n); if(n<1||n>5) { system("cls"); printf(" *************选择错误! 请重新选择! "); 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; }
三、效果演示
输入登入密码:
输入数据:
查询成绩:
修改成绩:
输出所有学生成绩:
退出系统: