zoukankan      html  css  js  c++  java
  • 【C语言期末实训】学生学籍管理系统

    目录:
    
    一,设计要求
    
    1,总体要求:
    
    2,具体功能:
    
    二,设计框架
    
    三,程序代码
    
    1,声明函数和头文件
    
    2,声明结构体
    
    3,声明全局变量
    
    4,主体启动函数
    
    5,主菜单函数
    
    6,创建学生档案函数
    
    7,编辑学生档案函数
    
    8,查询学生档案函数
    
    9,输出籍贯与专业函数
    
    10,查询学籍变化函数
    
    11,删除学生信息函数
    
    四,测试代码
    
    1,运行界面
    
    2,创建学生档案
    
    3,修改学生档案信息
    
    4,查询学生档案信息
    
    5,查询学生籍贯和专业信息
    
    6,查询学生学籍变化
    
    7,删除学生信息
    
    五,设计的总结和感想

    给读者的话:由于期末作业简单,而且没有要求用到文件的知识,毕竟都还没怎么上过结构体,所以这个系统的代码也略显简单,希望以后回过头来再看这些代码,有更好的见解和领悟。如果你也是为了完成实训或者交作业而看到这篇文章,请不要直接抄袭,注释我写得非常清楚,希望能够真正地帮助到你。

     

     设计要求:

    1,总体要求

    用数据文件存放学生的学籍,可对学生学籍进行注册,登录,修改,删除,查找,统计,学籍变化等操作。

    2,具体功能:

    1,系统以菜单方式工作。

    2,登记学生的学号,姓名,性别,年龄,籍贯,系别,专业,班级;修改已知学号的学生信息;

    3,删除已知学号的学生信息;

    4,查找已知学号的学生信息;

    5,按学号,专业输出学生籍贯表。

    6,查询学生学籍变化,比如入学,转专业,退学,降级,休学,毕业。

    程序代码:

    1,         声明函数和头文件

    #include <stdio.h>
    
    #include <stdlib.h>
    
    #include <string.h>
    
    #include <conio.h>
    
    #define N 100
    
     
    
    void menu();
    
    void Student_Create();
    
    void Student_Edit();
    
    void Student_find();
    
    void Student_native();
    
    void Student_changes();
    
    void Student_pop();

    2,         声明结构体

    struct Studen_book 
    
    {
    
           int num;
    
           char name[20];
    
           char sex;
    
           int age;
    
           char native[80]; //籍贯
    
           char depart[20]; //系别
    
           char majoy[20];  //专业
    
           char clas[20];  //班级
    
           char native_changes[30]; //学籍
    
    }stu[N];

    3,         声明全局变量

    static int i=0;

    4,         主体启动函数

    int main()         //启动程序
    
    {
    
           menu();
    
           return 0;
    
    }

    5,         主菜单函数

    void menu()        //主菜单
    
    {
    
            char sel='a';
    
            while(sel!='0')
    
           {
    
            system("cls");//清屏函数
    
            printf("|-----------------------------------------------|\n");
    
            printf("|        学 生 学 籍 管 理 系 统 主 菜 单       |\n");
    
            printf("|-----------------------------------------------|\n");
    
            printf("|      1------创建学生档案信息           【欢】 |\n");
    
            printf("|      2------修改学生档案信息           【迎】 |\n");
    
            printf("|      3------删除学生档案信息           【使】 |\n");
    
            printf("|      4------查询学生档案信息           【用】 |\n");
    
            printf("|      5------查询学生籍贯信息           【本】 |\n");
    
            printf("|      6------查询学生学籍变化           【程】 |\n");
    
            printf("|      0------退出学籍管理系统           【序】 |\n");
    
            printf("|-----------------------------------------------|\n");
    
            printf("请输入选项编号(0-6):");
    
            sel = getch();  //无需回车
    
            switch(sel)
    
            {
    
                case '1':
    
                    Student_Create();
    
                    break;
    
                case '2':
    
                    Student_Edit();
    
                    break;
    
                case '3':
    
                    Student_pop();
    
                    break;
    
                case '4':
    
                    Student_find();
    
                    break;
    
                case '5':
    
                    Student_native();
    
                    break;
    
                case '6':
    
                       Student_changes();
    
                       break;
    
                case '0':
    
                    break; 
    
             }
    
             if(sel=='0')
    
             printf("\n Thanks for your used!");
    
         }   }

    6,         创建学生档案函数

    void Student_Create() //创建学生档案
    
    {
    
             char choose;
    
             Add:
    
             system("cls");
    
             printf("请输入学生学号:\n");
    
             scanf("%d",&stu[i].num);
    
             printf("请输入学生姓名:\n");
    
             scanf("%s",&stu[i].name);
    
             getchar();
    
             printf("请输入学生性别(M或F):\n");
    
             scanf("%c",&stu[i].sex);
    
             printf("请输入学生年龄:\n");
    
             scanf("%d",&stu[i].age);
    
             printf("请输入学生籍贯:\n");
    
             scanf("%s",&stu[i].native);
    
             printf("请输入学生系别:\n");
    
             scanf("%s",&stu[i].depart);
    
             printf("请输入学生专业:\n");
    
             scanf("%s",&stu[i].majoy);
    
             printf("请输入学生班级:\n");
    
             scanf("%s",&stu[i].clas);
    
             printf("请输入学生学籍变化:\n");
    
             scanf("%s",&stu[i].native_changes);
    
             i++;                           //输完一项++,方便下一项输入 ,同时计输入的学生总数
    
             getchar();                 //回车继续
    
             printf("是否继续添加('Y'or'N')?");
    
             choose=getchar();
    
             if(choose=='Y'||choose=='y')
    
                      goto Add;        
    
    }

    7,         编辑学生档案函数

    void Student_Edit()  //根据学号查找学生信息并编辑
    
    {
    
    int t,number,n;
    
           char x;
    
           printf("\n输入学号:");
    
           scanf("%d",&number);
    
           for(t=0;t<i;t++)
    
           {
    
                    if(stu[t].num==number)
    
                    n=t;
    
           }
    
           printf("\n学生的信息如下:\n");
    
           printf("1—学号:%d\n",stu[n].num);
    
           printf("2—姓名:%s\n",stu[n].name);
    
           printf("3—性别:%c\n",stu[n].sex);
    
           printf("4—年龄:%d\n",stu[n].age);
    
           printf("5—籍贯:%s\n",stu[n].native);
    
           printf("6—系别:%s\n",stu[n].depart);
    
           printf("7—专业:%s\n",stu[n].majoy);
    
           printf("8—班级:%s\n",stu[n].clas);
    
           printf("9—学籍变化:%s\n",stu[n].native_changes);
    
           printf("0—退出编辑\n");
    
           printf("请输入要编辑的选项(0-9):");
    
           x=getch();
    
           switch(x)
    
           {
    
                    case '1':
    
                            scanf("%d",&stu[n].num);
    
                            break;
    
                    case '2':
    
                             scanf("%s",&stu[n].name);
    
                            break;
    
                    case '3':
    
                            scanf("%c",&stu[n].sex);
    
                            break;
    
                    case '4':
    
                            scanf("%d",&stu[n].age);
    
                            break;
    
                    case '5':
    
                            scanf("%s",&stu[n].native);
    
                            break;
    
                    case '6':
    
                            scanf("%s",&stu[n].depart);
    
                            break;
    
                    case '7':
    
                             scanf("%s",&stu[n].majoy);
    
                            break;
    
                    case '8':
    
                            scanf("%s",&stu[n].clas);
    
                            break;
    
                    case '9':
    
                            scanf("%s",&stu[n].native_changes);
    
                            break;                                                                  
    
                    case '0':
    
                            return;  }   
    
    }

    8,         查询学生档案函数

    void Student_find() //根据学号查找学生信息
    
    {
    
           char choose;
    
           int t,n,number;
    
           Find:
    
           int s=0;
    
           printf("\n请输入要查询的学号:");
    
           scanf("%d",&number);
    
           for(t=0;t<i;t++)
    
           if(stu[t].num==number)
    
           {n=t;
    
           printf("\n【%d号】学生的信息如下:\n",number);
    
           printf("1—学号:%d\n",stu[n].num);
    
           printf("2—姓名:%s\n",stu[n].name);
    
           printf("3—性别:%c\n",stu[n].sex);
    
           printf("4—年龄:%d\n",stu[n].age);
    
           printf("5—籍贯:%s\n",stu[n].native);
    
           printf("6—系别:%s\n",stu[n].depart);
    
           printf("7—专业:%s\n",stu[n].majoy);
    
           printf("8—班级:%s\n",stu[n].clas);
    
           printf("9—学籍变化:%s\n",stu[n].native_changes);
    
           s=1;
    
           }
    
           if(s==0)
    
           printf("无此学生信息");
    
           getchar();
    
           printf("是否继续(Y/N)?:");
    
        choose=getchar();
    
           getchar();
    
        if(choose=='y'||choose=='Y')
    
                    goto Find;   

    9,         输出籍贯与专业函数

    void Student_native() //按学号,专业输出学生籍贯表
    
    {    
    
           char choose;
    
           int number=0;
    
           int t;
    
           Native:
    
           int s=0;
    
           printf("\n输入查询的学号:");
    
           scanf("%d",&number);
    
           for(t=0;t<i;t++)
    
           if(stu[t].num==number)
    
           {
    
           printf("【%d号】学生的信息如下:\n",number);
    
           printf("学号:%d\n",stu[t].num);
    
           printf("籍贯:%s\n",stu[t].native);
    
           printf("专业:%s\n",stu[t].majoy);
    
           s=1;
    
           }
    
           if(s==0)
    
           printf("暂无该学生信息");
    
           getchar();
    
           printf("是否继续(Y/N)?:");
    
        choose=getchar();
    
           getchar();
    
        if(choose=='y'||choose=='Y')
    
                    goto Native;
    
    }

                 

    10,查询学籍变化函数

    void Student_changes() //查询学生的学籍变化
    
    {    
    
           int t;
    
           for(t=0;t<i;t++)
    
           {
    
           printf("\n%s的学籍情况如下:\n",stu[t].name);
    
           printf("%s",stu[t].native_changes);
    
           }
    
           getchar();
    
    } 

    11,删除学生信息函数

    void Student_pop()   //删除学生信息
    
    {
    
           int  k=0,number,t;
    
           char choose;
    
           Del:
    
           system("cls");  /*清屏*/
    
           printf("\n请输入要删除的学号:");
    
           scanf("%d",&number);
    
           getchar();
    
           for(t=0;t<i;t++)
    
           {
    
                    if(number==stu[t].num)
    
                    { k=1;break;} 
    
           }    
    
           if(k==1)                                
    
           {
    
                    for(k=t;k<i-1;k++)
    
        {
    
                            stu[k]=stu[k+1];
    
        }
    
         i--; //删除一项 总数对应减少
    
            printf("已删除\n\n");
    
      }
    
      else
    
         {
    
           printf("找不到要删除的记录!\n");
    
           printf("按回车键返回:");
    
           getchar();
    
         }
    
      printf("是否继续(Y/N)?:");
    
      choose=getchar(); getchar();
    
      if(choose=='y'||choose=='Y')
    
                    goto Del;    
    
    }

     主菜单界面:

  • 相关阅读:
    servlet 和filter 抛出404等异常
    cassandra 存储list数组
    cassandra 存储二进制data
    ubuntu下安装cpython 0.2x
    mongodb存储二进制数据的二种方式——binary bson或gridfs
    Python中使用Flask、MongoDB搭建简易图片服务器
    kubernetes要实现的目标——随机关掉一台机器,看你的服务能否正常;减少的应用实例能否自动迁移并恢复到其他节点;服务能否随着流量进行自动伸缩
    陈斌:探索技术领导力的最佳实践
    python berkeley DB操作——打开btree索引文件中的database
    什么是AWS Lambda?——事件驱动的函数执行环境
  • 原文地址:https://www.cnblogs.com/tqing/p/10289852.html
Copyright © 2011-2022 走看看