C语言实现学生信息管理系统开发

本文实例为大家分享了C语言实现学生信息管理系统的具体代码,供大家参考,具体内容如下

程序介绍

运行程序时,首先进入到菜单部分,菜单部分提供了菜单显示和输入功能部分。其运行效果如图所示。在主界面上输入0——8内的数字,实现相应的功能。

C语言实现学生信息管理系统开发_第1张图片

主界面输入1时,进入录入学生信息的界面,当没有存储记录时,根据提示对学生的信息进行输入,运行效果如图所示。

C语言实现学生信息管理系统开发_第2张图片

在存在学生信息的情况下继续添加学生信息时,会首先显示存在的学生信息,运行效果如图所示。

C语言实现学生信息管理系统开发_第3张图片

主界面输入2时,进入查询学生信息模块,根据学生学号,对学生信息进行查询。运行效果如图所示。

C语言实现学生信息管理系统开发_第4张图片

在主界面输入3时,进入到删除学生信息模块,输入需要删除的学生学号,即可在文件中将该学号的所有信息删除,运行效果如图所示。

C语言实现学生信息管理系统开发_第5张图片

当在主界面输入4时,系统进入到修改学生信息模块,首先会显示出所有学生的信息,输入要修改的学生学号,系统会对输入的学号进行匹配,若在显示出来的学生信息中存在,则会提示输入修改的内容。运行效果如图所示。

C语言实现学生信息管理系统开发_第6张图片

在主界面输入5时,可以插入学生信息,根据提示输入想要插入的位置,以及插入的学号等信息。运行效果如图所示。

C语言实现学生信息管理系统开发_第7张图片

在主界面输入6时,可以根据学生的总成绩从高到低进行排序。排序完成后,将排序结果保存,但是排序后的结果并不现实在该界面。运行效果如图所示。

C语言实现学生信息管理系统开发_第8张图片

当在主界面输入7时,可以对学生的人数进行统计,显示出统计的人数。运行效果如图所示。

C语言实现学生信息管理系统开发_第9张图片

当在主界面输入8时,可以对学生的信息进行显示,运行效果如图所示。该图为对成绩进行排序后的显示结果。

C语言实现学生信息管理系统开发_第10张图片

代码

#include
#include
#include
#include
#include
#define LEN sizeof(struct student)
#define FORMAT "%-8d%-15s%-12.1lf%-12.1lf%-12.1lf%-12.1lf\n"
#define DATA stu[i].num,stu[i].name,stu[i].elec,stu[i].expe,stu[i].requ,stu[i].sum
/**
*  结 构 体
*/
struct student/*定义学生成绩结构体*/
{ 
    int num;        /*学号*/
      char name[15];    /*姓名*/
      double elec;    /*选修课*/
      double expe;    /*实验课*/
      double requ;    /*必修课*/
      double sum;        /*总分*/
};
/**
*  函数声明
*/
struct student stu[50];    /*定义结构体数组*/
void in();                /*录入学生成绩信息*/
void show();            /*显示学生信息*/
void order();            /*按总分排序*/
void del();                /*删除学生成绩信息*/
void modify();            /*修改学生成绩信息*/
void menu();            /*主菜单*/
void insert();            /*插入学生信息*/
void total();            /*计算总人数*/
void search();            /*查找学生信息*/

void main()                /*主函数*/
{ 
    system("color f0\n");    //白底黑字
    int n;
      menu();
      scanf("%d",&n);/*输入选择功能的编号*/
      while(n)
      { 
          switch(n)
         { 
             case 1: in();break;
               case 2: search();break;
               case 3: del();break;
               case 4: modify();break;
               case 5: insert();break;
               case 6: order();break;
               case 7: total();break;
               case 8: show();break;
               default:break;
         }
    getch();
    menu();/*执行完功能再次显示菜单界面*/
    scanf("%d",&n);
      }
}

void in()/*录入学生信息*/
{ 
    int i,m=0;/*m是记录的条数*/
      char ch[2];
      FILE *fp;/*定义文件指针*/
      if((fp=fopen("data.txt","a+"))==NULL)/*打开指定文件*/
      { 
          printf("文件不存在!\n");
          return;//直接返回,不在执行
      }
      while(!feof(fp))//判断是否指向结束符
    {
          if(fread(&stu[m] ,LEN,1,fp)==1)
        {
              m++;/*统计当前记录条数*/
        }
      }
      fclose(fp);
      if(m==0)
      {
          printf("文件中没有记录!\n");
    }
      else
      {          
        show();/*调用show函数,显示原有信息*/
      }
      if((fp=fopen("data.txt","wb"))==NULL)
      {
          printf("文件不存在!\n");
          return;
      }


      printf("输入学生信息(y/n):");
      scanf("%s",ch);
    while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)/*判断是否要录入新信息*/
    {
        printf("number:");
        scanf("%d",&stu[m].num);/*输入学生学号*/
        for(i=0;ii;j--)//学号下面的内容
               stu[j+1]=stu[j];/*从最后一条记录开始均向后移一位*/
          printf("现在请输入要插入的学生信息.\n");
              printf("number:");
          scanf("%d",&stu[i+1].num);
          for(k=0;k 
 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

你可能感兴趣的:(C语言实现学生信息管理系统开发)