- #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;
- }