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

     主菜单界面:

  • 相关阅读:
    Neko's loop HDU-6444(网络赛1007)
    Parameters
    SETLOCAL
    RD / RMDIR Command
    devenv 命令用法
    Cannot determine the location of the VS Common Tools folder.
    'DEVENV' is not recognized as an internal or external command,
    How to change Visual Studio default environment setting
    error signing assembly unknown error
    What is the Xcopy Command?:
  • 原文地址:https://www.cnblogs.com/tqing/p/10289852.html
Copyright © 2011-2022 走看看